You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 16:59:52 +08:00
NT designatore -> store to match AST
This commit is contained in:
@@ -297,7 +297,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
[ AST('expr',
|
||||
[Token('LOAD_GLOBAL', pattr='__name__',
|
||||
offset=0, has_arg=True)]),
|
||||
AST('designator',
|
||||
AST('store',
|
||||
[ Token('STORE_NAME', pattr='__module__',
|
||||
offset=3, has_arg=True)])
|
||||
])])
|
||||
@@ -992,13 +992,13 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
def n_import_as(self, node):
|
||||
if self.version <= 2.1:
|
||||
if len(node) == 2:
|
||||
designator = node[1]
|
||||
assert designator == 'designator'
|
||||
if designator[0].pattr == node[0].pattr:
|
||||
store = node[1]
|
||||
assert store == 'store'
|
||||
if store[0].pattr == node[0].pattr:
|
||||
self.write("import %s\n" % node[0].pattr)
|
||||
else:
|
||||
self.write("import %s as %s\n" %
|
||||
(node[0].pattr, designator[0].pattr))
|
||||
(node[0].pattr, store[0].pattr))
|
||||
pass
|
||||
pass
|
||||
self.prune() # stop recursing
|
||||
@@ -1124,12 +1124,12 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
list_expr = node[1]
|
||||
|
||||
if len(node) >= 3:
|
||||
designator = node[3]
|
||||
store = node[3]
|
||||
elif self.is_pypy and n[0] == 'list_for':
|
||||
designator = n[0][2]
|
||||
store = n[0][2]
|
||||
|
||||
assert n == 'list_iter'
|
||||
assert designator == 'designator'
|
||||
assert store == 'store'
|
||||
|
||||
# find innermost node
|
||||
while n == 'list_iter':
|
||||
@@ -1256,13 +1256,13 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
self.customize(code._customize)
|
||||
# skip over stmts sstmt smt
|
||||
ast = ast[0][0][0]
|
||||
designator = None
|
||||
store = None
|
||||
if ast in ['setcomp_func', 'dictcomp_func']:
|
||||
for k in ast:
|
||||
if k == 'comp_iter':
|
||||
n = k
|
||||
elif k == 'designator':
|
||||
designator = k
|
||||
elif k == 'store':
|
||||
store = k
|
||||
pass
|
||||
pass
|
||||
pass
|
||||
@@ -1276,23 +1276,23 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
# find innermost node
|
||||
if_node = None
|
||||
comp_for = None
|
||||
comp_designator = None
|
||||
comp_store = None
|
||||
if n == 'comp_iter':
|
||||
comp_for = n
|
||||
comp_designator = ast[3]
|
||||
comp_store = ast[3]
|
||||
|
||||
have_not = False
|
||||
while n in ('list_iter', 'comp_iter'):
|
||||
n = n[0] # recurse one step
|
||||
if n in ('list_for', 'comp_for'):
|
||||
if n[2] == 'designator':
|
||||
designator = n[2]
|
||||
if n[2] == 'store':
|
||||
store = n[2]
|
||||
n = n[3]
|
||||
elif n in ('list_if', 'list_if_not', 'comp_if', 'comp_ifnot'):
|
||||
have_not = n in ('list_if_not', 'comp_ifnot')
|
||||
if_node = n[0]
|
||||
if n[1] == 'designator':
|
||||
designator = n[1]
|
||||
if n[1] == 'store':
|
||||
store = n[1]
|
||||
n = n[2]
|
||||
pass
|
||||
pass
|
||||
@@ -1300,18 +1300,18 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
# Python 2.7+ starts including set_comp_body
|
||||
# Python 3.5+ starts including setcomp_func
|
||||
assert n.kind in ('lc_body', 'comp_body', 'setcomp_func', 'set_comp_body'), ast
|
||||
assert designator, "Couldn't find designator in list/set comprehension"
|
||||
assert store, "Couldn't find store in list/set comprehension"
|
||||
|
||||
self.preorder(n[0])
|
||||
self.write(' for ')
|
||||
if comp_designator:
|
||||
self.preorder(comp_designator)
|
||||
if comp_store:
|
||||
self.preorder(comp_store)
|
||||
else:
|
||||
self.preorder(designator)
|
||||
self.preorder(store)
|
||||
|
||||
self.write(' in ')
|
||||
self.preorder(node[-3])
|
||||
if comp_designator:
|
||||
if comp_store:
|
||||
self.preorder(comp_for)
|
||||
elif if_node:
|
||||
self.write(' if ')
|
||||
@@ -1345,7 +1345,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
while n == 'list_iter':
|
||||
n = n[0] # recurse one step
|
||||
if n == 'list_for':
|
||||
designator = n[2]
|
||||
store = n[2]
|
||||
n = n[3]
|
||||
elif n in ('list_if', 'list_if_not'):
|
||||
# FIXME: just a guess
|
||||
@@ -1361,7 +1361,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
|
||||
self.preorder(n[0])
|
||||
self.write(' for ')
|
||||
self.preorder(designator)
|
||||
self.preorder(store)
|
||||
self.write(' in ')
|
||||
self.preorder(collection)
|
||||
if list_if:
|
||||
@@ -1391,7 +1391,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
ast = self.build_ast(code._tokens, code._customize)
|
||||
self.customize(code._customize)
|
||||
ast = ast[0][0][0]
|
||||
designator = ast[3]
|
||||
store = ast[3]
|
||||
collection = node[collection_index]
|
||||
|
||||
n = ast[4]
|
||||
@@ -1403,7 +1403,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
n = n[0] # recurse one step
|
||||
# FIXME: adjust for set comprehension
|
||||
if n == 'list_for':
|
||||
designator = n[2]
|
||||
store = n[2]
|
||||
n = n[3]
|
||||
elif n in ('list_if', 'list_if_not', 'comp_if', 'comp_if_not'):
|
||||
# FIXME: just a guess
|
||||
@@ -1419,7 +1419,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
|
||||
self.preorder(n[0])
|
||||
self.write(' for ')
|
||||
self.preorder(designator)
|
||||
self.preorder(store)
|
||||
self.write(' in ')
|
||||
self.preorder(collection)
|
||||
if list_if:
|
||||
@@ -2088,7 +2088,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
# walk lhs; this
|
||||
# returns a tuple of identifiers as used
|
||||
# within the function definition
|
||||
assert node[1] == 'designator'
|
||||
assert node[1] == 'store'
|
||||
# if lhs is not a UNPACK_TUPLE (or equiv.),
|
||||
# add parenteses to make this a tuple
|
||||
# if node[1][0] not in ('unpack', 'unpack_list'):
|
||||
@@ -2135,7 +2135,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
QUAL_NAME = AST('stmt',
|
||||
[ AST('assign',
|
||||
[ AST('expr', [Token('LOAD_CONST', pattr=qualname)]),
|
||||
AST('designator', [ Token('STORE_NAME', pattr='__qualname__')])
|
||||
AST('store', [ Token('STORE_NAME', pattr='__qualname__')])
|
||||
])])
|
||||
have_qualname = (ast[0][0] == QUAL_NAME)
|
||||
else:
|
||||
@@ -2144,7 +2144,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
try:
|
||||
if (first_stmt[0] == 'assign' and
|
||||
first_stmt[0][0][0] == 'LOAD_CONST' and
|
||||
first_stmt[0][1] == 'designator' and
|
||||
first_stmt[0][1] == 'store' and
|
||||
first_stmt[0][1][0] == Token('STORE_NAME', pattr='__qualname__')):
|
||||
have_qualname = True
|
||||
except:
|
||||
|
Reference in New Issue
Block a user