我目前正在开发一种通用的基于代理的编程语言(其语法有些受到Java的启发,并且我们在此语言中也使用了对象)。
自项目开始以来,我们一直对是否使用ANTLR或Xtext存在疑虑。当时我们发现Xtext正在实现ANTLR的某些特性子集。因此,我们决定为我们的语言使用ANLTR,失去了免费获得完整版Eclipse编辑器的可能性(Xtext提供的如此好的功能)。
然而,据我所知,今年夏天Xtext项目迈出了重要的一步。引用链接中的话:
Xtext有哪些限制?
Sven:你几乎可以使用Xtext实现任何类型的编程语言或DSL。有一个例外,那就是如果您需要使用所谓的“语义断言”,这是一件相当复杂的事情,我不认为值得在此解释。很少有语言真正需要这个概念。然而,突出的例子是C/C++。我们想在下一个版本中研究这个主题。
这也在Xtext文档中得到了强化。
Xtext是什么?无论您想创建一个小型文本特定领域语言(DSL)还是实现一个完整的通用编程语言,使用Xtext可以轻松创建自己的语言。如果您已经有一种现有语言但缺乏良好的工具支持,可以使用Xtext在惊人短的时间内创建一个复杂的基于Eclipse的开发环境,提供从现代Java IDE中所知的编辑体验。我们称Xtext为语言开发框架。如果Xtext已经摆脱了过去的限制,为什么仍然不可能找到最知名的编程语言(Java、C#等)的复杂Xtext语法呢?
在ANTLR网站上,可以找到大量这样的语法示例,而对于Xtext而言,我能找到的唯一示例是文档中报告的示例。那么也许Xtext仍然不成熟,不能用于实现通用编程语言?我有点担心... 我不想开始用Xtext重新编写语法,然后发现它不适合那个用途。