使用fslex,我想为一个模式返回多个标记,但我不知道如何实现。即使使用另一个返回多个标记的规则函数也可以适用于我。
我尝试使用类似于以下内容的语法:
我在这里要解决的问题是仅在
我对fslex相当新,因此我很高兴能得到任何指向正确方向的指针。
我尝试使用类似于以下内容的语法:
let identifier = [ 'a'-'z' 'A'-'Z' ]+
// ...
rule tokenize = parse
// ...
| '.' identifier '(' { let value = lexeme lexbuf
match operations.TryFind(value) with
// TODO: here is the problem:
// I would like to return like [DOT; op; LPAREN]
| Some op -> op
| None -> ID(value) }
| identifier { ID (lexeme lexbuf) }
// ...
我在这里要解决的问题是仅在
标识符
位于.
和(
之间时,才匹配预定义的令牌(请参见:操作
映射)。否则,匹配应返回为ID
。我对fslex相当新,因此我很高兴能得到任何指向正确方向的指针。