NT genexpr -> generate_exp to match AST

This commit is contained in:
rocky
2017-11-28 17:53:33 -05:00
parent dded92b85d
commit 071207ce48
7 changed files with 19 additions and 19 deletions

View File

@@ -294,9 +294,9 @@ class PythonParser(GenericASTBuilder):
load_closure ::= LOAD_CLOSURE load_closure ::= LOAD_CLOSURE
''' '''
def p_genexpr(self, args): def p_generator_exp(self, args):
''' '''
expr ::= genexpr expr ::= generator_exp
stmt ::= genexpr_func stmt ::= genexpr_func
genexpr_func ::= LOAD_FAST FOR_ITER designator comp_iter JUMP_BACK genexpr_func ::= LOAD_FAST FOR_ITER designator comp_iter JUMP_BACK

View File

@@ -169,9 +169,9 @@ class Python2Parser(PythonParser):
jmp_abs ::= JUMP_BACK 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): def p_expr2(self, args):
@@ -375,7 +375,7 @@ class Python2Parser(PythonParser):
prev_tok = tokens[i-1] prev_tok = tokens[i-1]
if prev_tok == 'LOAD_GENEXPR': if prev_tok == 'LOAD_GENEXPR':
self.add_unique_rules([ 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' % ' GET_ITER CALL_FUNCTION_1' %
('expr '*v, opname))], customize) ('expr '*v, opname))], customize)
pass pass

View File

@@ -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 jb_bp_come_from
genexpr_func ::= setup_loop_lf FOR_ITER designator comp_iter JUMP_BACK come_from_pop genexpr_func ::= setup_loop_lf FOR_ITER designator comp_iter JUMP_BACK come_from_pop
jb_bp_come_from 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 list_if ::= list_if ::= expr jmp_false_then list_iter
''' '''

View File

@@ -74,7 +74,7 @@ class Python3Parser(PythonParser):
expr ::= dictcomp expr ::= dictcomp
stmt ::= dictcomp_func stmt ::= dictcomp_func
dictcomp_func ::= BUILD_MAP_0 LOAD_FAST FOR_ITER designator 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 dictcomp ::= LOAD_DICTCOMP LOAD_CONST MAKE_FUNCTION_0 expr GET_ITER CALL_FUNCTION_1
""" """
@@ -408,7 +408,7 @@ class Python3Parser(PythonParser):
COME_FROM_LOOP COME_FROM_LOOP
""" """
def p_genexpr3(self, args): def p_generator_exp3(self, args):
''' '''
load_genexpr ::= LOAD_GENEXPR load_genexpr ::= LOAD_GENEXPR
load_genexpr ::= BUILD_TUPLE_1 LOAD_GENEXPR LOAD_CONST 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 dictcomp ::= LOAD_DICTCOMP [LOAD_CONST] MAKE_FUNCTION_0 expr
GET_ITER CALL_FUNCTION_1 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 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 MAKE_CLOSURE_n expr GET_ITER CALL_FUNCTION_1
listcomp ::= {pos_arg}^n LOAD_LISTCOMP [LOAD_CONST] MAKE_CLOSURE_n expr listcomp ::= {pos_arg}^n LOAD_LISTCOMP [LOAD_CONST] MAKE_CLOSURE_n expr
GET_ITER CALL_FUNCTION_1 GET_ITER CALL_FUNCTION_1
@@ -835,7 +835,7 @@ class Python3Parser(PythonParser):
self.add_make_function_rule(rule_pat, opname, token.attr, customize) self.add_make_function_rule(rule_pat, opname, token.attr, customize)
if has_get_iter_call_function1: 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)) "GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
self.add_make_function_rule(rule_pat, opname, token.attr, customize) self.add_make_function_rule(rule_pat, opname, token.attr, customize)
if seen_LOAD_LISTCOMP: if seen_LOAD_LISTCOMP:
@@ -890,7 +890,7 @@ class Python3Parser(PythonParser):
self.add_unique_rule(rule, opname, token.attr, customize) self.add_unique_rule(rule, opname, token.attr, customize)
if has_get_iter_call_function1: 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)) "GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
self.add_make_function_rule(rule_pat, opname, token.attr, customize) 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 args_pos, args_kw, annotate_args, closure = token.attr
if has_get_iter_call_function1: 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)) "GET_ITER CALL_FUNCTION_1" % ('pos_arg '* args_pos, opname))
self.add_make_function_rule(rule_pat, opname, token.attr, customize) self.add_make_function_rule(rule_pat, opname, token.attr, customize)
rule_pat = ('mklambda ::= %s%sLOAD_LAMBDA %%s%s' % rule_pat = ('mklambda ::= %s%sLOAD_LAMBDA %%s%s' %

View File

@@ -305,7 +305,7 @@ PRECEDENCE = {
'dictcomp': 0, 'dictcomp': 0,
'setcomp': 0, 'setcomp': 0,
'list_compr': 0, 'list_compr': 0,
'genexpr': 0, 'generator_exp': 0,
'load_attr': 2, 'load_attr': 2,
'binary_subscr': 2, 'binary_subscr': 2,

View File

@@ -570,7 +570,7 @@ class FragmentsWalker(pysource.SourceWalker, object):
# FIXME: clean this up # FIXME: clean this up
if self.version > 3.0 and node == 'dictcomp': if self.version > 3.0 and node == 'dictcomp':
cn = node[1] 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': if node[0] == 'load_genexpr':
load_genexpr = node[0] load_genexpr = node[0]
elif node[1] == 'load_genexpr': elif node[1] == 'load_genexpr':
@@ -769,7 +769,7 @@ class FragmentsWalker(pysource.SourceWalker, object):
self.prec = p self.prec = p
def n_genexpr(self, node): def n_generator_exp(self, node):
start = len(self.f.getvalue()) start = len(self.f.getvalue())
self.write('(') self.write('(')
code_index = -6 if self.version > 3.2 else -5 code_index = -6 if self.version > 3.2 else -5

View File

@@ -1161,13 +1161,13 @@ class SourceWalker(GenericASTTraversal, object):
# FIXME: clean this up # FIXME: clean this up
if self.version > 3.0 and node == 'dictcomp': if self.version > 3.0 and node == 'dictcomp':
cn = node[1] 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': if node[0] == 'LOAD_GENEXPR':
cn = node[0] cn = node[0]
elif node[0] == 'load_closure': elif node[0] == 'load_closure':
cn = node[1] 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': if node[0] == 'load_genexpr':
load_genexpr = node[0] load_genexpr = node[0]
elif node[1] == 'load_genexpr': elif node[1] == 'load_genexpr':
@@ -1221,7 +1221,7 @@ class SourceWalker(GenericASTTraversal, object):
self.preorder(ast[iter_index]) self.preorder(ast[iter_index])
self.prec = p self.prec = p
def n_genexpr(self, node): def n_generator_exp(self, node):
self.write('(') self.write('(')
code_index = -6 if self.version > 3.2 else -5 code_index = -6 if self.version > 3.2 else -5
self.comprehension_walk(node, iter_index=3, code_index=code_index) self.comprehension_walk(node, iter_index=3, code_index=code_index)