我正在尝试用ocamllex为某些特殊的本地语言编写一个lexer (这是为了我的目的做了一些修改)。有些词应配以其第一个字符,即加倍。但我找不到任何方法来表达这种重复的第一个字符。我都不能使用regex语法。
(A)-‘z’)\1‘a’-‘z’+
加上"\1“。Ocamllex说“非法逃跑序列\1”。我认为这对转义表达式的语法没有影响,但这并不是我想要的。我也不能以任何方式使用带大括号的重复语法(但无论如何也解决不了这个问题):
A‘’-‘z’{2}‘a’-‘z’+
我认为与regexp之后大括号中的oCaml代码有冲突。
有人对此有什么想法吗?
非常感谢。
发布于 2014-06-13 09:27:00
Ocamllex的regex没有重复语法。avaibable regex语法如参考手册中所列:
http://caml.inria.fr/pub/docs/manual-ocaml-4.01/lexyacc.html#sec274
我认为您可以手动列出所有可能的重复内容如下:
("aa"|"bb"|"cc"|"dd"|"ee"|"ff"| ..............)['a'-'z']+https://stackoverflow.com/questions/24188997
复制相似问题