Sync with master

This commit is contained in:
rocky
2017-12-02 09:51:15 -05:00
parent 0d9464bb92
commit 0b9fca2263
89 changed files with 619 additions and 434 deletions

View File

@@ -22,7 +22,6 @@ class Python32Parser(Python3Parser):
# Python < 3.5 no POP BLOCK
whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK COME_FROM_LOOP
whileTruestmt ::= SETUP_LOOP return_stmts COME_FROM_LOOP
# Python 3.5+ has jump optimization to remove the redundant
# jump_excepts. But in 3.3 we need them added
@@ -49,11 +48,9 @@ class Python32Parser(Python3Parser):
stmt ::= del_deref_stmt
del_deref_stmt ::= DELETE_DEREF
list_compr ::= BUILD_LIST_0 list_iter
lc_body ::= expr LIST_APPEND
kvlist ::= kvlist kv3
kv3 ::= expr expr STORE_MAP
list_comp ::= BUILD_LIST_0 list_iter
lc_body ::= expr LIST_APPEND
kv3 ::= expr expr STORE_MAP
"""
pass
@@ -65,9 +62,15 @@ class Python32Parser(Python3Parser):
pass
def add_custom_rules(self, tokens, customize):
# self.remove_rules("""
# compare_chained2 ::= expr COMPARE_OP RETURN_VALUE
# """)
self.remove_rules("""
try_middle ::= JUMP_FORWARD COME_FROM except_stmts END_FINALLY COME_FROM
try_middle ::= JUMP_FORWARD COME_FROM except_stmts END_FINALLY COME_FROM_EXCEPT
try_middle ::= JUMP_FORWARD COME_FROM_EXCEPT except_stmts END_FINALLY COME_FROM_EXCEPT_CLAUSE
try_middle ::= jmp_abs COME_FROM except_stmts END_FINALLY
tryelsestmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle else_suite come_from_except_clauses
whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK NOP COME_FROM_LOOP
whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK NOP COME_FROM_LOOP
""")
super(Python32Parser, self).add_custom_rules(tokens, customize)
for i, token in enumerate(tokens):
opname = token.kind