Home | History | Annotate | Download | only in flex-2.5.4a
      1 /* File created from flex.skl via mkskel.sh */
      2 
      3 #include "flexdef.h"
      4 
      5 const char *skel[] = {
      6   "/* A lexical scanner generated by flex */",
      7   "",
      8   "/* Scanner skeleton version:",
      9   " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $",
     10   " */",
     11   "",
     12   "#define FLEX_SCANNER",
     13   "#define YY_FLEX_MAJOR_VERSION 2",
     14   "#define YY_FLEX_MINOR_VERSION 5",
     15   "",
     16   "%-",
     17   "#include <stdio.h>",
     18   "%*",
     19   "",
     20   "",
     21   "/* cfront 1.2 defines \"c_plusplus\" instead of \"__cplusplus\" */",
     22   "#ifdef c_plusplus",
     23   "#ifndef __cplusplus",
     24   "#define __cplusplus",
     25   "#endif",
     26   "#endif",
     27   "",
     28   "",
     29   "#ifdef __cplusplus",
     30   "",
     31   "#include <stdlib.h>",
     32   "%+",
     33   "class istream;",
     34   "%*",
     35   "#include <unistd.h>",
     36   "",
     37   "/* Use prototypes in function declarations. */",
     38   "#define YY_USE_PROTOS",
     39   "",
     40   "/* The \"const\" storage-class-modifier is valid. */",
     41   "#define YY_USE_CONST",
     42   "",
     43   "#else	/* ! __cplusplus */",
     44   "",
     45   "#if __STDC__",
     46   "",
     47   "#define YY_USE_PROTOS",
     48   "#define YY_USE_CONST",
     49   "",
     50   "#endif	/* __STDC__ */",
     51   "#endif	/* ! __cplusplus */",
     52   "",
     53   "#ifdef __TURBOC__",
     54   " #pragma warn -rch",
     55   " #pragma warn -use",
     56   "#include <io.h>",
     57   "#include <stdlib.h>",
     58   "#define YY_USE_CONST",
     59   "#define YY_USE_PROTOS",
     60   "#endif",
     61   "",
     62   "#ifdef YY_USE_CONST",
     63   "#define yyconst const",
     64   "#else",
     65   "#define yyconst",
     66   "#endif",
     67   "",
     68   "",
     69   "#ifdef YY_USE_PROTOS",
     70   "#define YY_PROTO(proto) proto",
     71   "#else",
     72   "#define YY_PROTO(proto) ()",
     73   "#endif",
     74   "",
     75   "/* Returned upon end-of-file. */",
     76   "#define YY_NULL 0",
     77   "",
     78   "/* Promotes a possibly negative, possibly signed char to an unsigned",
     79   " * integer for use as an array index.  If the signed char is negative,",
     80   " * we want to instead treat it as an 8-bit unsigned char, hence the",
     81   " * double cast.",
     82   " */",
     83   "#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)",
     84   "",
     85   "/* Enter a start condition.  This macro really ought to take a parameter,",
     86   " * but we do it the disgusting crufty way forced on us by the ()-less",
     87   " * definition of BEGIN.",
     88   " */",
     89   "#define BEGIN yy_start = 1 + 2 *",
     90   "",
     91   "/* Translate the current start state into a value that can be later handed",
     92   " * to BEGIN to return to the state.  The YYSTATE alias is for lex",
     93   " * compatibility.",
     94   " */",
     95   "#define YY_START ((yy_start - 1) / 2)",
     96   "#define YYSTATE YY_START",
     97   "",
     98   "/* Action number for EOF rule of a given start state. */",
     99   "#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)",
    100   "",
    101   "/* Special action meaning \"start processing a new file\". */",
    102   "#define YY_NEW_FILE yyrestart( yyin )",
    103   "",
    104   "#define YY_END_OF_BUFFER_CHAR 0",
    105   "",
    106   "/* Size of default input buffer. */",
    107   "#define YY_BUF_SIZE 16384",
    108   "",
    109   "typedef struct yy_buffer_state *YY_BUFFER_STATE;",
    110   "",
    111   "extern int yyleng;",
    112   "%-",
    113   "extern FILE *yyin, *yyout;",
    114   "%*",
    115   "",
    116   "#define EOB_ACT_CONTINUE_SCAN 0",
    117   "#define EOB_ACT_END_OF_FILE 1",
    118   "#define EOB_ACT_LAST_MATCH 2",
    119   "",
    120   "/* The funky do-while in the following #define is used to turn the definition",
    121   " * int a single C statement (which needs a semi-colon terminator).  This",
    122   " * avoids problems with code like:",
    123   " *",
    124   " * 	if ( condition_holds )",
    125   " *		yyless( 5 );",
    126   " *	else",
    127   " *		do_something_else();",
    128   " *",
    129   " * Prior to using the do-while the compiler would get upset at the",
    130   " * \"else\" because it interpreted the \"if\" statement as being all",
    131   " * done when it reached the ';' after the yyless() call.",
    132   " */",
    133   "",
    134   "/* Return all but the first 'n' matched characters back to the input stream. */",
    135   "",
    136   "#define yyless(n) \\",
    137   "	do \\",
    138   "		{ \\",
    139   "		/* Undo effects of setting up yytext. */ \\",
    140   "		*yy_cp = yy_hold_char; \\",
    141   "		YY_RESTORE_YY_MORE_OFFSET \\",
    142   "		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \\",
    143   "		YY_DO_BEFORE_ACTION; /* set up yytext again */ \\",
    144   "		} \\",
    145   "	while ( 0 )",
    146   "",
    147   "#define unput(c) yyunput( c, yytext_ptr )",
    148   "",
    149   "/* The following is because we cannot portably get our hands on size_t",
    150   " * (without autoconf's help, which isn't available because we want",
    151   " * flex-generated scanners to compile on their own).",
    152   " */",
    153   "typedef unsigned int yy_size_t;",
    154   "",
    155   "",
    156   "struct yy_buffer_state",
    157   "	{",
    158   "%-",
    159   "	FILE *yy_input_file;",
    160   "%+",
    161   "	istream* yy_input_file;",
    162   "%*",
    163   "",
    164   "	char *yy_ch_buf;		/* input buffer */",
    165   "	char *yy_buf_pos;		/* current position in input buffer */",
    166   "",
    167   "	/* Size of input buffer in bytes, not including room for EOB",
    168   "	 * characters.",
    169   "	 */",
    170   "	yy_size_t yy_buf_size;",
    171   "",
    172   "	/* Number of characters read into yy_ch_buf, not including EOB",
    173   "	 * characters.",
    174   "	 */",
    175   "	int yy_n_chars;",
    176   "",
    177   "	/* Whether we \"own\" the buffer - i.e., we know we created it,",
    178   "	 * and can realloc() it to grow it, and should free() it to",
    179   "	 * delete it.",
    180   "	 */",
    181   "	int yy_is_our_buffer;",
    182   "",
    183   "	/* Whether this is an \"interactive\" input source; if so, and",
    184   "	 * if we're using stdio for input, then we want to use getc()",
    185   "	 * instead of fread(), to make sure we stop fetching input after",
    186   "	 * each newline.",
    187   "	 */",
    188   "	int yy_is_interactive;",
    189   "",
    190   "	/* Whether we're considered to be at the beginning of a line.",
    191   "	 * If so, '^' rules will be active on the next match, otherwise",
    192   "	 * not.",
    193   "	 */",
    194   "	int yy_at_bol;",
    195   "",
    196   "	/* Whether to try to fill the input buffer when we reach the",
    197   "	 * end of it.",
    198   "	 */",
    199   "	int yy_fill_buffer;",
    200   "",
    201   "	int yy_buffer_status;",
    202   "#define YY_BUFFER_NEW 0",
    203   "#define YY_BUFFER_NORMAL 1",
    204   "	/* When an EOF's been seen but there's still some text to process",
    205   "	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we",
    206   "	 * shouldn't try reading from the input source any more.  We might",
    207   "	 * still have a bunch of tokens to match, though, because of",
    208   "	 * possible backing-up.",
    209   "	 *",
    210   "	 * When we actually see the EOF, we change the status to \"new\"",
    211   "	 * (via yyrestart()), so that the user can continue scanning by",
    212   "	 * just pointing yyin at a new input file.",
    213   "	 */",
    214   "#define YY_BUFFER_EOF_PENDING 2",
    215   "	};",
    216   "",
    217   "%- Standard (non-C++) definition",
    218   "static YY_BUFFER_STATE yy_current_buffer = 0;",
    219   "%*",
    220   "",
    221   "/* We provide macros for accessing buffer states in case in the",
    222   " * future we want to put the buffer states in a more general",
    223   " * \"scanner state\".",
    224   " */",
    225   "#define YY_CURRENT_BUFFER yy_current_buffer",
    226   "",
    227   "",
    228   "%- Standard (non-C++) definition",
    229   "/* yy_hold_char holds the character lost when yytext is formed. */",
    230   "static char yy_hold_char;",
    231   "",
    232   "static int yy_n_chars;		/* number of characters read into yy_ch_buf */",
    233   "",
    234   "",
    235   "int yyleng;",
    236   "",
    237   "/* Points to current character in buffer. */",
    238   "static char *yy_c_buf_p = (char *) 0;",
    239   "static int yy_init = 1;		/* whether we need to initialize */",
    240   "static int yy_start = 0;	/* start state number */",
    241   "",
    242   "/* Flag which is used to allow yywrap()'s to do buffer switches",
    243   " * instead of setting up a fresh yyin.  A bit of a hack ...",
    244   " */",
    245   "static int yy_did_buffer_switch_on_eof;",
    246   "",
    247   "void yyrestart YY_PROTO(( FILE *input_file ));",
    248   "",
    249   "void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));",
    250   "void yy_load_buffer_state YY_PROTO(( void ));",
    251   "YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));",
    252   "void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));",
    253   "void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));",
    254   "void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));",
    255   "#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )",
    256   "",
    257   "YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));",
    258   "YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));",
    259   "YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));",
    260   "%*",
    261   "",
    262   "static void *yy_flex_alloc YY_PROTO(( yy_size_t ));",
    263   "static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));",
    264   "static void yy_flex_free YY_PROTO(( void * ));",
    265   "",
    266   "#define yy_new_buffer yy_create_buffer",
    267   "",
    268   "#define yy_set_interactive(is_interactive) \\",
    269   "	{ \\",
    270   "	if ( ! yy_current_buffer ) \\",
    271   "		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\",
    272   "	yy_current_buffer->yy_is_interactive = is_interactive; \\",
    273   "	}",
    274   "",
    275   "#define yy_set_bol(at_bol) \\",
    276   "	{ \\",
    277   "	if ( ! yy_current_buffer ) \\",
    278   "		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\",
    279   "	yy_current_buffer->yy_at_bol = at_bol; \\",
    280   "	}",
    281   "",
    282   "#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)",
    283   "",
    284   "%% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here",
    285   "",
    286   "%- Standard (non-C++) definition",
    287   "static yy_state_type yy_get_previous_state YY_PROTO(( void ));",
    288   "static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));",
    289   "static int yy_get_next_buffer YY_PROTO(( void ));",
    290   "static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));",
    291   "%*",
    292   "",
    293   "/* Done after the current pattern has been matched and before the",
    294   " * corresponding action - sets up yytext.",
    295   " */",
    296   "#define YY_DO_BEFORE_ACTION \\",
    297   "	yytext_ptr = yy_bp; \\",
    298   "%% code to fiddle yytext and yyleng for yymore() goes here",
    299   "	yy_hold_char = *yy_cp; \\",
    300   "	*yy_cp = '\\0'; \\",
    301   "%% code to copy yytext_ptr to yytext[] goes here, if %array",
    302   "	yy_c_buf_p = yy_cp;",
    303   "",
    304   "%% data tables for the DFA and the user's section 1 definitions go here",
    305   "",
    306   "/* Macros after this point can all be overridden by user definitions in",
    307   " * section 1.",
    308   " */",
    309   "",
    310   "#ifndef YY_SKIP_YYWRAP",
    311   "#ifdef __cplusplus",
    312   "extern \"C\" int yywrap YY_PROTO(( void ));",
    313   "#else",
    314   "extern int yywrap YY_PROTO(( void ));",
    315   "#endif",
    316   "#endif",
    317   "",
    318   "%-",
    319   "#ifndef YY_NO_UNPUT",
    320   "static void yyunput YY_PROTO(( int c, char *buf_ptr ));",
    321   "#endif",
    322   "%*",
    323   "",
    324   "#ifndef yytext_ptr",
    325   "static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));",
    326   "#endif",
    327   "",
    328   "#ifdef YY_NEED_STRLEN",
    329   "static int yy_flex_strlen YY_PROTO(( yyconst char * ));",
    330   "#endif",
    331   "",
    332   "#ifndef YY_NO_INPUT",
    333   "%- Standard (non-C++) definition",
    334   "#ifdef __cplusplus",
    335   "static int yyinput YY_PROTO(( void ));",
    336   "#else",
    337   "static int input YY_PROTO(( void ));",
    338   "#endif",
    339   "%*",
    340   "#endif",
    341   "",
    342   "#if YY_STACK_USED",
    343   "static int yy_start_stack_ptr = 0;",
    344   "static int yy_start_stack_depth = 0;",
    345   "static int *yy_start_stack = 0;",
    346   "#ifndef YY_NO_PUSH_STATE",
    347   "static void yy_push_state YY_PROTO(( int new_state ));",
    348   "#endif",
    349   "#ifndef YY_NO_POP_STATE",
    350   "static void yy_pop_state YY_PROTO(( void ));",
    351   "#endif",
    352   "#ifndef YY_NO_TOP_STATE",
    353   "static int yy_top_state YY_PROTO(( void ));",
    354   "#endif",
    355   "",
    356   "#else",
    357   "#define YY_NO_PUSH_STATE 1",
    358   "#define YY_NO_POP_STATE 1",
    359   "#define YY_NO_TOP_STATE 1",
    360   "#endif",
    361   "",
    362   "#ifdef YY_MALLOC_DECL",
    363   "YY_MALLOC_DECL",
    364   "#else",
    365   "#if __STDC__",
    366   "#ifndef __cplusplus",
    367   "#include <stdlib.h>",
    368   "#endif",
    369   "#else",
    370   "/* Just try to get by without declaring the routines.  This will fail",
    371   " * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)",
    372   " * or sizeof(void*) != sizeof(int).",
    373   " */",
    374   "#endif",
    375   "#endif",
    376   "",
    377   "/* Amount of stuff to slurp up with each read. */",
    378   "#ifndef YY_READ_BUF_SIZE",
    379   "#define YY_READ_BUF_SIZE 8192",
    380   "#endif",
    381   "",
    382   "/* Copy whatever the last rule matched to the standard output. */",
    383   "",
    384   "#ifndef ECHO",
    385   "%- Standard (non-C++) definition",
    386   "/* This used to be an fputs(), but since the string might contain NUL's,",
    387   " * we now use fwrite().",
    388   " */",
    389   "#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )",
    390   "%+ C++ definition",
    391   "#define ECHO LexerOutput( yytext, yyleng )",
    392   "%*",
    393   "#endif",
    394   "",
    395   "/* Gets input and stuffs it into \"buf\".  number of characters read, or YY_NULL,",
    396   " * is returned in \"result\".",
    397   " */",
    398   "#ifndef YY_INPUT",
    399   "#define YY_INPUT(buf,result,max_size) \\",
    400   "%% fread()/read() definition of YY_INPUT goes here unless we're doing C++",
    401   "%+ C++ definition",
    402   "	if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \\",
    403   "		YY_FATAL_ERROR( \"input in flex scanner failed\" );",
    404   "%*",
    405   "#endif",
    406   "",
    407   "/* No semi-colon after return; correct usage is to write \"yyterminate();\" -",
    408   " * we don't want an extra ';' after the \"return\" because that will cause",
    409   " * some compilers to complain about unreachable statements.",
    410   " */",
    411   "#ifndef yyterminate",
    412   "#define yyterminate() return YY_NULL",
    413   "#endif",
    414   "",
    415   "/* Number of entries by which start-condition stack grows. */",
    416   "#ifndef YY_START_STACK_INCR",
    417   "#define YY_START_STACK_INCR 25",
    418   "#endif",
    419   "",
    420   "/* Report a fatal error. */",
    421   "#ifndef YY_FATAL_ERROR",
    422   "%-",
    423   "#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )",
    424   "%+",
    425   "#define YY_FATAL_ERROR(msg) LexerError( msg )",
    426   "%*",
    427   "#endif",
    428   "",
    429   "/* Default declaration of generated scanner - a define so the user can",
    430   " * easily add parameters.",
    431   " */",
    432   "#ifndef YY_DECL",
    433   "%- Standard (non-C++) definition",
    434   "#define YY_DECL int yylex YY_PROTO(( void ))",
    435   "%+ C++ definition",
    436   "#define YY_DECL int yyFlexLexer::yylex()",
    437   "%*",
    438   "#endif",
    439   "",
    440   "/* Code executed at the beginning of each rule, after yytext and yyleng",
    441   " * have been set up.",
    442   " */",
    443   "#ifndef YY_USER_ACTION",
    444   "#define YY_USER_ACTION",
    445   "#endif",
    446   "",
    447   "/* Code executed at the end of each rule. */",
    448   "#ifndef YY_BREAK",
    449   "#define YY_BREAK break;",
    450   "#endif",
    451   "",
    452   "%% YY_RULE_SETUP definition goes here",
    453   "",
    454   "YY_DECL",
    455   "	{",
    456   "	register yy_state_type yy_current_state;",
    457   "	register char *yy_cp, *yy_bp;",
    458   "	register int yy_act;",
    459   "",
    460   "%% user's declarations go here",
    461   "",
    462   "	if ( yy_init )",
    463   "		{",
    464   "		yy_init = 0;",
    465   "",
    466   "#ifdef YY_USER_INIT",
    467   "		YY_USER_INIT;",
    468   "#endif",
    469   "",
    470   "		if ( ! yy_start )",
    471   "			yy_start = 1;	/* first start state */",
    472   "",
    473   "		if ( ! yyin )",
    474   "%-",
    475   "			yyin = stdin;",
    476   "%+",
    477   "			yyin = &cin;",
    478   "%*",
    479   "",
    480   "		if ( ! yyout )",
    481   "%-",
    482   "			yyout = stdout;",
    483   "%+",
    484   "			yyout = &cout;",
    485   "%*",
    486   "",
    487   "		if ( ! yy_current_buffer )",
    488   "			yy_current_buffer =",
    489   "				yy_create_buffer( yyin, YY_BUF_SIZE );",
    490   "",
    491   "		yy_load_buffer_state();",
    492   "		}",
    493   "",
    494   "	while ( 1 )		/* loops until end-of-file is reached */",
    495   "		{",
    496   "%% yymore()-related code goes here",
    497   "		yy_cp = yy_c_buf_p;",
    498   "",
    499   "		/* Support of yytext. */",
    500   "		*yy_cp = yy_hold_char;",
    501   "",
    502   "		/* yy_bp points to the position in yy_ch_buf of the start of",
    503   "		 * the current run.",
    504   "		 */",
    505   "		yy_bp = yy_cp;",
    506   "",
    507   "%% code to set up and find next match goes here",
    508   "",
    509   "yy_find_action:",
    510   "%% code to find the action number goes here",
    511   "",
    512   "		YY_DO_BEFORE_ACTION;",
    513   "",
    514   "%% code for yylineno update goes here",
    515   "",
    516   "do_action:	/* This label is used only to access EOF actions. */",
    517   "",
    518   "%% debug code goes here",
    519   "",
    520   "		switch ( yy_act )",
    521   "	{ /* beginning of action switch */",
    522   "%% actions go here",
    523   "",
    524   "	case YY_END_OF_BUFFER:",
    525   "		{",
    526   "		/* Amount of text matched not including the EOB char. */",
    527   "		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;",
    528   "",
    529   "		/* Undo the effects of YY_DO_BEFORE_ACTION. */",
    530   "		*yy_cp = yy_hold_char;",
    531   "		YY_RESTORE_YY_MORE_OFFSET",
    532   "",
    533   "		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )",
    534   "			{",
    535   "			/* We're scanning a new file or input source.  It's",
    536   "			 * possible that this happened because the user",
    537   "			 * just pointed yyin at a new source and called",
    538   "			 * yylex().  If so, then we have to assure",
    539   "			 * consistency between yy_current_buffer and our",
    540   "			 * globals.  Here is the right place to do so, because",
    541   "			 * this is the first action (other than possibly a",
    542   "			 * back-up) that will match for the new input source.",
    543   "			 */",
    544   "			yy_n_chars = yy_current_buffer->yy_n_chars;",
    545   "			yy_current_buffer->yy_input_file = yyin;",
    546   "			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;",
    547   "			}",
    548   "",
    549   "		/* Note that here we test for yy_c_buf_p \"<=\" to the position",
    550   "		 * of the first EOB in the buffer, since yy_c_buf_p will",
    551   "		 * already have been incremented past the NUL character",
    552   "		 * (since all states make transitions on EOB to the",
    553   "		 * end-of-buffer state).  Contrast this with the test",
    554   "		 * in input().",
    555   "		 */",
    556   "		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )",
    557   "			{ /* This was really a NUL. */",
    558   "			yy_state_type yy_next_state;",
    559   "",
    560   "			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;",
    561   "",
    562   "			yy_current_state = yy_get_previous_state();",
    563   "",
    564   "			/* Okay, we're now positioned to make the NUL",
    565   "			 * transition.  We couldn't have",
    566   "			 * yy_get_previous_state() go ahead and do it",
    567   "			 * for us because it doesn't know how to deal",
    568   "			 * with the possibility of jamming (and we don't",
    569   "			 * want to build jamming into it because then it",
    570   "			 * will run more slowly).",
    571   "			 */",
    572   "",
    573   "			yy_next_state = yy_try_NUL_trans( yy_current_state );",
    574   "",
    575   "			yy_bp = yytext_ptr + YY_MORE_ADJ;",
    576   "",
    577   "			if ( yy_next_state )",
    578   "				{",
    579   "				/* Consume the NUL. */",
    580   "				yy_cp = ++yy_c_buf_p;",
    581   "				yy_current_state = yy_next_state;",
    582   "				goto yy_match;",
    583   "				}",
    584   "",
    585   "			else",
    586   "				{",
    587   "%% code to do back-up for compressed tables and set up yy_cp goes here",
    588   "				goto yy_find_action;",
    589   "				}",
    590   "			}",
    591   "",
    592   "		else switch ( yy_get_next_buffer() )",
    593   "			{",
    594   "			case EOB_ACT_END_OF_FILE:",
    595   "				{",
    596   "				yy_did_buffer_switch_on_eof = 0;",
    597   "",
    598   "				if ( yywrap() )",
    599   "					{",
    600   "					/* Note: because we've taken care in",
    601   "					 * yy_get_next_buffer() to have set up",
    602   "					 * yytext, we can now set up",
    603   "					 * yy_c_buf_p so that if some total",
    604   "					 * hoser (like flex itself) wants to",
    605   "					 * call the scanner after we return the",
    606   "					 * YY_NULL, it'll still work - another",
    607   "					 * YY_NULL will get returned.",
    608   "					 */",
    609   "					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;",
    610   "",
    611   "					yy_act = YY_STATE_EOF(YY_START);",
    612   "					goto do_action;",
    613   "					}",
    614   "",
    615   "				else",
    616   "					{",
    617   "					if ( ! yy_did_buffer_switch_on_eof )",
    618   "						YY_NEW_FILE;",
    619   "					}",
    620   "				break;",
    621   "				}",
    622   "",
    623   "			case EOB_ACT_CONTINUE_SCAN:",
    624   "				yy_c_buf_p =",
    625   "					yytext_ptr + yy_amount_of_matched_text;",
    626   "",
    627   "				yy_current_state = yy_get_previous_state();",
    628   "",
    629   "				yy_cp = yy_c_buf_p;",
    630   "				yy_bp = yytext_ptr + YY_MORE_ADJ;",
    631   "				goto yy_match;",
    632   "",
    633   "			case EOB_ACT_LAST_MATCH:",
    634   "				yy_c_buf_p =",
    635   "				&yy_current_buffer->yy_ch_buf[yy_n_chars];",
    636   "",
    637   "				yy_current_state = yy_get_previous_state();",
    638   "",
    639   "				yy_cp = yy_c_buf_p;",
    640   "				yy_bp = yytext_ptr + YY_MORE_ADJ;",
    641   "				goto yy_find_action;",
    642   "			}",
    643   "		break;",
    644   "		}",
    645   "",
    646   "	default:",
    647   "		YY_FATAL_ERROR(",
    648   "			\"fatal flex scanner internal error--no action found\" );",
    649   "	} /* end of action switch */",
    650   "		} /* end of scanning one token */",
    651   "	} /* end of yylex */",
    652   "",
    653   "%+",
    654   "yyFlexLexer::yyFlexLexer( istream* arg_yyin, ostream* arg_yyout )",
    655   "	{",
    656   "	yyin = arg_yyin;",
    657   "	yyout = arg_yyout;",
    658   "	yy_c_buf_p = 0;",
    659   "	yy_init = 1;",
    660   "	yy_start = 0;",
    661   "	yy_flex_debug = 0;",
    662   "	yylineno = 1;	// this will only get updated if %option yylineno",
    663   "",
    664   "	yy_did_buffer_switch_on_eof = 0;",
    665   "",
    666   "	yy_looking_for_trail_begin = 0;",
    667   "	yy_more_flag = 0;",
    668   "	yy_more_len = 0;",
    669   "	yy_more_offset = yy_prev_more_offset = 0;",
    670   "",
    671   "	yy_start_stack_ptr = yy_start_stack_depth = 0;",
    672   "	yy_start_stack = 0;",
    673   "",
    674   "	yy_current_buffer = 0;",
    675   "",
    676   "#ifdef YY_USES_REJECT",
    677   "	yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];",
    678   "#else",
    679   "	yy_state_buf = 0;",
    680   "#endif",
    681   "	}",
    682   "",
    683   "yyFlexLexer::~yyFlexLexer()",
    684   "	{",
    685   "	delete yy_state_buf;",
    686   "	yy_delete_buffer( yy_current_buffer );",
    687   "	}",
    688   "",
    689   "void yyFlexLexer::switch_streams( istream* new_in, ostream* new_out )",
    690   "	{",
    691   "	if ( new_in )",
    692   "		{",
    693   "		yy_delete_buffer( yy_current_buffer );",
    694   "		yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );",
    695   "		}",
    696   "",
    697   "	if ( new_out )",
    698   "		yyout = new_out;",
    699   "	}",
    700   "",
    701   "#ifdef YY_INTERACTIVE",
    702   "int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )",
    703   "#else",
    704   "int yyFlexLexer::LexerInput( char* buf, int max_size )",
    705   "#endif",
    706   "	{",
    707   "	if ( yyin->eof() || yyin->fail() )",
    708   "		return 0;",
    709   "",
    710   "#ifdef YY_INTERACTIVE",
    711   "	yyin->get( buf[0] );",
    712   "",
    713   "	if ( yyin->eof() )",
    714   "		return 0;",
    715   "",
    716   "	if ( yyin->bad() )",
    717   "		return -1;",
    718   "",
    719   "	return 1;",
    720   "",
    721   "#else",
    722   "	(void) yyin->read( buf, max_size );",
    723   "",
    724   "	if ( yyin->bad() )",
    725   "		return -1;",
    726   "	else",
    727   "		return yyin->gcount();",
    728   "#endif",
    729   "	}",
    730   "",
    731   "void yyFlexLexer::LexerOutput( const char* buf, int size )",
    732   "	{",
    733   "	(void) yyout->write( buf, size );",
    734   "	}",
    735   "%*",
    736   "",
    737   "/* yy_get_next_buffer - try to read in a new buffer",
    738   " *",
    739   " * Returns a code representing an action:",
    740   " *	EOB_ACT_LAST_MATCH -",
    741   " *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position",
    742   " *	EOB_ACT_END_OF_FILE - end of file",
    743   " */",
    744   "",
    745   "%-",
    746   "static int yy_get_next_buffer()",
    747   "%+",
    748   "int yyFlexLexer::yy_get_next_buffer()",
    749   "%*",
    750   "	{",
    751   "	register char *dest = yy_current_buffer->yy_ch_buf;",
    752   "	register char *source = yytext_ptr;",
    753   "	register int number_to_move, i;",
    754   "	int ret_val;",
    755   "",
    756   "	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )",
    757   "		YY_FATAL_ERROR(",
    758   "		\"fatal flex scanner internal error--end of buffer missed\" );",
    759   "",
    760   "	if ( yy_current_buffer->yy_fill_buffer == 0 )",
    761   "		{ /* Don't try to fill the buffer, so this is an EOF. */",
    762   "		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )",
    763   "			{",
    764   "			/* We matched a single character, the EOB, so",
    765   "			 * treat this as a final EOF.",
    766   "			 */",
    767   "			return EOB_ACT_END_OF_FILE;",
    768   "			}",
    769   "",
    770   "		else",
    771   "			{",
    772   "			/* We matched some text prior to the EOB, first",
    773   "			 * process it.",
    774   "			 */",
    775   "			return EOB_ACT_LAST_MATCH;",
    776   "			}",
    777   "		}",
    778   "",
    779   "	/* Try to read more data. */",
    780   "",
    781   "	/* First move last chars to start of buffer. */",
    782   "	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;",
    783   "",
    784   "	for ( i = 0; i < number_to_move; ++i )",
    785   "		*(dest++) = *(source++);",
    786   "",
    787   "	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )",
    788   "		/* don't do the read, it's not guaranteed to return an EOF,",
    789   "		 * just force an EOF",
    790   "		 */",
    791   "		yy_current_buffer->yy_n_chars = yy_n_chars = 0;",
    792   "",
    793   "	else",
    794   "		{",
    795   "		int num_to_read =",
    796   "			yy_current_buffer->yy_buf_size - number_to_move - 1;",
    797   "",
    798   "		while ( num_to_read <= 0 )",
    799   "			{ /* Not enough room in the buffer - grow it. */",
    800   "#ifdef YY_USES_REJECT",
    801   "			YY_FATAL_ERROR(",
    802   "\"input buffer overflow, can't enlarge buffer because scanner uses REJECT\" );",
    803   "#else",
    804   "",
    805   "			/* just a shorter name for the current buffer */",
    806   "			YY_BUFFER_STATE b = yy_current_buffer;",
    807   "",
    808   "			int yy_c_buf_p_offset =",
    809   "				(int) (yy_c_buf_p - b->yy_ch_buf);",
    810   "",
    811   "			if ( b->yy_is_our_buffer )",
    812   "				{",
    813   "				int new_size = b->yy_buf_size * 2;",
    814   "",
    815   "				if ( new_size <= 0 )",
    816   "					b->yy_buf_size += b->yy_buf_size / 8;",
    817   "				else",
    818   "					b->yy_buf_size *= 2;",
    819   "",
    820   "				b->yy_ch_buf = (char *)",
    821   "					/* Include room in for 2 EOB chars. */",
    822   "					yy_flex_realloc( (void *) b->yy_ch_buf,",
    823   "							 b->yy_buf_size + 2 );",
    824   "				}",
    825   "			else",
    826   "				/* Can't grow it, we don't own it. */",
    827   "				b->yy_ch_buf = 0;",
    828   "",
    829   "			if ( ! b->yy_ch_buf )",
    830   "				YY_FATAL_ERROR(",
    831   "				\"fatal error - scanner input buffer overflow\" );",
    832   "",
    833   "			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];",
    834   "",
    835   "			num_to_read = yy_current_buffer->yy_buf_size -",
    836   "						number_to_move - 1;",
    837   "#endif",
    838   "			}",
    839   "",
    840   "		if ( num_to_read > YY_READ_BUF_SIZE )",
    841   "			num_to_read = YY_READ_BUF_SIZE;",
    842   "",
    843   "		/* Read in more data. */",
    844   "		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),",
    845   "			yy_n_chars, num_to_read );",
    846   "",
    847   "		yy_current_buffer->yy_n_chars = yy_n_chars;",
    848   "		}",
    849   "",
    850   "	if ( yy_n_chars == 0 )",
    851   "		{",
    852   "		if ( number_to_move == YY_MORE_ADJ )",
    853   "			{",
    854   "			ret_val = EOB_ACT_END_OF_FILE;",
    855   "			yyrestart( yyin );",
    856   "			}",
    857   "",
    858   "		else",
    859   "			{",
    860   "			ret_val = EOB_ACT_LAST_MATCH;",
    861   "			yy_current_buffer->yy_buffer_status =",
    862   "				YY_BUFFER_EOF_PENDING;",
    863   "			}",
    864   "		}",
    865   "",
    866   "	else",
    867   "		ret_val = EOB_ACT_CONTINUE_SCAN;",
    868   "",
    869   "	yy_n_chars += number_to_move;",
    870   "	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;",
    871   "	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;",
    872   "",
    873   "	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];",
    874   "",
    875   "	return ret_val;",
    876   "	}",
    877   "",
    878   "",
    879   "/* yy_get_previous_state - get the state just before the EOB char was reached */",
    880   "",
    881   "%-",
    882   "static yy_state_type yy_get_previous_state()",
    883   "%+",
    884   "yy_state_type yyFlexLexer::yy_get_previous_state()",
    885   "%*",
    886   "	{",
    887   "	register yy_state_type yy_current_state;",
    888   "	register char *yy_cp;",
    889   "",
    890   "%% code to get the start state into yy_current_state goes here",
    891   "",
    892   "	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )",
    893   "		{",
    894   "%% code to find the next state goes here",
    895   "		}",
    896   "",
    897   "	return yy_current_state;",
    898   "	}",
    899   "",
    900   "",
    901   "/* yy_try_NUL_trans - try to make a transition on the NUL character",
    902   " *",
    903   " * synopsis",
    904   " *	next_state = yy_try_NUL_trans( current_state );",
    905   " */",
    906   "",
    907   "%-",
    908   "#ifdef YY_USE_PROTOS",
    909   "static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )",
    910   "#else",
    911   "static yy_state_type yy_try_NUL_trans( yy_current_state )",
    912   "yy_state_type yy_current_state;",
    913   "#endif",
    914   "%+",
    915   "yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )",
    916   "%*",
    917   "	{",
    918   "	register int yy_is_jam;",
    919   "%% code to find the next state, and perhaps do backing up, goes here",
    920   "",
    921   "	return yy_is_jam ? 0 : yy_current_state;",
    922   "	}",
    923   "",
    924   "",
    925   "%-",
    926   "#ifndef YY_NO_UNPUT",
    927   "#ifdef YY_USE_PROTOS",
    928   "static void yyunput( int c, register char *yy_bp )",
    929   "#else",
    930   "static void yyunput( c, yy_bp )",
    931   "int c;",
    932   "register char *yy_bp;",
    933   "#endif",
    934   "%+",
    935   "void yyFlexLexer::yyunput( int c, register char* yy_bp )",
    936   "%*",
    937   "	{",
    938   "	register char *yy_cp = yy_c_buf_p;",
    939   "",
    940   "	/* undo effects of setting up yytext */",
    941   "	*yy_cp = yy_hold_char;",
    942   "",
    943   "	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )",
    944   "		{ /* need to shift things up to make room */",
    945   "		/* +2 for EOB chars. */",
    946   "		register int number_to_move = yy_n_chars + 2;",
    947   "		register char *dest = &yy_current_buffer->yy_ch_buf[",
    948   "					yy_current_buffer->yy_buf_size + 2];",
    949   "		register char *source =",
    950   "				&yy_current_buffer->yy_ch_buf[number_to_move];",
    951   "",
    952   "		while ( source > yy_current_buffer->yy_ch_buf )",
    953   "			*--dest = *--source;",
    954   "",
    955   "		yy_cp += (int) (dest - source);",
    956   "		yy_bp += (int) (dest - source);",
    957   "		yy_current_buffer->yy_n_chars =",
    958   "			yy_n_chars = yy_current_buffer->yy_buf_size;",
    959   "",
    960   "		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )",
    961   "			YY_FATAL_ERROR( \"flex scanner push-back overflow\" );",
    962   "		}",
    963   "",
    964   "	*--yy_cp = (char) c;",
    965   "",
    966   "%% update yylineno here",
    967   "",
    968   "	yytext_ptr = yy_bp;",
    969   "	yy_hold_char = *yy_cp;",
    970   "	yy_c_buf_p = yy_cp;",
    971   "	}",
    972   "%-",
    973   "#endif	/* ifndef YY_NO_UNPUT */",
    974   "%*",
    975   "",
    976   "",
    977   "%-",
    978   "#ifdef __cplusplus",
    979   "static int yyinput()",
    980   "#else",
    981   "static int input()",
    982   "#endif",
    983   "%+",
    984   "int yyFlexLexer::yyinput()",
    985   "%*",
    986   "	{",
    987   "	int c;",
    988   "",
    989   "	*yy_c_buf_p = yy_hold_char;",
    990   "",
    991   "	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )",
    992   "		{",
    993   "		/* yy_c_buf_p now points to the character we want to return.",
    994   "		 * If this occurs *before* the EOB characters, then it's a",
    995   "		 * valid NUL; if not, then we've hit the end of the buffer.",
    996   "		 */",
    997   "		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )",
    998   "			/* This was really a NUL. */",
    999   "			*yy_c_buf_p = '\\0';",
   1000   "",
   1001   "		else",
   1002   "			{ /* need more input */",
   1003   "			int offset = yy_c_buf_p - yytext_ptr;",
   1004   "			++yy_c_buf_p;",
   1005   "",
   1006   "			switch ( yy_get_next_buffer() )",
   1007   "				{",
   1008   "				case EOB_ACT_LAST_MATCH:",
   1009   "					/* This happens because yy_g_n_b()",
   1010   "					 * sees that we've accumulated a",
   1011   "					 * token and flags that we need to",
   1012   "					 * try matching the token before",
   1013   "					 * proceeding.  But for input(),",
   1014   "					 * there's no matching to consider.",
   1015   "					 * So convert the EOB_ACT_LAST_MATCH",
   1016   "					 * to EOB_ACT_END_OF_FILE.",
   1017   "					 */",
   1018   "",
   1019   "					/* Reset buffer status. */",
   1020   "					yyrestart( yyin );",
   1021   "",
   1022   "					/* fall through */",
   1023   "",
   1024   "				case EOB_ACT_END_OF_FILE:",
   1025   "					{",
   1026   "					if ( yywrap() )",
   1027   "						return EOF;",
   1028   "",
   1029   "					if ( ! yy_did_buffer_switch_on_eof )",
   1030   "						YY_NEW_FILE;",
   1031   "#ifdef __cplusplus",
   1032   "					return yyinput();",
   1033   "#else",
   1034   "					return input();",
   1035   "#endif",
   1036   "					}",
   1037   "",
   1038   "				case EOB_ACT_CONTINUE_SCAN:",
   1039   "					yy_c_buf_p = yytext_ptr + offset;",
   1040   "					break;",
   1041   "				}",
   1042   "			}",
   1043   "		}",
   1044   "",
   1045   "	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */",
   1046   "	*yy_c_buf_p = '\\0';	/* preserve yytext */",
   1047   "	yy_hold_char = *++yy_c_buf_p;",
   1048   "",
   1049   "%% update BOL and yylineno",
   1050   "",
   1051   "	return c;",
   1052   "	}",
   1053   "",
   1054   "",
   1055   "%-",
   1056   "#ifdef YY_USE_PROTOS",
   1057   "void yyrestart( FILE *input_file )",
   1058   "#else",
   1059   "void yyrestart( input_file )",
   1060   "FILE *input_file;",
   1061   "#endif",
   1062   "%+",
   1063   "void yyFlexLexer::yyrestart( istream* input_file )",
   1064   "%*",
   1065   "	{",
   1066   "	if ( ! yy_current_buffer )",
   1067   "		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );",
   1068   "",
   1069   "	yy_init_buffer( yy_current_buffer, input_file );",
   1070   "	yy_load_buffer_state();",
   1071   "	}",
   1072   "",
   1073   "",
   1074   "%-",
   1075   "#ifdef YY_USE_PROTOS",
   1076   "void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )",
   1077   "#else",
   1078   "void yy_switch_to_buffer( new_buffer )",
   1079   "YY_BUFFER_STATE new_buffer;",
   1080   "#endif",
   1081   "%+",
   1082   "void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )",
   1083   "%*",
   1084   "	{",
   1085   "	if ( yy_current_buffer == new_buffer )",
   1086   "		return;",
   1087   "",
   1088   "	if ( yy_current_buffer )",
   1089   "		{",
   1090   "		/* Flush out information for old buffer. */",
   1091   "		*yy_c_buf_p = yy_hold_char;",
   1092   "		yy_current_buffer->yy_buf_pos = yy_c_buf_p;",
   1093   "		yy_current_buffer->yy_n_chars = yy_n_chars;",
   1094   "		}",
   1095   "",
   1096   "	yy_current_buffer = new_buffer;",
   1097   "	yy_load_buffer_state();",
   1098   "",
   1099   "	/* We don't actually know whether we did this switch during",
   1100   "	 * EOF (yywrap()) processing, but the only time this flag",
   1101   "	 * is looked at is after yywrap() is called, so it's safe",
   1102   "	 * to go ahead and always set it.",
   1103   "	 */",
   1104   "	yy_did_buffer_switch_on_eof = 1;",
   1105   "	}",
   1106   "",
   1107   "",
   1108   "%-",
   1109   "#ifdef YY_USE_PROTOS",
   1110   "void yy_load_buffer_state( void )",
   1111   "#else",
   1112   "void yy_load_buffer_state()",
   1113   "#endif",
   1114   "%+",
   1115   "void yyFlexLexer::yy_load_buffer_state()",
   1116   "%*",
   1117   "	{",
   1118   "	yy_n_chars = yy_current_buffer->yy_n_chars;",
   1119   "	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;",
   1120   "	yyin = yy_current_buffer->yy_input_file;",
   1121   "	yy_hold_char = *yy_c_buf_p;",
   1122   "	}",
   1123   "",
   1124   "",
   1125   "%-",
   1126   "#ifdef YY_USE_PROTOS",
   1127   "YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )",
   1128   "#else",
   1129   "YY_BUFFER_STATE yy_create_buffer( file, size )",
   1130   "FILE *file;",
   1131   "int size;",
   1132   "#endif",
   1133   "%+",
   1134   "YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( istream* file, int size )",
   1135   "%*",
   1136   "	{",
   1137   "	YY_BUFFER_STATE b;",
   1138   "",
   1139   "	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );",
   1140   "	if ( ! b )",
   1141   "		YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );",
   1142   "",
   1143   "	b->yy_buf_size = size;",
   1144   "",
   1145   "	/* yy_ch_buf has to be 2 characters longer than the size given because",
   1146   "	 * we need to put in 2 end-of-buffer characters.",
   1147   "	 */",
   1148   "	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );",
   1149   "	if ( ! b->yy_ch_buf )",
   1150   "		YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );",
   1151   "",
   1152   "	b->yy_is_our_buffer = 1;",
   1153   "",
   1154   "	yy_init_buffer( b, file );",
   1155   "",
   1156   "	return b;",
   1157   "	}",
   1158   "",
   1159   "",
   1160   "%-",
   1161   "#ifdef YY_USE_PROTOS",
   1162   "void yy_delete_buffer( YY_BUFFER_STATE b )",
   1163   "#else",
   1164   "void yy_delete_buffer( b )",
   1165   "YY_BUFFER_STATE b;",
   1166   "#endif",
   1167   "%+",
   1168   "void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )",
   1169   "%*",
   1170   "	{",
   1171   "	if ( ! b )",
   1172   "		return;",
   1173   "",
   1174   "	if ( b == yy_current_buffer )",
   1175   "		yy_current_buffer = (YY_BUFFER_STATE) 0;",
   1176   "",
   1177   "	if ( b->yy_is_our_buffer )",
   1178   "		yy_flex_free( (void *) b->yy_ch_buf );",
   1179   "",
   1180   "	yy_flex_free( (void *) b );",
   1181   "	}",
   1182   "",
   1183   "",
   1184   "%-",
   1185   "#ifndef YY_ALWAYS_INTERACTIVE",
   1186   "#ifndef YY_NEVER_INTERACTIVE",
   1187   "extern int isatty YY_PROTO(( int ));",
   1188   "#endif",
   1189   "#endif",
   1190   "",
   1191   "#ifdef YY_USE_PROTOS",
   1192   "void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )",
   1193   "#else",
   1194   "void yy_init_buffer( b, file )",
   1195   "YY_BUFFER_STATE b;",
   1196   "FILE *file;",
   1197   "#endif",
   1198   "",
   1199   "%+",
   1200   "extern \"C\" int isatty YY_PROTO(( int ));",
   1201   "void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, istream* file )",
   1202   "%*",
   1203   "",
   1204   "	{",
   1205   "	yy_flush_buffer( b );",
   1206   "",
   1207   "	b->yy_input_file = file;",
   1208   "	b->yy_fill_buffer = 1;",
   1209   "",
   1210   "%-",
   1211   "#if YY_ALWAYS_INTERACTIVE",
   1212   "	b->yy_is_interactive = 1;",
   1213   "#else",
   1214   "#if YY_NEVER_INTERACTIVE",
   1215   "	b->yy_is_interactive = 0;",
   1216   "#else",
   1217   "	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;",
   1218   "#endif",
   1219   "#endif",
   1220   "%+",
   1221   "	b->yy_is_interactive = 0;",
   1222   "%*",
   1223   "	}",
   1224   "",
   1225   "",
   1226   "%-",
   1227   "#ifdef YY_USE_PROTOS",
   1228   "void yy_flush_buffer( YY_BUFFER_STATE b )",
   1229   "#else",
   1230   "void yy_flush_buffer( b )",
   1231   "YY_BUFFER_STATE b;",
   1232   "#endif",
   1233   "",
   1234   "%+",
   1235   "void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )",
   1236   "%*",
   1237   "	{",
   1238   "	if ( ! b )",
   1239   "		return;",
   1240   "",
   1241   "	b->yy_n_chars = 0;",
   1242   "",
   1243   "	/* We always need two end-of-buffer characters.  The first causes",
   1244   "	 * a transition to the end-of-buffer state.  The second causes",
   1245   "	 * a jam in that state.",
   1246   "	 */",
   1247   "	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;",
   1248   "	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;",
   1249   "",
   1250   "	b->yy_buf_pos = &b->yy_ch_buf[0];",
   1251   "",
   1252   "	b->yy_at_bol = 1;",
   1253   "	b->yy_buffer_status = YY_BUFFER_NEW;",
   1254   "",
   1255   "	if ( b == yy_current_buffer )",
   1256   "		yy_load_buffer_state();",
   1257   "	}",
   1258   "%*",
   1259   "",
   1260   "",
   1261   "#ifndef YY_NO_SCAN_BUFFER",
   1262   "%-",
   1263   "#ifdef YY_USE_PROTOS",
   1264   "YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )",
   1265   "#else",
   1266   "YY_BUFFER_STATE yy_scan_buffer( base, size )",
   1267   "char *base;",
   1268   "yy_size_t size;",
   1269   "#endif",
   1270   "	{",
   1271   "	YY_BUFFER_STATE b;",
   1272   "",
   1273   "	if ( size < 2 ||",
   1274   "	     base[size-2] != YY_END_OF_BUFFER_CHAR ||",
   1275   "	     base[size-1] != YY_END_OF_BUFFER_CHAR )",
   1276   "		/* They forgot to leave room for the EOB's. */",
   1277   "		return 0;",
   1278   "",
   1279   "	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );",
   1280   "	if ( ! b )",
   1281   "		YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_buffer()\" );",
   1282   "",
   1283   "	b->yy_buf_size = size - 2;	/* \"- 2\" to take care of EOB's */",
   1284   "	b->yy_buf_pos = b->yy_ch_buf = base;",
   1285   "	b->yy_is_our_buffer = 0;",
   1286   "	b->yy_input_file = 0;",
   1287   "	b->yy_n_chars = b->yy_buf_size;",
   1288   "	b->yy_is_interactive = 0;",
   1289   "	b->yy_at_bol = 1;",
   1290   "	b->yy_fill_buffer = 0;",
   1291   "	b->yy_buffer_status = YY_BUFFER_NEW;",
   1292   "",
   1293   "	yy_switch_to_buffer( b );",
   1294   "",
   1295   "	return b;",
   1296   "	}",
   1297   "%*",
   1298   "#endif",
   1299   "",
   1300   "",
   1301   "#ifndef YY_NO_SCAN_STRING",
   1302   "%-",
   1303   "#ifdef YY_USE_PROTOS",
   1304   "YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )",
   1305   "#else",
   1306   "YY_BUFFER_STATE yy_scan_string( yy_str )",
   1307   "yyconst char *yy_str;",
   1308   "#endif",
   1309   "	{",
   1310   "	int len;",
   1311   "	for ( len = 0; yy_str[len]; ++len )",
   1312   "		;",
   1313   "",
   1314   "	return yy_scan_bytes( yy_str, len );",
   1315   "	}",
   1316   "%*",
   1317   "#endif",
   1318   "",
   1319   "",
   1320   "#ifndef YY_NO_SCAN_BYTES",
   1321   "%-",
   1322   "#ifdef YY_USE_PROTOS",
   1323   "YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )",
   1324   "#else",
   1325   "YY_BUFFER_STATE yy_scan_bytes( bytes, len )",
   1326   "yyconst char *bytes;",
   1327   "int len;",
   1328   "#endif",
   1329   "	{",
   1330   "	YY_BUFFER_STATE b;",
   1331   "	char *buf;",
   1332   "	yy_size_t n;",
   1333   "	int i;",
   1334   "",
   1335   "	/* Get memory for full buffer, including space for trailing EOB's. */",
   1336   "	n = len + 2;",
   1337   "	buf = (char *) yy_flex_alloc( n );",
   1338   "	if ( ! buf )",
   1339   "		YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_bytes()\" );",
   1340   "",
   1341   "	for ( i = 0; i < len; ++i )",
   1342   "		buf[i] = bytes[i];",
   1343   "",
   1344   "	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;",
   1345   "",
   1346   "	b = yy_scan_buffer( buf, n );",
   1347   "	if ( ! b )",
   1348   "		YY_FATAL_ERROR( \"bad buffer in yy_scan_bytes()\" );",
   1349   "",
   1350   "	/* It's okay to grow etc. this buffer, and we should throw it",
   1351   "	 * away when we're done.",
   1352   "	 */",
   1353   "	b->yy_is_our_buffer = 1;",
   1354   "",
   1355   "	return b;",
   1356   "	}",
   1357   "%*",
   1358   "#endif",
   1359   "",
   1360   "",
   1361   "#ifndef YY_NO_PUSH_STATE",
   1362   "%-",
   1363   "#ifdef YY_USE_PROTOS",
   1364   "static void yy_push_state( int new_state )",
   1365   "#else",
   1366   "static void yy_push_state( new_state )",
   1367   "int new_state;",
   1368   "#endif",
   1369   "%+",
   1370   "void yyFlexLexer::yy_push_state( int new_state )",
   1371   "%*",
   1372   "	{",
   1373   "	if ( yy_start_stack_ptr >= yy_start_stack_depth )",
   1374   "		{",
   1375   "		yy_size_t new_size;",
   1376   "",
   1377   "		yy_start_stack_depth += YY_START_STACK_INCR;",
   1378   "		new_size = yy_start_stack_depth * sizeof( int );",
   1379   "",
   1380   "		if ( ! yy_start_stack )",
   1381   "			yy_start_stack = (int *) yy_flex_alloc( new_size );",
   1382   "",
   1383   "		else",
   1384   "			yy_start_stack = (int *) yy_flex_realloc(",
   1385   "					(void *) yy_start_stack, new_size );",
   1386   "",
   1387   "		if ( ! yy_start_stack )",
   1388   "			YY_FATAL_ERROR(",
   1389   "			\"out of memory expanding start-condition stack\" );",
   1390   "		}",
   1391   "",
   1392   "	yy_start_stack[yy_start_stack_ptr++] = YY_START;",
   1393   "",
   1394   "	BEGIN(new_state);",
   1395   "	}",
   1396   "#endif",
   1397   "",
   1398   "",
   1399   "#ifndef YY_NO_POP_STATE",
   1400   "%-",
   1401   "static void yy_pop_state()",
   1402   "%+",
   1403   "void yyFlexLexer::yy_pop_state()",
   1404   "%*",
   1405   "	{",
   1406   "	if ( --yy_start_stack_ptr < 0 )",
   1407   "		YY_FATAL_ERROR( \"start-condition stack underflow\" );",
   1408   "",
   1409   "	BEGIN(yy_start_stack[yy_start_stack_ptr]);",
   1410   "	}",
   1411   "#endif",
   1412   "",
   1413   "",
   1414   "#ifndef YY_NO_TOP_STATE",
   1415   "%-",
   1416   "static int yy_top_state()",
   1417   "%+",
   1418   "int yyFlexLexer::yy_top_state()",
   1419   "%*",
   1420   "	{",
   1421   "	return yy_start_stack[yy_start_stack_ptr - 1];",
   1422   "	}",
   1423   "#endif",
   1424   "",
   1425   "#ifndef YY_EXIT_FAILURE",
   1426   "#define YY_EXIT_FAILURE 2",
   1427   "#endif",
   1428   "",
   1429   "%-",
   1430   "#ifdef YY_USE_PROTOS",
   1431   "static void yy_fatal_error( yyconst char msg[] )",
   1432   "#else",
   1433   "static void yy_fatal_error( msg )",
   1434   "char msg[];",
   1435   "#endif",
   1436   "	{",
   1437   "	(void) fprintf( stderr, \"%s\\n\", msg );",
   1438   "	exit( YY_EXIT_FAILURE );",
   1439   "	}",
   1440   "",
   1441   "%+",
   1442   "",
   1443   "void yyFlexLexer::LexerError( yyconst char msg[] )",
   1444   "	{",
   1445   "	cerr << msg << '\\n';",
   1446   "	exit( YY_EXIT_FAILURE );",
   1447   "	}",
   1448   "%*",
   1449   "",
   1450   "",
   1451   "/* Redefine yyless() so it works in section 3 code. */",
   1452   "",
   1453   "#undef yyless",
   1454   "#define yyless(n) \\",
   1455   "	do \\",
   1456   "		{ \\",
   1457   "		/* Undo effects of setting up yytext. */ \\",
   1458   "		yytext[yyleng] = yy_hold_char; \\",
   1459   "		yy_c_buf_p = yytext + n; \\",
   1460   "		yy_hold_char = *yy_c_buf_p; \\",
   1461   "		*yy_c_buf_p = '\\0'; \\",
   1462   "		yyleng = n; \\",
   1463   "		} \\",
   1464   "	while ( 0 )",
   1465   "",
   1466   "",
   1467   "/* Internal utility routines. */",
   1468   "",
   1469   "#ifndef yytext_ptr",
   1470   "#ifdef YY_USE_PROTOS",
   1471   "static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )",
   1472   "#else",
   1473   "static void yy_flex_strncpy( s1, s2, n )",
   1474   "char *s1;",
   1475   "yyconst char *s2;",
   1476   "int n;",
   1477   "#endif",
   1478   "	{",
   1479   "	register int i;",
   1480   "	for ( i = 0; i < n; ++i )",
   1481   "		s1[i] = s2[i];",
   1482   "	}",
   1483   "#endif",
   1484   "",
   1485   "#ifdef YY_NEED_STRLEN",
   1486   "#ifdef YY_USE_PROTOS",
   1487   "static int yy_flex_strlen( yyconst char *s )",
   1488   "#else",
   1489   "static int yy_flex_strlen( s )",
   1490   "yyconst char *s;",
   1491   "#endif",
   1492   "	{",
   1493   "	register int n;",
   1494   "	for ( n = 0; s[n]; ++n )",
   1495   "		;",
   1496   "",
   1497   "	return n;",
   1498   "	}",
   1499   "#endif",
   1500   "",
   1501   "",
   1502   "#ifdef YY_USE_PROTOS",
   1503   "static void *yy_flex_alloc( yy_size_t size )",
   1504   "#else",
   1505   "static void *yy_flex_alloc( size )",
   1506   "yy_size_t size;",
   1507   "#endif",
   1508   "	{",
   1509   "	return (void *) malloc( size );",
   1510   "	}",
   1511   "",
   1512   "#ifdef YY_USE_PROTOS",
   1513   "static void *yy_flex_realloc( void *ptr, yy_size_t size )",
   1514   "#else",
   1515   "static void *yy_flex_realloc( ptr, size )",
   1516   "void *ptr;",
   1517   "yy_size_t size;",
   1518   "#endif",
   1519   "	{",
   1520   "	/* The cast to (char *) in the following accommodates both",
   1521   "	 * implementations that use char* generic pointers, and those",
   1522   "	 * that use void* generic pointers.  It works with the latter",
   1523   "	 * because both ANSI C and C++ allow castless assignment from",
   1524   "	 * any pointer type to void*, and deal with argument conversions",
   1525   "	 * as though doing an assignment.",
   1526   "	 */",
   1527   "	return (void *) realloc( (char *) ptr, size );",
   1528   "	}",
   1529   "",
   1530   "#ifdef YY_USE_PROTOS",
   1531   "static void yy_flex_free( void *ptr )",
   1532   "#else",
   1533   "static void yy_flex_free( ptr )",
   1534   "void *ptr;",
   1535   "#endif",
   1536   "	{",
   1537   "	free( ptr );",
   1538   "	}",
   1539   "",
   1540   "#if YY_MAIN",
   1541   "int main()",
   1542   "	{",
   1543   "	yylex();",
   1544   "	return 0;",
   1545   "	}",
   1546   "#endif",
   1547   0
   1548 };
   1549