Previous: Command Line Switches, Up: Invoking Flex
Flex 2.5では、 前節(Command Line Switches)で説明されていない、 以下のオプションもサポートされています。
long int
の配列として定義するようFlexに通知します
(デフォルトではshort int
型の配列となります)。
RISCマシンによっては、
long int
の方が高速に処理されるため、
スキャナの性能向上が期待できますが、
その反面、
テーブルのサイズは大きくなります。
read()
システム・コールを使います。
デフォルトでは、
対話型スキャナの場合はgetc()
が、
バッチ(非対話型)・スキャナの場合はfread()
が使われます。
以下に、 このオプションにより影響を受ける名前の一覧を示します。
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
‘-+’オプションが指定されている場合は、
影響を受けるのはyywrap
とyyFlexLexer
の2つだけです。
このオプションにより、
yywrap()
の名前が変更されてしまう点に注意してください。
プログラムをリンクするためには、
‘prefixwrap’という名前の関数を作成する必要があります。
この関数を作成したくない場合には、
スキャナ定義ファイルの中で、
‘%option noyywrap’を指定して、
リンク時に‘-lfl’オプションを指定します。
%option
指示子については、
%option (Flex 2.5)を参照してください。