compile Cython.Compiler.ParseTreeTransforms module
authorStefan Behnel <scoder@users.berlios.de>
Fri, 26 Nov 2010 10:35:55 +0000 (11:35 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Fri, 26 Nov 2010 10:35:55 +0000 (11:35 +0100)
Cython/Compiler/ParseTreeTransforms.pxd [new file with mode: 0644]
Cython/Compiler/ParseTreeTransforms.py
setup.py

diff --git a/Cython/Compiler/ParseTreeTransforms.pxd b/Cython/Compiler/ParseTreeTransforms.pxd
new file mode 100644 (file)
index 0000000..20011e9
--- /dev/null
@@ -0,0 +1,57 @@
+
+from Cython.Compiler.Visitor cimport (
+    CythonTransform, VisitorTransform,
+    ScopeTrackingTransform, EnvTransform)
+
+#class NameNodeCollector(TreeVisitor):
+#    cdef list name_nodes
+
+cdef class SkipDeclarations: # (object):
+    pass
+
+cdef class NormalizeTree(CythonTransform):
+    cdef bint is_in_statlist
+    cdef bint is_in_expr
+
+cdef class PostParse(ScopeTrackingTransform):
+    cdef dict specialattribute_handlers
+    cdef size_t lambda_counter
+    cdef _visit_assignment_node(self, node, list expr_list)
+
+
+#def eliminate_rhs_duplicates(list expr_list_list, list ref_node_sequence)
+#def sort_common_subsequences(list items)
+cdef flatten_parallel_assignments(list input, list output)
+cdef map_starred_assignment(list lhs_targets, list starred_assignments, list lhs_args, list rhs_args)
+
+#class PxdPostParse(CythonTransform, SkipDeclarations):
+#class InterpretCompilerDirectives(CythonTransform, SkipDeclarations):
+#class WithTransform(CythonTransform, SkipDeclarations):
+#class DecoratorTransform(CythonTransform, SkipDeclarations):
+
+#class AnalyseDeclarationsTransform(CythonTransform):
+
+cdef class AnalyseExpressionsTransform(CythonTransform):
+    pass
+
+cdef class ExpandInplaceOperators(EnvTransform):
+    pass
+
+cdef class AlignFunctionDefinitions(CythonTransform):
+    cdef dict directives
+    cdef scope
+
+cdef class MarkClosureVisitor(CythonTransform):
+    cdef bint needs_closure
+
+cdef class CreateClosureClasses(CythonTransform):
+    cdef list path
+    cdef bint in_lambda
+    cdef module_scope
+
+cdef class GilCheck(VisitorTransform):
+    cdef list env_stack
+    cdef bint nogil
+
+cdef class TransformBuiltinMethods(EnvTransform):
+    cdef visit_cython_attribute(self, node)
index ecad0c3190113927e27de612df1c7d431fad1487..ae8f8ca17c8d75c5ee28256b800891caa957b0c5 100644 (file)
@@ -1293,9 +1293,12 @@ class AlignFunctionDefinitions(CythonTransform):
         
 
 class MarkClosureVisitor(CythonTransform):
-    
-    needs_closure = False
-    
+
+    def visit_ModuleNode(self, node):
+        self.needs_closure = False
+        self.visitchildren(node)
+        return node
+
     def visit_FuncDefNode(self, node):
         self.needs_closure = False
         self.visitchildren(node)
index 9cd680c90f4e2ec5f94c0b1ce93749f72f9fdcac..cc5fd855ed190632343e323f6341e4fa8680c6f5 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -91,6 +91,7 @@ def compile_cython_modules(profile=False):
                         "Cython.Compiler.Scanning",
                         "Cython.Compiler.Parsing",
                         "Cython.Compiler.Visitor",
+                        "Cython.Compiler.ParseTreeTransforms",
                         "Cython.Runtime.refnanny"]
     extensions = []