[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
19.4.2 The Extra Argument
All functions take one additional argument: yyscanner
.
Notice that the calls to yy_push_state
and yy_pop_state
both have an argument, yyscanner
, that is not present in a
non-reentrant scanner. Here are the declarations of
yy_push_state
and yy_pop_state
in the reentrant scanner:
static void yy_push_state ( int new_state , yyscan_t yyscanner ) ; static void yy_pop_state ( yyscan_t yyscanner ) ;
Notice that the argument yyscanner
appears in the declaration of
both functions. In fact, all flex
functions in a reentrant
scanner have this additional argument. It is always the last argument
in the argument list, it is always of type yyscan_t
(which is
typedef’d to void *
) and it is
always named yyscanner
. As you may have guessed,
yyscanner
is a pointer to an opaque data structure encapsulating
the current state of the scanner. For a list of function declarations,
see Functions and Macros Available in Reentrant C Scanners. Note that preprocessor macros, such as
BEGIN
, ECHO
, and REJECT
, do not take this
additional argument.
This document was generated on November 4, 2011 using texi2html 5.0.