我有一个简单的ocamllex程序,规则部分看起来有点像这样 -

let digits= ['0'-'9']
let variables= 'X'|'Z'

rule addinlist = parse
|['\n']  {addinlist lexbuf;}
| "Inc" '(' variables+ '(' digits+ ')' ')' as ine { !inputstringarray.(!inputstringarrayi) <-ine;
                                        inputstringarrayi := !inputstringarrayi +1;
                                        addinlist lexbuf}
|_ as c
{ printf "Unrecognized character: %c\n" c;
addinlist lexbuf
}
| eof { () }

我的问题是假设我想匹配Inc(X(7)),这样我就可以将它转换为我的抽象语法,即“Inc of var of int” . 我希望我的词法分析器在读取Inc(X(7))时给我单独的字符串,这样我得到“Inc”作为差异字符串(比如inb),接着是“X”作为差异字符串(比如inc)n然后是“7”作为差异字符串(比如说ind),这样我就可以使用这些字符串inb,inc,&ind,而不是被整个字符串ine所困,就像我的程序所给出的那样 . 怎么去这个?我希望我的问题很明确