NT: load_attr -> attribute to match AST

This commit is contained in:
rocky
2017-12-03 13:02:22 -05:00
parent f78a3fb92e
commit 344d2d92c4
6 changed files with 15 additions and 17 deletions

View File

@@ -32,7 +32,7 @@ class PythonParser(GenericASTBuilder):
super(PythonParser, self).__init__(AST, start, debug)
# FIXME: customize per python parser version
nt_list = [
'stmts', 'except_stmts', '_stmts', 'load_attrs',
'stmts', 'except_stmts', '_stmts', 'attributes',
'exprlist', 'kvlist', 'kwargs', 'come_froms', '_come_froms',
'importlist',
# Python < 3
@@ -388,7 +388,7 @@ class PythonParser(GenericASTBuilder):
importlist ::= alias
alias ::= IMPORT_NAME store
alias ::= IMPORT_FROM store
alias ::= IMPORT_NAME load_attrs store
alias ::= IMPORT_NAME attributes store
import ::= LOAD_CONST LOAD_CONST alias
import_from_star ::= LOAD_CONST LOAD_CONST IMPORT_NAME IMPORT_STAR
@@ -398,7 +398,7 @@ class PythonParser(GenericASTBuilder):
imports_cont ::= import_cont+
import_cont ::= LOAD_CONST LOAD_CONST alias
load_attrs ::= LOAD_ATTR+
attributes ::= LOAD_ATTR+
"""
def p_list_comprehension(self, args):
@@ -433,7 +433,7 @@ class PythonParser(GenericASTBuilder):
expr ::= LOAD_CONST
expr ::= LOAD_GLOBAL
expr ::= LOAD_DEREF
expr ::= load_attr
expr ::= attribute
expr ::= binary_expr
expr ::= list
expr ::= compare
@@ -471,8 +471,8 @@ class PythonParser(GenericASTBuilder):
subscript ::= expr expr BINARY_SUBSCR
load_attr ::= expr LOAD_ATTR
get_iter ::= expr GET_ITER
attribute ::= expr LOAD_ATTR
get_iter ::= expr GET_ITER
yield ::= expr YIELD_VALUE

View File

@@ -367,7 +367,7 @@ class Python2Parser(PythonParser):
continue
elif opname == 'LOOKUP_METHOD':
# A PyPy speciality - DRY with parse3
self.add_unique_rule("load_attr ::= expr LOOKUP_METHOD",
self.add_unique_rule("attribute ::= expr LOOKUP_METHOD",
opname, v, customize)
continue
elif opname_base == 'MAKE_FUNCTION':

View File

@@ -48,9 +48,7 @@ class Python23Parser(Python24Parser):
expr ::= and2
and2 ::= _jump jmp_false COME_FROM expr COME_FROM
alias ::= IMPORT_NAME load_attrs store
load_attrs ::= LOAD_ATTR+
alias ::= IMPORT_NAME attributes store
conditional ::= expr jmp_false expr JUMP_FORWARD expr COME_FROM
'''

View File

@@ -595,7 +595,7 @@ class Python3Parser(PythonParser):
mklambda ::= {pos_arg}^n LOAD_LAMBDA [LOAD_CONST] MAKE_FUNCTION_n
For PYPY:
load_attr ::= expr LOOKUP_METHOD
attribute ::= expr LOOKUP_METHOD
call ::= expr CALL_METHOD
"""
is_pypy = False
@@ -796,7 +796,7 @@ class Python3Parser(PythonParser):
self.add_make_function_rule(rule_pat, opname, token.attr, customize)
elif opname == 'LOOKUP_METHOD':
# A PyPy speciality - DRY with parse2
self.add_unique_rule("load_attr ::= expr LOOKUP_METHOD",
self.add_unique_rule("attribute ::= expr LOOKUP_METHOD",
opname, token.attr, customize)
continue
elif opname.startswith('MAKE_CLOSURE'):

View File

@@ -125,7 +125,7 @@ TABLE_DIRECT = {
(1, 100), (2, 100) ),
'IMPORT_FROM': ( '%{pattr}', ),
'load_attr': ( '%c.%[1]{pattr}',
'attribute': ( '%c.%[1]{pattr}',
(0, 'expr')),
'LOAD_FAST': ( '%{pattr}', ),
'LOAD_NAME': ( '%{pattr}', ),
@@ -155,7 +155,7 @@ TABLE_DIRECT = {
'unpack_w_parens': ( '(%C%,)', (1, maxint, ', ') ),
# This nonterminal we create on the fly in semantic routines
'load_attr_w_parens': ( '(%c).%[1]{pattr}',
'attribute_w_parens': ( '(%c).%[1]{pattr}',
(0, 'expr')),
'unpack_list': ( '[%C]',
@@ -312,7 +312,7 @@ PRECEDENCE = {
'list_comp': 0,
'generator_exp': 0,
'load_attr': 2,
'attribute': 2,
'subscript': 2,
'subscript2': 2,
'slice0': 2,

View File

@@ -1878,10 +1878,10 @@ class SourceWalker(GenericASTTraversal, object):
n_unpack_w_parens = n_unpack
def n_load_attr(self, node):
def n_attribute(self, node):
if (node[0] == 'LOAD_CONST' or
node[0] == 'expr' and node[0][0] == 'LOAD_CONST'):
node.kind = 'load_attr_w_parens'
node.kind = 'attribute_w_parens'
self.default(node)
def n_assign(self, node):