unary_expr -> unary_op to match Python AST

former unary_op is now unary_operator
This commit is contained in:
rocky
2019-12-11 15:47:46 -05:00
parent cc55fa1de1
commit 668141662e
5 changed files with 66 additions and 62 deletions

View File

@@ -496,46 +496,46 @@ class PythonParser(GenericASTBuilder):
"""
def p_expr(self, args):
'''
expr ::= _mklambda
"""
expr ::= LOAD_CODE
expr ::= LOAD_FAST
expr ::= LOAD_NAME
expr ::= LOAD_CONST
expr ::= LOAD_GLOBAL
expr ::= LOAD_DEREF
expr ::= LOAD_FAST
expr ::= LOAD_GLOBAL
expr ::= LOAD_NAME
expr ::= _mklambda
expr ::= and
expr ::= bin_op
expr ::= list
expr ::= call
expr ::= compare
expr ::= dict
expr ::= and
expr ::= list
expr ::= or
expr ::= unary_expr
expr ::= call
expr ::= unary_not
expr ::= subscript
expr ::= subscript2
expr ::= unary_expr
expr ::= unary_not
expr ::= yield
# bin_op (formerly "binary_expr") is the Python AST BinOp
bin_op ::= expr expr binary_op
binary_op ::= BINARY_ADD
binary_op ::= BINARY_MULTIPLY
binary_op ::= BINARY_AND
binary_op ::= BINARY_OR
binary_op ::= BINARY_XOR
binary_op ::= BINARY_SUBTRACT
binary_op ::= BINARY_TRUE_DIVIDE
binary_op ::= BINARY_FLOOR_DIVIDE
binary_op ::= BINARY_MODULO
binary_op ::= BINARY_LSHIFT
binary_op ::= BINARY_RSHIFT
binary_op ::= BINARY_POWER
bin_op ::= expr expr binary_operator
binary_operator ::= BINARY_ADD
binary_operator ::= BINARY_MULTIPLY
binary_operator ::= BINARY_AND
binary_operator ::= BINARY_OR
binary_operator ::= BINARY_XOR
binary_operator ::= BINARY_SUBTRACT
binary_operator ::= BINARY_TRUE_DIVIDE
binary_operator ::= BINARY_FLOOR_DIVIDE
binary_operator ::= BINARY_MODULO
binary_operator ::= BINARY_LSHIFT
binary_operator ::= BINARY_RSHIFT
binary_operator ::= BINARY_POWER
unary_expr ::= expr unary_op
unary_op ::= UNARY_POSITIVE
unary_op ::= UNARY_NEGATIVE
unary_op ::= UNARY_INVERT
unary_expr ::= expr unary_operator
unary_operator ::= UNARY_POSITIVE
unary_operator ::= UNARY_NEGATIVE
unary_operator ::= UNARY_INVERT
unary_not ::= expr UNARY_NOT
@@ -575,10 +575,10 @@ class PythonParser(GenericASTBuilder):
# Positional arguments in make_function
pos_arg ::= expr
'''
"""
def p_store(self, args):
'''
"""
# Note. The below is right-recursive:
designList ::= store store
designList ::= store DUP_TOP designList
@@ -598,7 +598,7 @@ class PythonParser(GenericASTBuilder):
store ::= store_subscript
store_subscript ::= expr expr STORE_SUBSCR
store ::= unpack
'''
"""
def parse(p, tokens, customize):

View File

@@ -227,7 +227,7 @@ class Python2Parser(PythonParser):
def p_op2(self, args):
"""
inplace_op ::= INPLACE_DIVIDE
binary_op ::= BINARY_DIVIDE
binary_operator ::= BINARY_DIVIDE
"""
def customize_grammar_rules(self, tokens, customize):

View File

@@ -96,8 +96,8 @@ class Python35Parser(Python34Parser):
else_suite COME_FROM_LOOP
inplace_op ::= INPLACE_MATRIX_MULTIPLY
binary_op ::= BINARY_MATRIX_MULTIPLY
inplace_op ::= INPLACE_MATRIX_MULTIPLY
binary_operator ::= BINARY_MATRIX_MULTIPLY
# Python 3.5+ does jump optimization
# In <.3.5 the below is a JUMP_FORWARD to a JUMP_ABSOLUTE.

