パーサージェネレータの比較

これは、さまざまな言語クラスの 注目すべきレクサー ジェネレーターパーサー ジェネレーターのリストです。

正規言語

正規言語は、正規表現から構築された状態機械(より具体的には、決定性有限オートマトンまたは非決定性有限オートマトン)によって照合可能な言語のカテゴリ(チョムスキー型3と呼ばれることもあります)です。特に、正規言語は「AはBに続く」、「AまたはB」、「Aの後に0個以上のBが続く」といった構成を照合できますが、「Aのいくつかのインスタンスの後に同じ数のBのインスタンスが続く」といった、隣接しない要素間の一貫性を要求する構成を照合することはできません。また、再帰的な「ネスト」(「すべてのAの後に、対応するBが続く」)の概念も表現できません。正規文法が扱えない問題の典型的な例としては、与えられた文字列に正しくネストされた括弧が含まれているかどうかという問題があります。(これは通常、チョムスキー型2文法(文脈自由文法とも呼ばれます)によって処理されます。)

名前 レクサーアルゴリズム 出力言語 文法、コード 開発プラットフォーム ライセンス
アレックス DFA ハスケル 混合 全て フリー、BSD
アノフレックス DFA ジャワ 混合 Java仮想マシン フリー、BSD
アスター DFAテーブル駆動、分岐あり C++ 文法のみ(実践) 全て 無料、MIT
オースティンX DFA ジャワ 全て フリー、BSD
C# フレックス DFA C# 混合 .NET の CLR 無料、GNU GPL
C# レックス DFA C# 混合 .NET の CLR ?
クックCC DFA ジャワ 混合 Java仮想マシン 無料、Apache 2.0
DFA DFA圧縮行列 CC++ Windows、Visual Studio BSD
イルカ DFA C++ 全て 独自の
フレックス DFAテーブル駆動 CC++ 混合 全て フリー、BSD
ジェレックス DFA エッフェル 混合 エッフェル 無料、MIT
ゴレックス DFA 行く 混合 行く フリー、BSDスタイル
gplex DFA C# 混合 .NET の CLR フリー、BSDライク
Jフレックス DFA ジャワ 混合 Java仮想マシン フリー、BSD
JLex DFA ジャワ 混合 Java仮想マシン フリー、BSDライク
レックス DFA C 混合 POSIX 部分的、独自CDDL
レクサートル DFA C++ ? 全て 無料、GNU LGPL
クエックス DFAダイレクトコード CC++ 混合 全て 無料、GNU LGPL
ラゲル DFA GoCC++Javaアセンブリ 混合 全て フリー、GNU GPLMIT [1] [2]
RE/フレックス DFA直接コード、DFA テーブル駆動、NFA正規表現ライブラリ C++ 混合 全て フリー、BSD
re2c DFAダイレクトコード CC++GoRust 混合 全て 無料、パブリックドメイン

決定論的文脈自由言語

文脈自由言語は、一連の置換規則によってマッチングできる言語のカテゴリ(チョムスキー型2と呼ばれることもあります)です。各置換規則は、基本的に各非終端要素を一連の終端要素および/または他の非終端要素にマッピングします。このタイプの文法は、正規文法でマッチングできるものすべてにマッチングでき、さらに、再帰的な「ネスト」(「すべてのAの後には、対応するBが続く」)の概念(たとえば、与えられた文字列に正しくネストされた括弧が含まれているかどうかなど)を扱うことができます。ただし、文脈自由文法の規則は純粋に局所的であるため、「関数で使用されるすべての変数の宣言は存在するか?」などの非局所的な分析を必要とする質問には対応できません。技術的にこれを行うには、チョムスキー型1文法(文脈依存文法とも呼ばれます)などのより高度な文法が必要になります。ただし、文脈自由文法用のパーサージェネレーターは、多くの場合、ユーザー記述コードが限定的な文脈依存性を導入する機能をサポートしています。(たとえば、変数宣言に遭遇すると、ユーザー記述コードは変数の名前と型を外部データ構造に保存し、後でパーサーによって検出された変数参照と照合することができます。)

決定性文脈自由言語は、決定性プッシュダウンオートマトンによって効率的に解析できる文脈自由言語の適切なサブセットです

