Skip to content

コンパイル時パーサジェネレータ: ctpg

Nakano Masaki edited this page Apr 26, 2017 · 11 revisions

ctpgは、D言語用の型付きパーサジェネレータライブラリです。生成されたパーサは再起下降構文解析を行います。

目次

特徴

  • PEGに似た、独自のDSLでパーサを定義する
  • コンパイル時にパーサを生成できる。裏を返すと、コンパイル時にしか生成できない
  • 生成されたパーサはコンパイル時にも実行時にも動作する
  • 実行時には解析結果をメモ化出来る
  • 生成されたパーサは、文字列だけでなく文字型を要素とするForwardRangeも入力として受け取れる
  • パーサの結果型がチェックされる

導入方法

DUBを使うと簡単に導入できます。その場合、package.jsonに以下のようなdependenciesを追加します。

{
    "name": "your_project",
    "dependencies": {
        "ctpg": "~master"
    }
}

DUBについては、以下の記事が参考になります。

ドキュメント

チュートリアル: 基本

チュートリアル: 四則演算式

チュートリアル: JSON

DSLのリファレンス

既知のバグ