Fix verify bug in 3.2

This commit is contained in:
rocky
2016-05-15 06:40:12 -04:00
parent 4cba5a28ef
commit 56dc270145
2 changed files with 17 additions and 1 deletions

View File

@@ -460,6 +460,7 @@ def get_python_parser(version, debug_parser, compile_mode='exec'):
explanation of the different modes.
"""
# FIXME: there has to be a better way...
if version < 3.0:
import uncompyle6.parsers.parse2 as parse2
if compile_mode == 'exec':
@@ -473,6 +474,11 @@ def get_python_parser(version, debug_parser, compile_mode='exec'):
p = parse3.Python32Parser(debug_parser)
else:
p = parse3.Python32ParserSingle(debug_parser)
elif version == 3.4:
if compile_mode == 'exec':
p = parse3.Python34Parser(debug_parser)
else:
p = parse3.Python34ParserSingle(debug_parser)
elif version >= 3.5:
if compile_mode == 'exec':
p = parse3.Python35onParser(debug_parser)
@@ -484,6 +490,7 @@ def get_python_parser(version, debug_parser, compile_mode='exec'):
else:
p = parse3.Python3ParserSingle(debug_parser)
p.version = version
# p.dumpGrammar() # debug
return p
class PythonParserSingle(PythonParser):

View File

@@ -243,7 +243,6 @@ class Python3Parser(PythonParser):
testtrue ::= expr jmp_true
_ifstmts_jump ::= return_if_stmts
_ifstmts_jump ::= c_stmts_opt JUMP_FORWARD _come_from
_ifstmts_jump ::= c_stmts_opt
iflaststmt ::= testexpr c_stmts_opt JUMP_ABSOLUTE
@@ -588,6 +587,13 @@ class Python32Parser(Python3Parser):
"""
# Store locals is only used in Python 3.2
designator ::= STORE_LOCALS
_ifstmts_jump ::= c_stmts_opt JUMP_FORWARD COME_FROM
"""
class Python34Parser(Python3Parser):
def p_34(self, args):
"""
_ifstmts_jump ::= c_stmts_opt JUMP_FORWARD _come_from
"""
class Python3ParserSingle(Python3Parser, PythonParserSingle):
@@ -596,6 +602,9 @@ class Python3ParserSingle(Python3Parser, PythonParserSingle):
class Python32ParserSingle(Python32Parser, PythonParserSingle):
pass
class Python34ParserSingle(Python34Parser, PythonParserSingle):
pass
class Python35onParser(Python3Parser):
def p_35on(self, args):
"""