aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/expression.c
diff options
context:
space:
mode:
Diffstat (limited to 'expression.c')
-rw-r--r--expression.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/expression.c b/expression.c
index 1160cd9c..ecbdd18e 100644
--- a/expression.c
+++ b/expression.c
@@ -937,10 +937,14 @@ struct token *assignment_expression(struct token *token, struct expression **tre
for (i = 0; i < ARRAY_SIZE(assignments); i++)
if (assignments[i] == op) {
struct expression * expr = alloc_expression(token->pos, EXPR_ASSIGNMENT);
+ struct token *next = token->next;
expr->left = *tree;
expr->op = op;
*tree = expr;
- return assignment_expression(token->next, &expr->right);
+ token = assignment_expression(next, &expr->right);
+ if (token == next)
+ expression_error(expr, "expression expected before '%s'", show_token(token));
+ return token;
}
}
return token;