Kaydet (Commit) d91bbba8 authored tarafından Jeremy Hylton's avatar Jeremy Hylton

Add support for extra (*) arguments to preorder.

Change default dispatch to use extended call syntax in place of apply.
üst 9ab019be
...@@ -61,13 +61,13 @@ class ASTVisitor: ...@@ -61,13 +61,13 @@ class ASTVisitor:
print "dispatch", className print "dispatch", className
else: else:
print "dispatch", className, (meth and meth.__name__ or '') print "dispatch", className, (meth and meth.__name__ or '')
return apply(meth, (node,) + args) return meth(node, *args)
def preorder(self, tree, visitor): def preorder(self, tree, visitor, *args):
"""Do preorder walk of tree using visitor""" """Do preorder walk of tree using visitor"""
self.visitor = visitor self.visitor = visitor
visitor.visit = self._preorder visitor.visit = self._preorder
self._preorder(tree) self._preorder(tree, *args) # XXX *args make sense?
_preorder = dispatch _preorder = dispatch
......
...@@ -61,13 +61,13 @@ class ASTVisitor: ...@@ -61,13 +61,13 @@ class ASTVisitor:
print "dispatch", className print "dispatch", className
else: else:
print "dispatch", className, (meth and meth.__name__ or '') print "dispatch", className, (meth and meth.__name__ or '')
return apply(meth, (node,) + args) return meth(node, *args)
def preorder(self, tree, visitor): def preorder(self, tree, visitor, *args):
"""Do preorder walk of tree using visitor""" """Do preorder walk of tree using visitor"""
self.visitor = visitor self.visitor = visitor
visitor.visit = self._preorder visitor.visit = self._preorder
self._preorder(tree) self._preorder(tree, *args) # XXX *args make sense?
_preorder = dispatch _preorder = dispatch
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment