エディターのアクション
MPS エディターには、完了アクション、ノード作成ポリシーにかなり実用的なデフォルトがあります。しかし、カスタマイズしたい場合は、アクション言語を使用しなければなりません。
ノードファクトリ
あるノードが別のノードと交換されるとき、交換されるノードによって保持される値で交換するノードの作成プロセスをパラメーター化すること、またはおそらくモデル内の交換するノードの将来の位置を反映することも役に立つでしょう。ノードファクトリはあなたにまさにそれを与えます。新しいノードを代入アクションで、または新しい初期化ノード <>、新しい初期化ノードを設定する、初期化された新しいノードを追加する、初期化された新しいノードに置き換えます、新しい初期化インスタンス <> のいずれかのメソッドで作成する必要があるときに必ず呼び出される一連のハンドラーを作成します。
簡単に言うと、ノードファクトリでは新しいノードのインスタンス化をカスタマイズできます。ノードファクトリを作成するには、まず新しいノードファクトリルートノードを作成する必要があります。このルートの中に、概念用のノードファクトリを作成できます。各ノードファクトリは、次のパラメーターを持つノード作成ブロックで構成されています。newNode(作成されたノード)、sampleNode(現在置換されているノード、null でも可)、囲むノード(モデル内の newNode の親になるノード)、モデル。ノードファクトリハンドラーは、新しいノードがモデルに挿入される前に呼び出されます。
ノードファクトリの概念継承階層を利用して繰り返しを減らすことができます。
貼り付けラッパー
これらを使用すると、ノードを他のコンテキストに貼り付けることをカスタマイズできます。例:LocalVariableDeclaration を BaseLanguage にコピーして ClassConcept に貼り付けてそれをクラスのフィールドにする場合は、ローカル VariableDeclaration から新しい FieldDeclaration を作成する単純な変換をトリガーする必要があります。
コピー & ペーストハンドラー
これらはあなたにコピーされているかクリップボードから貼り付けられているモデルの部分をカスタマイズする可能性を与えます。
The copy parameter in a copy pre processor block gets contains an exact deep copy of the original parameter node: Unlike original, copy is detached from the model and so has no parent node.
貼り付けポストプロセッサーのタスクは通常、参照が新しいコンテキストで有効な宣言を指すように参照を再解決することです。
関連ページ:

変換メニュー言語
概要 :概要、メニューを定義する、デフォルトメニュー、名前付きメニュー、メニューのコントリビューション、セクションの場所、メニューパーツ、サイド変換、代替メニュー、コード補完のデフォルトの動作、代替メニュー (デフォルト)、代替メニュー (名前)、代替メニュー投稿、オプション、セルメニューとセル固有...

SModel 言語修正オペレーション
修正操作 :フィーチャー変更SModel で最も一般的に使用される変更操作は、機能を変更することです。プロパティの値を設定したり、0..1 または 1 カーディナリティーの子ノードまたは参照ノードを割り当てたりするには、(=を使用した)直接代入または集合演算を使用できます。子を 0..n または 1...

エディター
言語のための構造が定義されたら、おそらく行って、開発者がそれを使って便利に AST を構築できるようにするための手段を作成するでしょう。AST を直接操作しても、直感的にも生産的にもなりません。AST を隠してユーザーに快適で直感的な対話を提供することは、言語エディターにとってのロールです。AST