首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java的开源ABNF解析器实现?

Java的开源ABNF解析器实现?
EN

Stack Overflow用户
提问于 2011-03-15 02:03:28
回答 2查看 4.4K关注 0票数 6

我需要一个Java中的增强Backus-Naur形式解析器(RFC5234)来验证一些语言。

为了避免重复发明轮子,我倾向于使用ABNF解析器的现有开源实现(如果已经存在)。

我需要开源,因为它允许我根据需要维护代码。

有没有人知道有什么存在的?

EN

回答 2

Stack Overflow用户

发布于 2013-01-03 21:19:22

我注意到Parse2 (参见Ralph answer )有一些局限性:

  • aparse不喜欢注释,必须在代码生成之前手动删除它们
  • 所有语句都需要在行尾以;结尾
  • aparse不会应用定义为RFC5234的“核心”ABNF规则,因此如果您的语法基于这些规则,则必须从RFC复制它们
  • aparse不喜欢语法中的循环(例如< code >D10),可能会遇到无限循环。

这些观察结果已经被Parse2的开发者所证实。所以简而言之: Parse2可以解析ABNF文法的一个子集,但是如果您找到一个现有的ABNF文法并试图将其提供给软件,它很可能会出现问题。

如果您自己指定了ABNF语法,并牢记这些限制,那么这个库应该可以为您工作。如果您必须使用现有的ABNF语法,那么在代码生成之前,您可能需要在语法上投入更多的精力。

PS:尽管编译后的二进制文件( Parse2字节码)可以免费获得,但java库源代码目前不可用。

票数 3
EN

Stack Overflow用户

发布于 2011-07-27 00:32:05

Parse2从ABNF生成用于解析器的源java。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5302492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档