You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
More stringent "ifstmt" checks on 3.x
This commit is contained in:
@@ -1510,13 +1510,19 @@ class Python3Parser(PythonParser):
|
|||||||
condition_jump2 = tokens[min(last - 1, len(tokens) - 1)]
|
condition_jump2 = tokens[min(last - 1, len(tokens) - 1)]
|
||||||
if condition_jump2.kind.startswith("POP_JUMP_IF"):
|
if condition_jump2.kind.startswith("POP_JUMP_IF"):
|
||||||
return condition_jump.attr == condition_jump2.attr
|
return condition_jump.attr == condition_jump2.attr
|
||||||
|
|
||||||
|
last = min(last, n-1)
|
||||||
|
if tokens[last] == "COME_FROM" and tokens[last].off2int() != condition_jump.attr:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
# if condition_jump.attr < condition_jump2.off2int():
|
# if condition_jump.attr < condition_jump2.off2int():
|
||||||
# print("XXX", first, last)
|
# print("XXX", first, last)
|
||||||
# for t in range(first, last): print(tokens[t])
|
# for t in range(first, last): print(tokens[t])
|
||||||
# from trepan.api import debug; debug()
|
# from trepan.api import debug; debug()
|
||||||
return condition_jump.attr < condition_jump2.off2int()
|
return condition_jump.attr < condition_jump2.off2int()
|
||||||
return False
|
return False
|
||||||
elif rule == ("ifstmt", ("testexpr", "\\e___ifstmts_jump")):
|
elif rule == ("ifstmt", ("testexpr", "\\e__ifstmts_jump")):
|
||||||
# I am not sure what to check.
|
# I am not sure what to check.
|
||||||
# Probably needs fixing elsewhere
|
# Probably needs fixing elsewhere
|
||||||
return True
|
return True
|
||||||
|
Reference in New Issue
Block a user