3

OCaml で LL(1) パーサー ジェネレーターを探しています... 誰か助けてくれませんか?

4

4 に答える 4

2

LALR パーサーは、LL パーサーが解析できる言語の厳密なスーパーセットを解析できます。したがって、Ocaml に同梱されており、LALR(1) パーサー ジェネレーターである ocamlyacc を使用することをお勧めします。これには文法の若干の書き直しが必要になる場合がありますが、それほど難しくはありません。

于 2011-11-09T20:01:40.537 に答える
1

camlp4に含まれているストリームパーサーは(私の知る限りでは)LL(1)パーサーです。http://caml.inria.fr/pub/docs/manual-camlp4/manual003.htmlを参照して ください

于 2011-11-10T12:18:23.503 に答える
1

Planck LL(n) パーサー コンビネーター ライブラリ: https://bitbucket.org/camlspotter/planck/overview

これは私のおもちゃのプロジェクトとして始まり、実際のユーザーはいませんが、オリジナルと 100% 互換性のある OCaml 構文レクサー/パーサーを Planck で実装できました。

使用はお勧めしませんが、興味があれば…試してみてください。

于 2011-11-10T05:27:33.120 に答える
0

メンヒルについて良いことを聞いた

ホームページの上部には次のように書かれています。

Menhir は、OCaml プログラミング言語用の LR(1) パーサー ジェネレーターです。つまり、Menhir は LR(1) 文法仕様を OCaml コードにコンパイルします。Menhir は、François Pottier と Yann Régis-Gianas によって設計および実装されました。

Menhir は ocamlyacc と 90% 互換性があります。従来の ocamlyacc 文法仕様は、Menhir によって受け入れられ、コンパイルされます。結果のパーサーが実行され、正しい解析ツリーが生成されます。

于 2013-06-14T21:39:26.657 に答える