[表紙] |
[目次] |
[索引] |
[検索] [上端 / 下端] [?] |
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 複数バッファを使う実例 |
|
|
スキャナの最適化
関連するトピック
スピードの最適化
飛躍的向上
Flexを使うその他の実例
7.1 単語数、文字数、行数のカウント |
|
wc風のユーティリティ |
7.2 Pascalのサブセット用の字句スキャナ |
|
本物の言語をスキャンする実例 |
7.3 専門用語の変換 |
|
専門用語ファイルのTexinfo形式への変換 |
Flexと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文字の要約 |
|
演算子、特殊文字、エスケープ・シーケンス |
以外の文字をその文字自身として受け付ける
========================================================================