This chapter summarizes the various values available to the user in the rule actions.
char *yytextIf the special directive %array appears in the first section of
the scanner description, then 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
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).
int yylengFILE *yyinflex 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.
void yyrestart( FILE *new_file )yyrestart() with yyin
as an argument thus throws away the current input buffer and continues
scanning the same input file.
FILE *yyoutECHO actions are done. It can be reassigned
by the user.
YY_CURRENT_BUFFERYY_BUFFER_STATE handle to the current buffer.
YY_STARTBEGIN to return to that
start condition.