假设我有关键字定义(不区分大小写):
CLASS (c|C)(l|L)(a|A)(s|S){2}
IF (i|I)(f|F)
...more....
现在我要定义一个KEYWORD
,其中包含所有关键字:
KEYWORD (CLASS|IF| ....more....)
IDENTIFIER [^KEYWORD][a-zA-Z0-9]
但是,这样做,它只会将CLASS
视为字符串而不会被先前的定义所取代。此外,我想在KEYWORD
中使用IDENTIFIER
定义,它是否有效(让我们假设KEYWORD
被替换)?
答案 0 :(得分:2)
好的,我在这里找到了如何使用之前的定义:http://dinosaur.compilertools.net/flex/flex_6.html#SEC6
我们必须在之前的定义中添加{}:
KEYWORD ({CLASS}|{IF}| ....more....)
IDENTIFIER [^{KEYWORD}][a-zA-Z0-9]
我回答自己,以备将来参考。