def p_logical_or_expression(p): """logical_or_expression : logical_and_expression | logical_or_expression LOGICALOR logical_and_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_logical_and_expression(p): """logical_and_expression : equality_expression | logical_and_expression LOGICALAND equality_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_pow_expression(p): """pow_expression : primary_expression | primary_expression POW pow_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_additive_expression(p): """additive_expression : multiplicative_expression | additive_expression PLUS multiplicative_expression | additive_expression MINUS multiplicative_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_equality_expression(p): """equality_expression : relational_expression | equality_expression EQUALTO relational_expression | equality_expression NOTEQUALTO relational_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_multiplicative_expression(p): """multiplicative_expression : cast_expression | multiplicative_expression TIMES cast_expression | multiplicative_expression DIVIDE cast_expression | multiplicative_expression MODULO cast_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])
def p_relational_expression(p): """relational_expression : additive_expression | relational_expression GREATER additive_expression | relational_expression GREATEREQ additive_expression | relational_expression LESS additive_expression | relational_expression LESSEQ additive_expression """ if len(p) == 2: p[0] = p[1] else: p[0] = asts.BinOp(p[1], p[2], p[3])