我正在使用Java编写一个编译器设计项目。词法分析完成(使用jflex),我想知道哪种类似yacc的工具最适合(最有效,最容易使用等)进行语法分析以及原因。
答案 0 :(得分:18)
答案 1 :(得分:5)
过去,我已经将leLer和解析器用于ANLTR,JFlex主页说它可以与ANTLR互操作。我不会说ANTLR的在线文档非常棒。我最终投资了'The Definitive ANTLR reference',这有很大帮助。
答案 2 :(得分:3)
GNU Bison有一个Java接口,
http://www.gnu.org/software/bison/manual/html_node/Java-Bison-Interface.html
您可以使用它来生成Java代码。
答案 3 :(得分:3)
答案 4 :(得分:2)
另一种选择是GOLD Parser。
与许多替代方案不同,GOLD解析器根据语法生成解析表,并将它们放在二进制非可执行文件中。然后,每种受支持的语言都有一个引擎,它可以读取二进制表并解析源文件。
我没有专门使用Java实现,但是使用Delphi引擎的结果相当不错。