[gobject-introspection] [transformer] Don't pass around source scanner



commit f653af9c85abd4f0aea2eba71b9eccae7fc71a3b
Author: Johan Dahlin <johan gnome org>
Date:   Thu Sep 2 02:27:38 2010 -0300

    [transformer] Don't pass around source scanner
    
    Pass around its symbols instead

 giscanner/gdumpparser.py |    2 --
 giscanner/scannermain.py |    2 +-
 giscanner/transformer.py |    8 ++------
 3 files changed, 3 insertions(+), 9 deletions(-)
---
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py
index ca9b38a..7f1d229 100644
--- a/giscanner/gdumpparser.py
+++ b/giscanner/gdumpparser.py
@@ -79,8 +79,6 @@ class GDumpParser(object):
 
         """
 
-        self._transformer.parse()
-
         # First pass: parsing
         for node in self._namespace.itervalues():
             if isinstance(node, ast.Function):
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index dacffa2..3d27684 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -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
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index a58d60c..ed6dce8 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -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)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]