Xarpegチュートリアル
Kotlinで強力なパーサを構築する方法を学びましょう。このチュートリアルでは、基本的な概念から高度なテクニックまで、段階的にガイドします。
前提条件
- Kotlinの基本的な知識(関数、ラムダ、クラス)
- 正規表現の知識(あると便利ですが必須ではありません)
- コード補完に対応したKotlin対応IDE
インストール
build.gradle.ktsにXarpegを追加します:
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.mirrgieriana:xarpeg:<latest-version>")
}
xarpegアーティファクトは、Gradleモジュールメタデータを使用して、プロジェクト設定に基づいて正しいプラットフォーム固有のバリアント(JVM、JS、Nativeなど)に自動的に解決されます。
最新バージョンはReleasesで確認できます。
チュートリアルステップ
1. クイックスタート
数分で最初のパーサを構築します。基本的な構文を学び、シンプルなキーバリューパーサを実行します。
学習内容: リテラルと正規表現からのパーサ作成、*による連結、-によるトークンの無視、mapによる結果の変換
2. コンビネータ
ビルディングブロックをマスターします:シーケンス、選択、繰り返し、オプショナル解析。
学習内容: +による選択、繰り返し(.zeroOrMore、.oneOrMore)、オプショナル、入力境界、より良いエラーメッセージのためのパーサへの名前付け
3. 式と再帰
再帰的な文法と式解析のための演算子優先順位を扱います。
学習内容: ref { }による前方参照、左/右結合性、算術パーサの構築、適切な型宣言
4. 実行時の動作
パーサがエラー、入力消費、キャッシングをどのように処理するかを理解します。
学習内容: 例外の種類、DefaultParseContextによるエラー追跡、メモ化制御、デバッグ技法
5. 解析位置
より良いエラーメッセージとソースマッピングのための位置情報を抽出します。
学習内容: mapExによる位置追跡、行/列番号の計算、マッチしたテキストの抽出
6. テンプレート文字列
トークン化なしで複雑なネストした構造を解析します。
学習内容: 埋め込み式の処理、PEGによるコンテキスト切り替え、再帰的な文字列/式解析
完全な例
JSONパーサ
エスケープシーケンス、ネストした構造、包括的なテストを含む、すべてのJSON型を処理する完全な実装。
機能:
- 文字列エスケープシーケンス(
\"、\\、\n、\uXXXX) - 数値(整数、小数、科学記法)
ref { }による再帰的な配列とオブジェクト- カスタム区切り文字処理
算術インタプリタ
行/列位置を含むエラー報告を備えた、評価機能付き式パーサ。
機能:
- 優先順位を持つ4つの算術演算
- グループ化のための括弧
- 位置情報付きゼロ除算エラー報告
- コマンドラインインターフェース
オンラインパーサデモ
リアルタイムの解析と評価を示すインタラクティブなブラウザベースのパーサ。
| → ライブデモを試す | ソースを見る |
追加リソース
APIドキュメント
- IDE内のKDoc - インラインドキュメントのためにコード補完を使用
- Parser.kt - コアインターフェースとヘルパー
- parsersパッケージ - コンビネータの実装
テスト
- ParserTest.kt - 包括的な動作例
- ErrorContextTest.kt - エラー追跡の例
実際の使用例
- Xarpite - 複雑な文法解析にXarpegを使用している本番アプリケーション
ヘルプが必要ですか?
- GitHub Issues - バグ報告や機能リクエスト
- メインREADME - クイックリファレンスと概要