This section summarizes the various values available to the user in the rule actions.
yytext
is instead declared `char yytext[YYLMAX]',
where YYLMAX
is a macro definition that you can
redefine in the first section if you don't like the
default value (generally 8KB). Using `%array'
results in somewhat slower scanners, but the value
of yytext
becomes immune to calls to `input()' and
`unput()', which potentially destroy its value when
yytext
is a character pointer. The opposite of
`%array' is `%pointer', which is the default.
You cannot use `%array' when generating C++ scanner
classes (the `-+' flag).
flex
reads
from. It may be redefined but doing so only makes
sense before scanning begins or after an EOF has
been encountered. Changing it in the midst of
scanning will have unexpected results since flex
buffers its input; use `yyrestart()' instead. Once
scanning terminates because an end-of-file has been
seen, you can assign yyin
at the new input file and
then call the scanner again to continue scanning.
yyin
at the new input file. The switch-over
to the new file is immediate (any previously
buffered-up input is lost). Note that calling
`yyrestart()' with yyin
as an argument thus throws
away the current input buffer and continues
scanning the same input file.
YY_CURRENT_BUFFER
returns a YY_BUFFER_STATE
handle
to the current buffer.
YY_START
returns an integer value corresponding to
the current start condition. You can subsequently
use this value with BEGIN
to return to that start
condition.