6

我使用 Eclipse 的 Xtext 插件来定义我的语言并从中生成一些文件。该项目很大,除了插件生成的默认生成器之外,我想使用多个生成器来生成我的文件。

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

例如我默认有

class com.company.mylang.generator.MylangGenerator implements IGenerator {...}

我需要添加另一个

class com.company.mylang.generator.MylangGenerator2 implements IGenerator {...}

作为 Eclipse 构建的一部分运行。

4

1 回答 1

6

复合生成器可以工作。您的 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)
  }

}
于 2014-02-26T10:30:30.323 回答