私は Flex の初心者で、Flex で同じ名前に対して複数の定義を使用できるかどうか疑問に思っていました。そのような:
/* DEFINITIONS */
FRUITS "APPLE" | "ORANGE" | "LEMON"
また、flex の正規表現の文字列定数でできることとできないことは何ですか? $や*などの記号は使用できますか? ありがとうございました!
私は Flex の初心者で、Flex で同じ名前に対して複数の定義を使用できるかどうか疑問に思っていました。そのような:
/* DEFINITIONS */
FRUITS "APPLE" | "ORANGE" | "LEMON"
また、flex の正規表現の文字列定数でできることとできないことは何ですか? $や*などの記号は使用できますか? ありがとうございました!
定義の右側は通常の正規表現なので、次のように記述できます。
FRUIT APPLE|ORANGE|LEMON
多分
FRUIT (PINE)?APPLE|GRAPE(FRUIT)?|ORANGE|LEMON
後でルールセクションでそれを参照してください
{FRUIT}
しかし、あなたが本当にそうしたいとは思えません。これは、キーワード トークンを認識する大雑把な方法です。
次の例のような定義 (マクロと考えてください) を使用することをお勧めします。
LETTER [a-zA-Z]
DIGIT [0-9]
ALPHANUMERIC [a-zA-Z0-9]