[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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:
-
assigning ‘yyin’ to a new input file (in previous versions of
flex
, after doing the assignment you had to call the special actionYY_NEW_FILE
. This is no longer necessary.) -
executing a
return
statement; -
executing the special
yyterminate()
action. -
or, switching to a new buffer using
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(); }
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on November 4, 2011 using texi2html 5.0.