3.0.1 "ret_or", "ret_and", and "or" rules

This commit is contained in:
rocky
2019-11-15 09:12:53 -05:00
parent 1b4335edf1
commit 0441fbc616
2 changed files with 7 additions and 8 deletions

View File

@@ -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
""")

View File

@@ -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):