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 に答える