Kaydet (Commit) 8b4c7ed6 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

merge 3.4

...@@ -56,7 +56,7 @@ small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | ...@@ -56,7 +56,7 @@ small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt |
expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) | expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) |
('=' (yield_expr|testlist_star_expr))*) ('=' (yield_expr|testlist_star_expr))*)
testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [','] testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
'<<=' | '>>=' | '**=' | '//=') '<<=' | '>>=' | '**=' | '//=')
# For normal assignments, additional restrictions enforced by the interpreter # For normal assignments, additional restrictions enforced by the interpreter
print_stmt: 'print' ( [ test (',' test)* [','] ] | print_stmt: 'print' ( [ test (',' test)* [','] ] |
...@@ -119,7 +119,7 @@ xor_expr: and_expr ('^' and_expr)* ...@@ -119,7 +119,7 @@ xor_expr: and_expr ('^' and_expr)*
and_expr: shift_expr ('&' shift_expr)* and_expr: shift_expr ('&' shift_expr)*
shift_expr: arith_expr (('<<'|'>>') arith_expr)* shift_expr: arith_expr (('<<'|'>>') arith_expr)*
arith_expr: term (('+'|'-') term)* arith_expr: term (('+'|'-') term)*
term: factor (('*'|'/'|'%'|'//') factor)* term: factor (('*'|'@'|'/'|'%'|'//') factor)*
factor: ('+'|'-'|'~') factor | power factor: ('+'|'-'|'~') factor | power
power: atom trailer* ['**' factor] power: atom trailer* ['**' factor]
atom: ('(' [yield_expr|testlist_gexp] ')' | atom: ('(' [yield_expr|testlist_gexp] ')' |
......
...@@ -149,6 +149,7 @@ opmap_raw = """ ...@@ -149,6 +149,7 @@ opmap_raw = """
{ LBRACE { LBRACE
} RBRACE } RBRACE
@ AT @ AT
@= ATEQUAL
== EQEQUAL == EQEQUAL
!= NOTEQUAL != NOTEQUAL
<> NOTEQUAL <> NOTEQUAL
......
...@@ -57,12 +57,13 @@ DOUBLESTAREQUAL = 47 ...@@ -57,12 +57,13 @@ DOUBLESTAREQUAL = 47
DOUBLESLASH = 48 DOUBLESLASH = 48
DOUBLESLASHEQUAL = 49 DOUBLESLASHEQUAL = 49
AT = 50 AT = 50
OP = 51 ATEQUAL = 51
COMMENT = 52 OP = 52
NL = 53 COMMENT = 53
RARROW = 54 NL = 54
ERRORTOKEN = 55 RARROW = 55
N_TOKENS = 56 ERRORTOKEN = 56
N_TOKENS = 57
NT_OFFSET = 256 NT_OFFSET = 256
#--end constants-- #--end constants--
......
...@@ -84,7 +84,7 @@ String = group(r"[uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'", ...@@ -84,7 +84,7 @@ String = group(r"[uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'",
# recognized as two instances of =). # recognized as two instances of =).
Operator = group(r"\*\*=?", r">>=?", r"<<=?", r"<>", r"!=", Operator = group(r"\*\*=?", r">>=?", r"<<=?", r"<>", r"!=",
r"//=?", r"->", r"//=?", r"->",
r"[+\-*/%&|^=<>]=?", r"[+\-*/%&@|^=<>]=?",
r"~") r"~")
Bracket = '[][(){}]' Bracket = '[][(){}]'
......
...@@ -48,6 +48,12 @@ class GrammarTest(support.TestCase): ...@@ -48,6 +48,12 @@ class GrammarTest(support.TestCase):
raise AssertionError("Syntax shouldn't have been valid") raise AssertionError("Syntax shouldn't have been valid")
class TestMatrixMultiplication(GrammarTest):
def test_matrix_multiplication_operator(self):
self.validate("a @ b")
self.validate("a @= b")
class TestRaiseChanges(GrammarTest): class TestRaiseChanges(GrammarTest):
def test_2x_style_1(self): def test_2x_style_1(self):
self.validate("raise") self.validate("raise")
......
...@@ -215,6 +215,8 @@ Tests ...@@ -215,6 +215,8 @@ Tests
Tools/Demos Tools/Demos
----------- -----------
- Add support for the PEP 465 matrix multiplication operator to 2to3.
- Issue #16047: Fix module exception list and __file__ handling in freeze. - Issue #16047: Fix module exception list and __file__ handling in freeze.
Patch by Meador Inge. Patch by Meador Inge.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment