いくつかの異なる言語でコードを生成する方法を探しています。良いスタートは、ObjC、Java for Android、Unity、および JavaScript (Cordova) で、繰り返しコード用です。現在、私は各言語でコードを手動で何度も書いています。私は MPS を見ていて、1 つの DSL を開発し、そこから言語ごとに異なるコードを生成することを考えています。
私の質問は、MPS では言語ごとに異なる TextGen を作成できるのですか?
いくつかの異なる言語でコードを生成する方法を探しています。良いスタートは、ObjC、Java for Android、Unity、および JavaScript (Cordova) で、繰り返しコード用です。現在、私は各言語でコードを手動で何度も書いています。私は MPS を見ていて、1 つの DSL を開発し、そこから言語ごとに異なるコードを生成することを考えています。
私の質問は、MPS では言語ごとに異なる TextGen を作成できるのですか?
はい、MPS ではさまざまな言語をターゲットにすることができます。確かに、MPS の生成プロセスの 2 つの論理的な "フェーズ" を区別する必要があります。モデル変換を実行するジェネレーターと、モデルをテキストに変換する textgen です。通常、ジェネレーターは DSL を汎用言語 (引き続き AST として表されます) に変換しますが、その汎用言語用に定義された textgen はコードをテキストに変換します。現在、そのような汎用の「ベース」言語がいくつか存在します。Java、C、XML、およびいくつかのプロトタイプです。
DSL 用に定義された textgen を介して DSL をテキストに直接変換することも可能ですが、単純な DSL でのみ可能です。