1

假设我有关键字定义(不区分大小写):

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被替换)?

4

1 回答 1

2

好的,我在这里找到了如何使用以前的定义:http: //dinosaur.compilertools.net/flex/flex_6.html#SEC6

我们必须在前面的定义周围添加 {}:

KEYWORD   ({CLASS}|{IF}| ....more....)
IDENTIFIER     [^{KEYWORD}][a-zA-Z0-9]

我回答自己以供其他人将来参考。

于 2012-05-10T03:01:59.757 回答