10.1 Flexコマンドライン・オプションの要約
Flexには、
以下のコマンドライン・オプションがあります。
- -b
-
このオプションは、
バックトラッキングを必要とする状態をもたらすルールに関する情報を含む、
lex.backtrackというファイルを生成します。
なぜこの情報が重要なのか、
また、
この情報をどのように使うかという点に関する詳細については、
Optimizing for SpeedとRemoving Backtrackingを参照してください。
- -c
-
このオプションは、
POSIXとの互換性のためだけに提供されており、
実際には何もしません。
以前は、
テーブル圧縮を制御するために使われていましたが、
その機能は‘-C’オプションに移されました。
このフラグを見つけると、
Flexはユーザがテーブル圧縮を希望しているものと想定し、
警告メッセージを出力します。
将来、
この警告メッセージは出力されないようになるかもしれません。1
- -d
-
デバッグに使われます。
実行中に自身の状態情報を
yyout
に書き込むスキャナを生成します。
あるルールがマッチするたびに、
バックトラッキングに関する情報、検出されたバッファの終端、NUL
に関する情報に加えて、
以下のような情報が書き込まれます。
--accepting rule at line 行番号 ("マッチしたテキスト")
この中の行番号は
(‘-L’オプションが使われていない場合には)、
生成されたファイルlex.yy.cではなく、
スキャナを生成するのに使われた記述ファイルの行番号を指します。
- -f
-
フル・スキャナ(full scanner)を生成します。
圧縮は一切行われません。
これは、
‘-Cf’と同等です
(詳細については、
See Table Compression and Scanner Speed)。
- -i
-
大文字・小文字の区別を無視するスキャナを作成するよう、
Flexに通知します。
ルールのマッチ処理において大文字・小文字の区別は無視されますが、
個々の文字は大文字または小文字に変換されないので、
yytext
には大文字・小文字が混在した文字の並びが入ることになります。
- -n
-
このオプションは、
Flexに対してはまったく意味を持たず、
単にPOSIXとの互換性のためだけに提供されています。
- -p
-
性能に関する情報を
stderr
に書き込むよう、
Flexに通知します。
報告される情報は、
性能を低下させるようなスキャナ記述情報の機能に関するコメントによって構成されます。
- -s
-
マッチするものがなかった場合のFlexスキャナのデフォルトのアクションは、
マッチしなかった入力情報を
stdout
に書き込むことです。
‘-s’オプションはこのアクションを抑制し、
その代わりに、
入力がマッチしないとすぐにスキャナを異常終了させます。
- -t
-
このオプションが指定されると、
Flexは生成されたスキャナをファイルlex.yy.cにではなく、
stdout
に書き込みます。
- -v
-
冗長モードで動作するよう、
Flexに通知します。
Flexは、
生成されたスキャナに関する統計情報の要約を生成して、
stdout
に出力します。
要約情報の第1行にはFlexのバージョン番号、
次の行には日付と時刻、
さらに次の行には実際に使われているオプションが示されます。
要約情報のこれ以外の部分は、
Flexやその他の同様のプログラムの動作の詳細を理解している人以外にはほとんど意味を持ちません。
- -F
-
ファスト・スキャナ(fast scanner)を生成するよう、
Flexに通知します。
これは、
‘-CF’と同等です。
詳細については、
See スキャナの最適化。
- -I
-
このオプションは、
シェル上や、
型を持つ入力情報を受け付ける必要のあるプログラム内で使うことのできる対話型スキャナを生成するよう、
Flexに通知します。
詳細については、
See Interactive Scanners。
注:‘-I’オプションは、
‘-Cf’、‘-f’、‘-CF’、‘-F’の各オプションと一緒に使うことはできません。
- -L
-
デフォルトではFlexは、
エラーがスキャナ定義のどこで発生したのかを追跡できるように、
生成されたスキャナのコード中に
#line
指示子を生成します。
‘-L’オプションは、
この#line
指示子を生成する機能を抑制します。
- -T
-
Flexをトレース・モードで実行させます。
Flexは、
入力情報、スキャン処理テーブル、同等クラス(equivalence class)、およびメタ同等クラス(meta-equivalence class)に関するメッセージを生成して、
(
stderr
に)書き込みます。
この情報は、
Flexの内部的な動作を理解していない人には、
ほとんど意味を持たないでしょう。
- -8
-
このオプションは、
8ビットの入力情報を受け付けることのできるスキャナを生成するよう、
Flexに通知します。
7ビットの入力情報しか受け付けないスキャナに8ビットの入力情報を与えた場合の結果は、
予測不能です。
- -C[efmF]
-
スキャン処理テーブルをどのように圧縮するかを、
Flexに通知します。
詳細については、
See スキャナの最適化を参照してください。
- -Sskeleton_file
-
生成されるスキャナのベースとして、
skeleton_fileで指定されるファイルを使うよう、
Flexに通知します。
これを使うことはほとんどありませんが、
MS-DOS上ではこれによって標準のスキャナ・スケルトンへのパスを設定することができます。