[pypy-commit] pypy py3k: Remove `backquote`
amauryfa
noreply at buildbot.pypy.org
Wed Oct 12 22:23:23 CEST 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r47985:8282c696b2ab
Date: 2011-10-12 22:19 +0200
http://bitbucket.org/pypy/pypy/changeset/8282c696b2ab/
Log: Remove `backquote`
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
@@ -1650,31 +1650,6 @@
self.kwargs.sync_app_attrs(space)
-class Repr(expr):
-
- _lineno_mask = 2
- _col_offset_mask = 4
-
- def __init__(self, value, lineno, col_offset):
- self.value = value
- expr.__init__(self, lineno, col_offset)
- self.initialization_state = 7
-
- def walkabout(self, visitor):
- visitor.visit_Repr(self)
-
- def mutate_over(self, visitor):
- self.value = self.value.mutate_over(visitor)
- return visitor.visit_Repr(self)
-
- def sync_app_attrs(self, space):
- if (self.initialization_state & ~0) ^ 7:
- missing_field(space, self.initialization_state, ['value', 'lineno', 'col_offset'], 'Repr')
- else:
- pass
- self.value.sync_app_attrs(space)
-
-
class Num(expr):
_lineno_mask = 2
@@ -2576,8 +2551,6 @@
return self.default_visitor(node)
def visit_Call(self, node):
return self.default_visitor(node)
- def visit_Repr(self, node):
- return self.default_visitor(node)
def visit_Num(self, node):
return self.default_visitor(node)
def visit_Str(self, node):
@@ -2782,9 +2755,6 @@
if node.kwargs:
node.kwargs.walkabout(self)
- def visit_Repr(self, node):
- node.value.walkabout(self)
-
def visit_Num(self, node):
pass
@@ -5671,52 +5641,6 @@
__init__=interp2app(Call_init),
)
-def Repr_get_value(space, w_self):
- if w_self.w_dict is not None:
- w_obj = w_self.getdictvalue(space, 'value')
- if w_obj is not None:
- return w_obj
- if not w_self.initialization_state & 1:
- typename = space.type(w_self).getname(space)
- w_err = space.wrap("'%s' object has no attribute 'value'" % typename)
- raise OperationError(space.w_AttributeError, w_err)
- return space.wrap(w_self.value)
-
-def Repr_set_value(space, w_self, w_new_value):
- try:
- w_self.value = space.interp_w(expr, w_new_value, False)
- except OperationError, e:
- if not e.match(space, space.w_TypeError):
- raise
- w_self.setdictvalue(space, 'value', w_new_value)
- return
- w_self.deldictvalue(space, 'value')
- w_self.initialization_state |= 1
-
-_Repr_field_unroller = unrolling_iterable(['value'])
-def Repr_init(space, w_self, __args__):
- w_self = space.descr_self_interp_w(Repr, w_self)
- args_w, kwargs_w = __args__.unpack()
- if args_w:
- if len(args_w) != 1:
- w_err = space.wrap("Repr constructor takes either 0 or 1 positional argument")
- raise OperationError(space.w_TypeError, w_err)
- i = 0
- for field in _Repr_field_unroller:
- space.setattr(w_self, space.wrap(field), args_w[i])
- i += 1
- for field, w_value in kwargs_w.iteritems():
- space.setattr(w_self, space.wrap(field), w_value)
-
-Repr.typedef = typedef.TypeDef("Repr",
- expr.typedef,
- __module__='_ast',
- _fields=_FieldsWrapper(['value']),
- value=typedef.GetSetProperty(Repr_get_value, Repr_set_value, cls=Repr),
- __new__=interp2app(get_AST_new(Repr)),
- __init__=interp2app(Repr_init),
-)
-
def Num_get_n(space, w_self):
if w_self.w_dict is not None:
w_obj = w_self.getdictvalue(space, 'n')
diff --git a/pypy/interpreter/astcompiler/astbuilder.py b/pypy/interpreter/astcompiler/astbuilder.py
--- a/pypy/interpreter/astcompiler/astbuilder.py
+++ b/pypy/interpreter/astcompiler/astbuilder.py
@@ -1123,9 +1123,6 @@
keys.append(self.handle_expr(maker.children[i]))
values.append(self.handle_expr(maker.children[i + 2]))
return ast.Dict(keys, values, atom_node.lineno, atom_node.column)
- elif first_child_type == tokens.BACKQUOTE:
- expr = self.handle_testlist(atom_node.children[1])
- return ast.Repr(expr, atom_node.lineno, atom_node.column)
else:
raise AssertionError("unknown atom")
diff --git a/pypy/interpreter/astcompiler/asthelpers.py b/pypy/interpreter/astcompiler/asthelpers.py
--- a/pypy/interpreter/astcompiler/asthelpers.py
+++ b/pypy/interpreter/astcompiler/asthelpers.py
@@ -139,11 +139,6 @@
_description = "conditional expression"
-class __extend__(ast.Repr):
-
- _description = "repr"
-
-
class __extend__(ast.Const):
constant = True
diff --git a/pypy/interpreter/astcompiler/codegen.py b/pypy/interpreter/astcompiler/codegen.py
--- a/pypy/interpreter/astcompiler/codegen.py
+++ b/pypy/interpreter/astcompiler/codegen.py
@@ -1040,11 +1040,6 @@
self._compile_comprehension(dictcomp, "<dictcomp>",
ComprehensionCodeGenerator)
- def visit_Repr(self, rep):
- self.update_position(rep.lineno)
- rep.value.walkabout(self)
- self.emit_op(ops.UNARY_CONVERT)
-
def visit_Attribute(self, attr):
self.update_position(attr.lineno)
names = self.names
diff --git a/pypy/interpreter/astcompiler/test/test_compiler.py b/pypy/interpreter/astcompiler/test/test_compiler.py
--- a/pypy/interpreter/astcompiler/test/test_compiler.py
+++ b/pypy/interpreter/astcompiler/test/test_compiler.py
@@ -763,7 +763,7 @@
yield self.st, "y = lambda x: x", "y(4)", 4
def test_backquote_repr(self):
- yield self.st, "x = None; y = `x`", "y", "None"
+ py.test.raises(SyntaxError, self.simple_test, "y = `0`", None, None)
def test_deleting_attributes(self):
test = """if 1:
diff --git a/pypy/interpreter/astcompiler/tools/Python.asdl b/pypy/interpreter/astcompiler/tools/Python.asdl
--- a/pypy/interpreter/astcompiler/tools/Python.asdl
+++ b/pypy/interpreter/astcompiler/tools/Python.asdl
@@ -66,7 +66,6 @@
| Compare(expr left, cmpop* ops, expr* comparators)
| Call(expr func, expr* args, keyword* keywords,
expr? starargs, expr? kwargs)
- | Repr(expr value)
| Num(object n) -- a number as a PyObject.
| Str(string s) -- need to specify raw, unicode, etc?
-- other literals? bools?
diff --git a/pypy/interpreter/pyparser/data/Grammar3.2 b/pypy/interpreter/pyparser/data/Grammar3.2
--- a/pypy/interpreter/pyparser/data/Grammar3.2
+++ b/pypy/interpreter/pyparser/data/Grammar3.2
@@ -100,7 +100,6 @@
atom: ('(' [yield_expr|testlist_comp] ')' |
'[' [listmaker] ']' |
'{' [dictorsetmaker] '}' |
- '`' testlist1 '`' |
NAME | NUMBER | STRING+)
listmaker: test ( list_for | (',' test)* [','] )
testlist_comp: test ( comp_for | (',' test)* [','] )
diff --git a/pypy/interpreter/pyparser/pytoken.py b/pypy/interpreter/pyparser/pytoken.py
--- a/pypy/interpreter/pyparser/pytoken.py
+++ b/pypy/interpreter/pyparser/pytoken.py
@@ -35,7 +35,6 @@
_add_tok('EQUAL', "=" )
_add_tok('DOT', "." )
_add_tok('PERCENT', "%" )
-_add_tok('BACKQUOTE', "`" )
_add_tok('LBRACE', "{" )
_add_tok('RBRACE', "}" )
_add_tok('EQEQUAL', "==" )
More information about the pypy-commit
mailing list