OCaml の文字リテラルについて質問していると思います。これらは、OCaml マニュアルのセクション 6.1 で定義されています。
一重引用符の場合は、'\''
または'\x27'
またはと書くことができます'\039'
。これらはすべて等価です。%
すべての文字リテラルは一重引用符で囲みます。パーセント ( )で始まる形式はありません。
ocamllex の正規表現には、単一の文字を表す文字リテラル (上記のように)、または一連の文字を表す文字列リテラル (二重引用符で囲む) を含めることができます。文字列リテラルは、文字リテラルと同じパターンに従います。一重引用符のみを含む文字列は、"'"
or"\'"
または"\x27"
orになり"\039"
ます。
これが役立つことを願っています。
編集:
はい、['\x09']
と'\x09'
と"\x09"
は正規表現と考えれば同じです。1 つのものを含むセットは、その 1 つのもの自体と同じものを示します。同様に、長さ 1 のシーケンスはただ 1 つのものと同じです。
Unicode の値 0x3000 は、「Ideographic Space」を表します (中国語、日本語、および韓国語で使用されていると思います)。OCaml での Unicode の処理は、まったく別のトピックです。Camomileという OCaml 用の Unicode ライブラリがあります。利用したことはありませんが、見た限りでは評価が高いです。ocamllex は Unicode では動作しないと思います。すばやくグーグル検索すると、Unicode を処理するulexという名前のレクサー ジェネレーターが表示されます。おそらく他にもありますが、これは Google のトップ ヒットです。
(おっと、Jonathan Protzenko はすでに ulex を推奨しているようです。余分なノイズで申し訳ありません。)