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:
@@ -1,5 +1,25 @@
|
||||
# Changelog
|
||||
|
||||
## 0.2.0 (2026-06-05)
|
||||
|
||||
### Added
|
||||
- `let mut` 可变变量 + 赋值语句 (`x = expr;`)
|
||||
- 可变性检查:对不可变变量赋值报编译错误
|
||||
- 字符串类型 `str` + 双引号字面量 (`"Hello"`)
|
||||
- 字符串拼接 `str + str` (malloc + strlen + memcpy 运行时实现)
|
||||
- `print_str` 内置函数 (委托 printf)
|
||||
- 复合赋值运算符:`+=` `-=` `*=` `/=`
|
||||
- 集成测试:`06_mut_while.l` (while 循环修改变量)、`07_hello_str.l` (字符串输出)、`08_str_concat.l` (字符串拼接)
|
||||
|
||||
### Changed
|
||||
- codegen malloc → arena 统一分配
|
||||
- LLVM 目标初始化解耦为 `target.h/c` 独立模块
|
||||
- 新增 `.codegraphignore`
|
||||
|
||||
### Fixed
|
||||
- codegen.c 内存管理不一致 (malloc 混用 arena)
|
||||
- str+str 运行时拼接返回左操作数的 bug
|
||||
|
||||
## 0.1.0 (2026-06-05)
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user