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 Reentrant Functions. Note that preprocessor macros, such as
BEGIN, ECHO, and REJECT, do not take this
additional argument.