feat: 复合赋值 += -= *= /= + CHANGELOG 更新

- lexer: 4 个复合赋值 Token (解析时优先于单字符)
- parser: desugar x+=expr → x=x+expr(零 sema/codegen 改动)
- 新增集成测试 09_compound_assign.l (15 12 24 6)
- CHANGELOG 新增 v0.2.0 条目
This commit is contained in:
2026-06-05 02:40:05 +08:00
parent 9e41b09318
commit d5a94d45cb
6 changed files with 71 additions and 2 deletions
+1
View File
@@ -17,6 +17,7 @@ static const char* NAMES[] = {
[TOK_LT] = "<", [TOK_GT] = ">", [TOK_LT_EQ] = "<=", [TOK_GT_EQ] = ">=",
[TOK_AND_AND] = "&&", [TOK_PIPE_PIPE] = "||", [TOK_BANG] = "!",
[TOK_ARROW] = "->",
[TOK_PLUS_EQ] = "+=", [TOK_MINUS_EQ] = "-=", [TOK_STAR_EQ] = "*=", [TOK_SLASH_EQ] = "/=",
[TOK_LPAREN] = "(", [TOK_RPAREN] = ")",
[TOK_LBRACE] = "{", [TOK_RBRACE] = "}",
[TOK_COMMA] = ",", [TOK_COLON] = ":", [TOK_SEMICOLON] = ";",