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

afayolle at codespeak.net afayolle at codespeak.net
Thu Mar 8 18:19:18 CET 2007


Author: afayolle
Date: Thu Mar  8 18:19:16 2007
New Revision: 40085

Modified:
   pypy/dist/pypy/interpreter/astcompiler/ast.py
   pypy/dist/pypy/interpreter/astcompiler/ast.txt
   pypy/dist/pypy/interpreter/astcompiler/astgen.py
Log:
Fix lambda __new__ in ast.txt
Regenerate ast.py, and manually enable __repr__ on ast nodes



Modified: pypy/dist/pypy/interpreter/astcompiler/ast.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/ast.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/ast.py	Thu Mar  8 18:19:16 2007
@@ -85,7 +85,7 @@
 
 Node.typedef = TypeDef('ASTNode',
                        __new__ = interp2app(descr_Node_new, unwrap_spec=[ObjSpace, W_Root, int]),
-                       #__repr__ = interp2app(descr_node_repr, unwrap_spec=['self', ObjSpace] ),
+                       __repr__ = interp2app(Node.descr_repr, unwrap_spec=['self', ObjSpace] ),
                        getChildNodes = interp2app(Node.descr_getChildNodes, unwrap_spec=[ 'self', ObjSpace ] ),
                        accept = interp2app(descr_node_accept, unwrap_spec=[ ObjSpace, W_Root, W_Root ] ),
                        mutate = interp2app(descr_node_mutate, unwrap_spec=[ ObjSpace, W_Root, W_Root ] ),
@@ -2538,6 +2538,7 @@
 
 
 
+
 def descr_From_accept( space, w_self, w_visitor):
     return space.call_method(w_visitor, 'visitFrom', w_self)
 
@@ -3505,8 +3506,16 @@
     code = space.interp_w(Node, w_code, can_be_None=False)
     self.code = code
     self.lineno = lineno
+    self.varargs = 0
+    self.kwargs = 0
+    if flags & CO_VARARGS:
+        self.varargs = 1
+    if flags & CO_VARKEYWORDS:
+        self.kwargs = 1
     return space.wrap(self)
 
+
+
 def descr_Lambda_accept( space, w_self, w_visitor):
     return space.call_method(w_visitor, 'visitLambda', w_self)
 

Modified: pypy/dist/pypy/interpreter/astcompiler/ast.txt
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/ast.txt	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/ast.txt	Thu Mar  8 18:19:16 2007
@@ -289,6 +289,26 @@
     self.lineno = lineno
     return space.wrap(self)
 
+
+def descr_Lambda_new(space, w_subtype, w_argnames, w_defaults, w_flags, w_code, lineno=-1):
+    self = space.allocate_instance(Lambda, w_subtype)
+    argnames = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_argnames)]
+    self.argnames = argnames
+    defaults = [space.interp_w(Node, w_node) for w_node in space.unpackiterable(w_defaults)]
+    self.defaults = defaults
+    flags = space.int_w(w_flags)
+    self.flags = flags
+    code = space.interp_w(Node, w_code, can_be_None=False)
+    self.code = code
+    self.lineno = lineno
+    self.varargs = 0
+    self.kwargs = 0
+    if flags & CO_VARARGS:
+        self.varargs = 1
+    if flags & CO_VARKEYWORDS:
+        self.kwargs = 1
+    return space.wrap(self)
+
 def descr_Function_new(space, w_subtype, w_decorators, w_name, w_argnames, w_defaults, w_flags, w_doc, w_code, lineno=-1):
     self = space.allocate_instance(Function, w_subtype)
     decorators = space.interp_w(Node, w_decorators, can_be_None=True)

Modified: pypy/dist/pypy/interpreter/astcompiler/astgen.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/astgen.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/astgen.py	Thu Mar  8 18:19:16 2007
@@ -733,7 +733,7 @@
 
 Node.typedef = TypeDef('ASTNode',
                        __new__ = interp2app(descr_Node_new, unwrap_spec=[ObjSpace, W_Root, int]),
-                       #__repr__ = interp2app(descr_node_repr, unwrap_spec=['self', ObjSpace] ),
+                       #__repr__ = interp2app(Node.descr_repr, unwrap_spec=['self', ObjSpace] ),
                        getChildNodes = interp2app(Node.descr_getChildNodes, unwrap_spec=[ 'self', ObjSpace ] ),
                        accept = interp2app(descr_node_accept, unwrap_spec=[ ObjSpace, W_Root, W_Root ] ),
                        mutate = interp2app(descr_node_mutate, unwrap_spec=[ ObjSpace, W_Root, W_Root ] ),



More information about the Pypy-commit mailing list