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)を参照してください。