名前

flex - 高速な字句解析ジェネレーター

書式

flex [OPTIONS] [FILE]...

説明

対象テキストのパターンマッチングを実現するプログラムを生成します。

テーブル圧縮:

-Ca, --align
より大きなテーブルをあきらめて、メモリ配置を優先します。
-Ce, --ecs
同等クラス (equivalence class) を構築します。
-Cf
テーブルを圧縮しません。-f を利用してください。
-CF
テーブルを圧縮しません。-F を利用してください。
-Cm, --meta-ecs
メタ同等クラス (meta-equivalence class) を構築します。
-Cr, --read
スキャナーの入力として stdio ではなく read() を用います。
-f, --full
高速で大きなスキャナーを生成します。-Cfr と同じです。
-F, --fast
代替テーブル表現 (alternate table representation) を用います。 -CFr と同じです。
-Cem
デフォルトの圧縮を用います ( --ecs --meta-ecs と同じです)。

デバッグ

-d, --debug
スキャナーにおいてデバッグモードを有効にします。
-b, --backup
バックアップ情報を lex.backup に出力します。
-p, --perf-report
性能報告を stderr に出力します。
-s, --nodefault
マッチしなかったテキストを ECHO するデフォルトルールを省略します。
-T, --trace
flex をトレースモードで実行します。
-w, --nowarn
警告メッセージを生成しません。
-v, --verbose
スキャナーの処理統計に関する概要を stdout に出力します。
--hex
デバッグ出力において 8 進数ではなく 16 進数を用います。

ファイル

-o, --outfile=FILE
出力ファイル名を指定します。
-S, --skel=FILE
スケルトンファイルを指定します。
-t, --stdout
スキャナーを lex.yy.c ではなく stdout に出力します。
--yyclass=NAME
C++ クラス名。
--header-file=FILE
スキャナーに加えて C ヘッダーファイルを生成します。
--tables-file[=FILE] テーブルを FILE に出力します。

スキャナーの動作

-7, --7bit
7 ビットスキャナーを生成します。
-8, --8bit
8 ビットスキャナーを生成します。
-B, --batch
バッチスキャナー (batch scanner) を生成します (逆は -I)。
-i, --case-insensitive
パターンにおいて大文字小文字を区別しません。
-l, --lex-compat
オリジナルの lex と最大限の互換性を保ちます。
-X, --posix-compat
POSIX lex と最大限の互換性を保ちます。
-I, --interactive
対話型スキャナー (interactive scanner) を生成します (逆は -B)。
--yylineno
行数カウントを yylinenoe により行います。

生成コード

-+, --c++
C++ スキャナークラスを生成します。
-Dmacro[=defn]
#define マクロを defn とします (デフォルトの defn は '1' です)。
-L, --noline
スキャナーにおける #line ディレクティブを省略します。
-P, --prefix=STRING
プレフィックスに "yy" ではなく STRING を用います。
-R, --reentrant
リエントラントな (reentrant) C スキャナーを生成します。
--bison-bridge
スキャナーを bison 向けの純粋なパーサーとします。
--bison-locations
yylloc サポートを含めます。
--stdinit
yyin/yyout を stdin/stdout に初期化します。
--nounistd
<unistd.h> をインクルードしません。
--noFUNCTION
特定の FUNCTION を生成しません。

その他

-c
POSIX オプションを処理しません。
-n
POSIX オプションを処理しません。
-?
-h, --help
ヘルプメッセージを表示します。
-V, --version
flex のバージョンを表示します。

関連項目

flex の完全なドキュメントは Texinfo マニュアルとしてメンテナンスされています。 infoflex の両プログラムが適切にインストールされていれば、以下のコマンド
info flex
を実行して完全なマニュアルを参照できます。