You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
Start rolling in LOAD_ARG for 3.7+
This commit is contained in:
@@ -185,60 +185,92 @@ TABLE_R = {
|
||||
# }
|
||||
|
||||
TABLE_DIRECT = {
|
||||
"BINARY_ADD": ("+",),
|
||||
"BINARY_SUBTRACT": ("-",),
|
||||
"BINARY_MULTIPLY": ("*",),
|
||||
"BINARY_DIVIDE": ("/",),
|
||||
"BINARY_MATRIX_MULTIPLY": ("@",),
|
||||
"BINARY_TRUE_DIVIDE": ("/",), # Not in <= 2.1
|
||||
"BINARY_FLOOR_DIVIDE": ("//",),
|
||||
"BINARY_MODULO": ("%%",),
|
||||
"BINARY_POWER": ("**",),
|
||||
"BINARY_LSHIFT": ("<<",),
|
||||
"BINARY_RSHIFT": (">>",),
|
||||
"BINARY_AND": ("&",),
|
||||
"BINARY_OR": ("|",),
|
||||
"BINARY_XOR": ("^",),
|
||||
"DELETE_FAST": ("%|del %{pattr}\n",),
|
||||
"DELETE_NAME": ("%|del %{pattr}\n",),
|
||||
"DELETE_GLOBAL": ("%|del %{pattr}\n",),
|
||||
"INPLACE_ADD": ("+=",),
|
||||
"INPLACE_SUBTRACT": ("-=",),
|
||||
"INPLACE_MULTIPLY": ("*=",),
|
||||
"INPLACE_MATRIX_MULTIPLY": ("@=",),
|
||||
"INPLACE_DIVIDE": ("/=",),
|
||||
"INPLACE_TRUE_DIVIDE": ("/=",), # Not in <= 2.1; 2.6 generates INPLACE_DIVIDE only?
|
||||
"INPLACE_FLOOR_DIVIDE": ("//=",),
|
||||
"INPLACE_MODULO": ("%%=",),
|
||||
"INPLACE_POWER": ("**=",),
|
||||
"INPLACE_LSHIFT": ("<<=",),
|
||||
"INPLACE_RSHIFT": (">>=",),
|
||||
"INPLACE_AND": ("&=",),
|
||||
"INPLACE_OR": ("|=",),
|
||||
"INPLACE_XOR": ("^=",),
|
||||
"BINARY_ADD": ( "+" ,),
|
||||
"BINARY_AND": ( "&" ,),
|
||||
"BINARY_DIVIDE": ( "/" ,),
|
||||
"BINARY_FLOOR_DIVIDE": ( "//" ,),
|
||||
"BINARY_LSHIFT": ( "<<",),
|
||||
"BINARY_MATRIX_MULTIPLY": ( "@" ,),
|
||||
"BINARY_MODULO": ( "%%",),
|
||||
"BINARY_MULTIPLY": ( "*" ,),
|
||||
"BINARY_OR": ( "|" ,),
|
||||
"BINARY_POWER": ( "**",),
|
||||
"BINARY_RSHIFT": ( ">>",),
|
||||
"BINARY_SUBTRACT": ( "-" ,),
|
||||
"BINARY_TRUE_DIVIDE": ( "/" ,), # Not in <= 2.1; 2.6 generates INPLACE_DIVIDE only?
|
||||
"BINARY_XOR": ( "^" ,),
|
||||
"DELETE_FAST": ( "%|del %{pattr}\n", ),
|
||||
"DELETE_GLOBAL": ( "%|del %{pattr}\n", ),
|
||||
"DELETE_NAME": ( "%|del %{pattr}\n", ),
|
||||
"IMPORT_FROM": ( "%{pattr}", ),
|
||||
"IMPORT_NAME_ATTR": ( "%{pattr}", ),
|
||||
"INPLACE_ADD": ( "+=" ,),
|
||||
"INPLACE_AND": ( "&=" ,),
|
||||
"INPLACE_DIVIDE": ( "/=" ,),
|
||||
"INPLACE_FLOOR_DIVIDE": ( "//=" ,),
|
||||
"INPLACE_LSHIFT": ( "<<=",),
|
||||
"INPLACE_MATRIX_MULTIPLY": ( "@=" ,),
|
||||
"INPLACE_MODULO": ( "%%=",),
|
||||
"INPLACE_MULTIPLY": ( "*=" ,),
|
||||
"INPLACE_OR": ( "|=" ,),
|
||||
"INPLACE_POWER": ( "**=",),
|
||||
"INPLACE_RSHIFT": ( ">>=",),
|
||||
"INPLACE_SUBTRACT": ( "-=" ,),
|
||||
"INPLACE_TRUE_DIVIDE": ( "/=" ,),
|
||||
"INPLACE_XOR": ( "^=" ,),
|
||||
"LOAD_ARG": ( "%{pattr}", ),
|
||||
"LOAD_ASSERT": ( "%{pattr}", ),
|
||||
"LOAD_CLASSNAME": ( "%{pattr}", ),
|
||||
"LOAD_DEREF": ( "%{pattr}", ),
|
||||
"LOAD_FAST": ( "%{pattr}", ),
|
||||
"LOAD_GLOBAL": ( "%{pattr}", ),
|
||||
"LOAD_LOCALS": ( "locals()", ),
|
||||
"LOAD_NAME": ( "%{pattr}", ),
|
||||
"LOAD_STR": ( "%{pattr}", ),
|
||||
"STORE_DEREF": ( "%{pattr}", ),
|
||||
"STORE_FAST": ( "%{pattr}", ),
|
||||
"STORE_GLOBAL": ( "%{pattr}", ),
|
||||
"STORE_NAME": ( "%{pattr}", ),
|
||||
"UNARY_INVERT": ( "~"),
|
||||
"UNARY_NEGATIVE": ( "-",),
|
||||
"UNARY_NOT": ( "not ", ),
|
||||
"UNARY_POSITIVE": ( "+",),
|
||||
|
||||
# bin_op (formerly "binary_expr") is the Python AST BinOp
|
||||
"bin_op": ("%c %c %c", 0, (-1, "binary_operator"), (1, "expr")),
|
||||
"UNARY_INVERT": ("~"),
|
||||
# unary_op (formerly "unary_expr") is the Python AST UnaryOp
|
||||
"unary_op": ("%c%c", (1, "unary_operator"), (0, "expr")),
|
||||
"unary_not": ("not %c", (0, "expr")),
|
||||
"unary_convert": ("`%c`", (0, "expr"),),
|
||||
"get_iter": ("iter(%c)", (0, "expr"),),
|
||||
"slice0": ("%c[:]", (0, "expr"),),
|
||||
"slice1": ("%c[%p:]", (0, "expr"), (1, 100)),
|
||||
"slice2": ("%c[:%p]", (0, "expr"), (1, 100)),
|
||||
"slice3": ("%c[%p:%p]", (0, "expr"), (1, 100), (2, 100)),
|
||||
|
||||
"set_iter": ( "%c", 0 ),
|
||||
|
||||
"slice0": (
|
||||
"%c[:]",
|
||||
(0, "expr"),
|
||||
),
|
||||
"slice1": (
|
||||
"%c[%p:]",
|
||||
(0, "expr"),
|
||||
(1, NO_PARENTHESIS_EVER)
|
||||
),
|
||||
|
||||
"slice2": ( "[%c:%p]",
|
||||
(0, "expr"),
|
||||
(1, NO_PARENTHESIS_EVER)
|
||||
),
|
||||
|
||||
"slice3": (
|
||||
"%c[%p:%p]",
|
||||
(0, "expr"),
|
||||
(1, NO_PARENTHESIS_EVER),
|
||||
(2, NO_PARENTHESIS_EVER)
|
||||
),
|
||||
|
||||
"IMPORT_FROM": ("%{pattr}",),
|
||||
"IMPORT_NAME_ATTR": ("%{pattr}",),
|
||||
"attribute": ("%c.%[1]{pattr}", (0, "expr")),
|
||||
"LOAD_STR": ("%{pattr}",),
|
||||
"LOAD_FAST": ("%{pattr}",),
|
||||
"LOAD_NAME": ("%{pattr}",),
|
||||
"LOAD_CLASSNAME": ("%{pattr}",),
|
||||
"LOAD_GLOBAL": ("%{pattr}",),
|
||||
"LOAD_DEREF": ("%{pattr}",),
|
||||
"LOAD_LOCALS": ("locals()",),
|
||||
"LOAD_ASSERT": ("%{pattr}",),
|
||||
"delete_subscript": (
|
||||
"%|del %p[%c]\n",
|
||||
(0, "expr", PRECEDENCE["subscript"]),
|
||||
@@ -258,12 +290,6 @@ TABLE_DIRECT = {
|
||||
),
|
||||
|
||||
"store_subscript": ("%p[%c]", (0, "expr", PRECEDENCE["subscript"]), (1, "expr")),
|
||||
"STORE_FAST": ("%{pattr}",),
|
||||
"STORE_NAME": ("%{pattr}",),
|
||||
"STORE_GLOBAL": ("%{pattr}",),
|
||||
"STORE_DEREF": ("%{pattr}",),
|
||||
"UNARY_POSITIVE": ("+",),
|
||||
"UNARY_NEGATIVE": ("-",),
|
||||
"unpack": ("%C%,", (1, maxint, ", ")),
|
||||
# This nonterminal we create on the fly in semantic routines
|
||||
"unpack_w_parens": ("(%C%,)", (1, maxint, ", ")),
|
||||
@@ -285,7 +311,7 @@ TABLE_DIRECT = {
|
||||
|
||||
"set_comp_body": ("%c", 0),
|
||||
"gen_comp_body": ("%c", 0),
|
||||
"dict_comp_body": ("%c:%c", 1, 0),
|
||||
"dict_comp_body": ("%c: %c", 1, 0),
|
||||
"assign": ("%|%c = %p\n", -1, (0, 200)),
|
||||
# The 2nd parameter should have a = suffix.
|
||||
# There is a rule with a 4th parameter "store"
|
||||
|
Reference in New Issue
Block a user