You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Fix more Python3.2 parser errors
This commit is contained in:
BIN
test/bytecode_3.2/01_try_except_raise.pyc
Normal file
BIN
test/bytecode_3.2/01_try_except_raise.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_3.2/03_if.pyc
Normal file
BIN
test/bytecode_3.2/03_if.pyc
Normal file
Binary file not shown.
9
test/simple_source/bug32/01_try_except_raise.py
Normal file
9
test/simple_source/bug32/01_try_except_raise.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# From 3.2 _abcoll.py
|
||||||
|
def pop(self):
|
||||||
|
it = iter(self)
|
||||||
|
try:
|
||||||
|
value = next(it)
|
||||||
|
except StopIteration:
|
||||||
|
raise KeyError
|
||||||
|
self.discard(value)
|
||||||
|
return value
|
11
test/simple_source/bug32/03_if.py
Normal file
11
test/simple_source/bug32/03_if.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# From 3.2 shlex.py
|
||||||
|
def _samefile(os, src, dst):
|
||||||
|
if hasattr(os.path, 'samefile'):
|
||||||
|
try:
|
||||||
|
return os.path.samefile(src, dst)
|
||||||
|
except OSError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# All other platforms: check for same pathname.
|
||||||
|
return (os.path.normcase(os.path.abspath(src)) ==
|
||||||
|
os.path.normcase(os.path.abspath(dst)))
|
@@ -27,6 +27,7 @@ class Python32Parser(Python3Parser):
|
|||||||
# JUMP_FORWARD in some cases, and hence we also don't
|
# JUMP_FORWARD in some cases, and hence we also don't
|
||||||
# see COME_FROM
|
# see COME_FROM
|
||||||
_ifstmts_jump ::= c_stmts_opt
|
_ifstmts_jump ::= c_stmts_opt
|
||||||
|
_ifstmts_jump ::= c_stmts_opt JUMP_FORWARD _come_from
|
||||||
|
|
||||||
stmt ::= del_deref_stmt
|
stmt ::= del_deref_stmt
|
||||||
del_deref_stmt ::= DELETE_DEREF
|
del_deref_stmt ::= DELETE_DEREF
|
||||||
|
@@ -20,7 +20,6 @@ class Python33Parser(Python32Parser):
|
|||||||
|
|
||||||
iflaststmt ::= testexpr c_stmts_opt33
|
iflaststmt ::= testexpr c_stmts_opt33
|
||||||
c_stmts_opt33 ::= JUMP_BACK JUMP_ABSOLUTE c_stmts_opt
|
c_stmts_opt33 ::= JUMP_BACK JUMP_ABSOLUTE c_stmts_opt
|
||||||
_ifstmts_jump ::= c_stmts_opt JUMP_FORWARD _come_from
|
|
||||||
|
|
||||||
# Python 3.5+ has jump optimization to remove the redundant
|
# Python 3.5+ has jump optimization to remove the redundant
|
||||||
# jump_excepts. But in 3.3 we need them added
|
# jump_excepts. But in 3.3 we need them added
|
||||||
|
Reference in New Issue
Block a user