You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
NT genexpr -> generate_exp to match AST
This commit is contained in:
@@ -294,9 +294,9 @@ class PythonParser(GenericASTBuilder):
|
||||
load_closure ::= LOAD_CLOSURE
|
||||
'''
|
||||
|
||||
def p_genexpr(self, args):
|
||||
def p_generator_exp(self, args):
|
||||
'''
|
||||
expr ::= genexpr
|
||||
expr ::= generator_exp
|
||||
stmt ::= genexpr_func
|
||||
|
||||
genexpr_func ::= LOAD_FAST FOR_ITER designator comp_iter JUMP_BACK
|
||||
|
@@ -169,9 +169,9 @@ class Python2Parser(PythonParser):
|
||||
jmp_abs ::= JUMP_BACK
|
||||
'''
|
||||
|
||||
def p_genexpr2(self, args):
|
||||
def p_generator_exp2(self, args):
|
||||
'''
|
||||
genexpr ::= LOAD_GENEXPR MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1
|
||||
generator_exp ::= LOAD_GENEXPR MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1
|
||||
'''
|
||||
|
||||
def p_expr2(self, args):
|
||||
@@ -375,7 +375,7 @@ class Python2Parser(PythonParser):
|
||||
prev_tok = tokens[i-1]
|
||||
if prev_tok == 'LOAD_GENEXPR':
|
||||
self.add_unique_rules([
|
||||
('genexpr ::= %s load_closure LOAD_GENEXPR %s expr'
|
||||
('generator_exp ::= %s load_closure LOAD_GENEXPR %s expr'
|
||||
' GET_ITER CALL_FUNCTION_1' %
|
||||
('expr '*v, opname))], customize)
|
||||
pass
|
||||
|
@@ -213,7 +213,7 @@ class Python26Parser(Python2Parser):
|
||||
genexpr_func ::= setup_loop_lf FOR_ITER designator comp_iter jb_bp_come_from
|
||||
genexpr_func ::= setup_loop_lf FOR_ITER designator comp_iter JUMP_BACK come_from_pop
|
||||
jb_bp_come_from
|
||||
genexpr ::= LOAD_GENEXPR MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1 COME_FROM
|
||||
generator_exp ::= LOAD_GENEXPR MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1 COME_FROM
|
||||
list_if ::= list_if ::= expr jmp_false_then list_iter
|
||||
'''
|
||||
|
||||
|
@@ -74,7 +74,7 @@ class Python3Parser(PythonParser):
|
||||
expr ::= dictcomp
|
||||
stmt ::= dictcomp_func
|
||||
dictcomp_func ::= BUILD_MAP_0 LOAD_FAST FOR_ITER designator
|
||||
comp_iter JUMP_BACK RETURN_VALUE RETURN_LAST
|
||||
comp_iter JUMP_BACK RETURN_VALUE RETURN_LAST
|
||||
dictcomp ::= LOAD_DICTCOMP LOAD_CONST MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1
|
||||
"""
|
||||
|
||||
@@ -408,7 +408,7 @@ class Python3Parser(PythonParser):
|
||||
COME_FROM_LOOP
|
||||
"""
|
||||
|
||||
def p_genexpr3(self, args):
|
||||
def p_generator_exp3(self, args):
|
||||
'''
|
||||
load_genexpr ::= LOAD_GENEXPR
|
||||
load_genexpr ::= BUILD_TUPLE_1 LOAD_GENEXPR LOAD_CONST
|
||||
@@ -596,9 +596,9 @@ class Python3Parser(PythonParser):
|
||||
dictcomp ::= LOAD_DICTCOMP [LOAD_CONST] MAKE_FUNCTION_0 expr
|
||||
GET_ITER CALL_FUNCTION_1
|
||||
|
||||
genexpr ::= {pos_arg}^n load_genexpr [LOAD_CONST] MAKE_FUNCTION_n expr
|
||||
generator_exp ::= {pos_arg}^n load_genexpr [LOAD_CONST] MAKE_FUNCTION_n expr
|
||||
GET_ITER CALL_FUNCTION_1
|
||||
genexpr ::= {expr}^n load_closure LOAD_GENEXPR [LOAD_CONST]
|
||||
generator_exp ::= {expr}^n load_closure LOAD_GENEXPR [LOAD_CONST]
|
||||
MAKE_CLOSURE_n expr GET_ITER CALL_FUNCTION_1
|
||||
listcomp ::= {pos_arg}^n LOAD_LISTCOMP [LOAD_CONST] MAKE_CLOSURE_n expr
|
||||
GET_ITER CALL_FUNCTION_1
|
||||
@@ -835,7 +835,7 @@ class Python3Parser(PythonParser):
|
||||
self.add_make_function_rule(rule_pat, opname, token.attr, customize)
|
||||
|
||||
if has_get_iter_call_function1:
|
||||
rule_pat = ("genexpr ::= %sload_closure load_genexpr %%s%s expr "
|
||||
rule_pat = ("generator_exp ::= %sload_closure load_genexpr %%s%s expr "
|
||||
"GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
|
||||
self.add_make_function_rule(rule_pat, opname, token.attr, customize)
|
||||
if seen_LOAD_LISTCOMP:
|
||||
@@ -890,7 +890,7 @@ class Python3Parser(PythonParser):
|
||||
self.add_unique_rule(rule, opname, token.attr, customize)
|
||||
|
||||
if has_get_iter_call_function1:
|
||||
rule_pat = ("genexpr ::= %sload_closure load_genexpr %%s%s expr "
|
||||
rule_pat = ("generator_exp ::= %sload_closure load_genexpr %%s%s expr "
|
||||
"GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
|
||||
self.add_make_function_rule(rule_pat, opname, token.attr, customize)
|
||||
|
||||
@@ -910,7 +910,7 @@ class Python3Parser(PythonParser):
|
||||
args_pos, args_kw, annotate_args, closure = token.attr
|
||||
|
||||
if has_get_iter_call_function1:
|
||||
rule_pat = ("genexpr ::= %sload_genexpr %%s%s expr "
|
||||
rule_pat = ("generator_exp ::= %sload_genexpr %%s%s expr "
|
||||
"GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
|
||||
self.add_make_function_rule(rule_pat, opname, token.attr, customize)
|
||||
rule_pat = ('mklambda ::= %s%sLOAD_LAMBDA %%s%s' %
|
||||
|
@@ -305,7 +305,7 @@ PRECEDENCE = {
|
||||
'dictcomp': 0,
|
||||
'setcomp': 0,
|
||||
'list_compr': 0,
|
||||
'genexpr': 0,
|
||||
'generator_exp': 0,
|
||||
|
||||
'load_attr': 2,
|
||||
'binary_subscr': 2,
|
||||
|
@@ -570,7 +570,7 @@ class FragmentsWalker(pysource.SourceWalker, object):
|
||||
# FIXME: clean this up
|
||||
if self.version > 3.0 and node == 'dictcomp':
|
||||
cn = node[1]
|
||||
elif self.version > 3.0 and node == 'genexpr':
|
||||
elif self.version > 3.0 and node == 'generator_exp':
|
||||
if node[0] == 'load_genexpr':
|
||||
load_genexpr = node[0]
|
||||
elif node[1] == 'load_genexpr':
|
||||
@@ -769,7 +769,7 @@ class FragmentsWalker(pysource.SourceWalker, object):
|
||||
|
||||
self.prec = p
|
||||
|
||||
def n_genexpr(self, node):
|
||||
def n_generator_exp(self, node):
|
||||
start = len(self.f.getvalue())
|
||||
self.write('(')
|
||||
code_index = -6 if self.version > 3.2 else -5
|
||||
|
@@ -1161,13 +1161,13 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
# FIXME: clean this up
|
||||
if self.version > 3.0 and node == 'dictcomp':
|
||||
cn = node[1]
|
||||
elif self.version < 2.7 and node == 'genexpr':
|
||||
elif self.version < 2.7 and node == 'generator_exp':
|
||||
if node[0] == 'LOAD_GENEXPR':
|
||||
cn = node[0]
|
||||
elif node[0] == 'load_closure':
|
||||
cn = node[1]
|
||||
|
||||
elif self.version > 3.0 and node == 'genexpr':
|
||||
elif self.version > 3.0 and node == 'generator_exp':
|
||||
if node[0] == 'load_genexpr':
|
||||
load_genexpr = node[0]
|
||||
elif node[1] == 'load_genexpr':
|
||||
@@ -1221,7 +1221,7 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
self.preorder(ast[iter_index])
|
||||
self.prec = p
|
||||
|
||||
def n_genexpr(self, node):
|
||||
def n_generator_exp(self, node):
|
||||
self.write('(')
|
||||
code_index = -6 if self.version > 3.2 else -5
|
||||
self.comprehension_walk(node, iter_index=3, code_index=code_index)
|
||||
|
Reference in New Issue
Block a user