我目前正在开发一种通用的基于代理的编程语言(它的syntaxt会受到Java的启发,我们也使用这种语言的对象)。Can Xtext可用于解析通用编程语言吗?
自项目开始以来,我们对使用ANTLR或Xtext的事实怀疑。那时我们发现Xtext正在实现ANTLR的一个子集。所以我们决定使用ANLTR来为我们的语言失去使用我们的语言免费提供完整的Eclipse编辑器的可能性(Xtext提供了这样一个很好的功能)。
但是,据我所知,今年夏天Xtext项目已完成big step forward。从链接引用:
Xtext的局限性是什么?
Sven:您可以使用Xtext实现几乎所有类型的编程语言或DSL 。有一个例外,那就是如果你需要使用 所谓的'语义谓词',这是一个相当复杂的事情,我认为这不值得在这里解释。很少有语言真的需要这个概念。然而,突出的例子是C/C++。我们希望 考虑下一个版本的该主题。
而这也加强在Xtext documentation:
什么的Xtext?无论您是想创建小型文本域特定语言(DSL)还是想实现全面的通用编程语言。借助Xtext,您可以快速创建您自己的语言 。另外,如果您已经有一个现有的 语言,但它缺乏像样的工具支持,您可以使用Xtext创建一个基于Eclipse的高级开发环境,该编程体验在现代Java IDE中提供了 编辑体验,其时间极短。我们称Xtext为语言开发框架。
如果Xtext已经摆脱了过去的限制,为什么仍然无法找到最好的已知编程语言(Java,C#等)的复杂Xtext语法?
在ANTLR网站上,你可以找到吨这样的语法例子,对于所关注的Xtext,而不是只有我能找到的样本是一个文档中的报道。那么Xtext是否仍然不成熟用于实现通用编程语言?我有点担心这个......我不会开始重新写的Xtext语法的,然后认识到,它不适合那个。
很高兴有一位Xtext负责人回复我的问题,感谢您的关注。我并没有期望拥有一套完整的工具来处理在Xtext上实现的Java/C++(正如您所说的,没有必要)我正在寻找一些复杂的Xtext语法的很好的例子。对于ANTLR,你会发现许多流行的编程语言语法可以使用。对Xtext来说情况并非如此,所以我想知道是否有可能在Xtext中无缝编写Java语法,因为在其他论坛中,对于以前的Xtext版本,您深深地感到不鼓励人们这样做。 – 2011-04-12 10:01:39
用Xtext实现的编程语言的最好例子是Xtend和Xbase。它的范围已经完全实现,它支持完整的Java.generics和类Scala类型推断。可以在这里找到语法:http://goo.gl/QGR9d和http://goo.gl/7kl23 – 2011-04-12 12:05:41
许多人多谢谢斯文!我会很好的看看它!这似乎是一个非常好的测试案例,用于在行动中使用Xtext。我让你知道我的调查结果:) – 2011-04-17 21:01:32