[pypy-svn] r17246 - pypy/dist/pypy/interpreter/astcompiler

adim at codespeak.net adim at codespeak.net
Mon Sep 5 16:48:14 CEST 2005


Author: adim
Date: Mon Sep  5 16:48:13 2005
New Revision: 17246

Modified:
   pypy/dist/pypy/interpreter/astcompiler/ast.py
Log:
first step to remove flatten_nodes() calls

Still to do :
 - the same kind of transformations for .tests
 - change nodelist.extend(flatten_nodes(xxx)) into nodelist.extend(xxx)
 - make appopriate changes in astgen.py / ast.txt to reflect these changes



Modified: pypy/dist/pypy/interpreter/astcompiler/ast.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/ast.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/ast.py	Mon Sep  5 16:48:13 2005
@@ -406,6 +406,7 @@
     def __init__(self, expr, ops, lineno=-1):
         Node.__init__(self, lineno)
         self.expr = expr
+        # ops is a list of couples (op_name, node)
         self.ops = ops
 
     def getChildren(self):
@@ -417,7 +418,10 @@
     def getChildNodes(self):
         nodelist = []
         nodelist.append(self.expr)
-        nodelist.extend(flatten_nodes(self.ops))
+        # this is a replacement of flatten_nodes
+        for op_name, node in self.ops:
+            nodelist.append(node)
+        # nodelist.extend(flatten_nodes(self.ops))
         return nodelist
 
     def __repr__(self):
@@ -481,6 +485,7 @@
 class Dict(Node):
     def __init__(self, items, lineno=-1):
         Node.__init__(self, lineno)
+        # items is a list of couples (node (key), node (value))
         self.items = items
 
     def getChildren(self):
@@ -488,7 +493,11 @@
 
     def getChildNodes(self):
         nodelist = []
-        nodelist.extend(flatten_nodes(self.items))
+        # replacement for flatten_nodes()
+        for key, value in self.items:
+            nodelist.append(key)
+            nodelist.append(value)
+        # nodelist.extend(flatten_nodes(self.items))
         return nodelist
 
     def __repr__(self):
@@ -1453,6 +1462,7 @@
     def __init__(self, body, handlers, else_, lineno=-1):
         Node.__init__(self, lineno)
         self.body = body
+        # handlers is a list of triplets (expr1, expr2, body)
         self.handlers = handlers
         self.else_ = else_
 
@@ -1466,7 +1476,14 @@
     def getChildNodes(self):
         nodelist = []
         nodelist.append(self.body)
-        nodelist.extend(flatten_nodes(self.handlers))
+        # replacement for flatten_nodes(self.handlers)
+        for expr1, expr2, body in self.handlers:
+            if expr1 is not None:
+                nodelist.append(expr1)
+            if expr2 is not None:
+                nodelist.append(expr2)
+            if body is not None:
+                nodelist.append(body)
         if self.else_ is not None:
             nodelist.append(self.else_)
         return nodelist



More information about the Pypy-commit mailing list