-
Notifications
You must be signed in to change notification settings - Fork 0
Home
mizuky fujitani edited this page Oct 9, 2017
·
3 revisions
このWikiではパーサーコンビネータ・ライブラリ unclazz-parsec
のコンポーネントやそれらを使ってパーサーを組み立てる方法を説明しています。
次に示すのはこのライブラリの主要コンポーネントとなるクラスもしくはインターフェースです。 多くが org.unclazz.parsec
パッケージに含まれています。
クラス | 説明 |
---|---|
Parser |
パーサーを表す抽象クラスです。このパーサーはパース成否に関わらず決して値のキャプチャを行いません。特定の文字や文字クラスにマッチするパーサー、特定のキーワードにマッチするパーサーなど、多くのパーサーはこのクラスの派生型です。Parsers やParser 自身が提供するprotected なファクトリーメソッドを通じてインスタンスを得ることができるほか、後述のValParser<T> をParser へ変換することも可能です。 |
ValParser<T> |
パーサーを表す抽象クラスです。型パラメータはパース結果の型を表します。このパーサーは値のキャプチャも行います。Parsers やValParser<T> 自身が提供するprotected なファクトリーメソッドを通じてインスタンスを得ることができるほか、前述のParser をValParser<T> へ変換することも可能です。 |
Parsers |
定義済みパーサーの静的ファクトリーメソッドを提供するユーティリティです。import static の使用をおすすめします。 |
TextReader |
入力データソースを表すクラスです。このクラスが公開する静的ファクトリーメソッドを使い各種データ型からインスタンスを生成します。 |
Context |
Parser#parse(...) やValParser<T>#parse(...) の引数となるクラスです。パーサーに対してTextReader へのアクセスやログ出力機能などを提供します。 |
Result |
Parser のパース結果を表すクラスです。isSuccessful() でパース成否を、message() でパース失敗の理由を示すメッセージを取得できます。 |
ValResult<T> |
ValParser<T> のパース結果を表すクラスです。isSuccessful() プロパティでパース成否を、value() でキャプチャ結果を、message() でパース失敗の理由を示すメッセージを取得できます。 |
CharClass |
文字クラスを表す抽象クラスです。charIn(CharClass) などのファクトリーメソッドの引数として利用します。CharClass 自身が公開する静的ファクトリーメソッドを通じて派生クラスのインスタンスを得られます。 |
ライブラリのユーザ開発者は抽象クラスParser<T>
・Parser
の派生クラスを実装するか、
Parsers
ユーティリティが提供する静的ファクトリーメソッドを通じて得られる定義済みパーサーを組み合わせてパーサーを実装します。
パーサーの実装方法について詳しくはパーサーを組み立てるページを参照してください。
Parser
・ValParser<T>
が公開するファクトリーメソッドについてはファクトリーメソッドに主要なものの一覧があります。
いくつかのファクトリーの引数として使用する文字クラスについては文字クラスのページを参照してください。