@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

@node Flex and C (Flex 2.5), An Example of Flex and C, Flex and C, Interfacing to Flex
@section FlexとC（Flex 2.5の補足情報）
@cindex  CとFlexのインターフェイス（Flex2.5補足）

Flex 2.5では、
前節（@ref{Flex and C}）で説明されていない、
以下のマクロもサポートされています。

@itemize
@table @code
@findex @code{yy_set_interactive()}@r{、詳細}
@item yy_set_interactive(@var{is_interactive})
カレント・バッファを、
対話的なものと見なすか、
非対話的なものと見なすかを制御します。
引数@var{is_interactive}にゼロ以外の値を渡すと、
カレント・バッファは対話的なものと見なされ、
ゼロを渡すと、
非対話的なものと見なされます。
@code{yy_set_interactive()}による指定は、
@samp{%option always-interactive}や@samp{%option never-interactive}による指定に優先します。
このマクロは、
バッファからのスキャン処理が始まるよりも前に呼び出されなければなりません。

@findex @code{yy_set_bol()}@r{、詳細}
@item yy_set_bol(at_bol)
バッファは、
様々なコンテキスト情報を保持しています。
例えば、
行頭を表す@samp{^}を含むルールが適用されるのは、
バッファ内のカレントな位置が実際に行の先頭である場合だけですが、
カレントな位置が行の先頭にあるか否かという情報は、
バッファのコンテキスト情報として保持されています。

マクロ@code{yy_set_bol()}は、
バッファ内のカレントな位置が行の先頭にあるか否かを表すコンテキスト情報を設定します。
引数にゼロ以外の値を渡すと、
バッファ内のカレントな位置は行の先頭である、
というコンテキスト情報がセットされます。
したがって、
次にトークンのマッチ処理が行われる時には、
行頭を表す@samp{^}を含むルールの適用が試みられます。
逆に、
引数にゼロを渡すと、
バッファ内のカレントな位置は行の先頭ではないことになり、
次にトークンのマッチ処理が行われる時には、
行頭を表す@samp{^}を含むルールの適用が試みられなくなります。

@findex @code{YY_AT_BOL()}@r{、詳細}
@item YY_AT_BOL()
次にトークンのマッチ処理が行われる時に、
行頭を表す@samp{^}を含むルールの適用が試みられるようなコンテキスト情報がセットされている場合には、
ゼロ以外の値を返します。
それ以外の場合は、
ゼロを返します。
@end table
@end itemize
