diff --git a/uncompyle6/parsers/parse30.py b/uncompyle6/parsers/parse30.py index 5d6498dc..8a32fc91 100644 --- a/uncompyle6/parsers/parse30.py +++ b/uncompyle6/parsers/parse30.py @@ -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 """) diff --git a/uncompyle6/semantics/customize3.py b/uncompyle6/semantics/customize3.py index fd6af80b..e52f0319 100644 --- a/uncompyle6/semantics/customize3.py +++ b/uncompyle6/semantics/customize3.py @@ -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):