我想知道我们是否可以在 ANTLR/xText 中定义 EDIFACT 语法,然后生成解析器。
如果是这样,这些语法是否已经定义为我们可以利用的(最好是开源的)?
除了 Smooks 之外,还有其他可以读写 EDIFACT 的开源库吗?
2 回答
来自一本关于这个主题的方便的书......(http://books.google.co.uk/books?id=rDbRS6vEG0MC&pg=PA222&lpg=PA222&dq=EDIFACT+bnf&source=bl&ots=pfFYf4nsVv&sig=JXY5HPo7Ka02ji35fjW8R8wFBX8&hl=en&sa=X&ei=05ozT6K&5NMO80QWa- =0CGEQ6AEwCA#v=onepage&q=EDIFACT%20bnf&f=false)我们有以下部分......
,这似乎表明这不是一个好主意-尽管根据您的要求,您当然可以编写一个,但我个人会发现 Antlr 是一个更易于使用的工具(我目前正在为 Xtext 编写一个实验室,这是一种不那么宽容的学习曲线),但你的里程可能会有所不同......
当我开发 bots 开源 edi 翻译器 (http://bots.sourceforge.net) 时,我尝试了这种方法(使用 ANTLR)。这看起来是个好方法,但我没有成功。我的结论是,ANTLR 的“解析”与“解析”一个 edi 文件非常不同。单词/概念听起来相同,但这些确实是不同的世界。如果您正在寻找“语法”(即:edifact 和 x12 消息的描述),可以在 sourceforge 页面的下载中找到这些。