当我尝试定义这样的标记时:
NAP (([0-9])/([a-z]))
...这只是一个数字,只有当一个字母跟在它后面(r / s),我试着用这个:
{NAP} showToken("NAP");
...编译器抛出"无法识别的规则"。
有谁知道为什么?
答案 0 :(得分:2)
您不能在括号内使用flex的 / 运算符。这可能使得无法在定义中使用,具体取决于你的flex版本,因为flex隐含地用括号括起了定义的扩展。
直接在规则中编写正则表达式。 (并且不需要括号周围的冗余括号。)
[0-9]/[a-z] showToken("NAP");