[pypy-commit] pypy split-ast-classes: Fixes, enough for most ast tests to pass.

amauryfa noreply at buildbot.pypy.org
Wed Jun 26 23:22:07 CEST 2013


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: split-ast-classes
Changeset: r65016:cc256ebf2bc6
Date: 2013-06-24 20:53 +0200
http://bitbucket.org/pypy/pypy/changeset/cc256ebf2bc6/

Log:	Fixes, enough for most ast tests to pass.

diff --git a/pypy/interpreter/astcompiler/ast.py b/pypy/interpreter/astcompiler/ast.py
--- a/pypy/interpreter/astcompiler/ast.py
+++ b/pypy/interpreter/astcompiler/ast.py
@@ -180,7 +180,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Expression)
-        w_body = self.body.to_object(space)
+        w_body = self.body.to_object(space)  # expr
         space.setattr(w_node, space.wrap('body'), w_body)
         return w_node
 State.ast_type('Expression', 'mod')
@@ -240,9 +240,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_FunctionDef)
-        w_name = self.name.to_object(space)
+        w_name = space.wrap(self.name)  # identifier
         space.setattr(w_node, space.wrap('name'), w_name)
-        w_args = self.args.to_object(space)
+        w_args = self.args.to_object(space)  # arguments
         space.setattr(w_node, space.wrap('args'), w_args)
         if self.body is None:
             body_w = []
@@ -283,7 +283,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_ClassDef)
-        w_name = self.name.to_object(space)
+        w_name = space.wrap(self.name)  # identifier
         space.setattr(w_node, space.wrap('name'), w_name)
         if self.bases is None:
             bases_w = []
@@ -323,7 +323,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Return)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Return', 'stmt')
@@ -379,7 +379,7 @@
             targets_w = [node.to_object(space) for node in self.targets] # expr
         w_targets = space.newlist(targets_w)
         space.setattr(w_node, space.wrap('targets'), w_targets)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Assign', 'stmt')
@@ -403,11 +403,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_AugAssign)
-        w_target = self.target.to_object(space)
+        w_target = self.target.to_object(space)  # expr
         space.setattr(w_node, space.wrap('target'), w_target)
-        w_op = operator_to_class[self.op - 1]().to_object(space)
+        w_op = operator_to_class[self.op - 1]().to_object(space)  # operator
         space.setattr(w_node, space.wrap('op'), w_op)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('AugAssign', 'stmt')
@@ -433,7 +433,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Print)
-        w_dest = self.dest.to_object(space)
+        w_dest = self.dest.to_object(space)  # expr
         space.setattr(w_node, space.wrap('dest'), w_dest)
         if self.values is None:
             values_w = []
@@ -441,7 +441,7 @@
             values_w = [node.to_object(space) for node in self.values] # expr
         w_values = space.newlist(values_w)
         space.setattr(w_node, space.wrap('values'), w_values)
-        w_nl = self.nl.to_object(space)
+        w_nl = self.nl.to_object(space)  # bool
         space.setattr(w_node, space.wrap('nl'), w_nl)
         return w_node
 State.ast_type('Print', 'stmt')
@@ -470,9 +470,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_For)
-        w_target = self.target.to_object(space)
+        w_target = self.target.to_object(space)  # expr
         space.setattr(w_node, space.wrap('target'), w_target)
-        w_iter = self.iter.to_object(space)
+        w_iter = self.iter.to_object(space)  # expr
         space.setattr(w_node, space.wrap('iter'), w_iter)
         if self.body is None:
             body_w = []
@@ -511,7 +511,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_While)
-        w_test = self.test.to_object(space)
+        w_test = self.test.to_object(space)  # expr
         space.setattr(w_node, space.wrap('test'), w_test)
         if self.body is None:
             body_w = []
@@ -550,7 +550,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_If)
-        w_test = self.test.to_object(space)
+        w_test = self.test.to_object(space)  # expr
         space.setattr(w_node, space.wrap('test'), w_test)
         if self.body is None:
             body_w = []
@@ -589,9 +589,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_With)
-        w_context_expr = self.context_expr.to_object(space)
+        w_context_expr = self.context_expr.to_object(space)  # expr
         space.setattr(w_node, space.wrap('context_expr'), w_context_expr)
-        w_optional_vars = self.optional_vars.to_object(space)
+        w_optional_vars = self.optional_vars.to_object(space)  # expr
         space.setattr(w_node, space.wrap('optional_vars'), w_optional_vars)
         if self.body is None:
             body_w = []
@@ -625,11 +625,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Raise)
-        w_type = self.type.to_object(space)
+        w_type = self.type.to_object(space)  # expr
         space.setattr(w_node, space.wrap('type'), w_type)
-        w_inst = self.inst.to_object(space)
+        w_inst = self.inst.to_object(space)  # expr
         space.setattr(w_node, space.wrap('inst'), w_inst)
-        w_tback = self.tback.to_object(space)
+        w_tback = self.tback.to_object(space)  # expr
         space.setattr(w_node, space.wrap('tback'), w_tback)
         return w_node
 State.ast_type('Raise', 'stmt')
@@ -732,9 +732,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Assert)
-        w_test = self.test.to_object(space)
+        w_test = self.test.to_object(space)  # expr
         space.setattr(w_node, space.wrap('test'), w_test)
-        w_msg = self.msg.to_object(space)
+        w_msg = self.msg.to_object(space)  # expr
         space.setattr(w_node, space.wrap('msg'), w_msg)
         return w_node
 State.ast_type('Assert', 'stmt')
@@ -784,7 +784,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_ImportFrom)
-        w_module = self.module.to_object(space)
+        w_module = space.wrap(self.module)  # identifier
         space.setattr(w_node, space.wrap('module'), w_module)
         if self.names is None:
             names_w = []
@@ -792,7 +792,7 @@
             names_w = [node.to_object(space) for node in self.names] # alias
         w_names = space.newlist(names_w)
         space.setattr(w_node, space.wrap('names'), w_names)
-        w_level = self.level.to_object(space)
+        w_level = space.wrap(self.level)  # int
         space.setattr(w_node, space.wrap('level'), w_level)
         return w_node
 State.ast_type('ImportFrom', 'stmt')
@@ -819,11 +819,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Exec)
-        w_body = self.body.to_object(space)
+        w_body = self.body.to_object(space)  # expr
         space.setattr(w_node, space.wrap('body'), w_body)
-        w_globals = self.globals.to_object(space)
+        w_globals = self.globals.to_object(space)  # expr
         space.setattr(w_node, space.wrap('globals'), w_globals)
-        w_locals = self.locals.to_object(space)
+        w_locals = self.locals.to_object(space)  # expr
         space.setattr(w_node, space.wrap('locals'), w_locals)
         return w_node
 State.ast_type('Exec', 'stmt')
@@ -846,7 +846,7 @@
         if self.names is None:
             names_w = []
         else:
-            names_w = [node.to_object(space) for node in self.names] # identifier
+            names_w = [space.wrap(node) for node in self.names] # identifier
         w_names = space.newlist(names_w)
         space.setattr(w_node, space.wrap('names'), w_names)
         return w_node
@@ -868,7 +868,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Expr)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Expr', 'stmt')
@@ -949,7 +949,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_BoolOp)
-        w_op = boolop_to_class[self.op - 1]().to_object(space)
+        w_op = boolop_to_class[self.op - 1]().to_object(space)  # boolop
         space.setattr(w_node, space.wrap('op'), w_op)
         if self.values is None:
             values_w = []
@@ -979,11 +979,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_BinOp)
-        w_left = self.left.to_object(space)
+        w_left = self.left.to_object(space)  # expr
         space.setattr(w_node, space.wrap('left'), w_left)
-        w_op = operator_to_class[self.op - 1]().to_object(space)
+        w_op = operator_to_class[self.op - 1]().to_object(space)  # operator
         space.setattr(w_node, space.wrap('op'), w_op)
-        w_right = self.right.to_object(space)
+        w_right = self.right.to_object(space)  # expr
         space.setattr(w_node, space.wrap('right'), w_right)
         return w_node
 State.ast_type('BinOp', 'expr')
@@ -1005,9 +1005,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_UnaryOp)
-        w_op = unaryop_to_class[self.op - 1]().to_object(space)
+        w_op = unaryop_to_class[self.op - 1]().to_object(space)  # unaryop
         space.setattr(w_node, space.wrap('op'), w_op)
-        w_operand = self.operand.to_object(space)
+        w_operand = self.operand.to_object(space)  # expr
         space.setattr(w_node, space.wrap('operand'), w_operand)
         return w_node
 State.ast_type('UnaryOp', 'expr')
@@ -1030,9 +1030,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Lambda)
-        w_args = self.args.to_object(space)
+        w_args = self.args.to_object(space)  # arguments
         space.setattr(w_node, space.wrap('args'), w_args)
-        w_body = self.body.to_object(space)
+        w_body = self.body.to_object(space)  # expr
         space.setattr(w_node, space.wrap('body'), w_body)
         return w_node
 State.ast_type('Lambda', 'expr')
@@ -1057,11 +1057,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_IfExp)
-        w_test = self.test.to_object(space)
+        w_test = self.test.to_object(space)  # expr
         space.setattr(w_node, space.wrap('test'), w_test)
-        w_body = self.body.to_object(space)
+        w_body = self.body.to_object(space)  # expr
         space.setattr(w_node, space.wrap('body'), w_body)
-        w_orelse = self.orelse.to_object(space)
+        w_orelse = self.orelse.to_object(space)  # expr
         space.setattr(w_node, space.wrap('orelse'), w_orelse)
         return w_node
 State.ast_type('IfExp', 'expr')
@@ -1146,7 +1146,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_ListComp)
-        w_elt = self.elt.to_object(space)
+        w_elt = self.elt.to_object(space)  # expr
         space.setattr(w_node, space.wrap('elt'), w_elt)
         if self.generators is None:
             generators_w = []
@@ -1176,7 +1176,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_SetComp)
-        w_elt = self.elt.to_object(space)
+        w_elt = self.elt.to_object(space)  # expr
         space.setattr(w_node, space.wrap('elt'), w_elt)
         if self.generators is None:
             generators_w = []
@@ -1208,9 +1208,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_DictComp)
-        w_key = self.key.to_object(space)
+        w_key = self.key.to_object(space)  # expr
         space.setattr(w_node, space.wrap('key'), w_key)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         if self.generators is None:
             generators_w = []
@@ -1240,7 +1240,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_GeneratorExp)
-        w_elt = self.elt.to_object(space)
+        w_elt = self.elt.to_object(space)  # expr
         space.setattr(w_node, space.wrap('elt'), w_elt)
         if self.generators is None:
             generators_w = []
@@ -1268,7 +1268,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Yield)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Yield', 'expr')
@@ -1293,7 +1293,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Compare)
-        w_left = self.left.to_object(space)
+        w_left = self.left.to_object(space)  # expr
         space.setattr(w_node, space.wrap('left'), w_left)
         if self.ops is None:
             ops_w = []
@@ -1338,7 +1338,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Call)
-        w_func = self.func.to_object(space)
+        w_func = self.func.to_object(space)  # expr
         space.setattr(w_node, space.wrap('func'), w_func)
         if self.args is None:
             args_w = []
@@ -1352,9 +1352,9 @@
             keywords_w = [node.to_object(space) for node in self.keywords] # keyword
         w_keywords = space.newlist(keywords_w)
         space.setattr(w_node, space.wrap('keywords'), w_keywords)
-        w_starargs = self.starargs.to_object(space)
+        w_starargs = self.starargs.to_object(space)  # expr
         space.setattr(w_node, space.wrap('starargs'), w_starargs)
-        w_kwargs = self.kwargs.to_object(space)
+        w_kwargs = self.kwargs.to_object(space)  # expr
         space.setattr(w_node, space.wrap('kwargs'), w_kwargs)
         return w_node
 State.ast_type('Call', 'expr')
@@ -1375,7 +1375,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Repr)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Repr', 'expr')
@@ -1395,7 +1395,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Num)
-        w_n = self.n
+        w_n = self.n  # object
         space.setattr(w_node, space.wrap('n'), w_n)
         return w_node
 State.ast_type('Num', 'expr')
@@ -1415,7 +1415,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Str)
-        w_s = self.s
+        w_s = self.s  # string
         space.setattr(w_node, space.wrap('s'), w_s)
         return w_node
 State.ast_type('Str', 'expr')
@@ -1438,11 +1438,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Attribute)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
-        w_attr = self.attr.to_object(space)
+        w_attr = space.wrap(self.attr)  # identifier
         space.setattr(w_node, space.wrap('attr'), w_attr)
-        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)
+        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)  # expr_context
         space.setattr(w_node, space.wrap('ctx'), w_ctx)
         return w_node
 State.ast_type('Attribute', 'expr')
@@ -1466,11 +1466,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Subscript)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
-        w_slice = self.slice.to_object(space)
+        w_slice = self.slice.to_object(space)  # slice
         space.setattr(w_node, space.wrap('slice'), w_slice)
-        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)
+        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)  # expr_context
         space.setattr(w_node, space.wrap('ctx'), w_ctx)
         return w_node
 State.ast_type('Subscript', 'expr')
@@ -1491,9 +1491,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Name)
-        w_id = self.id.to_object(space)
+        w_id = space.wrap(self.id)  # identifier
         space.setattr(w_node, space.wrap('id'), w_id)
-        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)
+        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)  # expr_context
         space.setattr(w_node, space.wrap('ctx'), w_ctx)
         return w_node
 State.ast_type('Name', 'expr')
@@ -1522,7 +1522,7 @@
             elts_w = [node.to_object(space) for node in self.elts] # expr
         w_elts = space.newlist(elts_w)
         space.setattr(w_node, space.wrap('elts'), w_elts)
-        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)
+        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)  # expr_context
         space.setattr(w_node, space.wrap('ctx'), w_ctx)
         return w_node
 State.ast_type('List', 'expr')
