問題タブ [mps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
52 参照

mps - 変数の型を更新します (例: Foo a; -> Bar b) MPS はどのように x.field 参照を新しい型に更新しますか?

TL;DR: MPS 2017.2 がフィールド参照を更新しないことは知っています。問題は、それを正しく取得する方法です。したがって、DSL ユーザーは、単一の「変数型の変更」の場合にすべてのプログラムを再入力する必要がありません。

MPS の基本言語の例を次に示します。

inで更新するFooと、テストコードは同じようになりますBarFoo a;

変数の型を に更新するとa、メソッドBar内のコードtestは引き続き のフィールドを参照しますFoo。もちろん、check model壊れた参照を特定しますが、MPS でそのような DSL の問題を解決するためにどのような方法が期待されるのでしょうか?

「更新時」スクリプトはすべての「フィールド使用法」を見つけて、それに応じてモデルを更新する必要がありますか? 「フィールド タイプの更新」を禁止し、ユーザーに確認を求める必要がありますか? (例えば、ある種のリファクタリングまたは何らかの意図)

私は MPS で 61131 ST 言語を構築しているので、「静的型付き言語」の種類の DSL を調べています。

0 投票する
2 に答える
99 参照

mps - インライン テンプレートからノードのプロパティ/子にアクセスする

ノードの概念に基づいてtemplate switch、そのノードのプロパティや子を使用してランタイム オブジェクトを作成したい場所があります。各ケースの右側はインライン テンプレートです。そのインライン テンプレートからノードのプロパティ/子にアクセスするにはどうすればよいですか? より具体的には、以下のスクリーンショットでは、line()andメソッドへの引数を、対応するandノードrectangle()から抽出する必要があります。LineCommandRectangle

Alt+Enterメニューは「プロパティ マクロの追加」を提供しないことに注意してください。

MPS 2018.1.5 を使用しています。

ここに画像の説明を入力

0 投票する
2 に答える
39 参照

mps - SWITCH マクロの initValue

$SWITCH$テンプレートで、マクロを使用したい。次を指定する必要があります<initValue>

ここに画像の説明を入力

これの役割は何<initValue>ですか?として何を渡す必要があり<initValue>ますか? Ctrl+にはオートコンプリートの提案が表示されないことに注意してくださいSpace

以下は、マクロのインスペクターです。

ここに画像の説明を入力

0 投票する
1 に答える
279 参照

plugins - Jetbrains MPS で mbeddr の文法セルを使用するにはどうすればよいですか?

こことリンクされたビデオに示されているように、MPS で mbeddr の文法セルを使用したいと思います。

したがって、指示に従い、最新の安定した platform-distribution_2017_2_0.zip をダウンロードし、すべてのプラグインを MPS 2018.1 にコピーしました。バージョン番号は完全には一致しませんが、再起動後、すべてのプラグインにエラーはありません (プラグイン マネージャーで)。

今、自分のプロジェクトでそれらをどのように使用できるかわかりません。どこかに何かを追加する必要がありますか? 私が注意を払わなければならないことはありますか?