aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-11 13:22:02 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:06:21 +0900
commitfd7d82869eb42d086174ec02938b49e4f233c319 (patch)
tree326ae533e90594f0caef833ca71b38ad895346d3 /parse.c
parentfc55b5f89b5974f627657c730bfd6b7d01609eae (diff)
downloadducc-fd7d82869eb42d086174ec02938b49e4f233c319.tar.gz
ducc-fd7d82869eb42d086174ec02938b49e4f233c319.tar.zst
ducc-fd7d82869eb42d086174ec02938b49e4f233c319.zip
feat: implement '*=', '/=' and '%=' operators
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/parse.c b/parse.c
index 67103c7..820d3e2 100644
--- a/parse.c
+++ b/parse.c
@@ -651,7 +651,8 @@ AstNode* parse_assignment_expr(Parser* p) {
AstNode* rhs;
while (1) {
TokenKind op = peek_token(p)->kind;
- if (op == TokenKind_assign) {
+ if (op == TokenKind_assign || op == TokenKind_assign_mul || op == TokenKind_assign_div ||
+ op == TokenKind_assign_mod) {
next_token(p);
rhs = parse_logical_or_expr(p);
lhs = ast_new_assign_expr(op, lhs, rhs);