如何只将表达式的一部分与ocamllex中的字符串匹配

时间:2014-02-13 10:06:02

标签: ocaml ocamllex

我有一个简单的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。怎么去这个?我希望我的问题很清楚

0 个答案:

没有答案