我正在用Clojure开发我自己的解析器生成器工具,然后我意识到我想用一些真正的编程语言来测试它。我能找到许多现有的语言语法只使用antlr v4格式.。
这意味着,如果我能够自动地将antlr语法翻译成我自己的格式,我就可以得到它们的全部。这是一个合理的任务(因为我没有注意到其他带有antlr转换器的解析器生成器,所以一定有一些困难)。
发布于 2015-10-24 01:36:10
将反语法转换成我自己的格式是一项合理的任务吗?
这取决于你对合理的定义。如果你的意思是“可以实现”或“考虑到所需的时间和精力是值得的”,那你只能回答。想必,如果您已经编写了自己的解析器,这应该不会太困难。
如果您的意思是“合法”(例如侵犯版权或专利),这取决于创建ANTLR语法的个人或组织。有些语法可能获得许可,或者有其他法律保护。例如,在GPL下授权的语法可能要求任何基于此的工作(例如您自己的语法或为解析它而生成的代码)也需要在GPL下获得许可。如果有疑问,请与法律专业人士或创建或负责语法的个人或组织交谈。
如果你的意思是“看不起”、“偷工减料”或“懒惰”,那么所有的语法都是从某物中衍生出来的。一旦你写了一些语法,从零开始做每件事的回报都会减少。我会和解析器/lexer社区的其他成员交谈,看看他们在做什么。
如果您的意思是“最佳实践”,正如@RubberDuck所说,一些已发表的语法可能有错误或遗漏。在复制之前仔细检查任何第三方语法。您可能需要派生自己的语法,然后使用其他语法作为引用或测试数据。
https://softwareengineering.stackexchange.com/questions/300738
复制相似问题