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
|
||||
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 ::= assert_expr_or
|
||||
assert_expr ::= assert_expr_and
|
||||
@ -215,10 +213,12 @@ class Python2Parser(PythonParser):
|
||||
designator ::= expr expr STORE_SLICE+1
|
||||
designator ::= expr expr STORE_SLICE+2
|
||||
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+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 DUP_TOP SLICE+0
|
||||
slice1 ::= expr expr SLICE+1
|
||||
|
@ -91,7 +91,8 @@ class Python27Parser(Python2Parser):
|
||||
assert ::= assert_expr jmp_true LOAD_ASSERT RAISE_VARARGS_1
|
||||
|
||||
# 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
|
||||
POP_BLOCK LOAD_CONST COME_FROM_WITH
|
||||
|
Loading…
Reference in New Issue
Block a user