有没有类似于pyparsing的Java库?

7

我需要在Java中快速构建一个非常简化的类似HTML的标记语言的解析器。在Python中,我会使用pyparsing库来完成这个任务。在Java中是否有类似的东西?请不要建议已经存在的用于HTML解析的库,因为我的应用程序是一个学校作业,将演示遍历对象树并使用访问者模式将其序列化为文本,因此我没有考虑实际情况。基本上我只需要标记、属性和文本节点。

5个回答

8

另一个好的解析器生成器是 ANTLR, 这可能是你正在寻找的。


3

可能对你的使用来说有点过度,但javacc是一个优秀的工业级解析器生成器。我多次使用过这个程序/库,它可靠且值得学习,尤其是如果你要处理语言和编译器。以下是来自上述网站的程序描述:

Java Compiler Compiler [tm](JavaCC [tm])是与Java [tm]应用程序一起使用的最流行的解析器生成器。解析器生成器是一种工具,它读取语法规范并将其转换为可以识别语法匹配项的Java程序。除了解析器生成器本身之外,JavaCC还提供其他与解析器生成相关的标准功能,例如通过与JavaCC一起包括的名为JJTree的工具进行树构建、操作、调试等。


JavaCC真是太棒了。还要看看Tom Copeland写的书(Centennial Books)。 - Bryan Hunt

3
在Java中搜索解析器生成器会得到JParsec。我从未使用过它-但它受Haskell库的启发,所以根据定义它必须很好用:-)

看起来非常有趣,离开了代码生成器......感谢提供的参考。 - PhiLho

2
我喜欢JParsec(感谢Torsten的推荐),因为它不会生成代码... :-) 也许效率稍低,但对于小任务已经足够。
我发现了一个类似的库,JTopas

Java Source提供了一个很好的解析器列表(无论是否生成代码)。


1

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