Commit Graph
25 Commits
Author SHA1 Message Date
Admin 93d2c96f20 Merge branch 'RecursivDescentParsing' into dev 2026-08-21 11:07:51 +08:00
Admin 4ba44459e2 实现 12.5 递归下降语法:AST + 拒绝清单。
- Parser.h/cpp:POU 外壳(PROGRAM/FUNCTION/FUNCTION_BLOCK)、变量段、语句(赋值/IF/WHILE/FB 调用)、表达式优先级爬升(NOT/AND/OR 短路/比较/算术/函数调用/负号)
- Unit 结构:顶层 VAR_GLOBAL 段(GVL 文件形态)+ POU 列表
- 拒绝:VAR_IN_OUT/REF/CLASS/ANY 等保留名、链式比较、FB 字段赋值、顶层非 GVL 段
- THEN/DO 补入关键字表(12.5 修订,同步 12.1 与词法文档)
- parser_test:98 断言(line1 三文件 AST、FUNCTION 调用、IF/WHILE/TON、9 类负例),ctest 6/6
2026-08-21 11:07:34 +08:00
Admin d4e2c1ae7c 实现 12.4 词法:25 关键字、小写折叠、TIME 字面量、lex error。
- Lexer.h/cpp:关键字表(大小写不敏感折小写)、(* *) 注释不嵌套、整数/T# 段式字面量、最长匹配符号
- token 带 source_file + 行列(起始位置,修了消费后行列的偏差)
- lexer_test:75 断言(line1 三文件 token 流 21/34/27、大小写、符号、注释、行列、5 类负例)
- Doc/compiler/词法.md:设计文档 + 执行计划
2026-08-21 10:51:45 +08:00
Admin 9a07f938f9 清理:isa 去掉局部 C++11 覆盖,Project.cpp 补注释,加 .clangd。
- isa/CMakeLists.txt 删除 set(CMAKE_CXX_STANDARD 11):会覆盖全局 C++20 决策,改由 Standards.cmake 统一
- Project.cpp 各段解析补说明注释
- .clangd:clangd 编译数据库指向 build/gcc-debug
2026-08-21 10:41:39 +08:00
Admin c076c25368 实现 12.3 toml 读取:schema 校验、文件集合、工程哈希。
- Project.h/cpp:toml++ 解析 + 字段白名单(未知键带行号报错)、name/entry/cycle_limit/dt_ms/files.st 必填、io 条目完整性、entry 必须 program MAIN
- compile_files:files.st ∪ gvl.file 去重;compute_project_hash:路径排序后 FNV-1a 64 增量,缺文件报 file missing
- STCompiler <project.toml>:打印文件列表与哈希,失败退出码 1,--help
- compiler 私有链接 toml++ v3.4.0;测试固化 compiler_toml(35 断言,line1 哈希冻结 0xc3fe4ae74ad45900)
2026-08-21 00:32:53 +08:00
Admin 6df3465b37 登记第三方子模块并预留 TUI 观察接口。
- third_party:tomlplusplus(v3.4.0)+ FTXUI(main@9221a3b)git 子模块
- vm/扫描周期.md:可观察性接口(v1 预留)——step/snapshot、只读轮询、快照 POD 化
- executor/执行器入口.md:TUI 观察界面(最后做)——TUI 属执行器,输出层可替换
- 初步计划 12.11 补 TUI 归属;C++11 残留引用同步为 C++20
2026-08-20 22:51:05 +08:00
Admin 223dc3eb45 Merge branch 'temp_0820' into dev 2026-08-20 21:36:17 +08:00
Admin f1d53de2d1 升级语言标准至 C17 + C++20,关闭 GNU 扩展。 2026-08-20 21:36:01 +08:00
Admin a82be632f6 feat: 添加toml++子仓库 2026-08-20 15:25:09 +08:00
Admin ef94ab1987 落地 12.2 二十个用例目录:toml + .st + 期望表。
- tests/cases/ 01~20:13 正例 / 6 负例 / 1 运行时故障
- 负例冻结报错类别:非 GVL 写全局、同名全局、io.var 未声明、FUNCTION 写全局、未声明实例、循环调用
- tests/README 补充用例清单与点亮节奏
2026-08-19 14:43:47 +08:00
Admin dd7f7bcba7 双可执行落地:STCompiler 与 BytecodeExecutor。
- STCompiler 入口在 compiler/src/main.cpp,链 compiler+isa
- host/ 改名 executor/,BytecodeExecutor 链 vm+isa 不链 compiler
- compiler/vm 补 PUBLIC 链 isa;顶层加入 executor
- CTest:版本冒烟 2 例 + isa_roundtrip(89 断言),3/3 通过
2026-08-19 14:40:44 +08:00
Admin c378411637 落地映像读写:72 字节头、段布局、FNV-1a、.stb 与 sidecar。
- 指令与映像.md 冻结:头字段表、常量表/函数表行、段序、数据段对齐、sidecar 格式
- Types.h 补 TypeTag;Image.h/cpp:ImageView 校验、write_ret_main、文件与 sidecar
- isa CMake 改 target_include_directories PUBLIC
2026-08-19 14:40:38 +08:00
Admin eba48f852e 实现指令编解码与反汇编,冻结 disasm 格式。
- Encode.h/Encode.cpp:encode/decode 往返 + disasm 一行文本
- 指令与映像.md 新增反汇编格式表(9 种形态 + 未知操作码)
- Op.h STORE_* 注释对齐 disasm(rs, slot 寄存器在前)
2026-08-19 14:06:20 +08:00
Admin 7c855b1618 文档同步双可执行架构:STCompiler + BytecodeExecutor。
- 12.10 重写为两条命令:STCompiler 编译出 .stb + sidecar,BytecodeExecutor 加载执行
- 12.0 删独立 stc.exe,12.13 依赖方向改为 STCompiler/BytecodeExecutor
- 指令与映像.md 新增「映像文件(.stb)与 sidecar」节,I/O 绑定不进映像
- host/ 改名 executor/,宿主入口.md 重写为执行器入口.md
- README / tests / examples / isa README 同步
2026-08-19 13:59:50 +08:00
Admin 94accd52c3 落地 isa 合同:饱和类型、操作码枚举、32-bit 指令编解码。
- Types.h:TIME 改 int64_t(毫秒),补 sat_add/sub/mul/div,除零与 INT_MIN/-1 规则
- Op.h:29 条操作码枚举 + mnemonic 助记符,数值即编码
- Instr.h:pack/拆字段 + 按形态 enc_rr/rrr/imm/jmp/jc/slot/call/ret
2026-08-19 13:59:48 +08:00
Admin 9a35a881d1 建立四模块 CMake 骨架与 line1 样例。
- compiler / vm 空静态库,host 可执行打印版本
- 顶层解开 add_subdirectory,tests 接入 CTest(host_version 通过)
- examples/line1 落地 project.toml 与三个 .st
- Types.h 注释补饱和规则,与 Doc/isa 一致
- .gitignore 忽略 Doc/会话记录.md
2026-08-19 10:09:27 +08:00
AdminandCursor ff244888c3 落地 isa 静态库骨架与 Types 头。
先挂 Encode.cpp 和定宽类型别名,规范仍以 Doc 为准。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 17:48:09 +08:00
AdminandCursor 6db7304254 添加 GCC CMake presets,顶层先只编 isa。
compiler/vm/host 尚未成库,避免 configure 失败。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 17:48:03 +08:00
AdminandCursor e4cdaf4717 把各模块说明从 README 拆到 Doc,并用索引替代 Doc/README。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 17:18:40 +08:00
AdminandCursor 583f14967a 冻 isa 的指令编码、映像布局与定宽类型,计划改为引用该规范。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 17:18:30 +08:00
AdminandCursor 74e5f43da9 将 CMake 工程名从 StScan 改为 Stator。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 17:17:52 +08:00
AdminandCursor 89f99e65e8 建立 StScan CMake 工程,并在 cmake 中规定 C11/C++11。
顶层挂上四个模块目录,语言标准集中在 Standards.cmake。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 16:51:51 +08:00
AdminandCursor 50b0456198 细化第一版实现顺序,并与仓库目录对齐。
把第 12 节拆成可验收阶段,目录改为 isa/compiler/vm/host。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 16:51:45 +08:00
AdminandCursor 2eb2468119 划定 CMake 模块目录并补充各层 README。
固定 isa/compiler/vm/host 的职责边界,样例与测试单独成目录。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 16:32:07 +08:00
Admin 368877ae34 初始化仓库 2026-08-18 16:14:28 +08:00