You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
Add fragment rules for RAISE_VARARGS and ...
Fix a fragment offset-sorting bug
This commit is contained in:
@@ -200,7 +200,7 @@ def main(in_base, out_base, files, codes, outfile=None,
|
||||
for d in deparsed:
|
||||
last_mod = None
|
||||
offsets = d.offsets
|
||||
for e in sorted(offsets.keys()):
|
||||
for e in sorted([k for k in offsets.keys() if isinstance(k[1], int)]):
|
||||
if e[0] != last_mod:
|
||||
line = '=' * len(e[0])
|
||||
outstream.write("%s\n%s\n%s\n" % (line, e[0], line))
|
||||
|
@@ -210,6 +210,47 @@ class FragmentsWalker(pysource.SourceWalker, object):
|
||||
|
||||
n_tryelsestmt = n_tryelsestmtc = n_tryelsestmtl = n_tryfinallystmt = n_try_except
|
||||
|
||||
def n_raise_stmt0(self, node):
|
||||
assert node[0] == 'RAISE_VARARGS_0'
|
||||
start = len(self.f.getvalue()) + len(self.indent)
|
||||
try:
|
||||
self.default(node)
|
||||
except GenericASTTraversalPruningException:
|
||||
pass
|
||||
self.set_pos_info(node[0], start, len(self.f.getvalue()))
|
||||
self.prune()
|
||||
|
||||
def n_raise_stmt1(self, node):
|
||||
assert node[1] == 'RAISE_VARARGS_1'
|
||||
start = len(self.f.getvalue()) + len(self.indent)
|
||||
try:
|
||||
self.default(node)
|
||||
except GenericASTTraversalPruningException:
|
||||
pass
|
||||
self.set_pos_info(node[1], start, len(self.f.getvalue()))
|
||||
self.prune()
|
||||
|
||||
def n_raise_stmt2(self, node):
|
||||
assert node[2] == 'RAISE_VARARGS_2'
|
||||
start = len(self.f.getvalue()) + len(self.indent)
|
||||
try:
|
||||
self.default(node)
|
||||
except GenericASTTraversalPruningException:
|
||||
pass
|
||||
self.set_pos_info(node[2], start, len(self.f.getvalue()))
|
||||
self.prune()
|
||||
|
||||
# FIXME: Isolate: only in Python 2.x.
|
||||
def n_raise_stmt3(self, node):
|
||||
assert node[3] == 'RAISE_VARARGS_3'
|
||||
start = len(self.f.getvalue()) + len(self.indent)
|
||||
try:
|
||||
self.default(node)
|
||||
except GenericASTTraversalPruningException:
|
||||
pass
|
||||
self.set_pos_info(node[3], start, len(self.f.getvalue()))
|
||||
self.prune()
|
||||
|
||||
def n_return(self, node):
|
||||
start = len(self.f.getvalue()) + len(self.indent)
|
||||
if self.params['is_lambda']:
|
||||
|
Reference in New Issue
Block a user