Next: Misc Macros, Previous: Multiple Input Buffers, Up: Top [Contents][Index]
The special rule <<EOF>> indicates
actions which are to be taken when an end-of-file is
encountered and yywrap() returns non-zero (i.e., indicates
no further files to process). The action must finish
by doing one of the following things:
flex, after doing the assignment you had to call the special
action YY_NEW_FILE. This is no longer necessary.)
return statement;
yyterminate() action.
yy_switch_to_buffer() as
shown in the example above.
<<EOF>> rules may not be used with other patterns; they may only be qualified with a list of start conditions. If an unqualified <<EOF>> rule is given, it applies to all start conditions which do not already have <<EOF>> actions. To specify an <<EOF>> rule for only the initial start condition, use:
<INITIAL><<EOF>>
These rules are useful for catching things like unclosed comments. An example:
%x quote
%%
...other rules for dealing with quotes...
<quote><<EOF>> {
error( "unterminated quote" );
yyterminate();
}
<<EOF>> {
if ( *++filelist )
yyin = fopen( *filelist, "r" );
else
yyterminate();
}