我有一个简单的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,&amp; ind,而不是被我的程序给出的整个字符串ine。怎么去这个?我希望我的问题很清楚