You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-02 16:44:46 +08:00
unary_expr -> unary_op to match Python AST
former unary_op is now unary_operator
This commit is contained in:
@@ -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):
|
||||
|
@@ -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):
|
||||
|
@@ -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.
|
||||
|
@@ -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.
|
||||
|
@@ -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',
|
||||
|
Reference in New Issue
Block a user