Skip to content

✨ 实现基于模拟执行的代码诊断 (WIP)#11

Draft
fltLi wants to merge 4 commits into
mainfrom
feat/simulation-diagnose
Draft

✨ 实现基于模拟执行的代码诊断 (WIP)#11
fltLi wants to merge 4 commits into
mainfrom
feat/simulation-diagnose

Conversation

@fltLi

@fltLi fltLi commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Closes #6.

本次 PR 引入 webgal-simulate crate,为 WebGAL 脚本提供基于模拟执行的逻辑分析能力,补全静态诊断无法覆盖的动态错误检测。

  • 新建 webgal-simulate crate,定义舞台状态、状态增量与检查点机制;
  • 支持变量追踪、作用域维护与插值表达式求值;
  • 实现 choosegetUserInput 分支模拟(BFS),支持 -lintValues 预设输入;
  • 检查点去重(状态指纹,上限 32 次),将复杂度控制在线性级别;
  • 新增诊断码 WG009 ~ ...,涵盖模拟中断、不可达代码、未定义引用、冗余操作、及连续执行块中断等类型;
  • README.md 中反映模拟执行这一新特性。

详见 docs/diagnose.md逻辑分析章节。

@fltLi fltLi self-assigned this Jul 19, 2026
@fltLi fltLi added the enhancement New feature or request label Jul 19, 2026
fltLi added 2 commits July 19, 2026 15:00
## TODO
- 实现舞台对象和舞台效果状态表示
- 实现每种语句的舞台状态增量生成
- 为模拟执行添加全面的测试, 特别注意 unsafe 的使用
- 将模拟执行服务接入 crate `webgal-language-service` 的诊断流程
- 在仓库 README.md 特别说明此特性
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ 实现基于模拟执行的代码诊断

1 participant