# ngra 技术构想与里程碑路线图(草案) > 当前阶段:项目尚在早期准备期(正则状态机 + CPU 线代库同步开发), > ngra 核心尚未正式开工,因此本文仅作为整体方向与路线规划。 --- ## 1. ngra 的核心定位 ngra 是一个以 **“语法岛划分 + token 序列驱动”** 为核心的结构化前端系统, 目标是支持多语言解析、可扩展语义分析,并最终作为跨语言编译链的一部分。 核心原则: - 强制内置 token 集,避免不受控的字符正则扩展 - 规则描述以 **token 序列 + 结构规则** 为主 - 优先工程可行性与可维护性,而非极端语法自由度 --- ## 2. 解析策略 ### 2.1 语法岛 + 并行语义模型 - **第一阶段:语法岛划分** - 得到最外层符号结构(schema / entity / function / block 等) - **第二阶段:并行语义分析** - 岛屿之间并行解析与语义分析 - 外层上下文以只读快照共享 ### 2.2 宏处理策略 - 宏视为结构级符号 - 进行“替换 → 局部重解析” - 避免在完整语法解析中引入宏的动态不确定性 --- ## 3. 输出形式 ngra 的输出形态计划分为两级: - **High AST**:语义节点 - **Low-level C# AST**:可降级、可转译的中间表示 后续可进一步扩展为 LLVM-like IR 或面向 GLSL 的特化 IR。 --- ## 4. 里程碑路线图(先 EXPRESS 后 Lua) ### 里程碑 1:EXPRESS 前端(ISO 10303-11) **目标**:解决 STEP 文件解析的关键技术依赖 **原因**:EXPRESS 是 STEP 模型解释的核心语言,必须优先完成 交付内容: - EXPRESS 的 token 规则集 - 语法岛划分策略(schema / entity / type / rule) - EXPRESS AST + 语义检查(最小闭环) - STEP 文件解析所需的语义映射基础 --- ### 里程碑 2:Lua 前端(通用前端验证) **目标**:验证 ngra 可作为图灵完备语言前端 **理由**:Lua 语法稳定、结构清晰,适合验证通用性 交付内容: - Lua 最小子集语法 - Lua AST → Low-level C# AST - 最小执行闭环(不依赖外部解释器) --- ### 里程碑 3:内部脚本系统 **目标**:将 ngra 发展为可扩展脚本前端 交付内容: - 统一 AST/IR 接口 - Low-level C# 执行/编译通道 - 标准化 token / 规则机制 --- ### 里程碑 4:C# → GLSL(GPGPU 编译链) **目标**:将符合约束的 C# 子集转译为着色器语言 交付内容: - C# 可转译子集规范 - Low-level C# → GLSL 编译器 - GPGPU 运行时绑定支持 --- ## 5. 当前阶段说明 当前阶段尚处于准备期: - 正则状态机仍在开发 - 同时进行 CPU 线性代数库开发 - ngra 核心尚未正式启动 因此本文仅作为 **方向与路线规划**,具体实现细节将在核心启动后展开。 --- ## 6. 后续可展开内容(待定) - EXPRESS 最小语法子集 - Lua 最小可运行语法集 - Low-level C# AST 草图 - C# → GLSL 子集约束清单 - 规则 DSL 草案