@c Copyright (C) 1999 Kazuhisa Ichikawa
@c This is part of the Flex manual, as published by ASCII
@ignore
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission notice
identical to this one except for the removal of this paragraph (this
paragraph not being relevant to the printed manual).

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the Free Software Foundation.
@end ignore

@c @node Command Line Switches (Flex 2.5),  , Command Line Switches, Invoking Flex
@c @section コマンドライン・オプション（Flex 2.5の補足情報）
@cindex コマンドライン・オプション（Flex 2.5補足）

Flex 2.5では、
前節（@ref{Command Line Switches}）で説明されていない、
以下のオプションもサポートされています。

@table @kbd
@item -h
Flexに対してコマンドライン・オプションの要約情報を出力するよう指示します。

@item -l
AT&Tにより実装されたlexとの互換性を最大限に提供します。
このオプションは、
性能面でかなりの悪影響を及ぼします。
また、
このオプションを、
@samp{-f}、@samp{-F}、@samp{-Cf}、@samp{-CF}、@samp{-+}オプションと同時に指定することはできません。
FlexとLexの（非）互換性の問題については、
@ref{Flex and Lex}を参照してください。

@item -w
このオプションが指定されると、
Flexは、
警告メッセージを出力しません。

@item -B
Flexに対してバッチ・スキャナを生成するよう指示します。
これは、
対話型スキャナを生成するよう指示する@samp{-I}オプションの否定です。

@item -V
Flexに対してバージョン番号を出力するよう指示します。

@item -7
Flexに対して7ビット・スキャナを生成するよう指示します。
これは、
@samp{-8}オプションの否定です。
内部的に生成されるテーブルのサイズは、
@samp{-8}オプションが指定された場合と比較して半分になりますが、
生成されるスキャナは、
8ビット文字を含む入力を処理することができなくなります。
@samp{-Cf}、@samp{-CF}が指定されていない場合は、
明示的に@samp{-7}を指定しない限り、
8ビット・スキャナが生成されます。

@item -+
Flexに対してC++スキャナ・クラスを生成するよう指示します。
C++スキャナについては、
@ref{Flex and C++ (Flex 2.5)}を参照してください。

@item -?
Flexに対してコマンドライン・オプションの要約情報を出力するよう指示します。
（@samp{-h}オプションと同じです）。

@item -Ca
このオプションは、
スキャン処理用のテーブルを@code{long int}の配列として定義するようFlexに通知します
（デフォルトでは@code{short int}型の配列となります）。
RISCマシンによっては、
@code{long int}の方が高速に処理されるため、
スキャナの性能向上が期待できますが、
その反面、
テーブルのサイズは大きくなります。

@item -Cr
このオプションを指定して生成されたスキャナは、
入力に@code{read()}システム・コールを使います。
デフォルトでは、
対話型スキャナの場合は@code{getc()}が、
バッチ（非対話型）・スキャナの場合は@code{fread()}が使われます。

@item -o@var{file}
このオプションが指定されると、
Flexは生成されたスキャナを@var{file}により指定されるファイルに出力します。
デフォルトでは、
スキャナはファイル@file{lex.yy.c}に出力されます。

@item -P@var{prefix}
Flexにより生成されるスキャナのソース・ファイルの中では、
大域変数や大域関数の名前の先頭に接頭辞@samp{yy}が付けられます。
このオプションが指定されると、
@samp{yy}の代わりに、
@var{prefix}により指定される文字列が接頭辞として使用されます。
また、
@samp{-o}オプションが指定されない場合のスキャナ・ファイル名@file{lex.yy.c}も、
@file{lex.@var{prefix}.c}となります。

以下に、
このオプションにより影響を受ける名前の一覧を示します。

@example
yy_create_buffer
yy_delete_buffer
yy_scan_buffer
yy_scan_string
yy_scan_bytes
yy_flex_debug
yy_init_buffer
yy_flush_buffer
yy_load_buffer_state
yy_switch_to_buffer
yyin
yyleng
yylex
yylineno
yyout
yyrestart
yytext
yywrap
@end example

@samp{-+}オプションが指定されている場合は、
影響を受けるのは@code{yywrap}と@code{yyFlexLexer}の２つだけです。

このオプションにより、
@code{yywrap()}の名前が変更されてしまう点に注意してください。
プログラムをリンクするためには、
@samp{@var{prefix}wrap}という名前の関数を作成する必要があります。
この関数を作成したくない場合には、
スキャナ定義ファイルの中で、
@samp{%option noyywrap}を指定して、
リンク時に@samp{-lfl}オプションを指定します。
@code{%option}指示子については、
@ref{%option (Flex 2.5)}を参照してください。

@item --help
Flexに対してコマンドライン・オプションの要約情報を出力するよう指示します。
（@samp{-h}オプションと同じです）。

@item --version
Flexに対してバージョン番号を出力するよう指示します。
（@samp{-V}オプションと同じです）。
@end table
