diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-24 13:17:02 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-24 13:24:37 +0900 |
| commit | 8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c (patch) | |
| tree | b524f0703449172968ce66fe24559bc042ed8f8f | |
| parent | dec37504377d1d6fb21f762d9da4ff0126ccbfaa (diff) | |
| download | ducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.tar.gz ducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.tar.zst ducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.zip | |
feat: implement unary plus
| -rw-r--r-- | src/parse.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parse.c b/src/parse.c index 41caa4a..12e8815 100644 --- a/src/parse.c +++ b/src/parse.c @@ -742,7 +742,9 @@ static AstNode* parse_argument_expr_list(Parser* p) { // TODO 'alignof' '(' type-name ')' static AstNode* parse_unary_expr(Parser* p) { TokenKind op = peek_token(p)->kind; - if (consume_token_if(p, TokenKind_minus)) { + if (consume_token_if(p, TokenKind_plus)) { + return parse_cast_expr(p); + } else if (consume_token_if(p, TokenKind_minus)) { AstNode* operand = parse_cast_expr(p); return ast_new_binary_expr(op, ast_new_int(0), operand); } else if (consume_token_if(p, TokenKind_not)) { |
