diff --git a/test/Makefile b/test/Makefile index c78e7a5b..00193788 100644 --- a/test/Makefile +++ b/test/Makefile @@ -133,7 +133,7 @@ check-3.2-ok: #: Run longer Python 3.4's lib files known to be okay check-3.4-ok: - $(PYTHON) test_pythonlib.py --ok-3.4 --weak-verify $(COMPILE) + $(PYTHON) test_pythonlib.py --ok-3.4 --verify $(COMPILE) #: PyPy of some sort. E.g. [PyPy 5.0.1 with GCC 4.8.4] # Skip for now diff --git a/test/ok_lib3.4/bisect.pyc b/test/ok_lib3.4/bisect.pyc new file mode 100644 index 00000000..a9a6d1b1 Binary files /dev/null and b/test/ok_lib3.4/bisect.pyc differ diff --git a/uncompyle6/parsers/parse3.py b/uncompyle6/parsers/parse3.py index a17a7715..f9963be0 100644 --- a/uncompyle6/parsers/parse3.py +++ b/uncompyle6/parsers/parse3.py @@ -302,16 +302,19 @@ class Python3Parser(PythonParser): stmt ::= whileTruestmt ifelsestmt ::= testexpr c_stmts_opt JUMP_FORWARD else_suite _come_from - forstmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK opt_come_from_loop - forstmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK NOP opt_come_from_loop - whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK opt_come_from_loop - whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK NOP opt_come_from_loop + forstmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK opt_come_from_loop + whilestmt ::= SETUP_LOOP testexpr l_stmts_opt JUMP_BACK POP_BLOCK opt_come_from_loop + whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK opt_come_from_loop # Python < 3.5 no POP BLOCK whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK opt_come_from_loop - whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK NOP opt_come_from_loop whileTruestmt ::= SETUP_LOOP return_stmts opt_come_from_loop while1stmt ::= SETUP_LOOP l_stmts _come_from JUMP_BACK opt_come_from_loop + + # FIXME: investigate - can code really produce a NOP? + whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK NOP opt_come_from_loop + whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK NOP opt_come_from_loop + forstmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK NOP opt_come_from_loop """ def p_genexpr3(self, args):