Python 3 COME_FROM -> COME_FROM_WITH appropriately

This commit is contained in:
rocky
2016-09-26 08:09:05 -04:00
parent ccd129b377
commit c87710dd4b
5 changed files with 7 additions and 9 deletions

View File

@@ -33,7 +33,7 @@ def test_grammar():
ignore_set = set(
"""
JUMP_BACK CONTINUE RETURN_END_IF
COME_FROM COME_FROM_EXCEPT COME_FROM_LOOP
COME_FROM COME_FROM_EXCEPT COME_FROM_LOOP COME_FROM_WITH
LOAD_GENEXPR LOAD_ASSERT LOAD_SETCOMP LOAD_DICTCOMP
LAMBDA_MARKER RETURN_LAST
""".split())

View File

@@ -242,11 +242,11 @@ class Python3Parser(PythonParser):
jmp_abs ::= JUMP_BACK
withstmt ::= expr SETUP_WITH POP_TOP suite_stmts_opt
POP_BLOCK LOAD_CONST COME_FROM
POP_BLOCK LOAD_CONST COME_FROM_WITH
WITH_CLEANUP END_FINALLY
withasstmt ::= expr SETUP_WITH designator suite_stmts_opt
POP_BLOCK LOAD_CONST COME_FROM
POP_BLOCK LOAD_CONST COME_FROM_WITH
WITH_CLEANUP END_FINALLY
'''

View File

@@ -19,15 +19,15 @@ class Python35Parser(Python3Parser):
# Python 3.5+ has WITH_CLEANUP_START/FINISH
withstmt ::= expr SETUP_WITH exprlist suite_stmts_opt
POP_BLOCK LOAD_CONST COME_FROM
POP_BLOCK LOAD_CONST COME_FROM_WITH
WITH_CLEANUP_START WITH_CLEANUP_FINISH END_FINALLY
withstmt ::= expr SETUP_WITH POP_TOP suite_stmts_opt
POP_BLOCK LOAD_CONST COME_FROM
POP_BLOCK LOAD_CONST COME_FROM_WITH
WITH_CLEANUP_START WITH_CLEANUP_FINISH END_FINALLY
withasstmt ::= expr SETUP_WITH designator suite_stmts_opt
POP_BLOCK LOAD_CONST COME_FROM
POP_BLOCK LOAD_CONST COME_FROM_WITH
WITH_CLEANUP_START WITH_CLEANUP_FINISH END_FINALLY
inplace_op ::= INPLACE_MATRIX_MULTIPLY

View File

@@ -9,8 +9,6 @@ from xdis.bytecode import Bytecode
control_flow_start = namedtuple('control_flow_start', ['name', 'type', 'offset'])
control_flow_end = namedtuple('control_flow_end', ['name', 'type', 'offset'])
control_flow_pair = namedtuple('control_flow_pair', ['name', 'start_offset', 'end_offset'])
class ControlFlow():
def __init__(self, scanner):

View File

@@ -206,7 +206,7 @@ class Scanner3(Scanner):
# Adjust the grammar and remove the below
and (self.opName(jump_offset)[len('SETUP_'):]
== action.name)
and action.name in ['EXCEPT', 'LOOP']):
and action.name in ['EXCEPT', 'LOOP', 'WITH']):
come_from_name = '%s_%s' % (
(come_from_name, action.name))
pass