Yacc 相当于 Java

2022-09-01 12:03:16

我正在用Java做一个编译器设计项目。词法分析已经完成(使用jflex),我想知道哪种类似yaccc的工具最适合(最有效,最容易使用等)进行语法分析以及为什么。


答案 1

如果你特别想要类似YACC的行为(表驱动),我唯一知道的是CUP

在Java世界中,似乎更多的人倾向于递归下降解析器,如ANTLRJavaCC

效率很少是选择解析器生成器的理由。


答案 2

过去,我使用ANLTR进行词法分析器和解析器,JFlex主页说它可以与ANTLR互操作。我不会说ANTLR的在线文档有那么棒。我最终投资了“The Definitive ANTLR reference”,这给了我很大的帮助。


推荐