Next: , Previous: Multiple Input Buffers, Up: Top


12 End-of-File Rules

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:

<<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();
                  }