From 6991a637a245388aa08c611afb263365b9d6fd69 Mon Sep 17 00:00:00 2001 From: rocky Date: Wed, 17 May 2017 23:31:56 -0400 Subject: [PATCH] Small changes.... * __pkginfo__.py: Need spark parser 1.6.1 for corrected remove_rules() fn * parser36.py: remove replaced Python3 rules * scanner3.py: corrected comment. Thanks to moagstar here. * --- __pkginfo__.py | 2 +- uncompyle6/parsers/parse36.py | 23 +++++++++++++++++++++++ uncompyle6/scanners/scanner3.py | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/__pkginfo__.py b/__pkginfo__.py index a216d2d6..0d76896a 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -39,7 +39,7 @@ entry_points={ 'pydisassemble=uncompyle6.bin.pydisassemble:main', ]} ftp_url = None -install_requires = ['spark-parser >= 1.6.0, < 1.7.0', +install_requires = ['spark-parser >= 1.6.1, < 1.7.0', 'xdis >= 3.3.0, < 3.4.0'] license = 'MIT' mailing_list = 'python-debugger@googlegroups.com' diff --git a/uncompyle6/parsers/parse36.py b/uncompyle6/parsers/parse36.py index 60d55b75..3856beef 100644 --- a/uncompyle6/parsers/parse36.py +++ b/uncompyle6/parsers/parse36.py @@ -84,6 +84,29 @@ class Python36Parser(Python35Parser): def add_custom_rules(self, tokens, customize): super(Python36Parser, self).add_custom_rules(tokens, customize) + self.remove_rule(""" + forstmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK + opt_come_from_loop + + forelsestmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK else_suite + COME_FROM_LOOP + + forelselaststmt ::= SETUP_LOOP expr _for designator for_block POP_BLOCK else_suitec + COME_FROM_LOOP + + forelselaststmtl ::= SETUP_LOOP expr _for designator for_block POP_BLOCK else_suitel + COME_FROM_LOOP + + whilestmt ::= SETUP_LOOP testexpr l_stmts_opt COME_FROM jump_back POP_BLOCK + COME_FROM_LOOP + + whilestmt ::= SETUP_LOOP testexpr l_stmts_opt jump_back POP_BLOCK + COME_FROM_LOOP + + whileTruestmt ::= SETUP_LOOP l_stmts_opt JUMP_BACK POP_BLOCK COME_FROM_LOOP + COME_FROM_LOOP + """) + for i, token in enumerate(tokens): opname = token.type diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index e2b36ad2..486f8068 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -275,7 +275,7 @@ class Scanner3(Scanner): pass elif opname in ('MAKE_FUNCTION', 'MAKE_CLOSURE'): if self.version >= 3.6: - # 3.6+ doesn't have MAKE_CLOSURE, so opname == 'MAKE_CLOSURE' + # 3.6+ doesn't have MAKE_CLOSURE, so opname == 'MAKE_FUNCTION' flags = inst.argval opname = 'MAKE_FUNCTION_%d' % (flags) attr = []