有没有像Scala一样厉害的解析组合器适用于Java?

10

我阅读了Scala解析器组合的教程, 但我想知道Java是否也有类似于“神奇”的东西。我找到的最好的东西是JParsec


3
+1 - 在阅读这篇文章之前,我不知道解析器生成器和组合子之间的区别。谢谢你——今天我学到了新东西。 - duffymo
3个回答

8
JParsec似乎能够解决问题,但我无法评论其质量。Java没有操作符重载,这是解析器组合子中“魔法”的语法部分。
您也可以使用Scala来实现解析器,然后从Java中调用它们。但与JavaCC等代码生成器相比,好处并不是很大。

我没有时间去阅读链接,所以对这个区别一无所知。非常感谢您的纠正和教育。 - duffymo
嗯,你仍然可以在不使用任何重载的情况下获得比JParsec更好的东西。我正在考虑Newspeak可执行语法:http://bracha.org/executableGrammars.pdf。我只是觉得必须单独定义标记化很笨拙,就像在JParsec教程中一样。语法应该被更模块化地定义。尽管我看到我无法用硬性标准表达我正在寻找的是什么 :)。只是想要美丽的东西! - nes1983
3
如果你想要美丽的东西,远离Java。</flamebait> - Fred Foo

3

我想在这里提一下,我很喜欢这个视频,它让我快速了解了使用JParsec的决策。它看起来非常有前途。做得好! - asyncwait

-3

Javacc,grammatica由percederberg制作。可以使用其中任何一个。


2
这些是编译器编译器,即代码生成器。解析器组合子的想法是您可以使用与其余代码相同的语言编写它们。 - Fred Foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接