名前 解析アルゴリズム 入力文法表記 出力言語 文法、コード レクサー 開発プラットフォーム IDE ライセンス
アントラー4 適応型LL(*) [3] EBNF C#JavaPythonJavaScriptC++SwiftGoPHP 生成された Java仮想マシン はい フリー、BSD
アントラー3 LL(*) EBNF ActionScriptAda95CC++C#JavaJavaScriptObjective-CPerlPythonRuby 混合 生成された Java仮想マシン はい フリー、BSD
APG [要引用] 再帰下降バックトラック ABNF PythonJavaScriptCJava なし 全て いいえ フリー、BSD
ビーバー[4] [5] LALR (1) EBNF ジャワ 混合 外部の Java仮想マシン いいえ フリー、BSD
バイソン LALR (1)、LR (1)、IELR(1)、GLR ヤック CC++DJava 混合 外部の 全て いいえ フリー、例外ありの GNU GPL
BtYacc バックトラック ボトムアップ ? C++ 混合 外部の 全て いいえ 無料、パブリックドメイン
byacc LALR (1) ヤック C 混合 外部の 全て いいえ 無料、パブリックドメイン
CL-ヤック[6] [7] LALR (1) Lisp コモンリスプ 混合 外部の 全て いいえ 無料、MIT
ココ/R LL (1) + 意味述語 EBNF CC++C#F#JavaAdaObject PascalDelphiModula-2OberonRubySwiftUniconVisual Basic .NET 混合 生成された Java仮想マシン.NETフレームワーク、WindowsPOSIX(出力言語によって異なります) いいえ 無料、GNU GPL
CppCC [8] [9] LL(k) ? C++ 混合 生成された POSIX いいえ 無料、GNU GPL
カップ[10] [11] LALR (1) ? ジャワ 混合 外部の Java仮想マシン いいえ フリー、BSDライク
エリ[12] [13] LALR (1) ? C 混合 生成された POSIX いいえ フリー、GNU GPLGNU LGPL
エッセンス[14] LR(?) ? スキーム48 混合 外部の 全て いいえ フリー、BSD
eyapp [15] LALR (1) ? パール 混合 外部または生成された 全て いいえ 自由、芸術的
ゴールド[16] LALR (1) BNF x86 アセンブリ言語ANSI CC#DJavaPascalObject PascalPythonVisual Basic 6、Visual Basic .NETVisual C++ 生成された ウィンドウズ はい 無料、zlib修正済み
姫パーサージェネレータ[17] LALR(1)、GLR BNF方言 C#JavaRust 生成された .NETフレームワーク、Java仮想マシン いいえ 無料、GNU LGPL
ヒャック[18] LR(1)、LALR(1)、LR (0) ヤック C 混合 外部の 全て いいえ 無料、GNU GPL
JavaCC [19] [20] LL(k) EBNF JavaC++JavaScript ( GWTコンパイラ経由[21] 混合 生成された Java仮想マシン はい フリー、BSD
JFLAP LL (1)、LALR (1) ? ジャワ ? ? Java仮想マシン はい ?
ジェットPAG LL(k) ? C++ 混合 生成された 全て いいえ 無料、GNU GPL
JS/CC LALR (1) EBNF JavaScriptJScriptECMAScript 混合 内部 全て はい フリー、BSD
KDevelop-PG-Qt LL(1)、バックトラッキング操車場 ? C++ 混合 生成されたか外部 すべて、KDE いいえ 無料、GNU LGPL
ケルブト バックトラッキング LALR(1) ? C++ 混合 生成された POSIX いいえ 無料、GNU GPL
kmyacc LALR (1) ? CJavaPerlJavaScript 混合 外部の 全て いいえ 無料、GNU GPL
ラップ LALR (1) ? CC++C#JavaJavaScript 混合 生成された Java仮想マシン いいえ 無料、GNU GPL
ラーク LALR(1)、アーリー(SPPF) EBNF PythonJavaScript 混合 生成された 全て はい 無料、MIT
レモン LALR (1) BNF方言[22] C 混合 外部の 全て いいえ 無料、パブリックドメイン
レザー[23] [24] [25] LR(1)、GLR EBNF方言 JavaScript 生成された Node.jsJavaScript いいえ 無料、MIT
ライム LALR (1) ? PHP 混合 外部の 全て いいえ 無料、GNU GPL
リサ LR (?)、LL (?)、LALR (?)、SLR (?) ? ジャワ 混合 生成された Java仮想マシン はい 無料、パブリックドメイン
LLgen LL (1) ? C 混合 外部の POSIX いいえ フリー、BSD
LLネクストジェン LL (1) ? C 混合 外部の 全て いいえ 無料、GNU GPL
LLLPG LL (k) +統語的述語と意味的述語 ANTLRのような C# 混合 生成された(?) .NETフレームワーク、Mono ビジュアルスタジオ 無料、GNU LGPL
LPG バックトラッキング LALR(k) ? ジャワ 混合 生成された Java仮想マシン いいえ 無料、プレミアリーグ
LRSTAR [26] LALR(1)、LALR(*) YACC、ANTLR、EBNF C++ 生成された ウィンドウズ ビジュアルスタジオ フリー、BSD
メンヒル LR (1) ? OCaml 混合 生成された 全て いいえ 無料、QPL
ML-Yacc LALR (1) ? ML 混合 外部の 全て いいえ ?
LR (1) ? ジャワ 生成された Java仮想マシン いいえ 無料、GNU GPL
ムスタ LALR (k), LR (k) YACCEBNF CC++ 混合 外部または生成された POSIXCygwin いいえ 無料、GNU GPL
MTP (解析以上のもの) LL (1) ? ジャワ 生成された Java仮想マシン いいえ 無料、GNU GPL
マイパーサー LL(*) マークダウン C++11 内部 標準のC++11コンパイラを備えたもの いいえ 無料、MIT
新改訳聖書 GLR C# / BNFライク C# 混合 混合 .NETフレームワーク いいえ 無料、MIT
ocamlyacc LALR (1) ? OCaml 混合 外部の 全て いいえ 無料、QPL
オレックス LL (1) ? C++ 混合 生成された 全て いいえ 無料、GNU GPL
パーセク LLバックトラック ハスケル ハスケル 混合 なし 全て いいえ フリー、BSD
ヤップ[15] LALR (1) ? パール 混合 外部の 全て いいえ 無料、GNU GPL
パーサーオブジェクト LL(k) ? ジャワ 混合 ? Java仮想マシン いいえ 無料、zlib
PCCTS LL ? CC++ ? ? 全て いいえ ?
プライ LALR (1) BNF パイソン 混合 生成された 全て いいえ 無料、MIT
プライプラス LALR (1) EBNF パイソン 生成された 全て いいえ 無料、MIT
プレック LL(k) ? C 生成された DOSPOSIX いいえ 無料、GNU GPL
QLALR LALR (1) ? C++ 混合 外部の 全て いいえ 無料、GNU GPL
ラック[27] LALR (1) BNFライク、yaccライク[28] ルビー 混合 ? Windows、Linux、macOS、FreeBSD、NetBSD いいえ LGPL
レックス[29] LL (1) sLL(k) LR (k) LALR (k) GLR PEG DFA文脈依存語彙 EBNF C++C#JavaJavaScriptGoHaxePythonScalaTypeScriptXQueryXSLT 生成された 全て いいえ 無料、Apacheライセンス2.0
セーブルCC LALR (1) ? CC++C#JavaOCamlPython 生成された Java仮想マシン いいえ 無料、GNU LGPL
SLK [30] LL (k) LR (k) LALR (k) EBNF CC++C#JavaJavaScript 外部の 全て いいえ SLK [31]
スライ[32] LALR (1) BNF パイソン 混合 生成された 全て いいえ フリー、BSD
SP(シンプルパーサー) 再帰降下 パイソン パイソン 生成された 全て いいえ 無料、GNU LGPL
精神 再帰降下 ? C++ 混合 内部 全て いいえ 無料、ブースト
スティクス LALR (1) ? CC++ 生成された 全て いいえ 無料、GNU LGPL
スウィートパーサー LALR (1) ? C++ 生成された ウィンドウズ いいえ 無料、zlib
タップ LL (1) ? C++ 混合 生成された 全て いいえ 無料、GNU GPL
テキストトランスフォーマー LL(k) ? C++ 混合 生成された ウィンドウズ はい 独自の
タイニーPG LL (1) ? C#Visual Basic ? ? ウィンドウズ はい 部分的、CPOL 1.0
おもちゃパーサージェネレーター 再帰降下 ? パイソン 混合 生成された 全て いいえ 無料、GNU LGPL
TP ヤック LALR (1) ? ターボパスカル 混合 外部の 全て はい 無料、GNU GPL
ツリーシッター[33] LR(1)、GLR JavaScript DSLJSON C、バインディング(RustWebAssemblyJavaScriptPython、その他多数) 生成 + 外部 全て NeovimHelixGNU Emacs、Lapce、Zed 無料、MIT
トンネル文法スタジオ トンネル解析 ABNF C++ 生成された ウィンドウズ はい 独自の
ウルトラグラム LALR(1)、LR(1)、GLR BNF C++、Java、C#、Visual Basic .NET 外部の ウィンドウズ はい 無料、パブリックドメイン
ユニCC LALR (1) EBNF CC++PythonJavaScriptJSONXML 混合 生成された POSIX いいえ フリー、BSD
アーチンCC LL (1) ? ジャワ ? 生成された Java仮想マシン いいえ ?
ヤック AT&T /サン LALR (1) ヤック C 混合 外部の POSIX いいえ 無料、CPLCDDL
ヤック++ LR (1)、LALR (1) ヤック C++C# 混合 生成されたか外部 全て いいえ 独自の
ヤップス LL (1) ? パイソン 混合 生成された 全て いいえ 無料、MIT
イェック LALR (1) ? アーラン 生成された 全て いいえ 無料、Apache 2.0
ビジュアルBNF [34] LR (1)、LALR (1) ? C# 生成された .NETフレームワーク はい 独自の
ユパース LR (1)、LALR (1) ? C++ 混合 外部の 全て いいえ 無料、MIT
解析[35] LR (1) C++における BNF ? ? なし C++11標準コンパイラ いいえ 無料、MIT
GGLL LL (1) グラフ ジャワ 混合 生成された ウィンドウズ はい 無料、MIT
製品 解析アルゴリズム 入力文法表記 出力言語 文法、コード レクサー 開発プラットフォーム IDE ライセンス

構文解析式文法、決定論的ブール文法

この表は、パーサー ジェネレーターと解析式文法、決定論的ブール文法を比較します。

名前 解析アルゴリズム 出力言語 文法、コード 開発プラットフォーム ライセンス
オースティンX パックラット(改造) ジャワ 全て フリー、BSD
オーロックス パックラット COCamlJava 混合 全て 無料、GNU GPL
BNFlite 再帰降下 C++ 混合 全て 無料、MIT
キャノピー パックラット JavaJavaScriptPythonRuby 全て 無料、GNU GPL
CLペグ パックラット コモンリスプ 混合 全て 無料、MIT
ちくしょう! パックラット D 混合 全て 無料、GNU GPL
フリスビー パックラット ハスケル 混合 全て フリー、BSD
文法::ペグ パックラット Tcl 混合 全て フリー、BSD
グラコ パックラット+ カット + 左再帰 PythonC++(ベータ版) 全て フリー、BSD
アイアンメタ パックラット C# 混合 ウィンドウズ フリー、BSD
ラジャ 2フェーズのスキャナレストップダウンバックトラッキング+ ランタイムサポート ジャワ 全て 無料、GNU GPL
lars::パーサー Packrat(左再帰と文法の曖昧さをサポート) C++ 同一 全て フリー、BSD
LPeg 解析マシン ルア 混合 全て 無料、MIT
ラグ 解析マシン C++17 混合 全て 無料、MIT
ねずみ 再帰下降(修正、限定的なメモ化と左再帰) ジャワ Java仮想マシン 無料、Apache 2.0
イッカク パックラット C 混合 POSIXWindows フリー、BSD
ニアリー アーリー JavaScript 混合 全て 無料、MIT
ネメル・ペグ 再帰降下法 + プラット ネメルル 全て フリー、BSD
ネオトーマ パックラット アーラン 全て 無料、MIT
ネズ[36] 解析マシン JavaC Java仮想マシン フリー、BSD
NPEG 再帰降下 C# 混合 全て 無料、MIT
Oメタ Packrat(修正版、部分的なメモ化) JavaScriptSqueakPython 混合 全て 無料、MIT
パックCC Packrat(修正版、左再帰サポート) C 混合 全て 無料、MIT
パックラット パックラット スキーム 混合 全て 無料、MIT
パピー パックラット ハスケル 混合 全て フリー、BSD
パーボイルド 再帰降下 JavaScala 混合 Java仮想マシン 無料、Apache 2.0
ラムダPEG 再帰降下 ジャワ 混合 Java仮想マシン 無料、Apache 2.0
パーセップ 再帰降下 C++ 混合 全て 無料、パブリックドメイン
パースニップ パックラット C++ 混合 ウィンドウズ 無料、GNU GPL
パターン 解析マシン 迅速 同一 全て 無料、MIT
ペグ 再帰降下 C 混合 全て 無料、MIT
PEG.js Packrat(部分的なメモ化) JavaScript 混合 全て 無料、MIT
ペギー[37] Packrat(部分的なメモ化) JavaScript 混合 全て 無料、MIT
ペガサス 再帰降下、パックラット(選択的) C# 混合 ウィンドウズ 無料、MIT
ペグ 再帰降下 C 混合 全て 無料、パブリックドメイン
害虫 再帰降下 さび 全て 無料、MITApache 2.0
プチパーサー パックラット SmalltalkJavaDart 混合 全て 無料、MIT
ペグトル[38] 再帰降下 C++11C++17 混合 全て 無料、ブースト
パーサー文法エンジン(PGE) ハイブリッド再帰降下法 / 演算子優先順位[39] パロットバイトコード 混合 Parrot仮想マシン 自由で芸術的な2.0
PyPy rlib パックラット パイソン 混合 全て 無料、MIT
ネズミだ! パックラット ジャワ 混合 Java仮想マシン 無料、GNU LGPL
スピリット2 再帰降下 C++ 混合 全て 無料、ブースト
ツリートップ 再帰降下 ルビー 混合 全て 無料、MIT
ヤード 再帰降下 C++ 混合 全て 無料、MITまたはパブリックドメイン
ワックスアイ 解析マシン CJavaJavaScriptPythonRacketRuby 全て 無料、MIT
PHP ペグ PEG パーサー? PHP 混合 全て フリー、BSD

一般的な文脈自由言語、論理積言語、ブール言語

この表は、パーサー ジェネレーター言語を、一般的な文脈自由文法連言文法、またはブール文法と比較します。

名前 解析アルゴリズム 入力文法表記 出力言語 文法、コード レクサー 開発プラットフォーム IDE ライセンス
アクセント アーリー Yaccバリアント C 混合 外部の 全て いいえ 無料、GNU GPL
アページド GLRLALR(1)、LL(k) ? D 混合 生成された 全て いいえ 自由、芸術的
バイソン LALR (1)、LR (1)、IELR(1)、GLR ヤック CC++D[40] JavaXML XMLを除く混合 外部の 全て いいえ 無料、GNU GPL
DMS ソフトウェア リエンジニアリング ツールキット GLR ? パランセ 混合 生成された ウィンドウズ いいえ 独自の
DParser スキャナーレスGLR ? C 混合 スキャナーレス POSIX いいえ フリー、BSD
ディプゲン ランタイム拡張可能な GLR ? OCaml 混合 生成された 全て いいえ 無料、CeCILL -B
E3 アーリー ? OCaml 混合 外付け、またはスキャナーレス 全て いいえ ?
エルクハウンド GLR ? C++OCaml 混合 外部の 全て いいえ フリー、BSD
GDK LALR(1)、GLR ? CLexHaskellHTMLJavaObject PascalYacc 混合 生成された POSIX いいえ 無料、MIT
ハッピー LALRGLR ? ハスケル 混合 外部の 全て いいえ フリー、BSD
姫パーサージェネレーター GLR ? C#JavaRust 生成された .NETフレームワーク、Java仮想マシン いいえ 無料、GNU LGPL
IronTextライブラリ LALR(1)、GLR C# C# 混合 生成されたか外部 .NETフレームワーク いいえ 無料、Apache 2.0
ジソン LALR(1)、LR(0)、SLR(1) ヤック JavaScriptC#PHP 混合 生成された 全て いいえ 無料、MIT
構文 LALR (1)、LR (0)、SLR (1) 、 CLR (1)、LL (1) JSON /ヤック JavaScriptPythonPHPRubyC++C#RustJava 混合 生成された 全て いいえ 無料、MIT
ラジャ スキャナーレス、2相 ラジャ ジャワ スキャナーレス 全て いいえ 無料、GNU GPL
モデルCC アーリー 注釈付きクラスモデル ジャワ 生成された 生成された 全て いいえ フリー、BSD
P3 アーリー結合子 BNFのような OCaml 混合 外付け、またはスキャナーレス 全て いいえ ?
P4 アーリー結合子、無限CFG BNFのような OCaml 混合 外付け、またはスキャナーレス 全て いいえ ?
スキャナレスブールパーサー スキャナレスGLRブール文法 ? HaskellJava スキャナーレス Java仮想マシン いいえ フリー、BSD
自衛隊/SGLR スキャナーレスGLR 自衛隊 CJava スキャナーレス 全て はい フリー、BSD
スマCC GLR (1)、LALR (1)、LR (1) ? 雑談 混合 内部 全て はい 無料、MIT
スパーク アーリー ? パイソン 混合 外部の 全て いいえ 無料、MIT
トム GLR ? C 生成された なし 全て いいえ 無料、「ライセンスや著作権の制限なし」
ウルトラグラム LALRLRGLR ? C++C#JavaVisual Basic .NET 生成された ウィンドウズ はい 独自の
ワームホール 剪定LRGLRスキャナーレスGLR ? CPython 混合 スキャナーレス ウィンドウズ いいえ 無料、MIT
クジラの子 一般表形式、SLL(k)、線形正規形(連言文法)、LR、二項正規形(ブール文法 ? C++ 外部の 全て いいえ 独自の
ヤップ アーリー Yaccのような C 混合 外部の 全て いいえ 無料、GNU LGPL

文脈依存文法

この表は、パーサー ジェネレーターとコンテキスト依存文法を比較します。

名前 解析アルゴリズム 入力文法表記 ブール文法能力 開発プラットフォーム ライセンス
bnf2xml 再帰降下(テキストフィルタの出力はxmlです) シンプルなBNF [説明が必要]文法(入力マッチング)、出力はxml ? ベータ版であり、完全なEBNFパーサーではない 無料、GNU GPL

参照

参考文献

  1. ^ 「Ragel ステートマシン コンパイラ」。
  2. ^ http://www.colm.net/open-source/ragel/ [検証が必要]
  3. ^ 「適応型LL(*)解析:動的解析の威力」(PDF) . Terence Parr . 2016年4月3日閲覧
  4. ^ Boyland, John; Spiewak, Daniel (2010-09-17). 「ツールペーパー: ScalaBison 再帰的上昇降下パーサージェネレータ」.理論計算機科学における電子ノート. 第9回言語記述ツールとアプリケーションワークショップ (LDTA 2009) 議事録. 253 (7): 65– 74. doi : 10.1016/j.entcs.2010.08.032 . ISSN  1571-0661.
  5. ^ 「Beaver - LALRパーサージェネレーター」beaver.sourceforge.net . 2023年9月16日閲覧
  6. ^ Newton, Jim E.; Demaille, Akim; Verna, Didier (2016-05-09). 「Common Lispにおける異種シーケンスの型検査」(PDF) .第9回ヨーロッパLispシンポジウム議事録. ELS2016. クラクフ, ポーランド: ヨーロッパLisp科学活動協会: 13–20 . ISBN 978-2-9557474-0-7
  7. ^ 「CL-Yacc — Common Lisp用のLALR(1)パーサージェネレーター」www.irif.fr . 2023年9月16日閲覧
  8. ^ Hosseinpour, Sahereh; Alavi Milani, Mir Mohammad Reza; Pehlivan, Hüseyin (2018年7月). 「数式のためのステップバイステップの解法」. Symmetry . 10 (7): 285. Bibcode :2018Symm...10..285H. doi : 10.3390/sym10070285 . ISSN  2073-8994.
  9. ^ 「CppCCのホームページ」cppcc.sourceforge.net . 2023年9月16日閲覧
  10. ^ 「Java Cup」. pages.cs.wisc.edu . 2023年9月16日閲覧。
  11. ^ "CUP". www2.cs.tum.edu . 2023年9月16日閲覧。
  12. ^ Thiemann, Peter; Neubauer, Matthias (2004-12-31). 「パラメータ化されたLR構文解析」.理論計算機科学における電子ノート. 言語記述、ツール、およびアプリケーションに関する第4回ワークショップ (LDTA 2004) の議事録. 110 : 115–132 . doi : 10.1016/j.entcs.2004.06.007 . ISSN  1571-0661.
  13. ^ Gray, Robert W.; Levi, Steven P.; Heuring, Vincent P.; Sloane, Anthony M.; Waite, William M. (1992). 「Eli: 完全かつ柔軟なコンパイラ構築システム」Communications of the ACM . 35 (2): 121– 130. doi : 10.1145/129630.129637 . ISSN  0001-0782. S2CID  5121773.
  14. ^ Owens, Scott; Flatt, M.; Shivers, O.; McMullan, Benjamin (2004-10-01). 「Schemeにおける字句解析器とパーサージェネレータ」(PDF) . Scheme 2004: 第5回Schemeと関数型プログラミングワークショップ議事録.
  15. ^ ab Areias, Hugo; Simões, Alberto; Henriques, P.; Cruz, Daniela Carneiro da (2010-09-01). Perlにおけるパーサー生成:概要と利用可能なツール(PDF) . コンパイラ、プログラミング言語、関連技術およびアプリケーション 2010.
  16. ^ Volkman, Victor (2007年7月19日). 「Let Your Parser Go for the GOLD」. Developer.com . 2023年11月4日閲覧。
  17. ^ 「C#での解析:使えるツールとライブラリのすべて(パート2) - DZone」。dzone.com 。 2023年11月4日閲覧
  18. ^ オルティン、フランシスコ;キロガ、ホセ。ロドリゲス・プリエト、オスカー。ガルシア、ミゲル (2022-03-03)。 「Lex/Yacc および ANTLR パーサー生成ツールの経験的評価」。プロスワン17 (3) e0264326。Bibcode :2022PLoSO..1764326O。土井10.1371/journal.pone.0264326ISSN  1932-6203。PMC 8893623PMID  35239695。 
  19. ^ Enseling, Oliver (2000年12月29日). 「JavaCCで独自の言語を構築する」. InfoWorld . 2023年11月4日閲覧
  20. ^ "JavaCC". JavaCC . 2023年11月4日閲覧
  21. ^ 「JavaCCとGWTを使ったWebパーサーの構築(パート1)」Chris Ainsley. 2014年4月14日. 2014年5月4日閲覧
  22. ^ 「The Lemon Parser Generator」. sqlite.org . 2023年11月30日閲覧
  23. ^ 「Lezer パーサー システム」。
  24. ^ 「ShopifyQLコードエディターの構築」Shopify . 2023年12月6日閲覧
  25. ^ “Lezer パーサー システムのスポンサー | Tines”. www.tines.com。 2022-03-11 2023 年 12 月 6 日に取得
  26. ^ 「C++ 用の LR(*) パーサー ジェネレーター」。
  27. ^ “Racc”. i.loveruby.net . 2021年11月26日閲覧
  28. ^ 「Racc文法ファイルリファレンス」. i.loveruby.net . 2021年11月26日閲覧
  29. ^ 「REX パーサー ジェネレーターは、C、C++、Java、JavaScript、C#、Go、Haxe、Python、Scala、Typescript、XQuery、および XSLT をサポートしています」。
  30. ^ 「SLK パーサー ジェネレーターは、C、C++、Java、JavaScript、C# をサポートし、オプションのバックトラッキングを無料で提供します」。
  31. ^ http://www.slkpg.com/license.txt [ URL プレーンテキストファイル]
  32. ^ 「SLY(スライ・レックス・ヤック)」.
  33. ^ 「Tree-Sitter - プログラミングツール用の増分解析システム」。
  34. ^ Adam Ślosarski (2007). 「Visual BNF – .NET Framework 向けの形式文法(LALR)とパーサー生成を定義するソフトウェア」Intralogic .
  35. ^ 「Parse - C++用のコンパイル時(LR)型安全パーサージェネレーター」。GitHub 2021年12月30日。
  36. ^ 倉光、公雄 (2015-11-26)、Nez: 実用的なオープン文法言語arXiv : 1511.08307
  37. ^ PEG.jsのフォークをメンテナンス
  38. ^ taocpp/PEGTL, The Art of C++, 2024-03-14 , 2024-03-16取得
  39. ^ 「Parrot: 文法エンジン」。Parrot Foundation。2011年。PGEルールは、再帰下降構文解析と演算子優先順位構文解析の最大限の機能を提供します。
  40. ^ 「宣言の概要(Bison 3.8.1)」www.gnu.org
  • コンパイラ構築ツールのカタログ
  • Javaのオープンソースパーサージェネレータ
「https://en.wikipedia.org/w/index.php?title=Comparison_of_parser_generators&oldid=1330346050」より取得