YACC相当于为Java(Yacc equivalent for Java)

2019-09-02 01:27发布

我工作在Java编译器的设计项目。 词法分析完成后(使用JFLEX),我想知道这yacc工具将是最好的(最有效,最容易使用的,等等)做语法分析和原因。

Answer 1:

如果你特别希望YACC类似的行为(表驱动的),我知道只有一个是CUP 。

在Java世界中,似乎越来越多的人对递归下降解析器像瘦ANTLR或JavaCC的 。

和效率是很少需要选择一个解析器生成器。



Answer 2:

在过去,我用ANLTR两个词法和语法分析器,以及JFlex的网页上说,它可以用ANTLR互操作。 我不会说ANTLR的在线文档是巨大的。 我结束了在投资“权威ANTLR的参考” ,这帮助很大。



Answer 3:

GNU野牛有一个Java接口,

http://www.gnu.org/software/bison/manual/html_node/Java-Bison-Interface.html

你可以用它去生成Java代码。



Answer 4:

还有JACC。

JACC即将接近YACC,你可以得到,但它是用纯Java实现,并生成Java解析器。

它与JFLEX接口以及

http://web.cecs.pdx.edu/~mpj/jacc/



Answer 5:

另一种选择将是GOLD分析器 。

与许多替代品,黄金解析器产生从语法分析表,并将它们放在一个二进制,非可执行文件。 每个支持的语言则有一个发动机,其读取二进制表和分析你的源文件。

我没有用Java实现具体,但使用相当不错的成绩了德尔福的发动机。



文章来源: Yacc equivalent for Java
标签: java yacc