[表紙] [目次] [索引] [検索] [上端 / 下端] [?]

Flex

Flexは、 入力として高級記述言語を受け取り、 出力としてC言語で記述されたスキャナを生成する、 字句スキャナ生成プログラムです。 Flex自身が、 標準のUnixユーティリティと比較してより高速に動作しますし、 生成されるスキャナもより高速です。 また、 POSIX、Lexとの互換性も十分備えています。

これは、 1993年2月発行、エディション1.03のFlex 2.3.7マニュアルです。 Flex 2.5の新機能に関する情報も追加してあります。 Flex 2.5の新機能に関する節の名前には、 「(Flex 2.5の補足情報)」と書かれています。

============================================================================

1. Flex入門   
2. Flexの起動   
3. Flex記述言語   
4. Flexとのインターフェイス    FlexスキャナとC言語の結合
5. Flexの他の特徴    追加的なFlex機能、一般的ではないFlex機能
6. スキャナの最適化    Flexスキャナの最適化方法
7. Flexを使うその他の実例   
8. FlexとLex    FlexとLexの相違点、性能、POSIX標準への準拠度
9. 役に立つコードの抜粋   
10. 要約   
インデックス   

 -- The Detailed Node Listing ---

Flex入門

1.1 問題解決手段としてのFlex   
1.2 一般的なプログラミング・ツールとしてのFlex   

Flexの起動

2.1 コマンドライン・オプション    Flexのコマンドライン・オプション
2.2 コマンドライン・オプション(Flex 2.5の補足情報)   

Flex記述言語

3.1 コメント    Flexのコメント・スタイルの説明
3.2 オプションのCコード    Flex定義の先頭のCコード・セクションの説明
3.3 定義    Flexにおける定義の書き方
3.4 %%   
3.5 ルール    Flexファイルのルール・セクション
3.6 パターン・セクション   
3.7 正規表現   
3.8 スタート状態   
                                ルールを活性化させる方法
3.9 %option(Flex 2.5の補足情報)    %option指示子の説明

パターン・セクション

3.6.1 文字    Flexにおける文字、特殊文字
3.6.2 Flexにおける文字列   
3.6.3 Flexにおける文字のグループ化    文字クラスの説明、その使い方
3.6.4 Flexにおける文字のグループ化(Flex 2.5の補足情報)    同上(Flex 2.5の補足情報)

スタート状態

3.8.1 スタート状態の説明   
3.8.2 状態の活性化   
3.8.3 スタート状態に関する注   
                                関する注
3.8.4 スタート状態に関する注(Flex 2.5の補足情報)   
3.8.5 スタート状態の使用例   

Flexとのインターフェイス

4.1 FlexとC    CとFlexのインターフェイス
4.2 FlexとC(Flex 2.5の補足情報)    同上(Flex 2.5の補足情報)
4.3 FlexとCの簡単な実例    フィルタにおける文字列代替
4.4 FlexとBison   
4.5 FlexとBisonのもう1つの実例   
4.6 FlexとC++(Flex 2.5の補足情報)    C++とFlexのインターフェイス
                                (Flex 2.5の補足情報)

FlexとBison

4.4.1 FlexとBisonのインターフェイス    一般的な方法
4.4.2 YYSTYPEとyylval    単なる整数以上の情報の渡し方

FlexとBisonのもう1つの実例

4.5.1 インターフェイス言語   
4.5.2 実装:コマンド文パーサ   
4.5.3 実装に関する注   

Flexの他の特徴

5.1 大文字・小文字を区別しないスキャナ   
5.2 `-I'オプション:対話型スキャナ    ユーザから入力を受け取るスキャナ
5.3 テーブルの圧縮とスキャナのスピード   
5.4 翻訳テーブル   
5.5 複数の入力バッファ   
5.6 ファイルの終端(End-Of-File)ルール    EOFを処理するための特殊なルール

大文字・小文字を区別しないスキャナ

5.1.1 `-i'オプション    入力において大文字・小文字を無視する方法

複数の入力バッファ

5.5.1 バッファを操作する関数   
5.5.2 バッファを操作する関数(Flex 2.5の補足情報)   
5.5.3 複数バッファを使う実例   

スキャナの最適化

6.1 スピードの最適化   
                                関連するトピック
6.2 サイズの最適化   

スピードの最適化

6.1.1 バックトラッキングの削除   
                                飛躍的向上

Flexを使うその他の実例

7.1 単語数、文字数、行数のカウント    wc風のユーティリティ
7.2 Pascalのサブセット用の字句スキャナ    本物の言語をスキャンする実例
7.3 専門用語の変換    専門用語ファイルのTexinfo形式への変換

FlexとLex

8.1 Flex   
8.2 標準Lex   

Flex 

8.1.1 FlexとPOSIX   
8.1.2 FlexとPOSIX(Flex 2.5の補足情報)   

役に立つコードの抜粋

9.1 コメントの処理   
9.2 文字列リテラルの処理   
9.3 数字の処理   
9.4 複数のスキャナ   
9.5 その他   

要約

10.1 Flexコマンドライン・オプションの要約   
10.2 Flexコマンドライン・オプションの要約(Flex 2.5の補足情報)    同上(Flex 2.5の補足情報)
10.3 Flex変数およびFlex関数の要約   
10.4 Flex変数およびFlex関数の要約(Flex 2.5の補足情報)   
                                             同上(Flex 2.5の補足情報)
10.5 Flex文字の要約    演算子、特殊文字、エスケープ・シーケンス
                                以外の文字をその文字自身として受け付ける
10.6 Flexルールの要約   

========================================================================