私は、字句のコンセプトに新しいですし、次の例の入力を読み取るためにOCamlではレクサーを記述しようとしています:ocamllexを使用して文字列をレキシングする方法を教えてください。
(blue, 4, dog, 15)
基本的には入力は任意のランダムな文字列または整数のリストです。 int型の入力の多くは、電卓をモデル化しているので、多くの例が見つかりましたが、例やレキシング文字列に関するドキュメントはありませんでした。ここまで私がレクサーとして持っているものは次のとおりです。
(* File lexer.mll *)
{
open Parser
}
rule lexer_main = parse
[' ' '\r' '\t'] { lexer_main lexbuf } (* skip blanks *)
| ['0'-'9']+ as lxm { INT(int_of_string lxm) }
| '(' { LPAREN }
| ')' { RPAREN }
| ',' { COMMA }
| eof { EOF }
| _ { syntax_error "couldn't identify the token" }
ご覧のとおり、文字列を解析する機能がありません。文字列は['a'-'z']
の形式で表すことができるので、簡略化するとわかります['a'-'z'] { STRING }
ありがとうございます。