View File

@@ -131,7 +131,6 @@ class Python37Parser(Python37BaseParser):
def p_expr(self, args):
"""
expr ::= _mklambda
expr ::= LOAD_CODE
expr ::= LOAD_CONST
expr ::= LOAD_DEREF
@@ -139,39 +138,42 @@ class Python37Parser(Python37BaseParser):
expr ::= LOAD_GLOBAL
expr ::= LOAD_NAME
expr ::= LOAD_STR
expr ::= _mklambda
expr ::= and
expr ::= bin_op
expr ::= list
expr ::= call
expr ::= compare
expr ::= dict
expr ::= and
expr ::= generator_exp
expr ::= list
expr ::= or
expr ::= unary_expr
expr ::= call
expr ::= unary_not
expr ::= subscript
expr ::= subscript2
expr ::= unary_not
expr ::= unary_op
expr ::= yield
expr ::= generator_exp
# bin_op (formerly "binary_expr") is the Python AST BinOp
bin_op ::= expr expr binary_op
binary_op ::= BINARY_ADD
binary_op ::= BINARY_MULTIPLY
binary_op ::= BINARY_AND
binary_op ::= BINARY_OR
binary_op ::= BINARY_XOR
binary_op ::= BINARY_SUBTRACT
binary_op ::= BINARY_TRUE_DIVIDE
binary_op ::= BINARY_FLOOR_DIVIDE
binary_op ::= BINARY_MODULO
binary_op ::= BINARY_LSHIFT
binary_op ::= BINARY_RSHIFT
binary_op ::= BINARY_POWER
bin_op ::= expr expr binary_operator
unary_expr ::= expr unary_op
unary_op ::= UNARY_POSITIVE
unary_op ::= UNARY_NEGATIVE
unary_op ::= UNARY_INVERT
binary_operator ::= BINARY_ADD
binary_operator ::= BINARY_MULTIPLY
binary_operator ::= BINARY_AND
binary_operator ::= BINARY_OR
binary_operator ::= BINARY_XOR
binary_operator ::= BINARY_SUBTRACT
binary_operator ::= BINARY_TRUE_DIVIDE
binary_operator ::= BINARY_FLOOR_DIVIDE
binary_operator ::= BINARY_MODULO
binary_operator ::= BINARY_LSHIFT
binary_operator ::= BINARY_RSHIFT
binary_operator ::= BINARY_POWER
# unary_op (formerly "unary_expr") is the Python AST UnaryOp
unary_op ::= expr unary_operator
unary_operator ::= UNARY_POSITIVE
unary_operator ::= UNARY_NEGATIVE
unary_operator ::= UNARY_INVERT
unary_not ::= expr UNARY_NOT
@@ -472,7 +474,7 @@ class Python37Parser(Python37BaseParser):
# Python 3.5+ async additions
inplace_op ::= INPLACE_MATRIX_MULTIPLY
binary_op ::= BINARY_MATRIX_MULTIPLY
binary_operator ::= BINARY_MATRIX_MULTIPLY
# Python 3.5+ does jump optimization
# In <.3.5 the below is a JUMP_FORWARD to a JUMP_ABSOLUTE.

View File

@@ -81,7 +81,7 @@ PRECEDENCE = {
'BINARY_MULTIPLY': 8, # *
'BINARY_TRUE_DIVIDE': 8, # Division /
'unary_expr': 6, # +x, -x, ~x
'unary_op': 6, # +x, -x, ~x
'BINARY_POWER': 4, # Exponentiation, *
@@ -192,14 +192,16 @@ TABLE_DIRECT = {
# bin_op (formerly "binary_expr") is the Python AST BinOp
'bin_op': ( '%c %c %c', 0,
(-1, 'binary_op'),
(-1, 'binary_operator'),
( 1, 'expr' ) ),
'UNARY_POSITIVE': ( '+',),
'UNARY_NEGATIVE': ( '-',),
'UNARY_INVERT': ( '~'),
'unary_expr': ( '%c%c',
(1, 'unary_op'),
# unary_op (formerly "unary_expr") is the Python AST UnaryOp
'unary_opr': ( '%c%c',
(1, 'unary_operator'),
(0, 'expr') ),
'unary_not': ( 'not %c',