2

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

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

4

1 回答 1

1

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

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

YourOwnGenerator 应该在哪里实现 IGenerator。

于 2013-02-04T13:54:46.197 回答