[Q] Problem in parsing expressions that have names
jack17529 opened this issue · comments
Shivam Sharma commented
I have these parsing functions for rpn calculations.
def p_statement_assign(p):
'statement : NAME expression EQUALS'
def p_statement_expression(p):
'statement : expression'
def p_expression_binop(p):
'''expression : expression expression PLUS
| expression expression MINUS
| expression expression MULTIPLY
| expression expression DIVIDE
| expression expression LEFTSHIFT
| expression expression CHKNOTEQUAL
| expression expression BITAND
| expression expression BITOR
| expression expression BOOLAND
| expression expression BOOLXOR
| expression expression POW
| expression expression CHKLESSOREQUAL
'''
def p_expression_unop(p):
'''expression : expression UMINUS
| expression DECREMENT
| expression BOOLNOT
| expression BITNOT
'''
def p_expression_name(p):
"expression : NAME"
def p_expression_int_float_hex_bin(p):
'''
expression : INT
| FLOAT
| BIN
| HEX
'''
def p_error(p):
When I provide this input a 3 *
without assigning a, I get error Syntax error at '*'
instead of getting the error Undefined name 'a'
.
Also get the same error even after assigning variable "a", and evaluating this input a 4 *
but surprisingly don't get any error with this input 4 a *
.
I haven't found a good solution for this problem, please guide me.
Shivam Sharma commented
Problem [Solved]