xtext可以在Java中用作表达式语言吗?

xtext可以在Java中用作表达式语言吗?,java,dsl,xtext,Java,Dsl,Xtext,我们正在考虑使用xtext来开发一个DSL,它可以用来简化一些复杂的逻辑和查询操作,但我们希望在Java类中使用它。这能做到吗 我们想要的是使用它来开发类似LINQ的东西,但是可以在Java中使用。我看到的所有xtext示例都是从DSL生成.java类,这很好,但并不完全是我们想要的 比如说: List dragons=dataEngine.parse(获取怪物,类型=Dragon,生命值>1000) 我相信,如果查询预先写在一个单独的查询文件中,然后通过xtext生成器编译成一个可以传递到数据

我们正在考虑使用xtext来开发一个DSL,它可以用来简化一些复杂的逻辑和查询操作,但我们希望在Java类中使用它。这能做到吗

我们想要的是使用它来开发类似LINQ的东西,但是可以在Java中使用。我看到的所有xtext示例都是从DSL生成.java类,这很好,但并不完全是我们想要的

比如说:

List dragons=dataEngine.parse(获取怪物,类型=Dragon,生命值>1000)

我相信,如果查询预先写在一个单独的查询文件中,然后通过xtext生成器编译成一个可以传递到数据管理层的表单,我们就可以做到这一点,但我们需要更灵活的方式

xText看起来很有前途,但似乎我们最终会使用或类似它的东西,而不是真正的DSL

但似乎我们最终会使用或类似于它的东西,而不是真正的DSL

jOOQ是一个真正的DSL:-)一个真正的,而不是一个。事实上,我最近一直在研究jOOQ本身是否可以通过定义解析SQL语句的实际语法并将其转换为jOOQ调用来增强它,使其看起来更像SQL,而不是Java

这似乎可以通过一种名为的技术来实现,该技术由前面提到的Xtend和Xtext相同的人创建。事实上,Xtend语言是基于Xbase的。根据他们的文档,这将允许您将自己的语法集成到类似于Java的东西中,从而定义Java和您自己的DSL之间的交互模式


到目前为止,我还没有成功地理解他们的文档,但也许你能得到一些帮助?

不,不幸的是,Eclipse的Java编辑器和Java解析器与编译器都不允许挂接,这样做是可能的。使用Xbase,您可以在DSL中嵌入类似Java的表达式和语句,但不支持另一种方式。

在我看来,这将是整个Xtext堆栈的杀手级功能!太糟糕了:-)