12.1 Overview of ocamllex

12.1.1. Options

ocamllex は lex のように、正規表現の集合と、それに対応するセマンティクスから字句解析器を生成します。入力ファイルが lexer.mll であるとき、以下のようにして字句解析器の Caml コードファイル lexer.ml を生成することができます。

ocamllex lexer.mll

このファイルでは字句解析器の定義で、エントリーポイントあたり 1 つの関数が定義されています。それぞれの関数名はエントリーポイントの名前と同じです。それぞれの字句解析関数は字句解析バッファを引数に取り、それぞれ関連付けられたエントリーポイントの文法属性を返します。

字句解析バッファは標準ライブラリ Lexing モジュール内で抽象データ型 (abstract data type) として実装されています。Lexing.from_channel 、Lexing.from_string 、Lexing.from_function はそれぞれ入力チャンネル、文字列、読み込み関数を読んで、字句解析バッファを返します (Lexing モジュールの解説は 20 章にあります) 。

使用する際は ocamlyacc で生成されるパーザと結合して、構文解析器で定義されている型 token に属する値をセマンティクスに基づいて計算します (ocamlyacc については後述) 。

12.1.1 Options

ocamllexは、以下のコマンドラインオプションをサポートします。

-o output-file

ocamllexによって生成されるファイルの名前を指定します。デフォルトは、ocamllex lexer.mllで起動された場合はlexer.mlです。

-ml

Camlのビルトインのオートマトンインタプリタを使用しないコード生成します。その代わり、オートマトンはCamlの関数にエンコードされます。このオプションは、ocamllexのデバッグに便利ですが、通常用いることはお勧めしません。

-q

Quietモード。ocamllexは通常、標準出力に情報を表示します。-qが使われた場合はこれらが表示されなくなります。 :-version|バージョンを表示し終了します。