mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2024-11-23 05:00:07 +00:00
Increase grammar coverage
This commit is contained in:
parent
2de8718de3
commit
288516d8c2
BIN
test/bytecode_2.2/01_augmented_assign.pyc
Normal file
BIN
test/bytecode_2.2/01_augmented_assign.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.5/01_augmented_assign.pyc
Normal file
BIN
test/bytecode_2.5/01_augmented_assign.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.6/01_augmented_assign.pyc
Normal file
BIN
test/bytecode_2.6/01_augmented_assign.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.7/01_augmented_assign.pyc
Normal file
BIN
test/bytecode_2.7/01_augmented_assign.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_3.6/01_augmented_assign.pyc
Normal file
BIN
test/bytecode_3.6/01_augmented_assign.pyc
Normal file
Binary file not shown.
71
test/simple_source/stmts/01_augmented_assign.py
Normal file
71
test/simple_source/stmts/01_augmented_assign.py
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
"""
|
||||||
|
01_augmented_assign.py modified from
|
||||||
|
|
||||||
|
augmentedAssign.py -- source test pattern for augmented assigns
|
||||||
|
|
||||||
|
This source is part of the decompyle test suite.
|
||||||
|
|
||||||
|
decompyle is a Python byte-code decompiler
|
||||||
|
See http://www.crazy-compilers.com/decompyle/ for
|
||||||
|
for further information
|
||||||
|
"""
|
||||||
|
|
||||||
|
raise RuntimeError("This program can't be run")
|
||||||
|
|
||||||
|
a = 1
|
||||||
|
b = 2
|
||||||
|
a += b; # print a # a = a+b = 3
|
||||||
|
a -= b; # print a # a = a-b = 1
|
||||||
|
a *= b; # print a # a = a*b = 2
|
||||||
|
a -= a; # print a # a = a-a = 0
|
||||||
|
a += 7*3; # print a # == 21
|
||||||
|
|
||||||
|
l= [1,2,3]
|
||||||
|
l[1] *= 3; # print l[1]; # 6
|
||||||
|
l[1][2][3] = 7
|
||||||
|
l[1][2][3] *= 3;
|
||||||
|
|
||||||
|
# Python 2.x
|
||||||
|
# augassign1 ::= expr expr inplace_op ROT_TWO STORE_SLICE+0
|
||||||
|
l[:] += [9]; # print l
|
||||||
|
|
||||||
|
# Python 2.x
|
||||||
|
# augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+2
|
||||||
|
l[:2] += [9]; # print l
|
||||||
|
|
||||||
|
|
||||||
|
# Python 2.x
|
||||||
|
# augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+1
|
||||||
|
l[1:] += [9]; # print l
|
||||||
|
|
||||||
|
# Python 2.x
|
||||||
|
# augassign1 ::= expr expr inplace_op ROT_FOUR STORE_SLICE+3
|
||||||
|
l[1:4] += [9]; # print l
|
||||||
|
|
||||||
|
l += [42,43]; # print l
|
||||||
|
|
||||||
|
a.value = 1
|
||||||
|
a.value += 1;
|
||||||
|
a.b.val = 1
|
||||||
|
a.b.val += 1;
|
||||||
|
|
||||||
|
l = []
|
||||||
|
for i in range(3):
|
||||||
|
lj = []
|
||||||
|
for j in range(3):
|
||||||
|
lk = []
|
||||||
|
for k in range(3):
|
||||||
|
lk.append(0)
|
||||||
|
lj.append(lk)
|
||||||
|
l.append(lj)
|
||||||
|
|
||||||
|
i = j = k = 1
|
||||||
|
def f():
|
||||||
|
global i
|
||||||
|
i += 1
|
||||||
|
return i
|
||||||
|
|
||||||
|
l[i][j][k] = 1
|
||||||
|
i = 1
|
||||||
|
l[f()][j][k] += 1
|
||||||
|
# print i, l
|
@ -117,8 +117,6 @@ class Python2Parser(PythonParser):
|
|||||||
classdefdeco1 ::= expr classdefdeco2 CALL_FUNCTION_1
|
classdefdeco1 ::= expr classdefdeco2 CALL_FUNCTION_1
|
||||||
classdefdeco2 ::= LOAD_CONST expr mkfunc CALL_FUNCTION_0 BUILD_CLASS
|
classdefdeco2 ::= LOAD_CONST expr mkfunc CALL_FUNCTION_0 BUILD_CLASS
|
||||||
|
|
||||||
assert2 ::= assert_expr jmp_true LOAD_ASSERT expr CALL_FUNCTION_1 RAISE_VARARGS_1
|
|
||||||
|
|
||||||
assert_expr ::= expr
|
assert_expr ::= expr
|
||||||
assert_expr ::= assert_expr_or
|
assert_expr ::= assert_expr_or
|
||||||
assert_expr ::= assert_expr_and
|
assert_expr ::= assert_expr_and
|
||||||
@ -215,10 +213,12 @@ class Python2Parser(PythonParser):
|
|||||||
designator ::= expr expr STORE_SLICE+1
|
designator ::= expr expr STORE_SLICE+1
|
||||||
designator ::= expr expr STORE_SLICE+2
|
designator ::= expr expr STORE_SLICE+2
|
||||||
designator ::= expr expr expr STORE_SLICE+3
|
designator ::= expr expr expr STORE_SLICE+3
|
||||||
augassign1 ::= expr expr inplace_op ROT_TWO STORE_SLICE+0
|
|
||||||
|
augassign1 ::= expr expr inplace_op ROT_FOUR STORE_SLICE+3
|
||||||
augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+1
|
augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+1
|
||||||
augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+2
|
augassign1 ::= expr expr inplace_op ROT_THREE STORE_SLICE+2
|
||||||
augassign1 ::= expr expr inplace_op ROT_FOUR STORE_SLICE+3
|
augassign1 ::= expr expr inplace_op ROT_TWO STORE_SLICE+0
|
||||||
|
|
||||||
slice0 ::= expr SLICE+0
|
slice0 ::= expr SLICE+0
|
||||||
slice0 ::= expr DUP_TOP SLICE+0
|
slice0 ::= expr DUP_TOP SLICE+0
|
||||||
slice1 ::= expr expr SLICE+1
|
slice1 ::= expr expr SLICE+1
|
||||||
|
@ -91,7 +91,8 @@ class Python27Parser(Python2Parser):
|
|||||||
assert ::= assert_expr jmp_true LOAD_ASSERT RAISE_VARARGS_1
|
assert ::= assert_expr jmp_true LOAD_ASSERT RAISE_VARARGS_1
|
||||||
|
|
||||||
# assert condition, expr
|
# assert condition, expr
|
||||||
assert2 ::= assert_expr jmp_true LOAD_ASSERT expr RAISE_VARARGS_2
|
assert2 ::= assert_expr jmp_true LOAD_ASSERT expr CALL_FUNCTION_1 RAISE_VARARGS_1
|
||||||
|
|
||||||
|
|
||||||
withstmt ::= expr SETUP_WITH POP_TOP suite_stmts_opt
|
withstmt ::= expr SETUP_WITH POP_TOP suite_stmts_opt
|
||||||
POP_BLOCK LOAD_CONST COME_FROM_WITH
|
POP_BLOCK LOAD_CONST COME_FROM_WITH
|
||||||
|
Loading…
Reference in New Issue
Block a user