@@ -1551,7 +1551,7 @@
             elts_w = [node.to_object(space) for node in self.elts] # expr
         w_elts = space.newlist(elts_w)
         space.setattr(w_node, space.wrap('elts'), w_elts)
-        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)
+        w_ctx = expr_context_to_class[self.ctx - 1]().to_object(space)  # expr_context
         space.setattr(w_node, space.wrap('ctx'), w_ctx)
         return w_node
 State.ast_type('Tuple', 'expr')
@@ -1571,7 +1571,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Const)
-        w_value = self.value
+        w_value = self.value  # object
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Const', 'expr')
@@ -1667,11 +1667,11 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Slice)
-        w_lower = self.lower.to_object(space)
+        w_lower = self.lower.to_object(space)  # expr
         space.setattr(w_node, space.wrap('lower'), w_lower)
-        w_upper = self.upper.to_object(space)
+        w_upper = self.upper.to_object(space)  # expr
         space.setattr(w_node, space.wrap('upper'), w_upper)
-        w_step = self.step.to_object(space)
+        w_step = self.step.to_object(space)  # expr
         space.setattr(w_node, space.wrap('step'), w_step)
         return w_node
 State.ast_type('Slice', 'slice')
@@ -1716,7 +1716,7 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_Index)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('Index', 'slice')
@@ -1969,9 +1969,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_comprehension)
-        w_target = self.target.to_object(space)
+        w_target = self.target.to_object(space)  # expr
         space.setattr(w_node, space.wrap('target'), w_target)
-        w_iter = self.iter.to_object(space)
+        w_iter = self.iter.to_object(space)  # expr
         space.setattr(w_node, space.wrap('iter'), w_iter)
         if self.ifs is None:
             ifs_w = []
@@ -2011,9 +2011,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_ExceptHandler)
-        w_type = self.type.to_object(space)
+        w_type = self.type.to_object(space)  # expr
         space.setattr(w_node, space.wrap('type'), w_type)
-        w_name = self.name.to_object(space)
+        w_name = self.name.to_object(space)  # expr
         space.setattr(w_node, space.wrap('name'), w_name)
         if self.body is None:
             body_w = []
@@ -2051,9 +2051,9 @@
             args_w = [node.to_object(space) for node in self.args] # expr
         w_args = space.newlist(args_w)
         space.setattr(w_node, space.wrap('args'), w_args)
-        w_vararg = self.vararg.to_object(space)
+        w_vararg = space.wrap(self.vararg)  # identifier
         space.setattr(w_node, space.wrap('vararg'), w_vararg)
-        w_kwarg = self.kwarg.to_object(space)
+        w_kwarg = space.wrap(self.kwarg)  # identifier
         space.setattr(w_node, space.wrap('kwarg'), w_kwarg)
         if self.defaults is None:
             defaults_w = []
@@ -2079,9 +2079,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_keyword)
-        w_arg = self.arg.to_object(space)
+        w_arg = space.wrap(self.arg)  # identifier
         space.setattr(w_node, space.wrap('arg'), w_arg)
-        w_value = self.value.to_object(space)
+        w_value = self.value.to_object(space)  # expr
         space.setattr(w_node, space.wrap('value'), w_value)
         return w_node
 State.ast_type('keyword', 'AST')
@@ -2100,9 +2100,9 @@
 
     def to_object(self, space):
         w_node = space.call_function(get(space).w_alias)
-        w_name = self.name.to_object(space)
+        w_name = space.wrap(self.name)  # identifier
         space.setattr(w_node, space.wrap('name'), w_name)
-        w_asname = self.asname.to_object(space)
+        w_asname = space.wrap(self.asname)  # identifier
         space.setattr(w_node, space.wrap('asname'), w_asname)
         return w_node
 State.ast_type('alias', 'AST')
diff --git a/pypy/interpreter/astcompiler/tools/asdl_py.py b/pypy/interpreter/astcompiler/tools/asdl_py.py
--- a/pypy/interpreter/astcompiler/tools/asdl_py.py
+++ b/pypy/interpreter/astcompiler/tools/asdl_py.py
@@ -108,6 +108,8 @@
             return "%s_to_class[%s - 1]().to_object(space)" % (field.type, value)
         elif field.type.value in ("object", "string"):
             return value
+        elif field.type.value in ("identifier", "int"):
+            return "space.wrap(%s)" % (value,)
         else:
             return "%s.to_object(space)" % (value,)
 
@@ -124,7 +126,7 @@
             return lines
         else:
             wrapper = self.get_value_converter(field, "self.%s" % field.name)
-            return ["w_%s = %s" % (field.name, wrapper)]
+            return ["w_%s = %s  # %s" % (field.name, wrapper, field.type)]
 
     def make_converters(self, fields, name):
         self.emit("def to_object(self, space):", 1)


More information about the pypy-commit mailing list