5

ocamlのファイルからコンテンツを読み取る方法は?具体的にはそれらを解析する方法は?

例 :

ファイルに次のものが含まれているとします(a,b,c);(b,c,d)| (a,b,c,d);(b,c,d,e)|

これを読んだ後、私はとを含む2つのリストが必要l1 = [(a,b,c);(b,c,d)]ですl2 = [(a,b,c,d);(b,c,d,e)]

構文解析のための良いチュートリアルはありますか?

4

3 に答える 3

5

これは、 menhirパーサージェネレーター(の後継)の良いユースケースですocamlyacc。字句解析に使用することをお勧めしますocamllex。すべてに優れたドキュメントがあります。

camlp4またはcamlp5ストリーム解析機能を使用することもできます。

字句解析と構文解析に関するウィキペディアのページもお読みください。

于 2011-12-15T07:12:27.597 に答える
3

私は、このようなものにPEGパーサーであるAurochsを使用する傾向があります。そこのリポジトリにサンプルコードがあります。

于 2011-12-15T23:53:55.790 に答える
2

文法を指定し、ocamlにレクサーとパーサーを生成させる場合は、これらのocamllexocamlyaccのチュートリアルを確認してください。このようにすることをお勧めします。ファイル形式に実際に1種類のトークンしかない場合、レクサーを使用してファイルを文法で有効と見なされるトークンに分割できると、ocamlyaccはやり過ぎになる可能性があります。

于 2011-12-16T15:44:38.630 に答える