(flex.info)User variables


Next: YACC interface Prev: Miscellaneous Up: Top

Values available to the user
============================

   This section summarizes the various values available to the user in
the rule actions.

   - `char *yytext' holds the text of the current token.  It may be
     modified but not lengthened (you cannot append characters to the
     end).

     If 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
     `input()' and `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 yyleng' holds the length of the current token.

   - `FILE *yyin' is the file which by default `flex' 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 )' may be called to point `yyin'
     at the new input file.  The switch-over to the new file is
     immediate (any previously buffered-up input is lost).  Note that
     calling `yyrestart()' with `yyin' as an argument thus throws away
     the current input buffer and continues scanning the same input
     file.

   - `FILE *yyout' is the file to which `ECHO' actions are done.  It
     can be reassigned by the user.

   - `YY_CURRENT_BUFFER' returns a `YY_BUFFER_STATE' handle to the
     current buffer.

   - `YY_START' returns an integer value corresponding to the current
     start condition.  You can subsequently use this value with `BEGIN'
     to return to that start condition.


automatically generated by info version 1.5

Dirfile and infopages generated Sat Dec 3 02:07:54 2005