# 语法进化路线 ## v1 软件设计 ### 实现目标 1. 构建UI编辑软件 2. 故事线展示 3. 悬空节点筛选 4. 可用节点展示 5. 基于数据库 ## v2 软件设计 ### 语法实例 ``` #大纲 作品名称 作品描述 #分卷 分卷名称 分卷描述 #脉络 故事名称 故事叙述 #节点 节点名称 节点叙述 @节点 故事名称&节点名称 引用叙述 #概念 分类名称 分类叙述 #节点 种类名称 种类描述 ``` ### 实现目标 1. 基于QTextDocument和行编辑,基于GUI 2. 行格式与语义绑定 ## v3 软件设计 ### 语法实例 ``` #故事 1 故事名称{ 故事叙述 #节点 节点名称{ 节点叙述 } @节点 故事名称&节点名称{ 引用叙述 } } #分卷 分卷名称{ 分卷叙述 #章节 章节名称{ @节点 故事名称&节点名称{ 引用叙述 } } } ``` ### 实现目标 1. 手动展开ANY/SEQUENCE/REPEAT语法逻辑,构建语法分析类库 2. 分析类库集成入软件部件,非独立软件 ## v4 软件设计 ### 语法实例 ``` {故事 1 故事名称 故事叙述 {节点 节点名称 节点叙述 } {@节点 故事名称&节点名称 引用叙述 } } {分卷 分卷名称 分卷叙述 {章节 章节名称 章节叙述 {@节点 故事名称&节点名称 引用叙述 } } } ``` ### 实现目标 1. 软件独立化 1. 使用宏和ANY/SEQUENCE/REPEAT结构编织语法,构建语法分析前端 ## v5 软件设计 ### 语法实例 ``` #排序 1 {故事 故事名称 故事叙述 {节点 节点名称 节点叙述 } {@节点 故事名称&节点名称 引用叙述 } } {分卷 分卷名称 分卷叙述 {章节 章节名称 章节叙述 {@节点 故事名称&节点名称 引用叙述 } } } ``` ### 实现目标 #### v5.01 1. 简化语法 2. 编译直出HTML #### v5.02 1. 编译直出XAST 2. 另外构建软件负责XAST->HTML #### v5.03 1. 使用模板语法替代宏 ## v6 软件设计 ### 语法实例 ``` #排序 1 {故事 故事名称 故事叙述 {剧情 剧情名称 剧情叙述 {节点 节点名称 节点叙述 } {@节点 故事名称&剧情名称&节点名称 引用叙述 } } } {分卷 分卷名称 分卷叙述 {章节 章节名称 章节叙述 {@节点 故事名称&剧情名称&节点名称 引用叙述 } } } ``` ### 实现目标 1. 改进XAST->HTML 2. 改进图示格式 ## v7 软件设计 ### 语法实例 ``` #排序 1 {故事 故事名称 故事叙述 {节点 节点名称 节点叙述 {@节点 故事名称&节点名称 引用叙述 } {@节点 故事名称&节点名称 引用叙述 } } } {分卷 分卷名称 分卷叙述 {章节 章节名称 章节叙述 {@节点 故事名称&节点名称 引用叙述 } {@节点 故事名称&节点名称 引用叙述 } } } ``` ### 实现目标 1. 改进XAST->HTML 2. 改进图示格式