From 71e712050131d9aa340da92c8c856a1159e445bf Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 22 Jan 2018 23:08:20 -0500 Subject: [PATCH] JUMP_BACK and CONTINUE need to be treated more similar... fixes 148 --- test/bytecode_2.7/02_ifelsetmtl.pyc | Bin 0 -> 382 bytes test/simple_source/bug27+/02_ifelsetmtl.py | 11 +++++++++++ uncompyle6/main.py | 15 ++++++++++----- uncompyle6/parsers/parse27.py | 1 + uncompyle6/scanners/scanner27.py | 2 +- 5 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 test/bytecode_2.7/02_ifelsetmtl.pyc create mode 100644 test/simple_source/bug27+/02_ifelsetmtl.py diff --git a/test/bytecode_2.7/02_ifelsetmtl.pyc b/test/bytecode_2.7/02_ifelsetmtl.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd58064518c5405327354860ec30c3a600f39a76 GIT binary patch literal 382 zcmb78OG*Pl5Pj975`rUm1wj}PI+BHML@;>IQ{mrAP7@-o^{0 zstLHZse1M5`#Ss0hd= 3.5: + t = tempfile.NamedTemporaryFile(mode='w+b', + buffering=buffering, + suffix='.py', + prefix=prefix) + else: + t = tempfile.NamedTemporaryFile(mode='w+b', + suffix='.py', + prefix=prefix) current_outfile = t.name sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', buffering) tee = subprocess.Popen(["tee", current_outfile], diff --git a/uncompyle6/parsers/parse27.py b/uncompyle6/parsers/parse27.py index fd59eff2..37abf587 100644 --- a/uncompyle6/parsers/parse27.py +++ b/uncompyle6/parsers/parse27.py @@ -131,6 +131,7 @@ class Python27Parser(Python2Parser): ifelsestmt ::= testexpr c_stmts_opt JUMP_FORWARD else_suite COME_FROM ifelsestmtc ::= testexpr c_stmts_opt JUMP_ABSOLUTE else_suitec ifelsestmtl ::= testexpr c_stmts_opt JUMP_BACK else_suitel + ifelsestmtl ::= testexpr c_stmts_opt CONTINUE else_suitel # Common with 2.6 return_if_lambda ::= RETURN_END_IF_LAMBDA COME_FROM diff --git a/uncompyle6/scanners/scanner27.py b/uncompyle6/scanners/scanner27.py index 377a27e8..ee571067 100755 --- a/uncompyle6/scanners/scanner27.py +++ b/uncompyle6/scanners/scanner27.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015-2017 by Rocky Bernstein +# Copyright (c) 2015-2018 by Rocky Bernstein """ Python 2.7 bytecode ingester.