aboutsummaryrefslogtreecommitdiff
path: root/Tools/px4params/srcscanner.py
diff options
context:
space:
mode:
authorStefan Rado <px4@sradonia.net>2014-02-18 22:07:42 +0100
committerStefan Rado <px4@sradonia.net>2014-02-18 22:07:42 +0100
commit55e66f5ad1fecb02bcb9782265303e20756b5cb9 (patch)
tree1a23f81eb1acb4f69edb2779d81d5a1ada1cf63a /Tools/px4params/srcscanner.py
parente9feef8ff6ef1f4dcc7b55a75301e2275e662dae (diff)
downloadpx4-firmware-55e66f5ad1fecb02bcb9782265303e20756b5cb9.tar.gz
px4-firmware-55e66f5ad1fecb02bcb9782265303e20756b5cb9.tar.bz2
px4-firmware-55e66f5ad1fecb02bcb9782265303e20756b5cb9.zip
Rename Scanner and Parser classes to SourceScanner and SourceParser to avoid naming conflicts.
Diffstat (limited to 'Tools/px4params/srcscanner.py')
-rw-r--r--Tools/px4params/srcscanner.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Tools/px4params/srcscanner.py b/Tools/px4params/srcscanner.py
new file mode 100644
index 000000000..d7eca72d7
--- /dev/null
+++ b/Tools/px4params/srcscanner.py
@@ -0,0 +1,30 @@
+import os
+import re
+import codecs
+
+class SourceScanner(object):
+ """
+ Traverses directory tree, reads all source files, and passes their contents
+ to the Parser.
+ """
+
+ def ScanDir(self, srcdir, parser):
+ """
+ Scans provided path and passes all found contents to the parser using
+ parser.Parse method.
+ """
+ extensions = tuple(parser.GetSupportedExtensions())
+ for dirname, dirnames, filenames in os.walk(srcdir):
+ for filename in filenames:
+ if filename.endswith(extensions):
+ path = os.path.join(dirname, filename)
+ self.ScanFile(path, parser)
+
+ def ScanFile(self, path, parser):
+ """
+ Scans provided file and passes its contents to the parser using
+ parser.Parse method.
+ """
+ with codecs.open(path, 'r', 'utf-8') as f:
+ contents = f.read()
+ parser.Parse(contents)