10.5 Flex文字の要約
Flexにおける基本的な構成要素の1つに、
文字があります。
基本的にFlexは、
演算子、特殊文字、エスケープ・シーケンスを除いて、
文字をそのまま受け付けます。
エスケープ・シーケンスは、
ANSI Cに見られるものと同一です。
Flexの演算子と特殊文字は以下のとおりです。
- 文字
-
Flexの解釈
\-
バックスラッシュは、
ANSI Cのエスケープ・シーケンスで使われるのと同様の、
エスケープ文字です。
[ ]-
角括弧[ ]は、
文字の集合を文字クラスにグループ化するのに使われます。
詳細については、
See Flexにおける文字のグループ化。
^-
文字クラスの中では、
`^'は否定を意味します。
詳細については、
See Flexにおける文字のグループ化。
一方、
文字クラスの外部では、
行の先頭を意味し、
(エスケープされていない場合は)
ルールの先頭にのみ置くことができます。
--
ハイフンは、
文字クラスの中で文字の範囲を設定するのに使われます。
文字クラスの外部では、
ハイフン自身を表します。
詳細については、
See Flexにおける文字のグループ化。
{ }-
大括弧{ }は、
定義の参照、複数行にわたるアクションの先頭と末尾の指定、
またはパターンの繰り返し回数の範囲の定義を行います。
( )-
丸括弧( )は、
優先順位の変更に使われます。
また、
定義は展開される時に、
暗黙のうちに丸括弧で囲まれることに注意してください。
""-
二重引用符は、
文字列の範囲を示します。
引用符で囲まれた範囲の中にある文字だけがマッチされます。
/-
スラッシュは、
後続コンテキスト(trailing context)を設定します。
これは、
あるパターンを認識するのを、
その後ろに別のパターンが続く場合に限定したい、
という場合です。
これは、
スラッシュ`/'が一種の「ルック・アヘッド(その先を見る)」演算子として機能することを意味します。
< >-
かぎ括弧< >は、
スタート状態の参照、またはスタート状態のグループの参照を行い、
さらに
EOFシンボル(`<<EOF>>')で使われます。
これに関する完全な説明については、
Start StatesとEnd-Of-File Rulesを参照してください。
? + *-
`?'、`+'、`*'の各文字は、
ある正規表現が何回出現することができるかを指定するのに使われます。
`?'は、
ゼロ回もしくは1回(つまり、オプションであるということ)を、
`+'は1回以上を、
`*'はゼロ回以上をそれぞれ意味します。
|-
OR演算子を表します。
また、
カレントなルールに対するマッチが発生した場合、
次に記述されているルールのアクションを実行するようFlexに通知する、
特別なアクションを表します。
$-
ドル記号は行末を意味します。
ここに挙げた文字を、
その文字自身として表したい場合には、
その文字を引用符で囲む(例えば"*")か、
または、
エスケープ・シーケンスとして表す必要があります。
詳細については、
See Characters。