Antlr XText:如何为多目标语言创建解析器

Antlr XText:如何为多目标语言创建解析器,antlr,dsl,xtext,dsl-tools,Antlr,Dsl,Xtext,Dsl Tools,我在XText中定义了我的DSL,它自动生成了Java版本的语言解析器和代码生成框架,这非常酷 问题是,我的DSL计划由使用多种语言实现的项目使用。您可以想象,我们可能至少需要在C#、Java和Ruby中解析DSL 所以问题是:有没有一种方法可以在xtext的帮助下为多种语言生成解析器 纯解析的东西只是整个Xtext套件的一小部分。集成到EclipseIDE和Xtend生成器中是两大块代码。Xtext构建在EMF-Ecore模型之上。这些部件都没有其他语言版本 因此,在普通C#和Ruby中运行X

我在XText中定义了我的DSL,它自动生成了Java版本的语言解析器和代码生成框架,这非常酷

问题是,我的DSL计划由使用多种语言实现的项目使用。您可以想象,我们可能至少需要在C#、Java和Ruby中解析DSL


所以问题是:有没有一种方法可以在xtext的帮助下为多种语言生成解析器

纯解析的东西只是整个Xtext套件的一小部分。集成到EclipseIDE和Xtend生成器中是两大块代码。Xtext构建在EMF-Ecore模型之上。这些部件都没有其他语言版本

因此,在普通C#和Ruby中运行Xtext是不可能的

您可以做什么:

  • 您可以将解析器和生成器打包到一个独立的jar中,并从任何地方(包括从C#和Ruby)将其作为外部进程调用。对于您自己的DSL,这就像
    javac

  • 您可以在JRuby中运行Ruby代码并从那里调用Xtext。因为所有东西都在同一个JVM中运行,所以与运行外部程序相比,您将拥有更好的控制

  • 您可以使用Xtext来获得一个用户友好的编辑器,其中包含所有很酷的东西,但是可以为您想要的任何语言实现独立的语法