ルールセクションが次のように見える単純な 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 of var of int」である抽象構文に変換できるように、Inc(X(7)) と一致させたいとします。Inc(X(7)) の読み取り中にレクサーに個別の文字列を提供してもらいたいので、「Inc」を差分文字列 (inb など) として取得し、その後に「X」を差分文字列 (inc など) n として取得します。 "7" を diff 文字列 (ind など) として使用すると、プログラムで指定されているように、文字列 ine 全体に固執する代わりに、これらの文字列 inb、inc、および ind をいじることができます。これについてどうすればいいですか?私の質問が明確であることを願っています