github.com/xzntrc/go-enry/v2@v2.0.0-20230215091818-766cc1d65498/internal/tokenizer/flex/lex.linguist_yy.c (about)

     1  
     2  #line 3 "lex.linguist_yy.c"
     3  
     4  #define  YY_INT_ALIGNED short int
     5  
     6  /* A lexical scanner generated by flex */
     7  
     8  #define FLEX_SCANNER
     9  #define YY_FLEX_MAJOR_VERSION 2
    10  #define YY_FLEX_MINOR_VERSION 5
    11  #define YY_FLEX_SUBMINOR_VERSION 35
    12  #if YY_FLEX_SUBMINOR_VERSION > 0
    13  #define FLEX_BETA
    14  #endif
    15  
    16  /* First, we deal with  platform-specific or compiler-specific issues. */
    17  
    18  /* begin standard C headers. */
    19  #include <stdio.h>
    20  #include <string.h>
    21  #include <errno.h>
    22  #include <stdlib.h>
    23  
    24  /* end standard C headers. */
    25  
    26  /* flex integer type definitions */
    27  
    28  #ifndef FLEXINT_H
    29  #define FLEXINT_H
    30  
    31  /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
    32  
    33  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    34  
    35  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
    36   * if you want the limit (max/min) macros for int types. 
    37   */
    38  #ifndef __STDC_LIMIT_MACROS
    39  #define __STDC_LIMIT_MACROS 1
    40  #endif
    41  
    42  #include <inttypes.h>
    43  typedef int8_t flex_int8_t;
    44  typedef uint8_t flex_uint8_t;
    45  typedef int16_t flex_int16_t;
    46  typedef uint16_t flex_uint16_t;
    47  typedef int32_t flex_int32_t;
    48  typedef uint32_t flex_uint32_t;
    49  typedef uint64_t flex_uint64_t;
    50  #else
    51  typedef signed char flex_int8_t;
    52  typedef short int flex_int16_t;
    53  typedef int flex_int32_t;
    54  typedef unsigned char flex_uint8_t; 
    55  typedef unsigned short int flex_uint16_t;
    56  typedef unsigned int flex_uint32_t;
    57  #endif /* ! C99 */
    58  
    59  /* Limits of integral types. */
    60  #ifndef INT8_MIN
    61  #define INT8_MIN               (-128)
    62  #endif
    63  #ifndef INT16_MIN
    64  #define INT16_MIN              (-32767-1)
    65  #endif
    66  #ifndef INT32_MIN
    67  #define INT32_MIN              (-2147483647-1)
    68  #endif
    69  #ifndef INT8_MAX
    70  #define INT8_MAX               (127)
    71  #endif
    72  #ifndef INT16_MAX
    73  #define INT16_MAX              (32767)
    74  #endif
    75  #ifndef INT32_MAX
    76  #define INT32_MAX              (2147483647)
    77  #endif
    78  #ifndef UINT8_MAX
    79  #define UINT8_MAX              (255U)
    80  #endif
    81  #ifndef UINT16_MAX
    82  #define UINT16_MAX             (65535U)
    83  #endif
    84  #ifndef UINT32_MAX
    85  #define UINT32_MAX             (4294967295U)
    86  #endif
    87  
    88  #endif /* ! FLEXINT_H */
    89  
    90  #ifdef __cplusplus
    91  
    92  /* The "const" storage-class-modifier is valid. */
    93  #define YY_USE_CONST
    94  
    95  #else	/* ! __cplusplus */
    96  
    97  /* C99 requires __STDC__ to be defined as 1. */
    98  #if defined (__STDC__)
    99  
   100  #define YY_USE_CONST
   101  
   102  #endif	/* defined (__STDC__) */
   103  #endif	/* ! __cplusplus */
   104  
   105  #ifdef YY_USE_CONST
   106  #define yyconst const
   107  #else
   108  #define yyconst
   109  #endif
   110  
   111  /* Returned upon end-of-file. */
   112  #define YY_NULL 0
   113  
   114  /* Promotes a possibly negative, possibly signed char to an unsigned
   115   * integer for use as an array index.  If the signed char is negative,
   116   * we want to instead treat it as an 8-bit unsigned char, hence the
   117   * double cast.
   118   */
   119  #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
   120  
   121  /* An opaque pointer. */
   122  #ifndef YY_TYPEDEF_YY_SCANNER_T
   123  #define YY_TYPEDEF_YY_SCANNER_T
   124  typedef void* yyscan_t;
   125  #endif
   126  
   127  /* For convenience, these vars (plus the bison vars far below)
   128     are macros in the reentrant scanner. */
   129  #define yyin yyg->yyin_r
   130  #define yyout yyg->yyout_r
   131  #define yyextra yyg->yyextra_r
   132  #define yyleng yyg->yyleng_r
   133  #define yytext yyg->yytext_r
   134  #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
   135  #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
   136  #define yy_flex_debug yyg->yy_flex_debug_r
   137  
   138  /* Enter a start condition.  This macro really ought to take a parameter,
   139   * but we do it the disgusting crufty way forced on us by the ()-less
   140   * definition of BEGIN.
   141   */
   142  #define BEGIN yyg->yy_start = 1 + 2 *
   143  
   144  /* Translate the current start state into a value that can be later handed
   145   * to BEGIN to return to the state.  The YYSTATE alias is for lex
   146   * compatibility.
   147   */
   148  #define YY_START ((yyg->yy_start - 1) / 2)
   149  #define YYSTATE YY_START
   150  
   151  /* Action number for EOF rule of a given start state. */
   152  #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
   153  
   154  /* Special action meaning "start processing a new file". */
   155  #define YY_NEW_FILE linguist_yyrestart(yyin ,yyscanner )
   156  
   157  #define YY_END_OF_BUFFER_CHAR 0
   158  
   159  /* Size of default input buffer. */
   160  #ifndef YY_BUF_SIZE
   161  #define YY_BUF_SIZE 16384
   162  #endif
   163  
   164  /* The state buf must be large enough to hold one state per character in the main buffer.
   165   */
   166  #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
   167  
   168  #ifndef YY_TYPEDEF_YY_BUFFER_STATE
   169  #define YY_TYPEDEF_YY_BUFFER_STATE
   170  typedef struct yy_buffer_state *YY_BUFFER_STATE;
   171  #endif
   172  
   173  #ifndef YY_TYPEDEF_YY_SIZE_T
   174  #define YY_TYPEDEF_YY_SIZE_T
   175  typedef size_t yy_size_t;
   176  #endif
   177  
   178  #define EOB_ACT_CONTINUE_SCAN 0
   179  #define EOB_ACT_END_OF_FILE 1
   180  #define EOB_ACT_LAST_MATCH 2
   181  
   182      #define YY_LESS_LINENO(n)
   183      
   184  /* Return all but the first "n" matched characters back to the input stream. */
   185  #define yyless(n) \
   186  	do \
   187  		{ \
   188  		/* Undo effects of setting up yytext. */ \
   189          int yyless_macro_arg = (n); \
   190          YY_LESS_LINENO(yyless_macro_arg);\
   191  		*yy_cp = yyg->yy_hold_char; \
   192  		YY_RESTORE_YY_MORE_OFFSET \
   193  		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
   194  		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
   195  		} \
   196  	while ( 0 )
   197  
   198  #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
   199  
   200  #ifndef YY_STRUCT_YY_BUFFER_STATE
   201  #define YY_STRUCT_YY_BUFFER_STATE
   202  struct yy_buffer_state
   203  	{
   204  	FILE *yy_input_file;
   205  
   206  	char *yy_ch_buf;		/* input buffer */
   207  	char *yy_buf_pos;		/* current position in input buffer */
   208  
   209  	/* Size of input buffer in bytes, not including room for EOB
   210  	 * characters.
   211  	 */
   212  	yy_size_t yy_buf_size;
   213  
   214  	/* Number of characters read into yy_ch_buf, not including EOB
   215  	 * characters.
   216  	 */
   217  	yy_size_t yy_n_chars;
   218  
   219  	/* Whether we "own" the buffer - i.e., we know we created it,
   220  	 * and can realloc() it to grow it, and should free() it to
   221  	 * delete it.
   222  	 */
   223  	int yy_is_our_buffer;
   224  
   225  	/* Whether this is an "interactive" input source; if so, and
   226  	 * if we're using stdio for input, then we want to use getc()
   227  	 * instead of fread(), to make sure we stop fetching input after
   228  	 * each newline.
   229  	 */
   230  	int yy_is_interactive;
   231  
   232  	/* Whether we're considered to be at the beginning of a line.
   233  	 * If so, '^' rules will be active on the next match, otherwise
   234  	 * not.
   235  	 */
   236  	int yy_at_bol;
   237  
   238      int yy_bs_lineno; /**< The line count. */
   239      int yy_bs_column; /**< The column count. */
   240      
   241  	/* Whether to try to fill the input buffer when we reach the
   242  	 * end of it.
   243  	 */
   244  	int yy_fill_buffer;
   245  
   246  	int yy_buffer_status;
   247  
   248  #define YY_BUFFER_NEW 0
   249  #define YY_BUFFER_NORMAL 1
   250  	/* When an EOF's been seen but there's still some text to process
   251  	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
   252  	 * shouldn't try reading from the input source any more.  We might
   253  	 * still have a bunch of tokens to match, though, because of
   254  	 * possible backing-up.
   255  	 *
   256  	 * When we actually see the EOF, we change the status to "new"
   257  	 * (via linguist_yyrestart()), so that the user can continue scanning by
   258  	 * just pointing yyin at a new input file.
   259  	 */
   260  #define YY_BUFFER_EOF_PENDING 2
   261  
   262  	};
   263  #endif /* !YY_STRUCT_YY_BUFFER_STATE */
   264  
   265  /* We provide macros for accessing buffer states in case in the
   266   * future we want to put the buffer states in a more general
   267   * "scanner state".
   268   *
   269   * Returns the top of the stack, or NULL.
   270   */
   271  #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
   272                            ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
   273                            : NULL)
   274  
   275  /* Same as previous macro, but useful when we know that the buffer stack is not
   276   * NULL or when we need an lvalue. For internal use only.
   277   */
   278  #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
   279  
   280  void linguist_yyrestart (FILE *input_file ,yyscan_t yyscanner );
   281  void linguist_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
   282  YY_BUFFER_STATE linguist_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
   283  void linguist_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
   284  void linguist_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
   285  void linguist_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
   286  void linguist_yypop_buffer_state (yyscan_t yyscanner );
   287  
   288  static void linguist_yyensure_buffer_stack (yyscan_t yyscanner );
   289  static void linguist_yy_load_buffer_state (yyscan_t yyscanner );
   290  static void linguist_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
   291  
   292  #define YY_FLUSH_BUFFER linguist_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
   293  
   294  YY_BUFFER_STATE linguist_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
   295  YY_BUFFER_STATE linguist_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
   296  YY_BUFFER_STATE linguist_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
   297  
   298  void *linguist_yyalloc (yy_size_t ,yyscan_t yyscanner );
   299  void *linguist_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
   300  void linguist_yyfree (void * ,yyscan_t yyscanner );
   301  
   302  #define yy_new_buffer linguist_yy_create_buffer
   303  
   304  #define yy_set_interactive(is_interactive) \
   305  	{ \
   306  	if ( ! YY_CURRENT_BUFFER ){ \
   307          linguist_yyensure_buffer_stack (yyscanner); \
   308  		YY_CURRENT_BUFFER_LVALUE =    \
   309              linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
   310  	} \
   311  	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
   312  	}
   313  
   314  #define yy_set_bol(at_bol) \
   315  	{ \
   316  	if ( ! YY_CURRENT_BUFFER ){\
   317          linguist_yyensure_buffer_stack (yyscanner); \
   318  		YY_CURRENT_BUFFER_LVALUE =    \
   319              linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
   320  	} \
   321  	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
   322  	}
   323  
   324  #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
   325  
   326  /* Begin user sect3 */
   327  
   328  typedef unsigned char YY_CHAR;
   329  
   330  typedef int yy_state_type;
   331  
   332  #define yytext_ptr yytext_r
   333  
   334  static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
   335  static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
   336  static int yy_get_next_buffer (yyscan_t yyscanner );
   337  static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
   338  
   339  /* Done after the current pattern has been matched and before the
   340   * corresponding action - sets up yytext.
   341   */
   342  #define YY_DO_BEFORE_ACTION \
   343  	yyg->yytext_ptr = yy_bp; \
   344  	yyleng = (yy_size_t) (yy_cp - yy_bp); \
   345  	yyg->yy_hold_char = *yy_cp; \
   346  	*yy_cp = '\0'; \
   347  	yyg->yy_c_buf_p = yy_cp;
   348  
   349  #define YY_NUM_RULES 31
   350  #define YY_END_OF_BUFFER 32
   351  /* This struct is not used in this scanner,
   352     but its presence is necessary. */
   353  struct yy_trans_info
   354  	{
   355  	flex_int32_t yy_verify;
   356  	flex_int32_t yy_nxt;
   357  	};
   358  static yyconst flex_int16_t yy_accept[114] =
   359      {   0,
   360          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   361          0,    0,    0,    0,    0,    0,   32,   30,   17,   28,
   362         29,   29,   18,   27,   27,   28,   28,   19,   19,   29,
   363         27,   29,   30,   17,   28,   29,   29,   28,   26,   24,
   364         25,    9,    9,    9,    9,    9,    9,    9,   16,   28,
   365         29,   16,    6,    4,   19,   28,   19,   19,   28,   20,
   366         29,    5,   29,    0,    0,    0,    0,    3,    0,   28,
   367         24,   23,   10,    0,   12,   13,    0,    0,    7,    8,
   368         19,   19,   19,    3,    0,    2,    0,    2,    2,   21,
   369         22,   23,   11,   14,   15,   19,   19,   19,   19,   19,
   370  
   371         19,    0,    2,    0,    2,    0,    0,    0,    0,    0,
   372          1,    0,    0
   373      } ;
   374  
   375  static yyconst flex_int32_t yy_ec[256] =
   376      {   0,
   377          1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
   378          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   379          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   380          1,    4,    5,    6,    7,    1,    8,    9,   10,   11,
   381         12,   13,   14,    1,   15,   16,   17,   18,   19,   19,
   382         19,   19,   19,   19,   19,   19,   19,    1,   20,   21,
   383         22,   23,   24,   25,   26,   26,   26,   26,   27,   28,
   384         29,   29,   29,   29,   29,   30,   29,   29,   29,   29,
   385         29,   29,   29,   29,   31,   29,   29,   29,   29,   29,
   386         32,    1,   33,    1,   29,    1,   26,   26,   26,   26,
   387  
   388         34,   28,   29,   29,   29,   29,   29,   30,   29,   35,
   389         29,   29,   29,   29,   29,   29,   31,   36,   29,   37,
   390         29,   29,   38,   39,   40,    1,    1,    1,    1,    1,
   391          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   392          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   393          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   394          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   395          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   396          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   397          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   398  
   399          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   400          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   401          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   402          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   403          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   404          1,    1,    1,    1,    1
   405      } ;
   406  
   407  static yyconst flex_int32_t yy_meta[41] =
   408      {   0,
   409          1,    2,    3,    2,    4,    5,    6,    1,    1,    5,
   410          1,    1,    6,    1,    4,    7,    8,    9,    9,    1,
   411          4,   10,    1,    4,    6,    9,    9,    9,    9,    9,
   412          9,    1,    1,    9,    9,    9,    9,    1,    1,    1
   413      } ;
   414  
   415  static yyconst flex_int16_t yy_base[125] =
   416      {   0,
   417          0,   39,   39,   59,  214,  213,  210,  209,  208,  207,
   418        208,  207,  213,  212,  207,  206,  215,  358,  208,    0,
   419        358,  204,  202,  197,  358,    0,  194,   90,  112,  185,
   420        190,  165,  145,   38,   44,  199,  184,   38,  358,  174,
   421        358,  358,  178,  179,  151,  176,  180,  174,  174,    0,
   422        358,  168,  358,    0,    0,   38,   31,  140,  137,  140,
   423        358,  358,  358,    0,  154,  139,  133,    0,  155,  141,
   424        122,   54,  358,  118,  358,  358,  131,  113,  358,  358,
   425         53,   84,  174,    0,  164,   96,   62,  100,   28,  358,
   426        358,   74,  358,  358,  358,  157,   71,    0,    0,   77,
   427  
   428          0,   88,   14,   94,  108,   96,  207,  131,  175,  134,
   429        243,  165,  358,  280,  290,  295,  301,  302,  312,  321,
   430        326,  328,  337,  347
   431      } ;
   432  
   433  static yyconst flex_int16_t yy_def[125] =
   434      {   0,
   435        113,    1,  114,  114,  115,  115,  115,  115,  115,  115,
   436        115,  115,  115,  115,  115,  115,  113,  113,  113,  116,
   437        113,  113,  113,  113,  113,  116,  116,  113,  116,  117,
   438        113,  113,  113,  113,  116,  113,  113,  116,  113,  118,
   439        113,  113,  113,  113,  113,  113,  113,  113,  113,  116,
   440        113,  113,  113,  116,   29,  116,  116,  116,  116,  117,
   441        113,  113,  113,   33,  113,  113,  113,  119,  120,  116,
   442        118,  121,  113,  113,  113,  113,  113,  113,  113,  113,
   443        113,  116,   29,  119,  120,   85,  122,   85,   88,  113,
   444        113,  121,  113,  113,  113,  113,  113,  116,   83,   83,
   445  
   446         83,  122,   88,  122,   88,  122,  123,  122,  123,  124,
   447        123,  124,    0,  113,  113,  113,  113,  113,  113,  113,
   448        113,  113,  113,  113
   449      } ;
   450  
   451  static yyconst flex_int16_t yy_nxt[399] =
   452      {   0,
   453         18,   18,   18,   18,   18,   19,   20,   21,   22,   23,
   454         24,   25,   26,   21,   21,   20,   27,   28,   29,   25,
   455         30,   18,   18,   18,   20,   20,   20,   20,   20,   20,
   456         20,   25,   25,   20,   20,   20,   20,   31,   32,   25,
   457         33,   68,   33,   49,   34,   35,   36,   68,   69,  105,
   458         54,   81,   81,   37,   70,   38,   40,   40,   57,   90,
   459         57,   41,  103,   91,   40,   40,   40,   40,   40,   40,
   460         96,   96,   40,   40,   40,   40,   40,   40,  102,  113,
   461         97,   41,   97,  113,   40,   40,   40,   40,   40,   40,
   462         81,   81,   40,   40,   40,   40,   50,  113,   97,  113,
   463  
   464         97,  113,   50,  113,  102,   55,   50,   55,   55,  107,
   465        102,  107,  102,   98,   50,   50,   56,   57,   50,   57,
   466         58,  104,   95,   56,   50,   50,   59,   55,  106,   55,
   467         55,  108,  107,   88,  107,  107,   94,  107,   56,   57,
   468         93,   57,   58,   72,   68,   56,   64,  102,   64,   65,
   469         65,   65,   65,   65,   83,   83,   85,   68,   85,   66,
   470        113,   67,   83,   83,   83,   85,  107,   85,  107,   82,
   471         83,   86,   87,   87,   96,   96,  113,   80,  113,   79,
   472         86,   87,   87,   78,   97,   77,   97,   76,   89,   99,
   473         75,   99,   99,   74,   73,   72,  110,   89,   65,   99,
   474  
   475        100,  101,   68,   63,   62,   61,   54,  100,  107,   53,
   476        107,   52,   51,   49,  113,   48,   48,   47,   47,   46,
   477         46,   45,   45,   44,   44,   43,   43,  113,  110,  113,
   478        113,  113,  111,  111,  111,  111,  111,  111,  113,  113,
   479        111,  111,  111,  111,  113,  113,  113,  113,  113,  113,
   480        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   481        113,  113,  113,  113,  110,  113,  113,  113,  111,  111,
   482        111,  111,  111,  111,  113,  113,  111,  111,  111,  111,
   483         39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
   484         42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
   485  
   486         50,   50,   50,   50,   60,  113,  113,   60,   60,   60,
   487         71,   71,   84,   84,  113,   84,   84,   84,   84,   84,
   488         84,   84,   88,  113,  113,  113,  113,  113,   88,   88,
   489         92,  113,  113,  113,   92,   87,   87,  109,  109,  109,
   490        109,  109,  109,  109,  109,  109,  109,  112,  112,  112,
   491        112,  112,  112,  112,  112,  112,  112,   17,  113,  113,
   492        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   493        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   494        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   495        113,  113,  113,  113,  113,  113,  113,  113
   496  
   497      } ;
   498  
   499  static yyconst flex_int16_t yy_chk[399] =
   500      {   0,
   501          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   502          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   503          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   504          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
   505          2,   34,    2,   34,    2,    2,    2,   35,   35,  103,
   506         38,   56,   56,    2,   38,    2,    3,    3,   57,   72,
   507         57,    3,   89,   72,    3,    3,    3,    3,    3,    3,
   508         81,   81,    3,    3,    3,    3,    4,    4,   87,   92,
   509         81,    4,   81,   92,    4,    4,    4,    4,    4,    4,
   510        100,  100,    4,    4,    4,    4,   28,   86,   97,   86,
   511  
   512         97,   88,   28,   88,  102,   28,   28,   28,   28,  105,
   513        104,  105,  106,   82,   28,   28,   28,   28,   28,   28,
   514         28,  102,   78,   28,   28,   28,   28,   29,  104,   29,
   515         29,  106,  108,   88,  108,  110,   77,  110,   29,   29,
   516         74,   29,   29,   71,   70,   29,   33,  108,   33,   67,
   517         33,   33,   33,   66,   59,   59,   69,   65,   69,   33,
   518         60,   33,   59,   59,   59,   85,  112,   85,  112,   58,
   519         59,   69,   69,   69,   96,   96,  109,   52,  109,   49,
   520         85,   85,   85,   48,   96,   47,   96,   46,   69,   83,
   521         45,   83,   83,   44,   43,   40,  109,   85,   37,   83,
   522  
   523         83,   83,   36,   32,   31,   30,   27,   83,  107,   24,
   524        107,   23,   22,   19,   17,   16,   15,   14,   13,   12,
   525         11,   10,    9,    8,    7,    6,    5,    0,  107,    0,
   526          0,    0,  107,  107,  107,  107,  107,  107,    0,    0,
   527        107,  107,  107,  107,  111,    0,  111,    0,    0,    0,
   528          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
   529          0,    0,    0,    0,  111,    0,    0,    0,  111,  111,
   530        111,  111,  111,  111,    0,    0,  111,  111,  111,  111,
   531        114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
   532        115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
   533  
   534        116,  116,  116,  116,  117,    0,    0,  117,  117,  117,
   535        118,  118,  119,  119,    0,  119,  119,  119,  119,  119,
   536        119,  119,  120,    0,    0,    0,    0,    0,  120,  120,
   537        121,    0,    0,    0,  121,  122,  122,  123,  123,  123,
   538        123,  123,  123,  123,  123,  123,  123,  124,  124,  124,
   539        124,  124,  124,  124,  124,  124,  124,  113,  113,  113,
   540        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   541        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   542        113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
   543        113,  113,  113,  113,  113,  113,  113,  113
   544  
   545      } ;
   546  
   547  /* The intent behind this definition is that it'll catch
   548   * any uses of REJECT which flex missed.
   549   */
   550  #define REJECT reject_used_but_not_detected
   551  #define yymore() yymore_used_but_not_detected
   552  #define YY_MORE_ADJ 0
   553  #define YY_RESTORE_YY_MORE_OFFSET
   554  #line 1 "tokenizer.l"
   555  #line 2 "tokenizer.l"
   556  
   557  #include "linguist.h"
   558  
   559  #define feed_token(tok, typ) do { \
   560      yyextra->token = (tok); \
   561      yyextra->type = (typ); \
   562    } while (0)
   563  
   564  #define eat_until_eol() do { \
   565      int c; \
   566      while ((c = input(yyscanner)) != '\n' && c != EOF && c); \
   567      if (c == EOF || !c) \
   568        return 0; \
   569    } while (0)
   570  
   571  #define eat_until_unescaped(q) do { \
   572      int c; \
   573      while ((c = input(yyscanner)) != EOF && c) { \
   574        if (c == '\n') \
   575          break; \
   576        if (c == '\\') { \
   577          c = input(yyscanner); \
   578          if (c == EOF || !c) \
   579            return 0; \
   580        } else if (c == q) \
   581          break; \
   582      } \
   583      if (c == EOF || !c) \
   584        return 0; \
   585    } while (0)
   586  
   587  
   588  #line 589 "lex.linguist_yy.c"
   589  
   590  #define INITIAL 0
   591  #define sgml 1
   592  #define c_comment 2
   593  #define xml_comment 3
   594  #define haskell_comment 4
   595  #define ocaml_comment 5
   596  #define python_dcomment 6
   597  #define python_scomment 7
   598  
   599  #ifndef YY_NO_UNISTD_H
   600  /* Special case for "unistd.h", since it is non-ANSI. We include it way
   601   * down here because we want the user's section 1 to have been scanned first.
   602   * The user has a chance to override it with an option.
   603   */
   604  #include <unistd.h>
   605  #endif
   606  
   607  #define YY_EXTRA_TYPE struct tokenizer_extra *
   608  
   609  /* Holds the entire state of the reentrant scanner. */
   610  struct yyguts_t
   611      {
   612  
   613      /* User-defined. Not touched by flex. */
   614      YY_EXTRA_TYPE yyextra_r;
   615  
   616      /* The rest are the same as the globals declared in the non-reentrant scanner. */
   617      FILE *yyin_r, *yyout_r;
   618      size_t yy_buffer_stack_top; /**< index of top of stack. */
   619      size_t yy_buffer_stack_max; /**< capacity of stack. */
   620      YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
   621      char yy_hold_char;
   622      yy_size_t yy_n_chars;
   623      yy_size_t yyleng_r;
   624      char *yy_c_buf_p;
   625      int yy_init;
   626      int yy_start;
   627      int yy_did_buffer_switch_on_eof;
   628      int yy_start_stack_ptr;
   629      int yy_start_stack_depth;
   630      int *yy_start_stack;
   631      yy_state_type yy_last_accepting_state;
   632      char* yy_last_accepting_cpos;
   633  
   634      int yylineno_r;
   635      int yy_flex_debug_r;
   636  
   637      char *yytext_r;
   638      int yy_more_flag;
   639      int yy_more_len;
   640  
   641      }; /* end struct yyguts_t */
   642  
   643  static int yy_init_globals (yyscan_t yyscanner );
   644  
   645  int linguist_yylex_init (yyscan_t* scanner);
   646  
   647  int linguist_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
   648  
   649  /* Accessor methods to globals.
   650     These are made visible to non-reentrant scanners for convenience. */
   651  
   652  int linguist_yylex_destroy (yyscan_t yyscanner );
   653  
   654  int linguist_yyget_debug (yyscan_t yyscanner );
   655  
   656  void linguist_yyset_debug (int debug_flag ,yyscan_t yyscanner );
   657  
   658  YY_EXTRA_TYPE linguist_yyget_extra (yyscan_t yyscanner );
   659  
   660  void linguist_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
   661  
   662  FILE *linguist_yyget_in (yyscan_t yyscanner );
   663  
   664  void linguist_yyset_in  (FILE * in_str ,yyscan_t yyscanner );
   665  
   666  FILE *linguist_yyget_out (yyscan_t yyscanner );
   667  
   668  void linguist_yyset_out  (FILE * out_str ,yyscan_t yyscanner );
   669  
   670  yy_size_t linguist_yyget_leng (yyscan_t yyscanner );
   671  
   672  char *linguist_yyget_text (yyscan_t yyscanner );
   673  
   674  int linguist_yyget_lineno (yyscan_t yyscanner );
   675  
   676  void linguist_yyset_lineno (int line_number ,yyscan_t yyscanner );
   677  
   678  /* Macros after this point can all be overridden by user definitions in
   679   * section 1.
   680   */
   681  
   682  #ifndef YY_SKIP_YYWRAP
   683  #ifdef __cplusplus
   684  extern "C" int linguist_yywrap (yyscan_t yyscanner );
   685  #else
   686  extern int linguist_yywrap (yyscan_t yyscanner );
   687  #endif
   688  #endif
   689  
   690  #ifndef yytext_ptr
   691  static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
   692  #endif
   693  
   694  #ifdef YY_NEED_STRLEN
   695  static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
   696  #endif
   697  
   698  #ifndef YY_NO_INPUT
   699  
   700  #ifdef __cplusplus
   701  static int yyinput (yyscan_t yyscanner );
   702  #else
   703  static int input (yyscan_t yyscanner );
   704  #endif
   705  
   706  #endif
   707  
   708  /* Amount of stuff to slurp up with each read. */
   709  #ifndef YY_READ_BUF_SIZE
   710  #define YY_READ_BUF_SIZE 8192
   711  #endif
   712  
   713  /* Copy whatever the last rule matched to the standard output. */
   714  #ifndef ECHO
   715  /* This used to be an fputs(), but since the string might contain NUL's,
   716   * we now use fwrite().
   717   */
   718  #define ECHO fwrite( yytext, yyleng, 1, yyout )
   719  #endif
   720  
   721  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
   722   * is returned in "result".
   723   */
   724  #ifndef YY_INPUT
   725  #define YY_INPUT(buf,result,max_size) \
   726  	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
   727  		{ \
   728  		int c = '*'; \
   729  		yy_size_t n; \
   730  		for ( n = 0; n < max_size && \
   731  			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
   732  			buf[n] = (char) c; \
   733  		if ( c == '\n' ) \
   734  			buf[n++] = (char) c; \
   735  		if ( c == EOF && ferror( yyin ) ) \
   736  			YY_FATAL_ERROR( "input in flex scanner failed" ); \
   737  		result = n; \
   738  		} \
   739  	else \
   740  		{ \
   741  		errno=0; \
   742  		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
   743  			{ \
   744  			if( errno != EINTR) \
   745  				{ \
   746  				YY_FATAL_ERROR( "input in flex scanner failed" ); \
   747  				break; \
   748  				} \
   749  			errno=0; \
   750  			clearerr(yyin); \
   751  			} \
   752  		}\
   753  \
   754  
   755  #endif
   756  
   757  /* No semi-colon after return; correct usage is to write "yyterminate();" -
   758   * we don't want an extra ';' after the "return" because that will cause
   759   * some compilers to complain about unreachable statements.
   760   */
   761  #ifndef yyterminate
   762  #define yyterminate() return YY_NULL
   763  #endif
   764  
   765  /* Number of entries by which start-condition stack grows. */
   766  #ifndef YY_START_STACK_INCR
   767  #define YY_START_STACK_INCR 25
   768  #endif
   769  
   770  /* Report a fatal error. */
   771  #ifndef YY_FATAL_ERROR
   772  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
   773  #endif
   774  
   775  /* end tables serialization structures and prototypes */
   776  
   777  /* Default declaration of generated scanner - a define so the user can
   778   * easily add parameters.
   779   */
   780  #ifndef YY_DECL
   781  #define YY_DECL_IS_OURS 1
   782  
   783  extern int linguist_yylex (yyscan_t yyscanner);
   784  
   785  #define YY_DECL int linguist_yylex (yyscan_t yyscanner)
   786  #endif /* !YY_DECL */
   787  
   788  /* Code executed at the beginning of each rule, after yytext and yyleng
   789   * have been set up.
   790   */
   791  #ifndef YY_USER_ACTION
   792  #define YY_USER_ACTION
   793  #endif
   794  
   795  /* Code executed at the end of each rule. */
   796  #ifndef YY_BREAK
   797  #define YY_BREAK break;
   798  #endif
   799  
   800  #define YY_RULE_SETUP \
   801  	if ( yyleng > 0 ) \
   802  		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
   803  				(yytext[yyleng - 1] == '\n'); \
   804  	YY_USER_ACTION
   805  
   806  /** The main scanner function which does all the work.
   807   */
   808  YY_DECL
   809  {
   810  	register yy_state_type yy_current_state;
   811  	register char *yy_cp, *yy_bp;
   812  	register int yy_act;
   813      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
   814  
   815  #line 38 "tokenizer.l"
   816  
   817  
   818  #line 819 "lex.linguist_yy.c"
   819  
   820  	if ( !yyg->yy_init )
   821  		{
   822  		yyg->yy_init = 1;
   823  
   824  #ifdef YY_USER_INIT
   825  		YY_USER_INIT;
   826  #endif
   827  
   828  		if ( ! yyg->yy_start )
   829  			yyg->yy_start = 1;	/* first start state */
   830  
   831  		if ( ! yyin )
   832  			yyin = stdin;
   833  
   834  		if ( ! yyout )
   835  			yyout = stdout;
   836  
   837  		if ( ! YY_CURRENT_BUFFER ) {
   838  			linguist_yyensure_buffer_stack (yyscanner);
   839  			YY_CURRENT_BUFFER_LVALUE =
   840  				linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
   841  		}
   842  
   843  		linguist_yy_load_buffer_state(yyscanner );
   844  		}
   845  
   846  	while ( 1 )		/* loops until end-of-file is reached */
   847  		{
   848  		yy_cp = yyg->yy_c_buf_p;
   849  
   850  		/* Support of yytext. */
   851  		*yy_cp = yyg->yy_hold_char;
   852  
   853  		/* yy_bp points to the position in yy_ch_buf of the start of
   854  		 * the current run.
   855  		 */
   856  		yy_bp = yy_cp;
   857  
   858  		yy_current_state = yyg->yy_start;
   859  		yy_current_state += YY_AT_BOL();
   860  yy_match:
   861  		do
   862  			{
   863  			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
   864  			if ( yy_accept[yy_current_state] )
   865  				{
   866  				yyg->yy_last_accepting_state = yy_current_state;
   867  				yyg->yy_last_accepting_cpos = yy_cp;
   868  				}
   869  			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   870  				{
   871  				yy_current_state = (int) yy_def[yy_current_state];
   872  				if ( yy_current_state >= 114 )
   873  					yy_c = yy_meta[(unsigned int) yy_c];
   874  				}
   875  			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   876  			++yy_cp;
   877  			}
   878  		while ( yy_current_state != 113 );
   879  		yy_cp = yyg->yy_last_accepting_cpos;
   880  		yy_current_state = yyg->yy_last_accepting_state;
   881  
   882  yy_find_action:
   883  		yy_act = yy_accept[yy_current_state];
   884  
   885  		YY_DO_BEFORE_ACTION;
   886  
   887  do_action:	/* This label is used only to access EOF actions. */
   888  
   889  		switch ( yy_act )
   890  	{ /* beginning of action switch */
   891  			case 0: /* must back up */
   892  			/* undo the effects of YY_DO_BEFORE_ACTION */
   893  			*yy_cp = yyg->yy_hold_char;
   894  			yy_cp = yyg->yy_last_accepting_cpos;
   895  			yy_current_state = yyg->yy_last_accepting_state;
   896  			goto yy_find_action;
   897  
   898  case 1:
   899  /* rule 1 can match eol */
   900  YY_RULE_SETUP
   901  #line 40 "tokenizer.l"
   902  {
   903      const char *off = strrchr(yytext, ' ');
   904      if (!off)
   905        off = yytext;
   906      else
   907        ++off;
   908      feed_token(strdup(off), SHEBANG_TOKEN);
   909      eat_until_eol();
   910      return 1;
   911    }
   912  	YY_BREAK
   913  case 2:
   914  YY_RULE_SETUP
   915  #line 51 "tokenizer.l"
   916  {
   917      const char *off = strrchr(yytext, '/');
   918      if (!off)
   919        off = yytext;
   920      else
   921        ++off;
   922      if (strcmp(off, "env") == 0) {
   923        eat_until_eol();
   924      } else {
   925        feed_token(strdup(off), SHEBANG_TOKEN);
   926        eat_until_eol();
   927        return 1;
   928      }
   929    }
   930  	YY_BREAK
   931  case 3:
   932  YY_RULE_SETUP
   933  #line 66 "tokenizer.l"
   934  { /* nothing */ }
   935  	YY_BREAK
   936  case 4:
   937  YY_RULE_SETUP
   938  #line 68 "tokenizer.l"
   939  { BEGIN(c_comment); }
   940  	YY_BREAK
   941  /* See below for xml_comment start. */
   942  case 5:
   943  YY_RULE_SETUP
   944  #line 70 "tokenizer.l"
   945  { BEGIN(haskell_comment); }
   946  	YY_BREAK
   947  case 6:
   948  YY_RULE_SETUP
   949  #line 71 "tokenizer.l"
   950  { BEGIN(ocaml_comment); }
   951  	YY_BREAK
   952  case 7:
   953  YY_RULE_SETUP
   954  #line 72 "tokenizer.l"
   955  { BEGIN(python_dcomment); }
   956  	YY_BREAK
   957  case 8:
   958  YY_RULE_SETUP
   959  #line 73 "tokenizer.l"
   960  { BEGIN(python_scomment); }
   961  	YY_BREAK
   962  case 9:
   963  /* rule 9 can match eol */
   964  YY_RULE_SETUP
   965  #line 75 "tokenizer.l"
   966  { /* nothing */ }
   967  	YY_BREAK
   968  case 10:
   969  YY_RULE_SETUP
   970  #line 76 "tokenizer.l"
   971  { BEGIN(INITIAL); }
   972  	YY_BREAK
   973  case 11:
   974  YY_RULE_SETUP
   975  #line 77 "tokenizer.l"
   976  { BEGIN(INITIAL); }
   977  	YY_BREAK
   978  case 12:
   979  YY_RULE_SETUP
   980  #line 78 "tokenizer.l"
   981  { BEGIN(INITIAL); }
   982  	YY_BREAK
   983  case 13:
   984  YY_RULE_SETUP
   985  #line 79 "tokenizer.l"
   986  { BEGIN(INITIAL); }
   987  	YY_BREAK
   988  case 14:
   989  YY_RULE_SETUP
   990  #line 80 "tokenizer.l"
   991  { BEGIN(INITIAL); }
   992  	YY_BREAK
   993  case 15:
   994  YY_RULE_SETUP
   995  #line 81 "tokenizer.l"
   996  { BEGIN(INITIAL); }
   997  	YY_BREAK
   998  case 16:
   999  YY_RULE_SETUP
  1000  #line 83 "tokenizer.l"
  1001  { /* nothing */ }
  1002  	YY_BREAK
  1003  case 17:
  1004  YY_RULE_SETUP
  1005  #line 84 "tokenizer.l"
  1006  { eat_until_unescaped('"'); }
  1007  	YY_BREAK
  1008  case 18:
  1009  YY_RULE_SETUP
  1010  #line 85 "tokenizer.l"
  1011  { eat_until_unescaped('\''); }
  1012  	YY_BREAK
  1013  case 19:
  1014  YY_RULE_SETUP
  1015  #line 86 "tokenizer.l"
  1016  { /* nothing */ }
  1017  	YY_BREAK
  1018  case 20:
  1019  YY_RULE_SETUP
  1020  #line 87 "tokenizer.l"
  1021  {
  1022      if (strcmp(yytext, "<!--") == 0) {
  1023       BEGIN(xml_comment);
  1024      } else {
  1025        feed_token(strdup(yytext), SGML_TOKEN);
  1026        BEGIN(sgml);
  1027        return 1;
  1028      }
  1029    }
  1030  	YY_BREAK
  1031  case 21:
  1032  YY_RULE_SETUP
  1033  #line 96 "tokenizer.l"
  1034  { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('"'); return 1; }
  1035  	YY_BREAK
  1036  case 22:
  1037  YY_RULE_SETUP
  1038  #line 97 "tokenizer.l"
  1039  { feed_token(strndup(yytext, strlen(yytext) - 1), REGULAR_TOKEN); eat_until_unescaped('\''); return 1; }
  1040  	YY_BREAK
  1041  case 23:
  1042  YY_RULE_SETUP
  1043  #line 98 "tokenizer.l"
  1044  { feed_token(strdup(yytext), REGULAR_TOKEN); *(strchr(yyextra->token, '=') + 1) = 0; return 1; }
  1045  	YY_BREAK
  1046  case 24:
  1047  YY_RULE_SETUP
  1048  #line 99 "tokenizer.l"
  1049  { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; }
  1050  	YY_BREAK
  1051  case 25:
  1052  YY_RULE_SETUP
  1053  #line 100 "tokenizer.l"
  1054  { BEGIN(INITIAL); }
  1055  	YY_BREAK
  1056  case 26:
  1057  /* rule 26 can match eol */
  1058  YY_RULE_SETUP
  1059  #line 101 "tokenizer.l"
  1060  { /* nothing */ }
  1061  	YY_BREAK
  1062  case 27:
  1063  YY_RULE_SETUP
  1064  #line 102 "tokenizer.l"
  1065  { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; }
  1066  	YY_BREAK
  1067  case 28:
  1068  YY_RULE_SETUP
  1069  #line 103 "tokenizer.l"
  1070  {
  1071      if (strncmp(yytext, "/*", 2) == 0) {
  1072        if (strlen(yytext) >= 4 && strcmp(yytext + strlen(yytext) - 2, "*/") == 0) {
  1073          /* nothing */
  1074        } else {
  1075          BEGIN(c_comment);
  1076        }
  1077      } else {
  1078        feed_token(strdup(yytext), REGULAR_TOKEN);
  1079        return 1;
  1080      }
  1081    }
  1082  	YY_BREAK
  1083  case 29:
  1084  YY_RULE_SETUP
  1085  #line 115 "tokenizer.l"
  1086  { feed_token(strdup(yytext), REGULAR_TOKEN); return 1; }
  1087  	YY_BREAK
  1088  case 30:
  1089  /* rule 30 can match eol */
  1090  YY_RULE_SETUP
  1091  #line 116 "tokenizer.l"
  1092  { /* nothing */ }
  1093  	YY_BREAK
  1094  case 31:
  1095  YY_RULE_SETUP
  1096  #line 118 "tokenizer.l"
  1097  YY_FATAL_ERROR( "flex scanner jammed" );
  1098  	YY_BREAK
  1099  #line 1100 "lex.linguist_yy.c"
  1100  case YY_STATE_EOF(INITIAL):
  1101  case YY_STATE_EOF(sgml):
  1102  case YY_STATE_EOF(c_comment):
  1103  case YY_STATE_EOF(xml_comment):
  1104  case YY_STATE_EOF(haskell_comment):
  1105  case YY_STATE_EOF(ocaml_comment):
  1106  case YY_STATE_EOF(python_dcomment):
  1107  case YY_STATE_EOF(python_scomment):
  1108  	yyterminate();
  1109  
  1110  	case YY_END_OF_BUFFER:
  1111  		{
  1112  		/* Amount of text matched not including the EOB char. */
  1113  		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
  1114  
  1115  		/* Undo the effects of YY_DO_BEFORE_ACTION. */
  1116  		*yy_cp = yyg->yy_hold_char;
  1117  		YY_RESTORE_YY_MORE_OFFSET
  1118  
  1119  		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  1120  			{
  1121  			/* We're scanning a new file or input source.  It's
  1122  			 * possible that this happened because the user
  1123  			 * just pointed yyin at a new source and called
  1124  			 * linguist_yylex().  If so, then we have to assure
  1125  			 * consistency between YY_CURRENT_BUFFER and our
  1126  			 * globals.  Here is the right place to do so, because
  1127  			 * this is the first action (other than possibly a
  1128  			 * back-up) that will match for the new input source.
  1129  			 */
  1130  			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  1131  			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  1132  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  1133  			}
  1134  
  1135  		/* Note that here we test for yy_c_buf_p "<=" to the position
  1136  		 * of the first EOB in the buffer, since yy_c_buf_p will
  1137  		 * already have been incremented past the NUL character
  1138  		 * (since all states make transitions on EOB to the
  1139  		 * end-of-buffer state).  Contrast this with the test
  1140  		 * in input().
  1141  		 */
  1142  		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
  1143  			{ /* This was really a NUL. */
  1144  			yy_state_type yy_next_state;
  1145  
  1146  			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
  1147  
  1148  			yy_current_state = yy_get_previous_state( yyscanner );
  1149  
  1150  			/* Okay, we're now positioned to make the NUL
  1151  			 * transition.  We couldn't have
  1152  			 * yy_get_previous_state() go ahead and do it
  1153  			 * for us because it doesn't know how to deal
  1154  			 * with the possibility of jamming (and we don't
  1155  			 * want to build jamming into it because then it
  1156  			 * will run more slowly).
  1157  			 */
  1158  
  1159  			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
  1160  
  1161  			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  1162  
  1163  			if ( yy_next_state )
  1164  				{
  1165  				/* Consume the NUL. */
  1166  				yy_cp = ++yyg->yy_c_buf_p;
  1167  				yy_current_state = yy_next_state;
  1168  				goto yy_match;
  1169  				}
  1170  
  1171  			else
  1172  				{
  1173  				yy_cp = yyg->yy_last_accepting_cpos;
  1174  				yy_current_state = yyg->yy_last_accepting_state;
  1175  				goto yy_find_action;
  1176  				}
  1177  			}
  1178  
  1179  		else switch ( yy_get_next_buffer( yyscanner ) )
  1180  			{
  1181  			case EOB_ACT_END_OF_FILE:
  1182  				{
  1183  				yyg->yy_did_buffer_switch_on_eof = 0;
  1184  
  1185  				if ( linguist_yywrap(yyscanner ) )
  1186  					{
  1187  					/* Note: because we've taken care in
  1188  					 * yy_get_next_buffer() to have set up
  1189  					 * yytext, we can now set up
  1190  					 * yy_c_buf_p so that if some total
  1191  					 * hoser (like flex itself) wants to
  1192  					 * call the scanner after we return the
  1193  					 * YY_NULL, it'll still work - another
  1194  					 * YY_NULL will get returned.
  1195  					 */
  1196  					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
  1197  
  1198  					yy_act = YY_STATE_EOF(YY_START);
  1199  					goto do_action;
  1200  					}
  1201  
  1202  				else
  1203  					{
  1204  					if ( ! yyg->yy_did_buffer_switch_on_eof )
  1205  						YY_NEW_FILE;
  1206  					}
  1207  				break;
  1208  				}
  1209  
  1210  			case EOB_ACT_CONTINUE_SCAN:
  1211  				yyg->yy_c_buf_p =
  1212  					yyg->yytext_ptr + yy_amount_of_matched_text;
  1213  
  1214  				yy_current_state = yy_get_previous_state( yyscanner );
  1215  
  1216  				yy_cp = yyg->yy_c_buf_p;
  1217  				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  1218  				goto yy_match;
  1219  
  1220  			case EOB_ACT_LAST_MATCH:
  1221  				yyg->yy_c_buf_p =
  1222  				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
  1223  
  1224  				yy_current_state = yy_get_previous_state( yyscanner );
  1225  
  1226  				yy_cp = yyg->yy_c_buf_p;
  1227  				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  1228  				goto yy_find_action;
  1229  			}
  1230  		break;
  1231  		}
  1232  
  1233  	default:
  1234  		YY_FATAL_ERROR(
  1235  			"fatal flex scanner internal error--no action found" );
  1236  	} /* end of action switch */
  1237  		} /* end of scanning one token */
  1238  } /* end of linguist_yylex */
  1239  
  1240  /* yy_get_next_buffer - try to read in a new buffer
  1241   *
  1242   * Returns a code representing an action:
  1243   *	EOB_ACT_LAST_MATCH -
  1244   *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1245   *	EOB_ACT_END_OF_FILE - end of file
  1246   */
  1247  static int yy_get_next_buffer (yyscan_t yyscanner)
  1248  {
  1249      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1250  	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  1251  	register char *source = yyg->yytext_ptr;
  1252  	register int number_to_move, i;
  1253  	int ret_val;
  1254  
  1255  	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
  1256  		YY_FATAL_ERROR(
  1257  		"fatal flex scanner internal error--end of buffer missed" );
  1258  
  1259  	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  1260  		{ /* Don't try to fill the buffer, so this is an EOF. */
  1261  		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
  1262  			{
  1263  			/* We matched a single character, the EOB, so
  1264  			 * treat this as a final EOF.
  1265  			 */
  1266  			return EOB_ACT_END_OF_FILE;
  1267  			}
  1268  
  1269  		else
  1270  			{
  1271  			/* We matched some text prior to the EOB, first
  1272  			 * process it.
  1273  			 */
  1274  			return EOB_ACT_LAST_MATCH;
  1275  			}
  1276  		}
  1277  
  1278  	/* Try to read more data. */
  1279  
  1280  	/* First move last chars to start of buffer. */
  1281  	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
  1282  
  1283  	for ( i = 0; i < number_to_move; ++i )
  1284  		*(dest++) = *(source++);
  1285  
  1286  	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  1287  		/* don't do the read, it's not guaranteed to return an EOF,
  1288  		 * just force an EOF
  1289  		 */
  1290  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
  1291  
  1292  	else
  1293  		{
  1294  			yy_size_t num_to_read =
  1295  			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  1296  
  1297  		while ( num_to_read <= 0 )
  1298  			{ /* Not enough room in the buffer - grow it. */
  1299  
  1300  			/* just a shorter name for the current buffer */
  1301  			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
  1302  
  1303  			int yy_c_buf_p_offset =
  1304  				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
  1305  
  1306  			if ( b->yy_is_our_buffer )
  1307  				{
  1308  				yy_size_t new_size = b->yy_buf_size * 2;
  1309  
  1310  				if ( new_size <= 0 )
  1311  					b->yy_buf_size += b->yy_buf_size / 8;
  1312  				else
  1313  					b->yy_buf_size *= 2;
  1314  
  1315  				b->yy_ch_buf = (char *)
  1316  					/* Include room in for 2 EOB chars. */
  1317  					linguist_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
  1318  				}
  1319  			else
  1320  				/* Can't grow it, we don't own it. */
  1321  				b->yy_ch_buf = 0;
  1322  
  1323  			if ( ! b->yy_ch_buf )
  1324  				YY_FATAL_ERROR(
  1325  				"fatal error - scanner input buffer overflow" );
  1326  
  1327  			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  1328  
  1329  			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  1330  						number_to_move - 1;
  1331  
  1332  			}
  1333  
  1334  		if ( num_to_read > YY_READ_BUF_SIZE )
  1335  			num_to_read = YY_READ_BUF_SIZE;
  1336  
  1337  		/* Read in more data. */
  1338  		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  1339  			yyg->yy_n_chars, num_to_read );
  1340  
  1341  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
  1342  		}
  1343  
  1344  	if ( yyg->yy_n_chars == 0 )
  1345  		{
  1346  		if ( number_to_move == YY_MORE_ADJ )
  1347  			{
  1348  			ret_val = EOB_ACT_END_OF_FILE;
  1349  			linguist_yyrestart(yyin  ,yyscanner);
  1350  			}
  1351  
  1352  		else
  1353  			{
  1354  			ret_val = EOB_ACT_LAST_MATCH;
  1355  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  1356  				YY_BUFFER_EOF_PENDING;
  1357  			}
  1358  		}
  1359  
  1360  	else
  1361  		ret_val = EOB_ACT_CONTINUE_SCAN;
  1362  
  1363  	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  1364  		/* Extend the array by 50%, plus the number we really need. */
  1365  		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
  1366  		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) linguist_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
  1367  		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  1368  			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  1369  	}
  1370  
  1371  	yyg->yy_n_chars += number_to_move;
  1372  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1373  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1374  
  1375  	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  1376  
  1377  	return ret_val;
  1378  }
  1379  
  1380  /* yy_get_previous_state - get the state just before the EOB char was reached */
  1381  
  1382      static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
  1383  {
  1384  	register yy_state_type yy_current_state;
  1385  	register char *yy_cp;
  1386      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1387  
  1388  	yy_current_state = yyg->yy_start;
  1389  	yy_current_state += YY_AT_BOL();
  1390  
  1391  	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
  1392  		{
  1393  		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  1394  		if ( yy_accept[yy_current_state] )
  1395  			{
  1396  			yyg->yy_last_accepting_state = yy_current_state;
  1397  			yyg->yy_last_accepting_cpos = yy_cp;
  1398  			}
  1399  		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1400  			{
  1401  			yy_current_state = (int) yy_def[yy_current_state];
  1402  			if ( yy_current_state >= 114 )
  1403  				yy_c = yy_meta[(unsigned int) yy_c];
  1404  			}
  1405  		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1406  		}
  1407  
  1408  	return yy_current_state;
  1409  }
  1410  
  1411  /* yy_try_NUL_trans - try to make a transition on the NUL character
  1412   *
  1413   * synopsis
  1414   *	next_state = yy_try_NUL_trans( current_state );
  1415   */
  1416      static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
  1417  {
  1418  	register int yy_is_jam;
  1419      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
  1420  	register char *yy_cp = yyg->yy_c_buf_p;
  1421  
  1422  	register YY_CHAR yy_c = 1;
  1423  	if ( yy_accept[yy_current_state] )
  1424  		{
  1425  		yyg->yy_last_accepting_state = yy_current_state;
  1426  		yyg->yy_last_accepting_cpos = yy_cp;
  1427  		}
  1428  	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1429  		{
  1430  		yy_current_state = (int) yy_def[yy_current_state];
  1431  		if ( yy_current_state >= 114 )
  1432  			yy_c = yy_meta[(unsigned int) yy_c];
  1433  		}
  1434  	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1435  	yy_is_jam = (yy_current_state == 113);
  1436  
  1437  	return yy_is_jam ? 0 : yy_current_state;
  1438  }
  1439  
  1440  #ifndef YY_NO_INPUT
  1441  #ifdef __cplusplus
  1442      static int yyinput (yyscan_t yyscanner)
  1443  #else
  1444      static int input  (yyscan_t yyscanner)
  1445  #endif
  1446  
  1447  {
  1448  	int c;
  1449      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1450  
  1451  	*yyg->yy_c_buf_p = yyg->yy_hold_char;
  1452  
  1453  	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1454  		{
  1455  		/* yy_c_buf_p now points to the character we want to return.
  1456  		 * If this occurs *before* the EOB characters, then it's a
  1457  		 * valid NUL; if not, then we've hit the end of the buffer.
  1458  		 */
  1459  		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
  1460  			/* This was really a NUL. */
  1461  			*yyg->yy_c_buf_p = '\0';
  1462  
  1463  		else
  1464  			{ /* need more input */
  1465  			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
  1466  			++yyg->yy_c_buf_p;
  1467  
  1468  			switch ( yy_get_next_buffer( yyscanner ) )
  1469  				{
  1470  				case EOB_ACT_LAST_MATCH:
  1471  					/* This happens because yy_g_n_b()
  1472  					 * sees that we've accumulated a
  1473  					 * token and flags that we need to
  1474  					 * try matching the token before
  1475  					 * proceeding.  But for input(),
  1476  					 * there's no matching to consider.
  1477  					 * So convert the EOB_ACT_LAST_MATCH
  1478  					 * to EOB_ACT_END_OF_FILE.
  1479  					 */
  1480  
  1481  					/* Reset buffer status. */
  1482  					linguist_yyrestart(yyin ,yyscanner);
  1483  
  1484  					/*FALLTHROUGH*/
  1485  
  1486  				case EOB_ACT_END_OF_FILE:
  1487  					{
  1488  					if ( linguist_yywrap(yyscanner ) )
  1489  						return 0;
  1490  
  1491  					if ( ! yyg->yy_did_buffer_switch_on_eof )
  1492  						YY_NEW_FILE;
  1493  #ifdef __cplusplus
  1494  					return yyinput(yyscanner);
  1495  #else
  1496  					return input(yyscanner);
  1497  #endif
  1498  					}
  1499  
  1500  				case EOB_ACT_CONTINUE_SCAN:
  1501  					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
  1502  					break;
  1503  				}
  1504  			}
  1505  		}
  1506  
  1507  	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
  1508  	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
  1509  	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
  1510  
  1511  	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
  1512  
  1513  	return c;
  1514  }
  1515  #endif	/* ifndef YY_NO_INPUT */
  1516  
  1517  /** Immediately switch to a different input stream.
  1518   * @param input_file A readable stream.
  1519   * @param yyscanner The scanner object.
  1520   * @note This function does not reset the start condition to @c INITIAL .
  1521   */
  1522      void linguist_yyrestart  (FILE * input_file , yyscan_t yyscanner)
  1523  {
  1524      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1525  
  1526  	if ( ! YY_CURRENT_BUFFER ){
  1527          linguist_yyensure_buffer_stack (yyscanner);
  1528  		YY_CURRENT_BUFFER_LVALUE =
  1529              linguist_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
  1530  	}
  1531  
  1532  	linguist_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
  1533  	linguist_yy_load_buffer_state(yyscanner );
  1534  }
  1535  
  1536  /** Switch to a different input buffer.
  1537   * @param new_buffer The new input buffer.
  1538   * @param yyscanner The scanner object.
  1539   */
  1540      void linguist_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
  1541  {
  1542      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1543  
  1544  	/* TODO. We should be able to replace this entire function body
  1545  	 * with
  1546  	 *		linguist_yypop_buffer_state();
  1547  	 *		linguist_yypush_buffer_state(new_buffer);
  1548       */
  1549  	linguist_yyensure_buffer_stack (yyscanner);
  1550  	if ( YY_CURRENT_BUFFER == new_buffer )
  1551  		return;
  1552  
  1553  	if ( YY_CURRENT_BUFFER )
  1554  		{
  1555  		/* Flush out information for old buffer. */
  1556  		*yyg->yy_c_buf_p = yyg->yy_hold_char;
  1557  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
  1558  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
  1559  		}
  1560  
  1561  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
  1562  	linguist_yy_load_buffer_state(yyscanner );
  1563  
  1564  	/* We don't actually know whether we did this switch during
  1565  	 * EOF (linguist_yywrap()) processing, but the only time this flag
  1566  	 * is looked at is after linguist_yywrap() is called, so it's safe
  1567  	 * to go ahead and always set it.
  1568  	 */
  1569  	yyg->yy_did_buffer_switch_on_eof = 1;
  1570  }
  1571  
  1572  static void linguist_yy_load_buffer_state  (yyscan_t yyscanner)
  1573  {
  1574      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1575  	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  1576  	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  1577  	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  1578  	yyg->yy_hold_char = *yyg->yy_c_buf_p;
  1579  }
  1580  
  1581  /** Allocate and initialize an input buffer state.
  1582   * @param file A readable stream.
  1583   * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
  1584   * @param yyscanner The scanner object.
  1585   * @return the allocated buffer state.
  1586   */
  1587      YY_BUFFER_STATE linguist_yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
  1588  {
  1589  	YY_BUFFER_STATE b;
  1590      
  1591  	b = (YY_BUFFER_STATE) linguist_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
  1592  	if ( ! b )
  1593  		YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_create_buffer()" );
  1594  
  1595  	b->yy_buf_size = size;
  1596  
  1597  	/* yy_ch_buf has to be 2 characters longer than the size given because
  1598  	 * we need to put in 2 end-of-buffer characters.
  1599  	 */
  1600  	b->yy_ch_buf = (char *) linguist_yyalloc(b->yy_buf_size + 2 ,yyscanner );
  1601  	if ( ! b->yy_ch_buf )
  1602  		YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_create_buffer()" );
  1603  
  1604  	b->yy_is_our_buffer = 1;
  1605  
  1606  	linguist_yy_init_buffer(b,file ,yyscanner);
  1607  
  1608  	return b;
  1609  }
  1610  
  1611  /** Destroy the buffer.
  1612   * @param b a buffer created with linguist_yy_create_buffer()
  1613   * @param yyscanner The scanner object.
  1614   */
  1615      void linguist_yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  1616  {
  1617      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1618  
  1619  	if ( ! b )
  1620  		return;
  1621  
  1622  	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  1623  		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  1624  
  1625  	if ( b->yy_is_our_buffer )
  1626  		linguist_yyfree((void *) b->yy_ch_buf ,yyscanner );
  1627  
  1628  	linguist_yyfree((void *) b ,yyscanner );
  1629  }
  1630  
  1631  /* Initializes or reinitializes a buffer.
  1632   * This function is sometimes called more than once on the same buffer,
  1633   * such as during a linguist_yyrestart() or at EOF.
  1634   */
  1635      static void linguist_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
  1636  
  1637  {
  1638  	int oerrno = errno;
  1639      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1640  
  1641  	linguist_yy_flush_buffer(b ,yyscanner);
  1642  
  1643  	b->yy_input_file = file;
  1644  	b->yy_fill_buffer = 1;
  1645  
  1646      /* If b is the current buffer, then linguist_yy_init_buffer was _probably_
  1647       * called from linguist_yyrestart() or through yy_get_next_buffer.
  1648       * In that case, we don't want to reset the lineno or column.
  1649       */
  1650      if (b != YY_CURRENT_BUFFER){
  1651          b->yy_bs_lineno = 1;
  1652          b->yy_bs_column = 0;
  1653      }
  1654  
  1655          b->yy_is_interactive = 0;
  1656      
  1657  	errno = oerrno;
  1658  }
  1659  
  1660  /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  1661   * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  1662   * @param yyscanner The scanner object.
  1663   */
  1664      void linguist_yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  1665  {
  1666      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1667  	if ( ! b )
  1668  		return;
  1669  
  1670  	b->yy_n_chars = 0;
  1671  
  1672  	/* We always need two end-of-buffer characters.  The first causes
  1673  	 * a transition to the end-of-buffer state.  The second causes
  1674  	 * a jam in that state.
  1675  	 */
  1676  	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  1677  	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1678  
  1679  	b->yy_buf_pos = &b->yy_ch_buf[0];
  1680  
  1681  	b->yy_at_bol = 1;
  1682  	b->yy_buffer_status = YY_BUFFER_NEW;
  1683  
  1684  	if ( b == YY_CURRENT_BUFFER )
  1685  		linguist_yy_load_buffer_state(yyscanner );
  1686  }
  1687  
  1688  /** Pushes the new state onto the stack. The new state becomes
  1689   *  the current state. This function will allocate the stack
  1690   *  if necessary.
  1691   *  @param new_buffer The new state.
  1692   *  @param yyscanner The scanner object.
  1693   */
  1694  void linguist_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
  1695  {
  1696      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1697  	if (new_buffer == NULL)
  1698  		return;
  1699  
  1700  	linguist_yyensure_buffer_stack(yyscanner);
  1701  
  1702  	/* This block is copied from linguist_yy_switch_to_buffer. */
  1703  	if ( YY_CURRENT_BUFFER )
  1704  		{
  1705  		/* Flush out information for old buffer. */
  1706  		*yyg->yy_c_buf_p = yyg->yy_hold_char;
  1707  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
  1708  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
  1709  		}
  1710  
  1711  	/* Only push if top exists. Otherwise, replace top. */
  1712  	if (YY_CURRENT_BUFFER)
  1713  		yyg->yy_buffer_stack_top++;
  1714  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
  1715  
  1716  	/* copied from linguist_yy_switch_to_buffer. */
  1717  	linguist_yy_load_buffer_state(yyscanner );
  1718  	yyg->yy_did_buffer_switch_on_eof = 1;
  1719  }
  1720  
  1721  /** Removes and deletes the top of the stack, if present.
  1722   *  The next element becomes the new top.
  1723   *  @param yyscanner The scanner object.
  1724   */
  1725  void linguist_yypop_buffer_state (yyscan_t yyscanner)
  1726  {
  1727      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1728  	if (!YY_CURRENT_BUFFER)
  1729  		return;
  1730  
  1731  	linguist_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
  1732  	YY_CURRENT_BUFFER_LVALUE = NULL;
  1733  	if (yyg->yy_buffer_stack_top > 0)
  1734  		--yyg->yy_buffer_stack_top;
  1735  
  1736  	if (YY_CURRENT_BUFFER) {
  1737  		linguist_yy_load_buffer_state(yyscanner );
  1738  		yyg->yy_did_buffer_switch_on_eof = 1;
  1739  	}
  1740  }
  1741  
  1742  /* Allocates the stack if it does not exist.
  1743   *  Guarantees space for at least one push.
  1744   */
  1745  static void linguist_yyensure_buffer_stack (yyscan_t yyscanner)
  1746  {
  1747  	yy_size_t num_to_alloc;
  1748      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1749  
  1750  	if (!yyg->yy_buffer_stack) {
  1751  
  1752  		/* First allocation is just for 2 elements, since we don't know if this
  1753  		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
  1754  		 * immediate realloc on the next call.
  1755           */
  1756  		num_to_alloc = 1;
  1757  		yyg->yy_buffer_stack = (struct yy_buffer_state**)linguist_yyalloc
  1758  								(num_to_alloc * sizeof(struct yy_buffer_state*)
  1759  								, yyscanner);
  1760  		if ( ! yyg->yy_buffer_stack )
  1761  			YY_FATAL_ERROR( "out of dynamic memory in linguist_yyensure_buffer_stack()" );
  1762  								  
  1763  		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
  1764  				
  1765  		yyg->yy_buffer_stack_max = num_to_alloc;
  1766  		yyg->yy_buffer_stack_top = 0;
  1767  		return;
  1768  	}
  1769  
  1770  	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
  1771  
  1772  		/* Increase the buffer to prepare for a possible push. */
  1773  		int grow_size = 8 /* arbitrary grow size */;
  1774  
  1775  		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
  1776  		yyg->yy_buffer_stack = (struct yy_buffer_state**)linguist_yyrealloc
  1777  								(yyg->yy_buffer_stack,
  1778  								num_to_alloc * sizeof(struct yy_buffer_state*)
  1779  								, yyscanner);
  1780  		if ( ! yyg->yy_buffer_stack )
  1781  			YY_FATAL_ERROR( "out of dynamic memory in linguist_yyensure_buffer_stack()" );
  1782  
  1783  		/* zero only the new slots.*/
  1784  		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
  1785  		yyg->yy_buffer_stack_max = num_to_alloc;
  1786  	}
  1787  }
  1788  
  1789  /** Setup the input buffer state to scan directly from a user-specified character buffer.
  1790   * @param base the character buffer
  1791   * @param size the size in bytes of the character buffer
  1792   * @param yyscanner The scanner object.
  1793   * @return the newly allocated buffer state object. 
  1794   */
  1795  YY_BUFFER_STATE linguist_yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
  1796  {
  1797  	YY_BUFFER_STATE b;
  1798      
  1799  	if ( size < 2 ||
  1800  	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
  1801  	     base[size-1] != YY_END_OF_BUFFER_CHAR )
  1802  		/* They forgot to leave room for the EOB's. */
  1803  		return 0;
  1804  
  1805  	b = (YY_BUFFER_STATE) linguist_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
  1806  	if ( ! b )
  1807  		YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_scan_buffer()" );
  1808  
  1809  	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
  1810  	b->yy_buf_pos = b->yy_ch_buf = base;
  1811  	b->yy_is_our_buffer = 0;
  1812  	b->yy_input_file = 0;
  1813  	b->yy_n_chars = b->yy_buf_size;
  1814  	b->yy_is_interactive = 0;
  1815  	b->yy_at_bol = 1;
  1816  	b->yy_fill_buffer = 0;
  1817  	b->yy_buffer_status = YY_BUFFER_NEW;
  1818  
  1819  	linguist_yy_switch_to_buffer(b ,yyscanner );
  1820  
  1821  	return b;
  1822  }
  1823  
  1824  /** Setup the input buffer state to scan a string. The next call to linguist_yylex() will
  1825   * scan from a @e copy of @a str.
  1826   * @param yystr a NUL-terminated string to scan
  1827   * @param yyscanner The scanner object.
  1828   * @return the newly allocated buffer state object.
  1829   * @note If you want to scan bytes that may contain NUL values, then use
  1830   *       linguist_yy_scan_bytes() instead.
  1831   */
  1832  YY_BUFFER_STATE linguist_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
  1833  {
  1834      
  1835  	return linguist_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner);
  1836  }
  1837  
  1838  /** Setup the input buffer state to scan the given bytes. The next call to linguist_yylex() will
  1839   * scan from a @e copy of @a bytes.
  1840   * @param bytes the byte buffer to scan
  1841   * @param len the number of bytes in the buffer pointed to by @a bytes.
  1842   * @param yyscanner The scanner object.
  1843   * @return the newly allocated buffer state object.
  1844   */
  1845  YY_BUFFER_STATE linguist_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
  1846  {
  1847  	YY_BUFFER_STATE b;
  1848  	char *buf;
  1849  	yy_size_t n, i;
  1850      
  1851  	/* Get memory for full buffer, including space for trailing EOB's. */
  1852  	n = _yybytes_len + 2;
  1853  	buf = (char *) linguist_yyalloc(n ,yyscanner );
  1854  	if ( ! buf )
  1855  		YY_FATAL_ERROR( "out of dynamic memory in linguist_yy_scan_bytes()" );
  1856  
  1857  	for ( i = 0; i < _yybytes_len; ++i )
  1858  		buf[i] = yybytes[i];
  1859  
  1860  	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
  1861  
  1862  	b = linguist_yy_scan_buffer(buf,n ,yyscanner);
  1863  	if ( ! b )
  1864  		YY_FATAL_ERROR( "bad buffer in linguist_yy_scan_bytes()" );
  1865  
  1866  	/* It's okay to grow etc. this buffer, and we should throw it
  1867  	 * away when we're done.
  1868  	 */
  1869  	b->yy_is_our_buffer = 1;
  1870  
  1871  	return b;
  1872  }
  1873  
  1874  #ifndef YY_EXIT_FAILURE
  1875  #define YY_EXIT_FAILURE 2
  1876  #endif
  1877  
  1878  static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
  1879  {
  1880      	(void) fprintf( stderr, "%s\n", msg );
  1881  	exit( YY_EXIT_FAILURE );
  1882  }
  1883  
  1884  /* Redefine yyless() so it works in section 3 code. */
  1885  
  1886  #undef yyless
  1887  #define yyless(n) \
  1888  	do \
  1889  		{ \
  1890  		/* Undo effects of setting up yytext. */ \
  1891          int yyless_macro_arg = (n); \
  1892          YY_LESS_LINENO(yyless_macro_arg);\
  1893  		yytext[yyleng] = yyg->yy_hold_char; \
  1894  		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
  1895  		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
  1896  		*yyg->yy_c_buf_p = '\0'; \
  1897  		yyleng = yyless_macro_arg; \
  1898  		} \
  1899  	while ( 0 )
  1900  
  1901  /* Accessor  methods (get/set functions) to struct members. */
  1902  
  1903  /** Get the user-defined data for this scanner.
  1904   * @param yyscanner The scanner object.
  1905   */
  1906  YY_EXTRA_TYPE linguist_yyget_extra  (yyscan_t yyscanner)
  1907  {
  1908      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1909      return yyextra;
  1910  }
  1911  
  1912  /** Get the current line number.
  1913   * @param yyscanner The scanner object.
  1914   */
  1915  int linguist_yyget_lineno  (yyscan_t yyscanner)
  1916  {
  1917      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1918      
  1919          if (! YY_CURRENT_BUFFER)
  1920              return 0;
  1921      
  1922      return yylineno;
  1923  }
  1924  
  1925  /** Get the current column number.
  1926   * @param yyscanner The scanner object.
  1927   */
  1928  int linguist_yyget_column  (yyscan_t yyscanner)
  1929  {
  1930      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1931      
  1932          if (! YY_CURRENT_BUFFER)
  1933              return 0;
  1934      
  1935      return yycolumn;
  1936  }
  1937  
  1938  /** Get the input stream.
  1939   * @param yyscanner The scanner object.
  1940   */
  1941  FILE *linguist_yyget_in  (yyscan_t yyscanner)
  1942  {
  1943      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1944      return yyin;
  1945  }
  1946  
  1947  /** Get the output stream.
  1948   * @param yyscanner The scanner object.
  1949   */
  1950  FILE *linguist_yyget_out  (yyscan_t yyscanner)
  1951  {
  1952      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1953      return yyout;
  1954  }
  1955  
  1956  /** Get the length of the current token.
  1957   * @param yyscanner The scanner object.
  1958   */
  1959  yy_size_t linguist_yyget_leng  (yyscan_t yyscanner)
  1960  {
  1961      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1962      return yyleng;
  1963  }
  1964  
  1965  /** Get the current token.
  1966   * @param yyscanner The scanner object.
  1967   */
  1968  
  1969  char *linguist_yyget_text  (yyscan_t yyscanner)
  1970  {
  1971      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1972      return yytext;
  1973  }
  1974  
  1975  /** Set the user-defined data. This data is never touched by the scanner.
  1976   * @param user_defined The data to be associated with this scanner.
  1977   * @param yyscanner The scanner object.
  1978   */
  1979  void linguist_yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
  1980  {
  1981      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1982      yyextra = user_defined ;
  1983  }
  1984  
  1985  /** Set the current line number.
  1986   * @param line_number
  1987   * @param yyscanner The scanner object.
  1988   */
  1989  void linguist_yyset_lineno (int  line_number , yyscan_t yyscanner)
  1990  {
  1991      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  1992  
  1993          /* lineno is only valid if an input buffer exists. */
  1994          if (! YY_CURRENT_BUFFER )
  1995             yy_fatal_error( "linguist_yyset_lineno called with no buffer" , yyscanner); 
  1996      
  1997      yylineno = line_number;
  1998  }
  1999  
  2000  /** Set the current column.
  2001   * @param line_number
  2002   * @param yyscanner The scanner object.
  2003   */
  2004  void linguist_yyset_column (int  column_no , yyscan_t yyscanner)
  2005  {
  2006      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2007  
  2008          /* column is only valid if an input buffer exists. */
  2009          if (! YY_CURRENT_BUFFER )
  2010             yy_fatal_error( "linguist_yyset_column called with no buffer" , yyscanner); 
  2011      
  2012      yycolumn = column_no;
  2013  }
  2014  
  2015  /** Set the input stream. This does not discard the current
  2016   * input buffer.
  2017   * @param in_str A readable stream.
  2018   * @param yyscanner The scanner object.
  2019   * @see linguist_yy_switch_to_buffer
  2020   */
  2021  void linguist_yyset_in (FILE *  in_str , yyscan_t yyscanner)
  2022  {
  2023      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2024      yyin = in_str ;
  2025  }
  2026  
  2027  void linguist_yyset_out (FILE *  out_str , yyscan_t yyscanner)
  2028  {
  2029      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2030      yyout = out_str ;
  2031  }
  2032  
  2033  int linguist_yyget_debug  (yyscan_t yyscanner)
  2034  {
  2035      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2036      return yy_flex_debug;
  2037  }
  2038  
  2039  void linguist_yyset_debug (int  bdebug , yyscan_t yyscanner)
  2040  {
  2041      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2042      yy_flex_debug = bdebug ;
  2043  }
  2044  
  2045  /* Accessor methods for yylval and yylloc */
  2046  
  2047  /* User-visible API */
  2048  
  2049  /* linguist_yylex_init is special because it creates the scanner itself, so it is
  2050   * the ONLY reentrant function that doesn't take the scanner as the last argument.
  2051   * That's why we explicitly handle the declaration, instead of using our macros.
  2052   */
  2053  
  2054  int linguist_yylex_init(yyscan_t* ptr_yy_globals)
  2055  
  2056  {
  2057      if (ptr_yy_globals == NULL){
  2058          errno = EINVAL;
  2059          return 1;
  2060      }
  2061  
  2062      *ptr_yy_globals = (yyscan_t) linguist_yyalloc ( sizeof( struct yyguts_t ), NULL );
  2063  
  2064      if (*ptr_yy_globals == NULL){
  2065          errno = ENOMEM;
  2066          return 1;
  2067      }
  2068  
  2069      /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
  2070      memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
  2071  
  2072      return yy_init_globals ( *ptr_yy_globals );
  2073  }
  2074  
  2075  /* linguist_yylex_init_extra has the same functionality as linguist_yylex_init, but follows the
  2076   * convention of taking the scanner as the last argument. Note however, that
  2077   * this is a *pointer* to a scanner, as it will be allocated by this call (and
  2078   * is the reason, too, why this function also must handle its own declaration).
  2079   * The user defined value in the first argument will be available to linguist_yyalloc in
  2080   * the yyextra field.
  2081   */
  2082  
  2083  int linguist_yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
  2084  
  2085  {
  2086      struct yyguts_t dummy_yyguts;
  2087  
  2088      linguist_yyset_extra (yy_user_defined, &dummy_yyguts);
  2089  
  2090      if (ptr_yy_globals == NULL){
  2091          errno = EINVAL;
  2092          return 1;
  2093      }
  2094  	
  2095      *ptr_yy_globals = (yyscan_t) linguist_yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
  2096  	
  2097      if (*ptr_yy_globals == NULL){
  2098          errno = ENOMEM;
  2099          return 1;
  2100      }
  2101      
  2102      /* By setting to 0xAA, we expose bugs in
  2103      yy_init_globals. Leave at 0x00 for releases. */
  2104      memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
  2105      
  2106      linguist_yyset_extra (yy_user_defined, *ptr_yy_globals);
  2107      
  2108      return yy_init_globals ( *ptr_yy_globals );
  2109  }
  2110  
  2111  static int yy_init_globals (yyscan_t yyscanner)
  2112  {
  2113      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2114      /* Initialization is the same as for the non-reentrant scanner.
  2115       * This function is called from linguist_yylex_destroy(), so don't allocate here.
  2116       */
  2117  
  2118      yyg->yy_buffer_stack = 0;
  2119      yyg->yy_buffer_stack_top = 0;
  2120      yyg->yy_buffer_stack_max = 0;
  2121      yyg->yy_c_buf_p = (char *) 0;
  2122      yyg->yy_init = 0;
  2123      yyg->yy_start = 0;
  2124  
  2125      yyg->yy_start_stack_ptr = 0;
  2126      yyg->yy_start_stack_depth = 0;
  2127      yyg->yy_start_stack =  NULL;
  2128  
  2129  /* Defined in main.c */
  2130  #ifdef YY_STDINIT
  2131      yyin = stdin;
  2132      yyout = stdout;
  2133  #else
  2134      yyin = (FILE *) 0;
  2135      yyout = (FILE *) 0;
  2136  #endif
  2137  
  2138      /* For future reference: Set errno on error, since we are called by
  2139       * linguist_yylex_init()
  2140       */
  2141      return 0;
  2142  }
  2143  
  2144  /* linguist_yylex_destroy is for both reentrant and non-reentrant scanners. */
  2145  int linguist_yylex_destroy  (yyscan_t yyscanner)
  2146  {
  2147      struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  2148  
  2149      /* Pop the buffer stack, destroying each element. */
  2150  	while(YY_CURRENT_BUFFER){
  2151  		linguist_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
  2152  		YY_CURRENT_BUFFER_LVALUE = NULL;
  2153  		linguist_yypop_buffer_state(yyscanner);
  2154  	}
  2155  
  2156  	/* Destroy the stack itself. */
  2157  	linguist_yyfree(yyg->yy_buffer_stack ,yyscanner);
  2158  	yyg->yy_buffer_stack = NULL;
  2159  
  2160      /* Destroy the start condition stack. */
  2161          linguist_yyfree(yyg->yy_start_stack ,yyscanner );
  2162          yyg->yy_start_stack = NULL;
  2163  
  2164      /* Reset the globals. This is important in a non-reentrant scanner so the next time
  2165       * linguist_yylex() is called, initialization will occur. */
  2166      yy_init_globals( yyscanner);
  2167  
  2168      /* Destroy the main struct (reentrant only). */
  2169      linguist_yyfree ( yyscanner , yyscanner );
  2170      yyscanner = NULL;
  2171      return 0;
  2172  }
  2173  
  2174  /*
  2175   * Internal utility routines.
  2176   */
  2177  
  2178  #ifndef yytext_ptr
  2179  static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
  2180  {
  2181  	register int i;
  2182  	for ( i = 0; i < n; ++i )
  2183  		s1[i] = s2[i];
  2184  }
  2185  #endif
  2186  
  2187  #ifdef YY_NEED_STRLEN
  2188  static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
  2189  {
  2190  	register int n;
  2191  	for ( n = 0; s[n]; ++n )
  2192  		;
  2193  
  2194  	return n;
  2195  }
  2196  #endif
  2197  
  2198  void *linguist_yyalloc (yy_size_t  size , yyscan_t yyscanner)
  2199  {
  2200  	return (void *) malloc( size );
  2201  }
  2202  
  2203  void *linguist_yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
  2204  {
  2205  	/* The cast to (char *) in the following accommodates both
  2206  	 * implementations that use char* generic pointers, and those
  2207  	 * that use void* generic pointers.  It works with the latter
  2208  	 * because both ANSI C and C++ allow castless assignment from
  2209  	 * any pointer type to void*, and deal with argument conversions
  2210  	 * as though doing an assignment.
  2211  	 */
  2212  	return (void *) realloc( (char *) ptr, size );
  2213  }
  2214  
  2215  void linguist_yyfree (void * ptr , yyscan_t yyscanner)
  2216  {
  2217  	free( (char *) ptr );	/* see linguist_yyrealloc() for (char *) cast */
  2218  }
  2219  
  2220  #define YYTABLES_NAME "yytables"
  2221  
  2222  #line 118 "tokenizer.l"
  2223  
  2224  
  2225  
  2226