我正在尝试使用 Flex 制作一个简单的扫描仪。在声明部分,我试图使用 {-} 运算符从 id 中排除保留字,但我无法让它工作。我发现的每个示例都使用 {+} 和 {-} 运算符,如下代码所示:
[a-z]{-}[d]
但是,我试图在下面的代码中使用这些运算符,但我总是得到错误:
invalid_id "char"|"else"|"if"|"class"|"new"|"return"|"void"|"while"|"int"
all_ids [a-zA-Z_][a-zA-Z0-9_]*
id {all_ids}{-}{invalid_id}
有什么办法让它工作吗?这些运算符可以在没有方括号的情况下使用吗?