我将如何使用Ocamllex实施字符串的链接



我是Lexing概念的新手,并试图在OCAML中编写lexer来读取以下示例输入:

(blue, 4, dog, 15)

基本上,输入是任何随机字符串或整数的列表。我发现了许多基于INT的输入的示例,因为其中大多数是对计算器建模的,但没有通过示例或Lexing字符串的文档找到任何指导。就我的lexer而言,这是我所拥有的:

(* 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 }一样简单感谢您的帮助。

符号['a'-'z']代表一个字符,而不是字符串。因此,字符串或多或少是其中一个或多个的序列。我担心这是一个任务,所以我只想说,您可以使用与INT相同的技术将单个字符的模式扩展到一个模式中的模式。<<<<<<<<<<<<<<<<

但是,我想知道您是否真的希望您的字符串如此限制。他们真的需要由字母字符组成吗?

相关内容

  • 没有找到相关文章

最新更新