aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-01-24 13:17:02 +0900
committernsfisis <nsfisis@gmail.com>2026-01-24 13:24:37 +0900
commit8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c (patch)
treeb524f0703449172968ce66fe24559bc042ed8f8f
parentdec37504377d1d6fb21f762d9da4ff0126ccbfaa (diff)
downloadducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.tar.gz
ducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.tar.zst
ducc-8e0de5b89ecfdd0aa9a7c01b9ef1652b4107ad4c.zip
feat: implement unary plus
-rw-r--r--src/parse.c4
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)) {