【问题标题】:Xtext multiple generatorsXtext 多个生成器
【发布时间】:2014-02-26 09:48:33
【问题描述】:

我使用 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 构建的一部分运行。

【问题讨论】:

    标签: xtext xtend


    【解决方案1】:

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

    【讨论】:

    • 我也有类似的问题。我的两种语法都有单独的扩展名。但是,对于 MylangGenerator 的文件的生成器,只有“gen”会被调用,而不会在 MylangGenerator2 的文件中被调用。你知道我会错过什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多