MPS 2019.2ヘルプ

カスタムアスペクト

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

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

Screen Shot 2015 09 30 at 20 37 45

MPSの言語定義は、構造エディターtype-systemジェネレータ (1)いうアスペクトの集まりと考えることができます。

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

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

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

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

アスペクト名

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

主な言語

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

追加言語

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

ヘルプURL

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

アイコン

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

クックブック

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

最終更新日: 2019年8月30日