Skip to content

Commit

Permalink
Published with https://stackedit.io/
Browse files Browse the repository at this point in the history
  • Loading branch information
achun committed Apr 28, 2014
1 parent 0d3ca3e commit f4096a6
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions Chapter06.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,11 +182,11 @@ stageStringArrayComma
以此类推, 其中

为便于阅读, 上述定义省略部分新行和注释, 这不会影响理解.
Array 是可递归的, stageArrayWho 有多种实现方法, 需要专门的篇幅描述. 本文不讨论.
stageStringArray 也受左递归影响, 肯定不能这么简单就得到 stageXxxxArray. 本文不讨论.
Array 是可嵌套的, stageArrayWho 有多种实现方法, 需要专门的篇幅描述. 本文不讨论.
stageStringArray 也受嵌套影响, 肯定不能这么简单就得到 stageXxxxArray. 本文不讨论.
Comma 的判断是可以优化的, 比如放到生成 Toml 时检查语法完整性.

**注: Array 的递归甚至可以扩展为左递归, 理论上 PEG 要求消除左递归文法, 手工硬编码自然是直接解决了递归问题.**
**注: 在本新手眼里 Array 的嵌套被当作左递归的一种, 理论上 PEG 要求消除左递归文法, 先手工硬编码解决这问题吧.**

完全手工构造场景变化表是比较痛苦的, 可以把 token 匹配和文法合法性检查分开, 减省 stage 的数量. 比如 stageStringArrayComma 就可以减省, 留给其他代码处理.

Expand Down

0 comments on commit f4096a6

Please sign in to comment.