我们已经为antlr V3编写了一个语法,并且我想迁移到antlr v4。是否有任何移植指南。并且我想知道现有V3语法的修改,以便我们很好地利用v4的功能。将ANTLR v3语法迁移到ANTLR v4
2
A
回答
3
如果您在v3或更早版本中使用AST构建和树解析,将会造成最大的影响。 巨大的有差异。您不再有AST生成(它现在生成Parse Trees)或树Walkkers(您现在使用Parser Listeners或Parse Tree Visitors)。
我还没有看到移植指南,但是如果您正在浏览v4文档并且正在使用AST或树型漫步者,请查看Parse Trees,Listeners和Visitors上的v4部分。
其他大部分变化都是为了更容易编写解析器,尽管如果你不小心的话,有些可能会让你陷入一些麻烦。例如,您现在可以编写左递归规则,但是如果您依赖某个优先级(如在表达式语法中),则需要仔细匹配ANTLR4编译器的几个模式以了解正确的优先级。
我强烈建议让Ter的书The Definitive ANTLR4 Reference只读通过它。它提供了大部分你需要的细节,尽管你仍然想要玩一下。
我刚刚写了一个非常简单的Eclipse Eclipse插件的ANTLR4插件,我希望很快发布它。它需要多一点测试,但迄今为止它是一个基本的构建器。下一步是创建一个编辑器...
相关问题
- 1. ANTLR V3 SQL语法
- 2. ANTLR v4的C语法
- 3. ANTLR V4多任务
- 4. ANTLR v4 + Xcode/objC/iOS?
- 5. C#ANTLR语法?
- 6. 在ANTLR语法
- 7. ANTLR语法pred
- 8. CIL ANTLR语法?
- 9. 我面临的问题将Antlr版本3.1.1迁移到Antlr 3.3(获取NoSuchMethodError:CommonTreeNodeStream.getNodeIndex)
- 10. 转换ANTLR 3语法ANTLR 4
- 11. ANTLR version2语法语法?
- 12. ANTLR语法教程
- 13. ANTLR的箭语法
- 14. ANTLR的树语法
- 15. Antlr Left Factoring语法
- 16. 测试ANTLR语法
- 17. ANTLR语法变量
- 18. ANTLR语法问题
- 19. antlr语法定义
- 20. ANTLR语法错误
- 21. 迁移反应路由器v3到v4
- 22. ANTLR语法if语句
- 23. ANTLR的V4文法的XQuery 3.1
- 24. ANTLR v3 C#命名空间
- 25. ANTLR v3的词法错误预测
- 26. ANTLR v3:缺少方法JavaParser.javaSource()和类JavaParser.javaSource_return
- 27. ANTLR语法许可证
- 28. ANTLR语法不完整
- 29. 如何配置Antlr语法
- 30. ANTLR 4:语法错误和