1

キーワード定義があるとします (大文字と小文字は区別されません):

CLASS    (c|C)(l|L)(a|A)(s|S){2}
IF       (i|I)(f|F)
...more....

KEYWORDここで、すべてのキーワードで構成されるa を定義したいと思います。

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 に答える