我想知道我们是否可以在ANTLR / xText中定义EDIFACT语法然后生成解析器。
如果是这样,这些语法是否已经定义,我们可以利用(最好是开源)?
是否有任何开源库可以读取和写入除Smooks之外的EDIFACT?
答案 0 :(得分:3)
从一本关于这个主题的方便书籍......(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=05ozT6K5NMO80QWa-ZSLAg&ved=0CGEQ6AEwCA#v=onepage&q=EDIFACT%20bnf&f=false)我们有以下部分......
,这似乎表明这不是一个好主意 - 虽然取决于你的要求,你当然可以写一个,我个人会发现Antlr是一个更容易使用的工具(我现在正在写一个实验室对于Xtext而言,它是一种不那么宽容的学习曲线),但你的语言可能会有所不同......
答案 1 :(得分:1)
当我开发机器人开源edi翻译器(http://bots.sourceforge.net)时,我尝试了这种方法(使用ANTLR)。 这看起来很好,但我没有成功。 我的结论是,ANTLR的“解析”与“解析”edi文件非常不同;单词/概念听起来相同,但这些都是不同的世界。 如果您正在寻找'grammars'(即:edifact和x12消息的描述),可以在sourceforge页面的下载中找到它们。