xtext中的自定义代码生成

时间:2012-12-19 10:00:08

标签: code-generation xtext

我正在使用Xtext来定义一种新语言。我希望从这种语言生成代码,但是我不想使用自动建议的doGenerate函数。相反,我需要使用java代码(不是Xtend),我可以从构建过程中调用它。

当然,在java代码中,我希望能够使用传递给原始建议函数的“资源”,因此我可以访问DSL代码中的所有信息。

1 个答案:

答案 0 :(得分:1)

我相信默认情况下,生成器是一个xtend文件,但没有什么可以阻止你将它更改为java文件,你只需要覆盖[LanguageName] RuntimeModule类中的绑定,如下所示: -

public class ExampleRuntimeModule extends com.example.AbstractExampleRuntimeModule {
    @Override
    public Class<? extends IGenerator> bindIGenerator() {
        return YourOwnGenerator.class;
    }
}

YourOwnGenerator应该实现IGenerator。