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 four things:
YY_NEW_FILE action, if `yyin' has been pointed
at a new file to process;
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" );
YY_NEW_FILE;
}
else
yyterminate();
}