正規表現言語
正規表現は広く使われている最も初期の DSL の 1 つです。最近のほとんどすべての現代のプログラミング言語は、何らかの形で正規表現をサポートしています。MPS も例外ではありません。MPS の正規表現のサポートは、基本言語の拡張を通じて実装されています。
また、正規表現クックブックをチェックして、その言語をさらに徹底的に紹介することをお勧めします。
正規表現を定義する
正規 表現言語を使用すると、特別なパターン式 /regexp/ を使用して java.util.regex.Pattern クラスのインスタンスを作成できます。生成されたコードでは、MPS は、定義されたパターン式ごとに、最も外側のクラスに最終的な静的フィールドを作成するため、パターンはアプリケーションの実行時に 1 回だけコンパイルされます。
3 つのオプションがあり、正規表現の最後のスラッシュの後に追加できます。
/i | 大文字と小文字を区別しないマッチング |
---|---|
/s | 文字列を単一行として扱い、ドット文字クラスは改改行コード文字を含みます |
/m | 複数行モード: ^ および $ 文字は、文字列内の任意の行に一致します (文字列の先頭または末尾ではなく) |
エディターで文字を入力または削除するか、インスペクタを使用してオプションをオンまたはオフにできます。生成された正規表現のプレビューはインスペクタで利用できます。
定義を再利用する
プロジェクト全体で頻繁に使用されるパターンの正規表現を再利用するには、別のルートを作成します。
モデル -> 新規 -> jetbrains.mp.baseLanguage.regexp-> 正規表現
それぞれの再利用可能な正規表現は名前と、必要に応じて説明を持つべきです。
パターンマッチ演算子
文字列が指定されたパターンと一致する場合、= 〜演算子は true を返します。
テキストをキャプチャーする
式の中で括弧をオプションで使用すると、キャプチャーグループが作成されます。後でそのグループを参照できるようにするには、名前を付けることをお勧めします。
サンプル
パターンが文字列と一致する場合、一致した値は識別子にキャプチャーされ、if ブロックでアクセスできます。
さらに徹底的に言語を紹介するために、正規表現クックブックをチェックしてください。
関連ページ:
正規表現
正規表現言語の概要:導入正規表現言語(テキスト操作を大幅に簡素化する言語)は、現在最も使用されているドメイン固有の言語の 1 つです。ほとんどすべての開発者が少なくとも 1 回は使用しています。Perl や Python などの一部の言語には、サポートが組み込まれています。Java などの一部は、ライブラリを介して使用します。MPS の実装に使用する言語である Java には、正規表現の言語レベルのサポートがないため、DSL を実装するのが自然であったため、正規表現ライブラリの代わりに DSL...
MPS Kotlin 言語
入門:MPS Kotlin を使用するには、型システムプラグインをインストールする必要があります。その方法については、プラグインページを参照してください。このプラグインは、作成するコードに適切な型を取得するために必要です。インストールしたら、型システムを有効にするために必要なことは、MPS ウィンドウの右下にある Coderules ウィジェットを切り替えることだけです。コードルールは、型システムのベースとなるフレームワークです。余談ですが、コードがモデルに書き留められると、生成 / テキスト...
型拡張メソッド
Jetbrains.mps.baseLanguage.extensionMethods 言語は、Java の静的メソッドに似た、新しく定義されたメソッドまたはオーバーライドされたメソッドを使用して有効な MPS 型を拡張する方法を提供します。