[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