我正在使用Xtext来定义一种新语言。我希望从这种语言生成代码,但是我不想使用自动建议的doGenerate函数。相反,我需要使用java代码(不是Xtend),我可以从构建过程中调用它。
当然,在java代码中,我希望能够使用传递给原始建议函数的“资源”,因此我可以访问DSL代码中的所有信息。
答案 0 :(得分:1)
我相信默认情况下,生成器是一个xtend文件,但没有什么可以阻止你将它更改为java文件,你只需要覆盖[LanguageName] RuntimeModule类中的绑定,如下所示: -
public class ExampleRuntimeModule extends com.example.AbstractExampleRuntimeModule {
@Override
public Class<? extends IGenerator> bindIGenerator() {
return YourOwnGenerator.class;
}
}
YourOwnGenerator应该实现IGenerator。