10.4 Flex変数およびFlex関数の要約(Flex 2.5の補足情報)
Flex 2.5では、
前節(Summary or Flex Variables and Functions)で説明されていない、
以下の関数やマクロもサポートされています。
yy_set_interactive()
- カレント・バッファを、
対話的なものと見なすか、
非対話的なものと見なすかを制御します。
引数にゼロ以外の値を渡すと、
カレント・バッファは対話的なものと見なされ、
ゼロを渡すと、
非対話的なものと見なされます。
yy_set_bol()
- バッファ内のカレントな位置が行の先頭にあるか否かを表すコンテキスト情報を設定します。
引数にゼロ以外の値を渡すと、
バッファ内のカレントな位置は行の先頭である、
というコンテキスト情報がセットされます。
したがって、
次にトークンのマッチ処理が行われる時には、
行頭を表す‘^’を含むルールの適用が試みられます。
逆に、
引数にゼロを渡すと、
バッファ内のカレントな位置は行の先頭ではないことになり、
次にトークンのマッチ処理が行われる時には、
行頭を表す‘^’を含むルールの適用が試みられなくなります。
YY_AT_BOL()
- 次にトークンのマッチ処理が行われる時に、
行頭を表す‘^’を含むルールの適用が試みられるようなコンテキスト情報がセットされている場合には、
ゼロ以外の値を返します。
それ以外の場合は、
ゼロを返します。
yy_new_buffer()
yy_create_buffer
の別名です。
yy_flush_buffer()
- 引数で指定されたバッファの内容を破棄し、
バッファの先頭2バイトに
YY_END_OF_BUFFER_CHAR
(‘\0’)をセットします。
YY_FLUSH_BUFFER
- 引数にカレント・バッファを指定して
yy_flush_buffer()
を呼び出すよう定義されたマクロです。
yy_scan_string()
- NULL文字で終端する文字列をスキャンするための入力バッファを作成します。
実際には、
引数で渡された文字列のコピーがスキャンされます。
yy_scan_bytes()
- 引数で指定されたメモリ領域をスキャンするためのバッファを作成します。
実際には、
メモリ領域上のデータのコピーがスキャンされます。
yy_scan_buffer()
- 引数で指定されたメモリ領域をスキャンするためのバッファを作成します。
メモリ領域上のデータはコピーされません。
yy_push_state()
- カレントなスタート状態をスタート状態スタックにプッシュし、
引数で指定された状態に遷移します。
yy_pop_state()
- スタート状態スタックからスタート状態をポップし、
そのポップされたスタート状態に遷移します。
yy_top_state()
- スタート状態スタックの先頭にあるスタート状態を返します
(スタート状態スタックの内容は変更されません)。
yyFlexLexer::yylex()
- C++スキャナにおいて実際にスキャン処理を行う関数です。
yyFlexLexer::LexerInput()
yyFlexLexer
のサブクラスにおいて再定義することによって、
C++スキャナの入力処理を変更することができます。
yyFlexLexer::LexerOutput()
yyFlexLexer
のサブクラスにおいて再定義することによって、
C++スキャナの出力処理を変更することができます。
yyFlexLexer::LexerError()
yyFlexLexer
のサブクラスにおいて再定義することによって、
C++スキャナのエラー・メッセージ出力処理を変更することができます。