def p_expr_binary_or(p): """expr : expr OR expr""" p[0] = BinaryExpr("||", p[1], p[3])
def p_expr_binary_neq(p): """expr : expr NEQ expr""" p[0] = BinaryExpr("!=", p[1], p[3])
def p_expr_binary_eq(p): """expr : expr EQ expr""" p[0] = BinaryExpr("==", p[1], p[3])
def p_expr_binary_and(p): """expr : expr AND expr""" p[0] = BinaryExpr("&&", p[1], p[3])
def p_expr_binary_le(p): """expr : expr LE expr""" p[0] = BinaryExpr("<=", p[1], p[3])
def p_expr_binary_ge(p): """expr : expr GE expr""" p[0] = BinaryExpr(">=", p[1], p[3])
def p_expr_binary_lt(p): """expr : expr LT expr""" p[0] = BinaryExpr("<", p[1], p[3])
def p_expr_binary_gt(p): """expr : expr GT expr""" p[0] = BinaryExpr(">", p[1], p[3])
def p_expr_binary_divide(p): """expr : expr '/' expr""" p[0] = BinaryExpr("/", p[1], p[3])
def p_expr_binary_modulo(p): """expr : expr '%' expr""" p[0] = BinaryExpr("%", p[1], p[3])
def p_expr_binary_multiply(p): """expr : expr '*' expr""" p[0] = BinaryExpr("*", p[1], p[3])
def p_expr_binary_minus(p): """expr : expr '-' expr""" p[0] = BinaryExpr("-", p[1], p[3])
def p_expr_binary_plus(p): """expr : expr '+' expr""" p[0] = BinaryExpr("+", p[1], p[3])