编译阶段
BON 解析器按以下四个阶段处理源文件:
阶段 1:词法/语法分析
- 识别并跳过注释
- 构建抽象语法树 (AST)
- 收集所有顶层模板定义和类定义
阶段 2:导入解析
- 递归加载所有
import文件 - 合并命名空间,检测循环依赖
阶段 3:模板展开
- 遇到
{template}或裸模板标识符时,执行深拷贝替换 - 模板内部若包含引用,递归展开(最大递归深度 100)
阶段 4:实例化与常量折叠
- 遇到
ClassName { ... }时,合并属性,绑定继承链 - 计算属性按依赖顺序求值
.method()调用立即执行,结果替换为字面量std.*函数计算结果直接替换原 AST 节点
最终产物
完全展开、所有函数调用均已消除的纯 JSON 数据结构。
BON 源码 → [词法分析] → [语法分析] → [导入解析] → [模板展开] → [实例化与常量折叠] → 纯 JSONIMPORTANT
BON 是编译期语言,所有逻辑在解析时完成。宿主程序拿到的永远是纯 JSON,不需要运行时依赖。
