[transformer] Don't pass around source scanner
authorJohan Dahlin <johan@gnome.org>
Thu, 2 Sep 2010 05:27:38 +0000 (02:27 -0300)
committerJohan Dahlin <johan@gnome.org>
Thu, 2 Sep 2010 10:44:47 +0000 (07:44 -0300)
Pass around its symbols instead

giscanner/gdumpparser.py
giscanner/scannermain.py
giscanner/transformer.py

index ca9b38a..7f1d229 100644 (file)
@@ -79,8 +79,6 @@ class GDumpParser(object):
 
         """
 
-        self._transformer.parse()
-
         # First pass: parsing
         for node in self._namespace.itervalues():
             if isinstance(node, ast.Function):
index dacffa2..3d27684 100644 (file)
@@ -294,7 +294,7 @@ def scanner_main(args):
     ss.parse_macros(filenames)
 
     # Transform the C symbols into AST nodes
-    transformer.set_source_ast(ss)
+    transformer.parse(ss.get_symbols())
 
     # Transform the C AST nodes into higher level
     # GLib/GObject nodes
index a58d60c..ed6dce8 100644 (file)
@@ -52,7 +52,6 @@ class Transformer(object):
                  accept_unprefixed=False):
         self._cwd = os.getcwd() + os.sep
         self._cachestore = CacheStore()
-        self.generator = None
         self._accept_unprefixed = accept_unprefixed
         self._namespace = ast.Namespace(namespace_name, namespace_version,
                                     identifier_prefixes=identifier_prefixes,
@@ -77,9 +76,6 @@ class Transformer(object):
     def get_pkgconfig_packages(self):
         return self._pkg_config_packages
 
-    def set_source_ast(self, src_ast):
-        self.generator = src_ast
-
     def _append_new_node(self, node):
         original = self._namespace.get(node.name)
         # Special case constants here; we allow duplication to sort-of
@@ -97,8 +93,8 @@ class Transformer(object):
         else:
             self._namespace.append(node)
 
-    def parse(self):
-        for symbol in self.generator.get_symbols():
+    def parse(self, symbols):
+        for symbol in symbols:
             node = self._traverse_one(symbol)
             if node:
                 self._append_new_node(node)