Flex を使用して簡単なスキャナーを作成しようとしています。宣言セクションで、{-} 演算子を使用して ID から予約語を除外しようとしていますが、うまくいきません。私が見つけたすべての例では、次のコードのように {+} および {-} 演算子を使用しています。
[a-z]{-}[d]
ただし、次のコードのようにこれらの演算子を使用しようとしていますが、常にエラーが発生します。
invalid_id "char"|"else"|"if"|"class"|"new"|"return"|"void"|"while"|"int"
all_ids [a-zA-Z_][a-zA-Z0-9_]*
id {all_ids}{-}{invalid_id}
それを機能させる方法はありますか?これらの演算子は角括弧なしで使用できますか?