MPS 2020.1 ヘルプ

カスタムアスペクト

構造エディター型システムなどの通常の言語アスペクトと並んで、言語制作者はカスタム言語アスペクト(たとえば、インタープリター、代替型システムなど)を作成し、言語ランタイムに生成してから実行することができます。コードからこれらの生成されたアスペクトを使用してください。

カスタムアスペクトとは何ですか?

Screen Shot 2015 09 30 at 20 37 45

Language definitions in MPS can be thought of as a collection of aspects: structure, editor, type-system , generator (1)

言語の各側面は、別々のアスペクトモデルで定義されています。例:言語 L のエディターの側面は L.editor モデルで定義されています。

このアスペクトは実行時、つまり言語が MPS の内部で使用されているときに言語のアスペクトランタイム (2) に生成できます。生成されたクラスは (3) LanguageRuntime.getAspect() を通じて対応するサブシステムによって取得され、さらに (4) を使用することができます。

カスタムアスペクト記述子

言語アスペクトの IDE 部分は、SimpleLanguageAspectDescriptor によって記述されます。SimpleLanguageAspectDescriptor は、言語のプラグインモデルで作成できます。

アスペクト名

アスペクトの名前他の言語でこの名前を持つモデルを作成することは可能でしょう、そのモデルは与えられた他の言語のためのこの局面のモデルとして考えられるでしょう。

主な言語

アスペクトの「主要」言語はこのアスペクトを記述するモデルに自動的にインポートされ、これらの言語の概念は「新規ノード」メニューの上に表示されます。

追加言語

現在は実装されていません。これらは、この種のアスペクトモデルでユーザーが使用することを望んでいる可能性がある言語です(ただしそうは思わないかもしれません)。それらはアスペクトに関するいくつかの「ヒント」で示されます。これは発見の目的のためだけのものです。editor.tables 言語は、「エディター」の側面にとってはそのような「追加の言語」かもしれません。

ヘルプ URL

この URL はこの概念のコンテキストヘルプを表示するために使用されます。

アイコン

この種のアスペクトモデルの近くの論理ビューに表示するアイコン。

クックブック

SimpleLanguageAspectDescriptor の概念は、この側面の IDE 統合のみをカバーしています。あなたの側面のためのランタイムを生成するためにジェネレーター部分を実装する方法と対応するサブシステムから生成されたコードを使用する方法を学ぶためにカスタム言語アスペクトクックブックを参照してください。