我在几个项目中使用了 Eclipse Xtext。我喜欢通过 Ecore(元)模型定义语法的简易性,以及生成包括出色的 Eclipse 插件编辑器在内的所有内容,但是我对潜在的 EMF 框架 感到相当不舒服,其中一切都被硬编码为静态字段。 最近,我接触了 JetBrains 的 MPS(元编...
我刚接触到一个非常好的工具Xtext,可以创建DSL以及用于编辑的IDE。在网上做了一些搜索,发现有人说它不能提供ANTLR的所有功能。我正在使用ANTLR作为我的解析器生成器。 我甚至不确定我需要使用ANTLR的哪些功能来编写完整的语言解析器,但ANTLR已经存在了很长时间,可能支持比Xt...
我目前正在开发一种通用的基于代理的编程语言(其语法有些受到Java的启发,并且我们在此语言中也使用了对象)。 自项目开始以来,我们一直对是否使用ANTLR或Xtext存在疑虑。当时我们发现Xtext正在实现ANTLR的某些特性子集。因此,我们决定为我们的语言使用ANLTR,失去了免费获得完整...
我对这个错误感到困惑:java.lang.NoClassDefFoundError: junit/framework/TestCase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.Class...
我已经在Eclipse中创建了一个Xtext插件。每次通过上下文菜单启动它作为“Eclipse应用程序”时,我都会在新的Eclipse实例崩溃之前有一些时间来缓解。我切换回原始实例,在控制台窗口中可以看到: Root exception: java.lang.OutOfMemoryError...
摘要问题描述: 在我看来,unparsing 的意思是从 AST 中创建一个标记流,当再次解析时,会产生相等的 AST。 因此,parse(unparse(AST)) = AST 成立。 这相当于找到一个有效的解析树,该解析树将产生相同的 AST。 该语言使用 context free...
我有一个使用ANTLR实现的DSL,现在需要编写内容辅助/自动完成编辑器。我已经将我的语法原型移植到Xtext中,并且我很满意它生成的编辑器的质量。 不幸的是,我不能使用Eclipse作为我的编辑器。相反,我希望使用Xtext语法生成一些工件,以便我可以在Eclipse之外重复使用它们。从我...
ANTLR中如何实现运算符优先级? 目前我正在使用XText/Antlr包。 编辑: 我按照sepp2k的建议做了,现在运算符优先级可以正常工作了,但是像3 +*这样的东西也可以工作。 运算符基本上是“穿过”树的。 另外,我在ANTLR网站上尝试了C语法,同样的事情也发生在ANTLRw...