我是词法分析概念的新手,我正在尝试在 ocaml 中编写一个词法分析器来读取以下示例输入:
(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 }
感谢您的帮助一样简单。