Serendipity
|
35e2691cb7
|
chore: 删除自动化分析报告目录
|
2026-06-06 21:28:48 +08:00 |
|
Serendipity
|
380b52930a
|
docs: Token 计数修正 50→67 (AGENTS.md + CLAUDE.md)
|
2026-06-06 13:33:39 +08:00 |
|
Serendipity
|
031dedfb8e
|
refactor: 拆分 sema analyze_expr 为 9 个辅助函数 + 调度器
|
2026-06-06 01:36:37 +08:00 |
|
Serendipity
|
2baf762d82
|
docs: README/CHANGELOG/语言参考更新至 v0.6
|
2026-06-05 21:02:05 +08:00 |
|
Serendipity
|
6fc599e6c2
|
feat: impl 关键字改为 extend
|
2026-06-05 19:50:40 +08:00 |
|
Serendipity
|
175f8a6658
|
feat: 数组类型语法 [T; N] 改为 T[N] 后置语法
|
2026-06-05 19:48:56 +08:00 |
|
Serendipity
|
ab4cc9a28b
|
feat: let mut 改为 var 关键字声明可变变量
|
2026-06-05 19:47:00 +08:00 |
|
Serendipity
|
a28d33854c
|
feat: for..in 范围语法 .. 改为 to 关键字
|
2026-06-05 19:44:26 +08:00 |
|
Serendipity
|
9a256d9be1
|
docs: 测试计数更新 145→158 单元 + 23→24 集成
|
2026-06-05 19:39:12 +08:00 |
|
Serendipity
|
a0a78de26e
|
docs: 补充数组初始化 = arr 语法说明
|
2026-06-05 19:31:46 +08:00 |
|
Serendipity
|
29648ef110
|
docs: L Language 语言参考手册 (language-reference.md)
- 14 章完整教程: 类型/变量/运算符/控制流/函数/struct/enum/数组/impl/match
- 3 个完整示例: 斐波那契/学生成绩/数组操作
- 快速参考卡片
- README 添加手册链接
|
2026-06-05 18:45:58 +08:00 |
|
Serendipity
|
5a0bf60698
|
docs: CHANGELOG v0.4/v0.5 + README/CLAUDE 版本刷新
- CHANGELOG: 新增 v0.4.0 (struct+RAII) 和 v0.5.0 (alias+enum+array+impl+match)
- README: 版本0.5.0, 测试145, 完整功能列表+运算符表
- CLAUDE: v0.5 已知限制更新
|
2026-06-05 18:42:24 +08:00 |
|
Serendipity
|
4046ab1875
|
refactor: tok_is_type 统一 + 架构改进文档
- parser.c: 删除重复的is_type_token, 统一使用token.c的tok_is_type
- docs/architecture-improvements.md: TypeKind解耦/Visitor/SourceLoc/去糖方案
|
2026-06-05 13:13:51 +08:00 |
|
Serendipity
|
b390d390f3
|
feat: 结构体 struct — 最后一项 P0 功能
- lexer: TOK_STRUCT, TOK_DOT 关键字和运算符
- ast: AST_STRUCT_DECL/STRUCT_INIT/FIELD_ACCESS 3 种新节点
- parser: struct 声明 + .field 访问 + Name{field:val} 初始化
- sema: struct 类型符号表,字段类型解析,初始化字段检查
- codegen: LLVMStructType + extractvalue/insertvalue 字段操作
- 新增集成测试: 12_struct.l, 13_struct_nested.l
- 基于 Codex 分析报告 P0 #4
所有 P0 功能已全部完成。
|
2026-06-05 12:21:22 +08:00 |
|
Serendipity
|
620cec4d57
|
docs: CHANGELOG 更新 v0.3 — for循环 + 测试补全
|
2026-06-05 08:33:40 +08:00 |
|
Serendipity
|
8144f1bfd7
|
feat: for 循环 + range (for i in start..end)
- lexer: TOK_FOR, TOK_IN, TOK_DOT_DOT + 修复数字中 .. 解析
- parser: for-in-range → desugar to {let mut, while, assign}
- 零 sema/codegen 改动,复用现有机制
- 新增 2 个集成测试 (10_for_range.l, 11_for_step2.l)
- mem2reg: LLVM 22 C API 不导出,标注已知限制
基于 Codex 分析报告 §6 P0 #3。
|
2026-06-05 04:42:44 +08:00 |
|
Serendipity
|
9e41b09318
|
fix: str+str 运行时拼接 — malloc + strlen + memcpy
- codegen: 声明 CRT 的 malloc/strlen/memcpy
- str+str 拼接: strlen(l)+strlen(r)+1 → malloc → memcpy×2 → 返回指针
- 新增集成测试 08_str_concat.l ("Hello, " + "World!" → "Hello, World!")
- 修复自报告 §5-6 字符串拼接不工作的 bug
|
2026-06-05 02:36:23 +08:00 |
|
Serendipity
|
f8c5e18188
|
fix: 技术债修复 — codegen malloc→arena + .codegraphignore
- codegen.c: VarEntry/FnEntry/ptypes 全部改用 arena_alloc,消除 malloc/free
- codegen_module 新增 Arena* 参数,main.c 传入主 arena
- 新增 .codegraphignore 排除 build/ 和 .codegraph/
- 基于 Codex 分析报告第7节技术债务
|
2026-06-05 00:37:54 +08:00 |
|
Serendipity
|
3b7bab1e1b
|
feat: L Language v0.1 编译器完整实现
5 阶段编译流水线: 词法分析 → 语法分析(Pratt) → 语义分析(类型推断) → LLVM IR → .exe
模块:
- lexer: 手写状态机, 40 种 Token, // 和 /* */ 注释
- parser: Pratt 表达式解析(9 级优先级) + 递归下降语句/函数
- ast: 14 种节点类型 + 工厂函数
- sema: 作用域链符号表 + 类型推断 + 类型检查
- codegen: AST → LLVM-C API, print_i64/f64/bool 内建
- driver: 命令行 + 流水线串联 + 错误报告
- util: Arena bump allocator (8MB)
测试: 65 单元测试(词法41+语法15+语义9) + 5 集成测试 全部通过
语言特性: i64/f64/bool/void, let不可变变量, if/else, while, 递归函数
|
2026-06-05 00:26:59 +08:00 |
|