如何将令牌流变成解析树

Eva*_*ark 5 parsing token lexical-analysis parse-tree

我构建了一个词法分析器,该词法分析器从输入流中输出令牌,但是我不确定如何构建该过程的下一步-解析树。是否有人有很好的资源或如何做到这一点的例子?

Joe*_*Joe 4

我真的会推荐http://www.antlr.org/,当然还有经典的 Dragon Compilers 书。

对于像 JavaScript 这样的简单语言,手动运行递归下降解析器并不难,但使用 yacc 或 antlr 这样的工具几乎总是更容易。

我认为回到你的问题的基础知识,你真的想研究 BNF 式语法并为你的目标选择一种语法。如果你有这个,解析树应该会脱落,成为该语法的“实例”表现。

另外,不要尝试将解析树的创建转变为最终解决方案(例如生成代码或其他什么)。这似乎是可行的,而且更有效;但总是会有这样的时候,您真的希望您“按原样”拥有该解析树。

  • 你应该知道,这很多都是为了学习经验而不是为了完成特定任务,所以使用工具对我来说似乎超出了重点。 (7认同)