我正在使用Java进行编译器设计项目。词法分析已完成(使用jflex),我想知道哪种类似yacc的工具最适合(最高效,最易于使用等)进行语法分析,并说明原因。
过去我使用ANLTR进行词法分析和语法分析,而JFlex主页上说它可以与ANTLR互操作。我不认为ANTLR的在线文档非常优秀。最终我投资购买了'The Definitive ANTLR reference'这本书,在很大程度上帮助了我。
与许多替代方案不同,GOLD解析器从语法生成解析表,并将它们放入二进制的非可执行文件中。然后,每种支持的语言都有一个引擎,它读取二进制表并解析您的源文件。
我没有特别使用过Java实现,但使用Delphi引擎的效果相当不错。