Author: raffael.tfi...@gmail.com Branch: py3.5-raffael_t Changeset: r83938:d253dd93b42f Date: 2016-03-21 22:23 +0100 http://bitbucket.org/pypy/pypy/changeset/d253dd93b42f/
Log: Add @= token, Set Grammar3.5 diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py --- a/pypy/interpreter/baseobjspace.py +++ b/pypy/interpreter/baseobjspace.py @@ -1876,6 +1876,7 @@ ('delete', 'delete', 2, ['__delete__']), ('userdel', 'del', 1, ['__del__']), ('matmul', '@', 2, ['__matmul__', ' __rmatmul__']), + ('inplace_matmul', '@=', 2, ['__imatmul__']), ] ObjSpace.BuiltinModuleTable = [ diff --git a/pypy/interpreter/pyparser/data/Grammar3.5 b/pypy/interpreter/pyparser/data/Grammar3.5 --- a/pypy/interpreter/pyparser/data/Grammar3.5 +++ b/pypy/interpreter/pyparser/data/Grammar3.5 @@ -21,9 +21,10 @@ decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE decorators: decorator+ -decorated: decorators (classdef | funcdef | async_funcdef) +decorated: decorators (classdef | funcdef) +# | async_funcdef) -async_funcdef: ASYNC funcdef +# async_funcdef: ASYNC funcdef funcdef: 'def' NAME parameters ['->' test] ':' suite parameters: '(' [typedargslist] ')' @@ -68,8 +69,9 @@ nonlocal_stmt: 'nonlocal' NAME (',' NAME)* assert_stmt: 'assert' test [',' test] -compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt -async_stmt: ASYNC (funcdef | with_stmt | for_stmt) +compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated +# | async_stmt +# async_stmt: ASYNC (funcdef | with_stmt | for_stmt) if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite] while_stmt: 'while' test ':' suite ['else' ':' suite] for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite] @@ -103,8 +105,9 @@ arith_expr: term (('+'|'-') term)* term: factor (('*'|'@'|'/'|'%'|'//') factor)* factor: ('+'|'-'|'~') factor | power -power: atom_expr ['**' factor] -atom_expr: [AWAIT] atom trailer* +# power: atom_expr ['**' factor] +power: atom trailer* ['**' factor] +# atom_expr: [AWAIT] atom trailer* atom: ('(' [yield_expr|testlist_comp] ')' | '[' [testlist_comp] ']' | '{' [dictorsetmaker] '}' | diff --git a/pypy/interpreter/pyparser/pygram.py b/pypy/interpreter/pyparser/pygram.py --- a/pypy/interpreter/pyparser/pygram.py +++ b/pypy/interpreter/pyparser/pygram.py @@ -9,7 +9,7 @@ def _get_python_grammar(): here = os.path.dirname(__file__) - fp = open(os.path.join(here, "data", "Grammar3.3")) + fp = open(os.path.join(here, "data", "Grammar3.5")) try: gram_source = fp.read() finally: 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 @@ -61,6 +61,7 @@ _add_tok('DOUBLESLASH', "//" ) _add_tok('DOUBLESLASHEQUAL',"//=" ) _add_tok('AT', "@" ) +_add_tok('ATEQUAL', "@=" ) _add_tok('RARROW', "->") _add_tok('ELLIPSIS', "...") _add_tok('OP') _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit