[Contents] [Back] [Prev] [Up] [Next] [Forward]
この章ではFlexを起動する基本的な方法を説明し、
Flexで使用可能なコマンドライン・オプションを簡単に説明します。
Flexは記述情報を含むファイルを入力として受け取り、
スキャナ機能を持つCのファイルに変換します。
Flexを起動するためのコマンド行は以下のようになります。
flex [-bcdfinpstvFILT8] [-C[efmF]] [-Sskeleton] [file ...]
一般的には、
単に`flex'に続けて処理すべきファイル名を入力することで実行されます。
flex myfile.l
記述情報ファイル名の末尾の`.l'は、
`myfile'がFlexもしくはLexの記述ファイルであることを示唆する慣例的な方法です。
名前付けの慣例としてもう一つよく見られるのが、
末尾に`.lex'を使うことです。
例えば、
以下のようになります。
flex myfile.lex
Flexは記述情報ファイル(myfile.l
)を読み込み、
そこに記述されたパターンを認識するスキャナ機能を持つ`lex.yy.c'という名前のC言語ファイルを生成します。
記述情報の中になんらかのエラーがあれば、
Flexは対応するエラー・メッセージをstderr
に出力します。
Flexのコマンドライン・オプションは以下のような意味を持ちます。
- -b
-
`-b'オプションを指定すると`lex.backtrack'というファイルが生成されます。
このファイルはスキャナの記述情報を最適化する際に使用されます。
詳細については、スピードの最適化を参照してください。
- -c
-
このオプションはPOSIXとの互換性のために提供されているだけで、
実際には何もしません。
POSIXでは、
`-c'オプションはC言語によるアクションが使用されることを意味します。
- -d
-
このオプションを指定するとデバッグが可能になります。
これにより生成されるスキャナは、
実行中にスキャナの状態情報を
stderr
に出力します。
- -f
-
Flexに対してファスト・スキャナ(fast scanner)とフル・スキャナ(full scanner)のどちらを生成するかを指示します。
詳細については、
テーブルの圧縮とスキャナのスピードを参照してください。
`-f'(小文字)オプションと`-F'(大文字)オプションとは異なる効果を持つ点に注意してください。
- -i
-
Flexに対して大文字、小文字を区別しないスキャナを生成するよう指示します。
詳細については、
大文字・小文字を区別しないスキャナを参照してください。
- -n
-
このオプションはFlexにとっては何の意味も持たず、
POSIXとの互換性のためにのみ提供されています。
POSIXでは、
このフラグは`-v'オプションによる出力を抑制するために使用されます。
POSIXでのデフォルトは、
テーブル・サイズが指定されない限りこのような出力を抑制するというものです。
Flexではテーブル・サイズは意味を持たないので、
このフラグは冗長です。
- -p
-
`-p'オプションが指定されると、
Flexは性能レポートを
stderr
に出力します。
スキャナの性能を向上させる方法に関する議論については、
スピードの最適化を参照してください。
- -s
-
Flexスキャナがマッチするものを見つけることができなかった場合のデフォルトのアクションは、
そのマッチされなかった入力情報を
stdout
に出力することです。
`-s'オプションはこのようなアクションを抑制し、
その代わりに入力情報がマッチしなかった時点でスキャナを異常終了させます。
- -t
-
このオプションが指定された場合、
Flexは生成されたスキャナをファイル`lex.yy.c'にではなく
stdout
に出力します。
- -v
-
Flexに対して冗長モードで動作するよう指示します。
- -F
-
Flexに対してファスト・スキャナ(fast scanner)を生成するよう指示します。
詳細については、
スキャナの最適化を参照してください。
`-F'(大文字)は`-f'(小文字)とは異なる効果を持つ点に注意してください。
`-f'と`-F'の相違点に関する情報については、
テーブルの圧縮とスキャナのスピードを参照してください。
- -I
-
このオプションはFlexに対して対話型スキャナを生成するよう指示します。
詳細については、
`-I'オプション:対話型スキャナを参照してください。
- -L
-
デフォルトでは、
デバッグを支援するために、
Flexは生成されたスキャナのコード中に
#line
指示子を書き込みます。
このオプションによって#line
指示子の書き込みは行われなくなります。
- -T
-
Flexに対してトレース・モードで動作するよう指示します。
Flexは多くのメッセージを
stderr
に出力するようになります。
こうしたメッセージは、
Flexを非常によく理解しているユーザ以外には無意味でしょう。
- -8
-
このオプションは、
Flexに対して8ビット入力を受け付けるスキャナを生成するよう指示します。
- -C[efmF]
-
これらのオプションは、
スキャン処理用のテーブルをどのように圧縮するかを制御します。
詳細については、
スキャナの最適化を参照してください。
- -Sskeleton_file
-
Flexに対して、
生成するスキャナのベースとしてskeleton_fileにより指定されるスケルトン・ファイルを使用するよう指示します。
主に、
Flex自体をデバッグするために使用されます。
[Contents] [Back] [Prev] [Up] [Next] [Forward]