flex: Reentrant Overview

 
 19.2 An Overview of the Reentrant API
 =====================================
 
 The API for reentrant scanners is different than for non-reentrant
 scanners.  Here is a quick overview of the API:
 
      '%option reentrant' must be specified.
 
    * All functions take one additional argument: 'yyscanner'
 
    * All global variables are replaced by their macro equivalents.  (We
      tell you this because it may be important to you during debugging.)
 
    * 'yylex_init' and 'yylex_destroy' must be called before and after
      'yylex', respectively.
 
    * Accessor methods (get/set functions) provide access to common
      'flex' variables.
 
    * User-specific data can be stored in 'yyextra'.