MPS 2020.1 ヘルプ

付属品

アクセサーリーモデルは、言語の側面として(推奨)、またはソリューションにある通常のモデルとして、2 か所に保管できます。どちらの場合も、モデルを使用できるように言語ランタイム言語設定に追加する必要があります。典型的なユースケースは、その言語が使用されている任意の場所で利用可能になる Concept インスタンスのデフォルトライブラリです。

導入図形チュートリアルの一部として作成され、MPS ディストリビューションにバンドルされている図形サンプルプロジェクトをサンプルプロジェクトとして変更しましょう。このプロジェクトでは、言語ユーザーがさまざまなカラフルな図形を定義してキャンバスに貼り付けることができます。各形状の色は、クラスで定義されている StaticFieldDeclarations のいずれかへの参照として定義されています。

アクセサーリモデルを使用すると、クラスを直接参照する代わりに独自の色定数を定義することができるため、ユーザーソリューションから BaseLanguage に依存することになります。どの色が使用可能になるか、どのようにしてそれらが生成されるのかを細かく制御できます。

色を表すための概念を定義する

まず、個々の色を定義するために使用する概念を定義する必要があります。

Ac1

ColorReference を更新する

ColorReference の概念は、MyColor の概念のノードを指すようになりました。

Ac2

実際の色を取得する方法を定義する

生成中に、MyColor のノードを、クラスで定義された対応する色定数を表す StaticFieldDeclaration のノードに置き換える必要があります。

Ac4

円と四角形のジェネレーターテンプレートを変更する

これらのテンプレートは、クラスの特定の必要な静的フィールドへの参照を挿入する参照マクロを保持しています。上記で定義した findColor() 動作方法を使用するようにマクロを変更する必要があります。

Ac3

Accessories モデルで色を定義する

これで色を安全に定義できます。

Ac5

言語を再構築すると、色定数はキャンバスノードの補完メニューに表示され、生成されたコードは Java 色への正しい参照を保持します。