while (parser_match(p, TK_DIVIDE) || parser_match(p, TK_MULTIPLY)) {
Token op = parser_previous(p);
Expression *rhs = unary(arena, p);
+ if (rhs == NULL) return rhs;
Expression *new_expr = (Expression *)arena_alloc(arena, sizeof(Expression));
new_expr->kind = EXPR_BINARY;
Token operator = parser_previous(p);
Expression *rhs = factor(arena, p);
+ if (rhs == NULL) return NULL;
Expression *new_expr = (Expression *)arena_alloc(arena, sizeof(Expression));
new_expr->kind = EXPR_BINARY;
Token operator = parser_previous(p);
Expression *rhs = term(arena, p);
+ if (rhs == NULL) return NULL;
Expression *new_expr = (Expression *)arena_alloc(arena, sizeof(Expression));
new_expr->kind = EXPR_BINARY;
Token operator = parser_previous(p);
Expression *rhs = comparision(arena, p);
+ if (rhs == NULL) return NULL;
Expression *new_expr = (Expression *)arena_alloc(arena, sizeof(Expression));
new_expr->kind = EXPR_BINARY;