我需要Java中的Augmented Backus-Naur Form Parser(RFC 5234)来验证某些语言。
为了不重新发明轮子,我宁愿使用现有的ABNF Parser开源实现(如果已经存在)。
我需要开源,因为它允许我根据需要维护代码。
是否有人知道存在的任何内容?
答案 0 :(得分:3)
我已经发现Parse2(见拉尔夫的答案)有一些限制:
;
结尾S --> NT1 NT2 T1 ; NT1 --> S | T2 ; ...
),可能会遇到无限循环。这些观察结果已得到Parse2开发人员的证实。简而言之:Parse2可以解析ABNF语法的一个子集,但是如果您找到现有的ABNF语法并尝试将其提供给软件,它很可能会出现问题。
如果您自己指定ABNF语法并牢记这些限制,则此库应该适合您。如果您必须使用现有的ABNF语法,则可能需要在代码生成之前为语法付出额外的努力。
PS:即使编译的二进制文件(java字节代码)可以自由使用,Parse2库源代码目前也不可用。
答案 1 :(得分:2)
Parse2从ABNF为解析器生成源java。