You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
NT trystmt -> try_except to match AST
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# From 3.2 distutils/core
|
||||
# Ensure we handle funky trystmt
|
||||
# Ensure we handle funky try_except
|
||||
def setup (ok, dist, **attrs):
|
||||
if ok:
|
||||
try:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# From PyPy 2.7 argparse.py
|
||||
# PyPY reduces branches as a result of the return statement
|
||||
# So we need a new rules for trystmt and try_middle which we
|
||||
# suffix with _pypy, e.g. trystmt_pypy, and try_middle_pypy
|
||||
# So we need a new rules for try_except and try_middle which we
|
||||
# suffix with _pypy, e.g. try_except_pypy, and try_middle_pypy
|
||||
def call(self, string):
|
||||
try:
|
||||
return open(string, self, self._bufsize)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# Tests:
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK
|
||||
# try_middle COME_FROM
|
||||
# except_stmt ::= except
|
||||
|
||||
@@ -9,7 +9,7 @@ except:
|
||||
pass
|
||||
|
||||
# Tests:
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK
|
||||
# try_middle COME_FROM
|
||||
# except_stmt ::= except_cond1 except_suite
|
||||
# except_suite ::= ...
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# Tests:
|
||||
# forstmt ::= SETUP_LOOP expr _for store for_block POP_BLOCK COME_FROM
|
||||
# for_block ::= l_stmts_opt JUMP_BACK
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_middle ::= jmp_abs COME_FROM except_stmts END_FINALLY
|
||||
|
||||
# Had a bug with the end of the except matching the end of the
|
||||
|
@@ -2,11 +2,11 @@
|
||||
#
|
||||
# tryfinallystmt ::= SETUP_FINALLY suite_stmts POP_BLOCK LOAD_CONST COME_FROM suite_stmts_opt END_FINALLY
|
||||
# suite_stmts_opt ::= suite_stmts
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_middle ::= JUMP_FORWARD COME_FROM except_stmts END_FINALLY COME_FROM
|
||||
# except_stmt ::= except_cond1 except_suite
|
||||
# except_cond1 ::= DUP_TOP expr COMPARE_OP jmp_false POP_TOP POP_TOP POP_TOP
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle COME_FROM
|
||||
# try_middle ::= JUMP_FORWARD COME_FROM except_stmts END_FINALLY COME_FROM
|
||||
# except_cond1 ::= DUP_TOP expr COMPARE_OP jmp_false POP_TOP POP_TOP POP_TOP
|
||||
try:
|
||||
@@ -21,13 +21,13 @@ finally:
|
||||
x = 4
|
||||
|
||||
# Tests Python3:
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle come_froms
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle come_froms
|
||||
# come_froms ::= COME_FROM COME_FROM
|
||||
# START ::= |- stmts
|
||||
# stmts ::= sstmt
|
||||
# sstmt ::= stmt
|
||||
# stmt ::= trystmt
|
||||
# trystmt ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle come_froms
|
||||
# stmt ::= try_except
|
||||
# try_except ::= SETUP_EXCEPT suite_stmts_opt POP_BLOCK try_middle come_froms
|
||||
# come_froms ::= COME_FROM
|
||||
# try_middle ::= JUMP_FORWARD COME_FROM except_stmts END_FINALLY COME_FROM
|
||||
# Python2 doesn't have the come_froms (which allows for 3 successive COME_FROMs)
|
||||
|
Reference in New Issue
Block a user