You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 09:22:40 +08:00
Merge branch 'master' into python-2.4
This commit is contained in:
@@ -31,6 +31,14 @@ class Python36Parser(Python35Parser):
|
|||||||
def p_36misc(self, args):
|
def p_36misc(self, args):
|
||||||
"""sstmt ::= sstmt RETURN_LAST
|
"""sstmt ::= sstmt RETURN_LAST
|
||||||
|
|
||||||
|
# long except clauses in a loop can sometimes cause a JUMP_BACK to turn into a
|
||||||
|
# JUMP_FORWARD to a JUMP_BACK. And when this happens there is an additional
|
||||||
|
# ELSE added to the except_suite. With better flow control perhaps we can
|
||||||
|
# sort this out better.
|
||||||
|
except_suite ::= c_stmts_opt POP_EXCEPT jump_except ELSE
|
||||||
|
except_suite_finalize ::= SETUP_FINALLY c_stmts_opt except_var_finalize END_FINALLY
|
||||||
|
_jump ELSE
|
||||||
|
|
||||||
# 3.6 redoes how return_closure works. FIXME: Isolate to LOAD_CLOSURE
|
# 3.6 redoes how return_closure works. FIXME: Isolate to LOAD_CLOSURE
|
||||||
return_closure ::= LOAD_CLOSURE DUP_TOP STORE_NAME RETURN_VALUE RETURN_LAST
|
return_closure ::= LOAD_CLOSURE DUP_TOP STORE_NAME RETURN_VALUE RETURN_LAST
|
||||||
|
|
||||||
|
@@ -78,6 +78,12 @@ class Python37Parser(Python36Parser):
|
|||||||
attribute37 ::= expr LOAD_METHOD
|
attribute37 ::= expr LOAD_METHOD
|
||||||
expr ::= attribute37
|
expr ::= attribute37
|
||||||
|
|
||||||
|
# long except clauses in a loop can sometimes cause a JUMP_BACK to turn into a
|
||||||
|
# JUMP_FORWARD to a JUMP_BACK. And when this happens there is an additional
|
||||||
|
# ELSE added to the except_suite. With better flow control perhaps we can
|
||||||
|
# sort this out better.
|
||||||
|
except_suite ::= c_stmts_opt POP_EXCEPT jump_except ELSE
|
||||||
|
|
||||||
# FIXME: generalize and specialize
|
# FIXME: generalize and specialize
|
||||||
call ::= expr CALL_METHOD_0
|
call ::= expr CALL_METHOD_0
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user