2011-12-15 18 views
5

を解析?具体的にどのようにそれらを解析するのですか?のOCaml - ファイルや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)]

は、構文解析のために何か良いチュートリアルがありますしたいですか?

+2

質問を再投稿しないでください。既存の質問に新しいものを追加する場合は、代わりに編集してください。 – BoltClock

答えて

2

文法を指定してocamlでレクサーとパーサーを生成する場合は、ocamllexocamlyaccチュートリアルを参照してください。このようにすることをお勧めします。あなたが本当にあなただけのファイル形式でトークンのいずれかのタイプを持っている場合は、単に文法によって有効と考えられているトークンにファイルを分割するレクサーを使用することができれば、その後、ocamlyaccはやり過ぎかもしれません。

5

これはmenhirパーサジェネレータ(ocamlyacc後継)のための良好なユースケースです。レキシングにはocamllexを使用します。すべては良い文書を持っています。

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

また、lexing & parsingのウィキペディアのページも参照してください。

+0

いくつかのコード例を紹介していただけますか? – priyanka

+3

文書にはコード例があります。 –

3

私はAurochsのようなもののためのPEGパーサーを使用する傾向があります。レポにはサンプルコードがあります。

関連する問題