2.7 exec stmt grammar rule isolation/reduction

This commit is contained in:
rocky
2017-12-02 09:23:18 -05:00
parent 28e573b73c
commit a7005f6a77
7 changed files with 29 additions and 22 deletions

View File

@@ -250,17 +250,15 @@ class Scanner2(Scanner):
else:
op_name = '%s_%d' % (op_name, oparg)
customize[op_name] = oparg
elif self.is_pypy and op_name in ('LOOKUP_METHOD',
'JUMP_IF_NOT_DEBUG',
'SETUP_EXCEPT',
'SETUP_FINALLY'):
elif self.is_pypy and op_name in frozenset(
"""LOOKUP_METHOD JUMP_IF_NOT_DEBUG SETUP_EXCEPT SETUP_FINALLY""".split()):
# The value in the dict is in special cases in semantic actions, such
# as CALL_FUNCTION. The value is not used in these cases, so we put
# in arbitrary value 0.
customize[op_name] = 0
elif op == self.opc.CONTINUE_LOOP:
customize[op_name] = 0
elif op_name in frozenset(('LOAD_LISTCOMP', 'LOAD_SETCOMP')):
elif op_name in """
CONTINUE_LOOP EXEC_STMT LOAD_LISTCOMP LOAD_SETCOMP
""".split():
customize[op_name] = 0
elif op == self.opc.JUMP_ABSOLUTE:
# Further classify JUMP_ABSOLUTE into backward jumps