[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