作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我构建了一个词法分析器,可以从输入中流出标记,但我不确定如何构建该过程的下一步 - 解析树。有人有关于如何实现这一目标的任何好的资源或示例吗?
最佳答案
我真的会推荐http://www.antlr.org/当然还有经典的 Dragon Compilers 书。
对于像 JavaScript 这样的简单语言,手动运行递归下降解析器并不难,但使用 yacc 或 antlr 这样的工具几乎总是更容易。
我认为回到你的问题的基础知识,你真的想研究 BNF 式语法并为你的目标选择一种语法。如果你有这个,解析树应该会脱落,成为该语法的“实例”表现。
此外,不要尝试将解析树的创建转变为最终解决方案(例如生成代码或其他什么)。这似乎是可行的,而且更有效;但总是会有这样的时候,您真的希望您“按原样”拥有该解析树。
关于parsing - 如何将 token 流转换为解析树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/456554/
我是一名优秀的程序员,十分优秀!