You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
3.0.1 "ret_or", "ret_and", and "or" rules
This commit is contained in:
@@ -137,9 +137,11 @@ class Python30Parser(Python31Parser):
|
||||
except_handler ::= jmp_abs COME_FROM_EXCEPT except_stmts
|
||||
COME_FROM POP_TOP END_FINALLY
|
||||
|
||||
expr ::= or30
|
||||
ret_or ::= or30
|
||||
or30 ::= expr JUMP_IF_TRUE COME_FROM POP_TOP expr come_from_opt
|
||||
jit_cf_pop ::= JUMP_IF_TRUE _come_froms POP_TOP
|
||||
jif_cf_pop ::= JUMP_IF_FASLE _come_froms POP_TOP
|
||||
or ::= expr jit_cf_pop expr come_from_opt
|
||||
ret_or ::= expr jit_cf_pop expr come_from_opt
|
||||
ret_and ::= expr jif_cf_pop expr come_from_opt
|
||||
|
||||
################################################################################
|
||||
for_block ::= l_stmts_opt _come_froms POP_TOP JUMP_BACK
|
||||
@@ -198,7 +200,8 @@ class Python30Parser(Python31Parser):
|
||||
compare_chained1 COME_FROM
|
||||
compare_chained1 ::= expr DUP_TOP ROT_THREE COMPARE_OP JUMP_IF_FALSE_OR_POP
|
||||
compare_chained2 COME_FROM
|
||||
ret_or ::= expr JUMP_IF_TRUE_OR_POP ret_expr_or_cond COME_FROM
|
||||
ret_or ::= expr JUMP_IF_TRUE_OR_POP ret_expr_or_cond COME_FROM
|
||||
ret_and ::= expr JUMP_IF_FALSE_OR_POP ret_expr_or_cond COME_FROM
|
||||
or ::= expr JUMP_IF_TRUE_OR_POP expr COME_FROM
|
||||
and ::= expr JUMP_IF_TRUE_OR_POP expr COME_FROM
|
||||
""")
|
||||
|
@@ -188,10 +188,6 @@ def customize_for_version3(self, version):
|
||||
'ifnotstmt30': ( "%|if not %c:\n%+%c%-",
|
||||
(0, "testtrue_then"),
|
||||
(1, "_ifstmts_jump30") ),
|
||||
"or30": ( "%c or %c",
|
||||
(0, "expr"),
|
||||
(4, "expr") ),
|
||||
|
||||
})
|
||||
|
||||
def n_comp_iter(node):
|
||||
|
Reference in New Issue
Block a user