Xtext多个生成器

Her*_*rsh 5 xtext xtend

我使用Xtext插件为eclipse定义我的语言并从中生成一些文件.该项目很大,我想使用多个生成器来生成我的文件,以及插件生成的默认生成器.

我试过这个解决方案http://www.eclipse.org/forums/index.php/t/263021/,但它不起作用,看起来它与旧版本的Xtext相关.

例如我默认拥有

class com.company.mylang.generator.MylangGenerator implements IGenerator {...}
Run Code Online (Sandbox Code Playgroud)

我需要添加其他一个

class com.company.mylang.generator.MylangGenerator2 implements IGenerator {...}
Run Code Online (Sandbox Code Playgroud)

作为eclipse构建的一部分运行.

Seb*_*kow 5

复合发电机可以工作.您的MylangGenerator可以作为复合实现,并委托给其他生成器,可能取决于资源中的某些配置或状态.

class MylangCompositeGenerator implements IGenerator {

  @Inject MylangGenerator gen
  @Inject MylangGenerator2 gen2

  def doGenerate(Resource input, IFileSystemAccess fsa) {
    gen.doGenerator(input, fsa)
    gen2.doGenerator(input, fsa)
  }

}
Run Code Online (Sandbox Code Playgroud)