Home | History | Annotate | Line # | Download | only in compiler
      1  1.1  christos /* A lexical scanner generated by flex */
      2  1.1  christos 
      3  1.1  christos /* Scanner skeleton version:
      4  1.2  christos  * $Header: /tank/opengrok/rsync2/NetBSD/src/sys/external/bsd/acpica/dist/compiler/lex.yy.c,v 1.2 2025/08/24 16:45:58 christos Exp $
      5  1.1  christos  */
      6  1.1  christos 
      7  1.1  christos #define FLEX_SCANNER
      8  1.1  christos #define YY_FLEX_MAJOR_VERSION 2
      9  1.1  christos #define YY_FLEX_MINOR_VERSION 5
     10  1.1  christos 
     11  1.1  christos #include <stdio.h>
     12  1.1  christos 
     13  1.1  christos 
     14  1.1  christos /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
     15  1.1  christos #ifdef c_plusplus
     16  1.1  christos #ifndef __cplusplus
     17  1.1  christos #define __cplusplus
     18  1.1  christos #endif
     19  1.1  christos #endif
     20  1.1  christos 
     21  1.1  christos 
     22  1.1  christos #ifdef __cplusplus
     23  1.1  christos 
     24  1.1  christos #include <stdlib.h>
     25  1.1  christos #include <unistd.h>
     26  1.1  christos 
     27  1.1  christos /* Use prototypes in function declarations. */
     28  1.1  christos #define YY_USE_PROTOS
     29  1.1  christos 
     30  1.1  christos /* The "const" storage-class-modifier is valid. */
     31  1.1  christos #define YY_USE_CONST
     32  1.1  christos 
     33  1.1  christos #else	/* ! __cplusplus */
     34  1.1  christos 
     35  1.1  christos #if __STDC__
     36  1.1  christos 
     37  1.1  christos #define YY_USE_PROTOS
     38  1.1  christos #define YY_USE_CONST
     39  1.1  christos 
     40  1.1  christos #endif	/* __STDC__ */
     41  1.1  christos #endif	/* ! __cplusplus */
     42  1.1  christos 
     43  1.1  christos #ifdef __TURBOC__
     44  1.1  christos  #pragma warn -rch
     45  1.1  christos  #pragma warn -use
     46  1.1  christos #include <io.h>
     47  1.1  christos #include <stdlib.h>
     48  1.1  christos #define YY_USE_CONST
     49  1.1  christos #define YY_USE_PROTOS
     50  1.1  christos #endif
     51  1.1  christos 
     52  1.1  christos #ifdef YY_USE_CONST
     53  1.1  christos #define yyconst const
     54  1.1  christos #else
     55  1.1  christos #define yyconst
     56  1.1  christos #endif
     57  1.1  christos 
     58  1.1  christos 
     59  1.1  christos #ifdef YY_USE_PROTOS
     60  1.1  christos #define YY_PROTO(proto) proto
     61  1.1  christos #else
     62  1.1  christos #define YY_PROTO(proto) ()
     63  1.1  christos #endif
     64  1.1  christos 
     65  1.1  christos /* Returned upon end-of-file. */
     66  1.1  christos #define YY_NULL 0
     67  1.1  christos 
     68  1.1  christos /* Promotes a possibly negative, possibly signed char to an unsigned
     69  1.1  christos  * integer for use as an array index.  If the signed char is negative,
     70  1.1  christos  * we want to instead treat it as an 8-bit unsigned char, hence the
     71  1.1  christos  * double cast.
     72  1.1  christos  */
     73  1.1  christos #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
     74  1.1  christos 
     75  1.1  christos /* Enter a start condition.  This macro really ought to take a parameter,
     76  1.1  christos  * but we do it the disgusting crufty way forced on us by the ()-less
     77  1.1  christos  * definition of BEGIN.
     78  1.1  christos  */
     79  1.1  christos #define BEGIN yy_start = 1 + 2 *
     80  1.1  christos 
     81  1.1  christos /* Translate the current start state into a value that can be later handed
     82  1.1  christos  * to BEGIN to return to the state.  The YYSTATE alias is for lex
     83  1.1  christos  * compatibility.
     84  1.1  christos  */
     85  1.1  christos #define YY_START ((yy_start - 1) / 2)
     86  1.1  christos #define YYSTATE YY_START
     87  1.1  christos 
     88  1.1  christos /* Action number for EOF rule of a given start state. */
     89  1.1  christos #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
     90  1.1  christos 
     91  1.1  christos /* Special action meaning "start processing a new file". */
     92  1.1  christos #define YY_NEW_FILE yyrestart( yyin )
     93  1.1  christos 
     94  1.1  christos #define YY_END_OF_BUFFER_CHAR 0
     95  1.1  christos 
     96  1.1  christos /* Size of default input buffer. */
     97  1.1  christos #define YY_BUF_SIZE 16384
     98  1.1  christos 
     99  1.1  christos typedef struct yy_buffer_state *YY_BUFFER_STATE;
    100  1.1  christos 
    101  1.1  christos extern int yyleng;
    102  1.1  christos extern FILE *yyin, *yyout;
    103  1.1  christos 
    104  1.1  christos #define EOB_ACT_CONTINUE_SCAN 0
    105  1.1  christos #define EOB_ACT_END_OF_FILE 1
    106  1.1  christos #define EOB_ACT_LAST_MATCH 2
    107  1.1  christos 
    108  1.1  christos /* The funky do-while in the following #define is used to turn the definition
    109  1.1  christos  * int a single C statement (which needs a semi-colon terminator).  This
    110  1.1  christos  * avoids problems with code like:
    111  1.1  christos  *
    112  1.1  christos  * 	if ( condition_holds )
    113  1.1  christos  *		yyless( 5 );
    114  1.1  christos  *	else
    115  1.1  christos  *		do_something_else();
    116  1.1  christos  *
    117  1.1  christos  * Prior to using the do-while the compiler would get upset at the
    118  1.1  christos  * "else" because it interpreted the "if" statement as being all
    119  1.1  christos  * done when it reached the ';' after the yyless() call.
    120  1.1  christos  */
    121  1.1  christos 
    122  1.1  christos /* Return all but the first 'n' matched characters back to the input stream. */
    123  1.1  christos 
    124  1.1  christos #define yyless(n) \
    125  1.1  christos 	do \
    126  1.1  christos 		{ \
    127  1.1  christos 		/* Undo effects of setting up yytext. */ \
    128  1.1  christos 		*yy_cp = yy_hold_char; \
    129  1.1  christos 		YY_RESTORE_YY_MORE_OFFSET \
    130  1.1  christos 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
    131  1.1  christos 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
    132  1.1  christos 		} \
    133  1.1  christos 	while ( 0 )
    134  1.1  christos 
    135  1.1  christos #define unput(c) yyunput( c, yytext_ptr )
    136  1.1  christos 
    137  1.1  christos /* The following is because we cannot portably get our hands on size_t
    138  1.1  christos  * (without autoconf's help, which isn't available because we want
    139  1.1  christos  * flex-generated scanners to compile on their own).
    140  1.1  christos  */
    141  1.1  christos typedef unsigned int yy_size_t;
    142  1.1  christos 
    143  1.1  christos 
    144  1.1  christos struct yy_buffer_state
    145  1.1  christos 	{
    146  1.1  christos 	FILE *yy_input_file;
    147  1.1  christos 
    148  1.1  christos 	char *yy_ch_buf;		/* input buffer */
    149  1.1  christos 	char *yy_buf_pos;		/* current position in input buffer */
    150  1.1  christos 
    151  1.1  christos 	/* Size of input buffer in bytes, not including room for EOB
    152  1.1  christos 	 * characters.
    153  1.1  christos 	 */
    154  1.1  christos 	yy_size_t yy_buf_size;
    155  1.1  christos 
    156  1.1  christos 	/* Number of characters read into yy_ch_buf, not including EOB
    157  1.1  christos 	 * characters.
    158  1.1  christos 	 */
    159  1.1  christos 	int yy_n_chars;
    160  1.1  christos 
    161  1.1  christos 	/* Whether we "own" the buffer - i.e., we know we created it,
    162  1.1  christos 	 * and can realloc() it to grow it, and should free() it to
    163  1.1  christos 	 * delete it.
    164  1.1  christos 	 */
    165  1.1  christos 	int yy_is_our_buffer;
    166  1.1  christos 
    167  1.1  christos 	/* Whether this is an "interactive" input source; if so, and
    168  1.1  christos 	 * if we're using stdio for input, then we want to use getc()
    169  1.1  christos 	 * instead of fread(), to make sure we stop fetching input after
    170  1.1  christos 	 * each newline.
    171  1.1  christos 	 */
    172  1.1  christos 	int yy_is_interactive;
    173  1.1  christos 
    174  1.1  christos 	/* Whether we're considered to be at the beginning of a line.
    175  1.1  christos 	 * If so, '^' rules will be active on the next match, otherwise
    176  1.1  christos 	 * not.
    177  1.1  christos 	 */
    178  1.1  christos 	int yy_at_bol;
    179  1.1  christos 
    180  1.1  christos 	/* Whether to try to fill the input buffer when we reach the
    181  1.1  christos 	 * end of it.
    182  1.1  christos 	 */
    183  1.1  christos 	int yy_fill_buffer;
    184  1.1  christos 
    185  1.1  christos 	int yy_buffer_status;
    186  1.1  christos #define YY_BUFFER_NEW 0
    187  1.1  christos #define YY_BUFFER_NORMAL 1
    188  1.1  christos 	/* When an EOF's been seen but there's still some text to process
    189  1.1  christos 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
    190  1.1  christos 	 * shouldn't try reading from the input source any more.  We might
    191  1.1  christos 	 * still have a bunch of tokens to match, though, because of
    192  1.1  christos 	 * possible backing-up.
    193  1.1  christos 	 *
    194  1.1  christos 	 * When we actually see the EOF, we change the status to "new"
    195  1.1  christos 	 * (via yyrestart()), so that the user can continue scanning by
    196  1.1  christos 	 * just pointing yyin at a new input file.
    197  1.1  christos 	 */
    198  1.1  christos #define YY_BUFFER_EOF_PENDING 2
    199  1.1  christos 	};
    200  1.1  christos 
    201  1.1  christos static YY_BUFFER_STATE yy_current_buffer = 0;
    202  1.1  christos 
    203  1.1  christos /* We provide macros for accessing buffer states in case in the
    204  1.1  christos  * future we want to put the buffer states in a more general
    205  1.1  christos  * "scanner state".
    206  1.1  christos  */
    207  1.1  christos #define YY_CURRENT_BUFFER yy_current_buffer
    208  1.1  christos 
    209  1.1  christos 
    210  1.1  christos /* yy_hold_char holds the character lost when yytext is formed. */
    211  1.1  christos static char yy_hold_char;
    212  1.1  christos 
    213  1.1  christos static int yy_n_chars;		/* number of characters read into yy_ch_buf */
    214  1.1  christos 
    215  1.1  christos 
    216  1.1  christos int yyleng;
    217  1.1  christos 
    218  1.1  christos /* Points to current character in buffer. */
    219  1.1  christos static char *yy_c_buf_p = (char *) 0;
    220  1.1  christos static int yy_init = 1;		/* whether we need to initialize */
    221  1.1  christos static int yy_start = 0;	/* start state number */
    222  1.1  christos 
    223  1.1  christos /* Flag which is used to allow yywrap()'s to do buffer switches
    224  1.1  christos  * instead of setting up a fresh yyin.  A bit of a hack ...
    225  1.1  christos  */
    226  1.1  christos static int yy_did_buffer_switch_on_eof;
    227  1.1  christos 
    228  1.1  christos void yyrestart YY_PROTO(( FILE *input_file ));
    229  1.1  christos 
    230  1.1  christos void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
    231  1.1  christos void yy_load_buffer_state YY_PROTO(( void ));
    232  1.1  christos YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
    233  1.1  christos void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
    234  1.1  christos void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
    235  1.1  christos void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
    236  1.1  christos #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
    237  1.1  christos 
    238  1.1  christos YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
    239  1.1  christos YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
    240  1.1  christos YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
    241  1.1  christos 
    242  1.1  christos static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
    243  1.1  christos static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
    244  1.1  christos static void yy_flex_free YY_PROTO(( void * ));
    245  1.1  christos 
    246  1.1  christos #define yy_new_buffer yy_create_buffer
    247  1.1  christos 
    248  1.1  christos #define yy_set_interactive(is_interactive) \
    249  1.1  christos 	{ \
    250  1.1  christos 	if ( ! yy_current_buffer ) \
    251  1.1  christos 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
    252  1.1  christos 	yy_current_buffer->yy_is_interactive = is_interactive; \
    253  1.1  christos 	}
    254  1.1  christos 
    255  1.1  christos #define yy_set_bol(at_bol) \
    256  1.1  christos 	{ \
    257  1.1  christos 	if ( ! yy_current_buffer ) \
    258  1.1  christos 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
    259  1.1  christos 	yy_current_buffer->yy_at_bol = at_bol; \
    260  1.1  christos 	}
    261  1.1  christos 
    262  1.1  christos #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
    263  1.1  christos 
    264  1.1  christos 
    265  1.1  christos #define yywrap() 1
    266  1.1  christos #define YY_SKIP_YYWRAP
    267  1.1  christos typedef unsigned char YY_CHAR;
    268  1.1  christos FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
    269  1.1  christos typedef int yy_state_type;
    270  1.1  christos extern char *yytext;
    271  1.1  christos #define yytext_ptr yytext
    272  1.1  christos 
    273  1.1  christos static yy_state_type yy_get_previous_state YY_PROTO(( void ));
    274  1.1  christos static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
    275  1.1  christos static int yy_get_next_buffer YY_PROTO(( void ));
    276  1.1  christos static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
    277  1.1  christos 
    278  1.1  christos /* Done after the current pattern has been matched and before the
    279  1.1  christos  * corresponding action - sets up yytext.
    280  1.1  christos  */
    281  1.1  christos #define YY_DO_BEFORE_ACTION \
    282  1.1  christos 	yytext_ptr = yy_bp; \
    283  1.1  christos 	yyleng = (int) (yy_cp - yy_bp); \
    284  1.1  christos 	yy_hold_char = *yy_cp; \
    285  1.1  christos 	*yy_cp = '\0'; \
    286  1.1  christos 	yy_c_buf_p = yy_cp;
    287  1.1  christos 
    288  1.1  christos #define YY_NUM_RULES 32
    289  1.1  christos #define YY_END_OF_BUFFER 33
    290  1.1  christos static yyconst short int yy_accept[50] =
    291  1.1  christos     {   0,
    292  1.1  christos         0,    0,   33,   31,   30,   29,    6,    9,   20,    3,
    293  1.1  christos         4,    7,   10,   11,    8,   27,   27,   14,   31,   15,
    294  1.1  christos        26,   26,   21,   26,   22,    5,   30,   19,   23,    1,
    295  1.1  christos         2,   27,    0,   13,   16,   18,   17,   12,   26,   26,
    296  1.1  christos        26,   24,   28,   26,   26,   26,   26,   25,    0
    297  1.1  christos     } ;
    298  1.1  christos 
    299  1.1  christos static yyconst int yy_ec[256] =
    300  1.1  christos     {   0,
    301  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
    302  1.1  christos         2,    1,    2,    1,    1,    1,    1,    1,    1,    1,
    303  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    304  1.1  christos         1,    2,    4,    1,    1,    1,    5,    6,    1,    7,
    305  1.1  christos         8,    9,   10,    1,   11,    1,   12,   13,   14,   14,
    306  1.1  christos        14,   14,   14,   14,   14,   14,   14,    1,    1,   15,
    307  1.1  christos        16,   17,    1,    1,   18,   18,   18,   18,   18,   18,
    308  1.1  christos        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    309  1.1  christos        19,   19,   19,   19,   19,   19,   19,   20,   19,   19,
    310  1.1  christos         1,    1,    1,   21,    1,    1,   18,   18,   18,   22,
    311  1.1  christos 
    312  1.1  christos        23,   24,   19,   19,   25,   19,   19,   19,   19,   26,
    313  1.1  christos        19,   19,   19,   19,   19,   19,   19,   19,   19,   20,
    314  1.1  christos        19,   19,    1,   27,    1,   28,    1,    1,    1,    1,
    315  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    316  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    317  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    318  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    319  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    320  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    321  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    322  1.1  christos 
    323  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    324  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    325  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    326  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    327  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    328  1.1  christos         1,    1,    1,    1,    1
    329  1.1  christos     } ;
    330  1.1  christos 
    331  1.1  christos static yyconst int yy_meta[29] =
    332  1.1  christos     {   0,
    333  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    334  1.1  christos         1,    1,    2,    2,    1,    1,    1,    2,    3,    4,
    335  1.1  christos         1,    2,    2,    2,    3,    3,    1,    1
    336  1.1  christos     } ;
    337  1.1  christos 
    338  1.1  christos static yyconst short int yy_base[54] =
    339  1.1  christos     {   0,
    340  1.1  christos         0,    0,   72,   73,   69,   73,   54,   73,   63,   73,
    341  1.1  christos        73,   73,   73,   73,   20,   48,   47,   15,   50,   17,
    342  1.1  christos        16,    0,   73,   24,   38,   73,   62,   73,   73,   73,
    343  1.1  christos        73,   43,    0,   73,   73,   73,   73,   73,   39,    0,
    344  1.1  christos        14,   73,    0,   20,   35,   37,   30,    0,   73,   49,
    345  1.1  christos        52,   55,   46
    346  1.1  christos     } ;
    347  1.1  christos 
    348  1.1  christos static yyconst short int yy_def[54] =
    349  1.1  christos     {   0,
    350  1.1  christos        49,    1,   49,   49,   49,   49,   49,   49,   49,   49,
    351  1.1  christos        49,   49,   49,   49,   49,   50,   50,   49,   49,   49,
    352  1.1  christos        51,   52,   49,   51,   49,   49,   49,   49,   49,   49,
    353  1.1  christos        49,   50,   53,   49,   49,   49,   49,   49,   24,   52,
    354  1.1  christos        24,   49,   53,   51,   52,   52,   52,   52,    0,   49,
    355  1.1  christos        49,   49,   49
    356  1.1  christos     } ;
    357  1.1  christos 
    358  1.1  christos static yyconst short int yy_nxt[102] =
    359  1.1  christos     {   0,
    360  1.1  christos         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
    361  1.1  christos        14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
    362  1.1  christos        23,   24,   21,   21,   22,   22,   25,   26,   30,   34,
    363  1.1  christos        35,   31,   37,   38,   40,   40,   39,   44,   40,   40,
    364  1.1  christos        40,   40,   40,   40,   45,   40,   41,   43,   40,   40,
    365  1.1  christos        32,   48,   32,   39,   39,   39,   40,   40,   40,   47,
    366  1.1  christos        46,   39,   49,   27,   42,   36,   49,   33,   29,   28,
    367  1.1  christos        27,   49,    3,   49,   49,   49,   49,   49,   49,   49,
    368  1.1  christos        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
    369  1.1  christos        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
    370  1.1  christos 
    371  1.1  christos        49
    372  1.1  christos     } ;
    373  1.1  christos 
    374  1.1  christos static yyconst short int yy_chk[102] =
    375  1.1  christos     {   0,
    376  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    377  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    378  1.1  christos         1,    1,    1,    1,    1,    1,    1,    1,   15,   18,
    379  1.1  christos        18,   15,   20,   20,   21,   21,   41,   41,   44,   44,
    380  1.1  christos        21,   21,   24,   24,   44,   44,   24,   53,   24,   24,
    381  1.1  christos        50,   47,   50,   51,   51,   51,   52,   52,   52,   46,
    382  1.1  christos        45,   39,   32,   27,   25,   19,   17,   16,    9,    7,
    383  1.1  christos         5,    3,   49,   49,   49,   49,   49,   49,   49,   49,
    384  1.1  christos        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
    385  1.1  christos        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
    386  1.1  christos 
    387  1.1  christos        49
    388  1.1  christos     } ;
    389  1.1  christos 
    390  1.1  christos static yy_state_type yy_last_accepting_state;
    391  1.1  christos static char *yy_last_accepting_cpos;
    392  1.1  christos 
    393  1.1  christos /* The intent behind this definition is that it'll catch
    394  1.1  christos  * any uses of REJECT which flex missed.
    395  1.1  christos  */
    396  1.1  christos #define REJECT reject_used_but_not_detected
    397  1.1  christos #define yymore() yymore_used_but_not_detected
    398  1.1  christos #define YY_MORE_ADJ 0
    399  1.1  christos #define YY_RESTORE_YY_MORE_OFFSET
    400  1.1  christos char *yytext;
    401  1.1  christos #line 1 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    402  1.1  christos #define INITIAL 0
    403  1.1  christos #line 2 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    404  1.1  christos /******************************************************************************
    405  1.1  christos  *
    406  1.1  christos  * Module Name: prparser.l - Flex input file for preprocessor lexer
    407  1.1  christos  *
    408  1.1  christos  *****************************************************************************/
    409  1.1  christos 
    410  1.1  christos /******************************************************************************
    411  1.1  christos  *
    412  1.1  christos  * 1. Copyright Notice
    413  1.1  christos  *
    414  1.1  christos  * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
    415  1.1  christos  * All rights reserved.
    416  1.1  christos  *
    417  1.1  christos  * 2. License
    418  1.1  christos  *
    419  1.1  christos  * 2.1. This is your license from Intel Corp. under its intellectual property
    420  1.1  christos  * rights. You may have additional license terms from the party that provided
    421  1.1  christos  * you this software, covering your right to use that party's intellectual
    422  1.1  christos  * property rights.
    423  1.1  christos  *
    424  1.1  christos  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
    425  1.1  christos  * copy of the source code appearing in this file ("Covered Code") an
    426  1.1  christos  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
    427  1.1  christos  * base code distributed originally by Intel ("Original Intel Code") to copy,
    428  1.1  christos  * make derivatives, distribute, use and display any portion of the Covered
    429  1.1  christos  * Code in any form, with the right to sublicense such rights; and
    430  1.1  christos  *
    431  1.1  christos  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
    432  1.1  christos  * license (with the right to sublicense), under only those claims of Intel
    433  1.1  christos  * patents that are infringed by the Original Intel Code, to make, use, sell,
    434  1.1  christos  * offer to sell, and import the Covered Code and derivative works thereof
    435  1.1  christos  * solely to the minimum extent necessary to exercise the above copyright
    436  1.1  christos  * license, and in no event shall the patent license extend to any additions
    437  1.1  christos  * to or modifications of the Original Intel Code. No other license or right
    438  1.1  christos  * is granted directly or by implication, estoppel or otherwise;
    439  1.1  christos  *
    440  1.1  christos  * The above copyright and patent license is granted only if the following
    441  1.1  christos  * conditions are met:
    442  1.1  christos  *
    443  1.1  christos  * 3. Conditions
    444  1.1  christos  *
    445  1.1  christos  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
    446  1.1  christos  * Redistribution of source code of any substantial portion of the Covered
    447  1.1  christos  * Code or modification with rights to further distribute source must include
    448  1.1  christos  * the above Copyright Notice, the above License, this list of Conditions,
    449  1.1  christos  * and the following Disclaimer and Export Compliance provision. In addition,
    450  1.1  christos  * Licensee must cause all Covered Code to which Licensee contributes to
    451  1.1  christos  * contain a file documenting the changes Licensee made to create that Covered
    452  1.1  christos  * Code and the date of any change. Licensee must include in that file the
    453  1.1  christos  * documentation of any changes made by any predecessor Licensee. Licensee
    454  1.1  christos  * must include a prominent statement that the modification is derived,
    455  1.1  christos  * directly or indirectly, from Original Intel Code.
    456  1.1  christos  *
    457  1.1  christos  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
    458  1.1  christos  * Redistribution of source code of any substantial portion of the Covered
    459  1.1  christos  * Code or modification without rights to further distribute source must
    460  1.1  christos  * include the following Disclaimer and Export Compliance provision in the
    461  1.1  christos  * documentation and/or other materials provided with distribution. In
    462  1.1  christos  * addition, Licensee may not authorize further sublicense of source of any
    463  1.1  christos  * portion of the Covered Code, and must include terms to the effect that the
    464  1.1  christos  * license from Licensee to its licensee is limited to the intellectual
    465  1.1  christos  * property embodied in the software Licensee provides to its licensee, and
    466  1.1  christos  * not to intellectual property embodied in modifications its licensee may
    467  1.1  christos  * make.
    468  1.1  christos  *
    469  1.1  christos  * 3.3. Redistribution of Executable. Redistribution in executable form of any
    470  1.1  christos  * substantial portion of the Covered Code or modification must reproduce the
    471  1.1  christos  * above Copyright Notice, and the following Disclaimer and Export Compliance
    472  1.1  christos  * provision in the documentation and/or other materials provided with the
    473  1.1  christos  * distribution.
    474  1.1  christos  *
    475  1.1  christos  * 3.4. Intel retains all right, title, and interest in and to the Original
    476  1.1  christos  * Intel Code.
    477  1.1  christos  *
    478  1.1  christos  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
    479  1.1  christos  * Intel shall be used in advertising or otherwise to promote the sale, use or
    480  1.1  christos  * other dealings in products derived from or relating to the Covered Code
    481  1.1  christos  * without prior written authorization from Intel.
    482  1.1  christos  *
    483  1.1  christos  * 4. Disclaimer and Export Compliance
    484  1.1  christos  *
    485  1.1  christos  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
    486  1.1  christos  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
    487  1.1  christos  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
    488  1.1  christos  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
    489  1.1  christos  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
    490  1.1  christos  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
    491  1.1  christos  * PARTICULAR PURPOSE.
    492  1.1  christos  *
    493  1.1  christos  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
    494  1.1  christos  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
    495  1.1  christos  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
    496  1.1  christos  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
    497  1.1  christos  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
    498  1.1  christos  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
    499  1.1  christos  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
    500  1.1  christos  * LIMITED REMEDY.
    501  1.1  christos  *
    502  1.1  christos  * 4.3. Licensee shall not export, either directly or indirectly, any of this
    503  1.1  christos  * software or system incorporating such software without first obtaining any
    504  1.1  christos  * required license or other approval from the U. S. Department of Commerce or
    505  1.1  christos  * any other agency or department of the United States Government. In the
    506  1.1  christos  * event Licensee exports any such software from the United States or
    507  1.1  christos  * re-exports any such software from a foreign destination, Licensee shall
    508  1.1  christos  * ensure that the distribution and export/re-export of the software is in
    509  1.1  christos  * compliance with all laws, regulations, orders, or other restrictions of the
    510  1.1  christos  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
    511  1.1  christos  * any of its subsidiaries will export/re-export any technical data, process,
    512  1.1  christos  * software, or service, directly or indirectly, to any country for which the
    513  1.1  christos  * United States government or any agency thereof requires an export license,
    514  1.1  christos  * other governmental approval, or letter of assurance, without first obtaining
    515  1.1  christos  * such license, approval or letter.
    516  1.1  christos  *
    517  1.1  christos  *****************************************************************************
    518  1.1  christos  *
    519  1.1  christos  * Alternatively, you may choose to be licensed under the terms of the
    520  1.1  christos  * following license:
    521  1.1  christos  *
    522  1.1  christos  * Redistribution and use in source and binary forms, with or without
    523  1.1  christos  * modification, are permitted provided that the following conditions
    524  1.1  christos  * are met:
    525  1.1  christos  * 1. Redistributions of source code must retain the above copyright
    526  1.1  christos  *    notice, this list of conditions, and the following disclaimer,
    527  1.1  christos  *    without modification.
    528  1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
    529  1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
    530  1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
    531  1.1  christos  *    including a substantially similar Disclaimer requirement for further
    532  1.1  christos  *    binary redistribution.
    533  1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
    534  1.1  christos  *    of any contributors may be used to endorse or promote products derived
    535  1.1  christos  *    from this software without specific prior written permission.
    536  1.1  christos  *
    537  1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    538  1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    539  1.1  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    540  1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    541  1.1  christos  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    542  1.1  christos  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    543  1.1  christos  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    544  1.1  christos  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    545  1.1  christos  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    546  1.1  christos  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    547  1.1  christos  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    548  1.1  christos  *
    549  1.1  christos  * Alternatively, you may choose to be licensed under the terms of the
    550  1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
    551  1.1  christos  * Software Foundation.
    552  1.1  christos  *
    553  1.1  christos  *****************************************************************************/
    554  1.1  christos 
    555  1.1  christos #include "aslcompiler.h"
    556  1.1  christos #include "prparser.y.h"
    557  1.1  christos 
    558  1.1  christos /* Buffer to pass strings to the parser */
    559  1.1  christos 
    560  1.1  christos #define STRING_SETUP    strcpy (AslGbl_StringBuffer, PrParsertext);\
    561  1.1  christos     PrParserlval.str = AslGbl_StringBuffer
    562  1.1  christos 
    563  1.1  christos #define _COMPONENT          ACPI_COMPILER
    564  1.1  christos         ACPI_MODULE_NAME    ("prscanner")
    565  1.1  christos 
    566  1.1  christos 
    567  1.1  christos /* Local prototypes */
    568  1.1  christos 
    569  1.1  christos static char
    570  1.1  christos PrDoCommentType1 (
    571  1.1  christos     void);
    572  1.1  christos 
    573  1.1  christos static char
    574  1.1  christos PrDoCommentType2 (
    575  1.1  christos     void);
    576  1.1  christos #line 577 "lex.yy.c"
    577  1.1  christos 
    578  1.1  christos /* Macros after this point can all be overridden by user definitions in
    579  1.1  christos  * section 1.
    580  1.1  christos  */
    581  1.1  christos 
    582  1.1  christos #ifndef YY_SKIP_YYWRAP
    583  1.1  christos #ifdef __cplusplus
    584  1.1  christos extern "C" int yywrap YY_PROTO(( void ));
    585  1.1  christos #else
    586  1.1  christos extern int yywrap YY_PROTO(( void ));
    587  1.1  christos #endif
    588  1.1  christos #endif
    589  1.1  christos 
    590  1.1  christos #ifndef YY_NO_UNPUT
    591  1.1  christos static void yyunput YY_PROTO(( int c, char *buf_ptr ));
    592  1.1  christos #endif
    593  1.1  christos 
    594  1.1  christos #ifndef yytext_ptr
    595  1.1  christos static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
    596  1.1  christos #endif
    597  1.1  christos 
    598  1.1  christos #ifdef YY_NEED_STRLEN
    599  1.1  christos static int yy_flex_strlen YY_PROTO(( yyconst char * ));
    600  1.1  christos #endif
    601  1.1  christos 
    602  1.1  christos #ifndef YY_NO_INPUT
    603  1.1  christos #ifdef __cplusplus
    604  1.1  christos static int yyinput YY_PROTO(( void ));
    605  1.1  christos #else
    606  1.1  christos static int input YY_PROTO(( void ));
    607  1.1  christos #endif
    608  1.1  christos #endif
    609  1.1  christos 
    610  1.1  christos #if YY_STACK_USED
    611  1.1  christos static int yy_start_stack_ptr = 0;
    612  1.1  christos static int yy_start_stack_depth = 0;
    613  1.1  christos static int *yy_start_stack = 0;
    614  1.1  christos #ifndef YY_NO_PUSH_STATE
    615  1.1  christos static void yy_push_state YY_PROTO(( int new_state ));
    616  1.1  christos #endif
    617  1.1  christos #ifndef YY_NO_POP_STATE
    618  1.1  christos static void yy_pop_state YY_PROTO(( void ));
    619  1.1  christos #endif
    620  1.1  christos #ifndef YY_NO_TOP_STATE
    621  1.1  christos static int yy_top_state YY_PROTO(( void ));
    622  1.1  christos #endif
    623  1.1  christos 
    624  1.1  christos #else
    625  1.1  christos #define YY_NO_PUSH_STATE 1
    626  1.1  christos #define YY_NO_POP_STATE 1
    627  1.1  christos #define YY_NO_TOP_STATE 1
    628  1.1  christos #endif
    629  1.1  christos 
    630  1.1  christos #ifdef YY_MALLOC_DECL
    631  1.1  christos YY_MALLOC_DECL
    632  1.1  christos #else
    633  1.1  christos #if __STDC__
    634  1.1  christos #ifndef __cplusplus
    635  1.1  christos #include <stdlib.h>
    636  1.1  christos #endif
    637  1.1  christos #else
    638  1.1  christos /* Just try to get by without declaring the routines.  This will fail
    639  1.1  christos  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
    640  1.1  christos  * or sizeof(void*) != sizeof(int).
    641  1.1  christos  */
    642  1.1  christos #endif
    643  1.1  christos #endif
    644  1.1  christos 
    645  1.1  christos /* Amount of stuff to slurp up with each read. */
    646  1.1  christos #ifndef YY_READ_BUF_SIZE
    647  1.1  christos #define YY_READ_BUF_SIZE 8192
    648  1.1  christos #endif
    649  1.1  christos 
    650  1.1  christos /* Copy whatever the last rule matched to the standard output. */
    651  1.1  christos 
    652  1.1  christos #ifndef ECHO
    653  1.1  christos /* This used to be an fputs(), but since the string might contain NUL's,
    654  1.1  christos  * we now use fwrite().
    655  1.1  christos  */
    656  1.1  christos #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
    657  1.1  christos #endif
    658  1.1  christos 
    659  1.1  christos /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
    660  1.1  christos  * is returned in "result".
    661  1.1  christos  */
    662  1.1  christos #ifndef YY_INPUT
    663  1.1  christos #define YY_INPUT(buf,result,max_size) \
    664  1.1  christos 	if ( yy_current_buffer->yy_is_interactive ) \
    665  1.1  christos 		{ \
    666  1.1  christos 		int c = '*', n; \
    667  1.1  christos 		for ( n = 0; n < max_size && \
    668  1.1  christos 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
    669  1.1  christos 			buf[n] = (char) c; \
    670  1.1  christos 		if ( c == '\n' ) \
    671  1.1  christos 			buf[n++] = (char) c; \
    672  1.1  christos 		if ( c == EOF && ferror( yyin ) ) \
    673  1.1  christos 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
    674  1.1  christos 		result = n; \
    675  1.1  christos 		} \
    676  1.1  christos 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
    677  1.1  christos 		  && ferror( yyin ) ) \
    678  1.1  christos 		YY_FATAL_ERROR( "input in flex scanner failed" );
    679  1.1  christos #endif
    680  1.1  christos 
    681  1.1  christos /* No semi-colon after return; correct usage is to write "yyterminate();" -
    682  1.1  christos  * we don't want an extra ';' after the "return" because that will cause
    683  1.1  christos  * some compilers to complain about unreachable statements.
    684  1.1  christos  */
    685  1.1  christos #ifndef yyterminate
    686  1.1  christos #define yyterminate() return YY_NULL
    687  1.1  christos #endif
    688  1.1  christos 
    689  1.1  christos /* Number of entries by which start-condition stack grows. */
    690  1.1  christos #ifndef YY_START_STACK_INCR
    691  1.1  christos #define YY_START_STACK_INCR 25
    692  1.1  christos #endif
    693  1.1  christos 
    694  1.1  christos /* Report a fatal error. */
    695  1.1  christos #ifndef YY_FATAL_ERROR
    696  1.1  christos #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
    697  1.1  christos #endif
    698  1.1  christos 
    699  1.1  christos /* Default declaration of generated scanner - a define so the user can
    700  1.1  christos  * easily add parameters.
    701  1.1  christos  */
    702  1.1  christos #ifndef YY_DECL
    703  1.1  christos #define YY_DECL int yylex YY_PROTO(( void ))
    704  1.1  christos #endif
    705  1.1  christos 
    706  1.1  christos /* Code executed at the beginning of each rule, after yytext and yyleng
    707  1.1  christos  * have been set up.
    708  1.1  christos  */
    709  1.1  christos #ifndef YY_USER_ACTION
    710  1.1  christos #define YY_USER_ACTION
    711  1.1  christos #endif
    712  1.1  christos 
    713  1.1  christos /* Code executed at the end of each rule. */
    714  1.1  christos #ifndef YY_BREAK
    715  1.1  christos #define YY_BREAK break;
    716  1.1  christos #endif
    717  1.1  christos 
    718  1.1  christos #define YY_RULE_SETUP \
    719  1.1  christos 	YY_USER_ACTION
    720  1.1  christos 
    721  1.1  christos YY_DECL
    722  1.1  christos 	{
    723  1.1  christos 	register yy_state_type yy_current_state;
    724  1.1  christos 	register char *yy_cp, *yy_bp;
    725  1.1  christos 	register int yy_act;
    726  1.1  christos 
    727  1.1  christos #line 184 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    728  1.1  christos 
    729  1.1  christos #line 730 "lex.yy.c"
    730  1.1  christos 
    731  1.1  christos 	if ( yy_init )
    732  1.1  christos 		{
    733  1.1  christos 		yy_init = 0;
    734  1.1  christos 
    735  1.1  christos #ifdef YY_USER_INIT
    736  1.1  christos 		YY_USER_INIT;
    737  1.1  christos #endif
    738  1.1  christos 
    739  1.1  christos 		if ( ! yy_start )
    740  1.1  christos 			yy_start = 1;	/* first start state */
    741  1.1  christos 
    742  1.1  christos 		if ( ! yyin )
    743  1.1  christos 			yyin = stdin;
    744  1.1  christos 
    745  1.1  christos 		if ( ! yyout )
    746  1.1  christos 			yyout = stdout;
    747  1.1  christos 
    748  1.1  christos 		if ( ! yy_current_buffer )
    749  1.1  christos 			yy_current_buffer =
    750  1.1  christos 				yy_create_buffer( yyin, YY_BUF_SIZE );
    751  1.1  christos 
    752  1.1  christos 		yy_load_buffer_state();
    753  1.1  christos 		}
    754  1.1  christos 
    755  1.1  christos 	while ( 1 )		/* loops until end-of-file is reached */
    756  1.1  christos 		{
    757  1.1  christos 		yy_cp = yy_c_buf_p;
    758  1.1  christos 
    759  1.1  christos 		/* Support of yytext. */
    760  1.1  christos 		*yy_cp = yy_hold_char;
    761  1.1  christos 
    762  1.1  christos 		/* yy_bp points to the position in yy_ch_buf of the start of
    763  1.1  christos 		 * the current run.
    764  1.1  christos 		 */
    765  1.1  christos 		yy_bp = yy_cp;
    766  1.1  christos 
    767  1.1  christos 		yy_current_state = yy_start;
    768  1.1  christos yy_match:
    769  1.1  christos 		do
    770  1.1  christos 			{
    771  1.1  christos 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
    772  1.1  christos 			if ( yy_accept[yy_current_state] )
    773  1.1  christos 				{
    774  1.1  christos 				yy_last_accepting_state = yy_current_state;
    775  1.1  christos 				yy_last_accepting_cpos = yy_cp;
    776  1.1  christos 				}
    777  1.1  christos 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
    778  1.1  christos 				{
    779  1.1  christos 				yy_current_state = (int) yy_def[yy_current_state];
    780  1.1  christos 				if ( yy_current_state >= 50 )
    781  1.1  christos 					yy_c = yy_meta[(unsigned int) yy_c];
    782  1.1  christos 				}
    783  1.1  christos 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    784  1.1  christos 			++yy_cp;
    785  1.1  christos 			}
    786  1.1  christos 		while ( yy_base[yy_current_state] != 73 );
    787  1.1  christos 
    788  1.1  christos yy_find_action:
    789  1.1  christos 		yy_act = yy_accept[yy_current_state];
    790  1.1  christos 		if ( yy_act == 0 )
    791  1.1  christos 			{ /* have to back up */
    792  1.1  christos 			yy_cp = yy_last_accepting_cpos;
    793  1.1  christos 			yy_current_state = yy_last_accepting_state;
    794  1.1  christos 			yy_act = yy_accept[yy_current_state];
    795  1.1  christos 			}
    796  1.1  christos 
    797  1.1  christos 		YY_DO_BEFORE_ACTION;
    798  1.1  christos 
    799  1.1  christos 
    800  1.1  christos do_action:	/* This label is used only to access EOF actions. */
    801  1.1  christos 
    802  1.1  christos 
    803  1.1  christos 		switch ( yy_act )
    804  1.1  christos 	{ /* beginning of action switch */
    805  1.1  christos 			case 0: /* must back up */
    806  1.1  christos 			/* undo the effects of YY_DO_BEFORE_ACTION */
    807  1.1  christos 			*yy_cp = yy_hold_char;
    808  1.1  christos 			yy_cp = yy_last_accepting_cpos;
    809  1.1  christos 			yy_current_state = yy_last_accepting_state;
    810  1.1  christos 			goto yy_find_action;
    811  1.1  christos 
    812  1.1  christos case 1:
    813  1.1  christos YY_RULE_SETUP
    814  1.1  christos #line 185 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    815  1.1  christos { if (!PrDoCommentType1 ()) {yyterminate ();} }
    816  1.1  christos 	YY_BREAK
    817  1.1  christos case 2:
    818  1.1  christos YY_RULE_SETUP
    819  1.1  christos #line 186 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    820  1.1  christos { if (!PrDoCommentType2 ()) {yyterminate ();} }
    821  1.1  christos 	YY_BREAK
    822  1.1  christos case 3:
    823  1.1  christos YY_RULE_SETUP
    824  1.1  christos #line 188 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    825  1.1  christos return (EXPOP_PAREN_OPEN);
    826  1.1  christos 	YY_BREAK
    827  1.1  christos case 4:
    828  1.1  christos YY_RULE_SETUP
    829  1.1  christos #line 189 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    830  1.1  christos return (EXPOP_PAREN_CLOSE);
    831  1.1  christos 	YY_BREAK
    832  1.1  christos case 5:
    833  1.1  christos YY_RULE_SETUP
    834  1.1  christos #line 190 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    835  1.1  christos return (EXPOP_ONES_COMPLIMENT);
    836  1.1  christos 	YY_BREAK
    837  1.1  christos case 6:
    838  1.1  christos YY_RULE_SETUP
    839  1.1  christos #line 191 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    840  1.1  christos return (EXPOP_LOGICAL_NOT);
    841  1.1  christos 	YY_BREAK
    842  1.1  christos case 7:
    843  1.1  christos YY_RULE_SETUP
    844  1.1  christos #line 192 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    845  1.1  christos return (EXPOP_MULTIPLY);
    846  1.1  christos 	YY_BREAK
    847  1.1  christos case 8:
    848  1.1  christos YY_RULE_SETUP
    849  1.1  christos #line 193 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    850  1.1  christos return (EXPOP_DIVIDE);
    851  1.1  christos 	YY_BREAK
    852  1.1  christos case 9:
    853  1.1  christos YY_RULE_SETUP
    854  1.1  christos #line 194 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    855  1.1  christos return (EXPOP_MODULO);
    856  1.1  christos 	YY_BREAK
    857  1.1  christos case 10:
    858  1.1  christos YY_RULE_SETUP
    859  1.1  christos #line 195 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    860  1.1  christos return (EXPOP_ADD);
    861  1.1  christos 	YY_BREAK
    862  1.1  christos case 11:
    863  1.1  christos YY_RULE_SETUP
    864  1.1  christos #line 196 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    865  1.1  christos return (EXPOP_SUBTRACT);
    866  1.1  christos 	YY_BREAK
    867  1.1  christos case 12:
    868  1.1  christos YY_RULE_SETUP
    869  1.1  christos #line 197 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    870  1.1  christos return (EXPOP_SHIFT_RIGHT);
    871  1.1  christos 	YY_BREAK
    872  1.1  christos case 13:
    873  1.1  christos YY_RULE_SETUP
    874  1.1  christos #line 198 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    875  1.1  christos return (EXPOP_SHIFT_LEFT);
    876  1.1  christos 	YY_BREAK
    877  1.1  christos case 14:
    878  1.1  christos YY_RULE_SETUP
    879  1.1  christos #line 199 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    880  1.1  christos return (EXPOP_LESS);
    881  1.1  christos 	YY_BREAK
    882  1.1  christos case 15:
    883  1.1  christos YY_RULE_SETUP
    884  1.1  christos #line 200 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    885  1.1  christos return (EXPOP_GREATER);
    886  1.1  christos 	YY_BREAK
    887  1.1  christos case 16:
    888  1.1  christos YY_RULE_SETUP
    889  1.1  christos #line 201 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    890  1.1  christos return (EXPOP_LESS_EQUAL);
    891  1.1  christos 	YY_BREAK
    892  1.1  christos case 17:
    893  1.1  christos YY_RULE_SETUP
    894  1.1  christos #line 202 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    895  1.1  christos return (EXPOP_GREATER_EQUAL);
    896  1.1  christos 	YY_BREAK
    897  1.1  christos case 18:
    898  1.1  christos YY_RULE_SETUP
    899  1.1  christos #line 203 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    900  1.1  christos return (EXPOP_EQUAL);
    901  1.1  christos 	YY_BREAK
    902  1.1  christos case 19:
    903  1.1  christos YY_RULE_SETUP
    904  1.1  christos #line 204 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    905  1.1  christos return (EXPOP_NOT_EQUAL);
    906  1.1  christos 	YY_BREAK
    907  1.1  christos case 20:
    908  1.1  christos YY_RULE_SETUP
    909  1.1  christos #line 205 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    910  1.1  christos return (EXPOP_AND);
    911  1.1  christos 	YY_BREAK
    912  1.1  christos case 21:
    913  1.1  christos YY_RULE_SETUP
    914  1.1  christos #line 206 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    915  1.1  christos return (EXPOP_XOR);
    916  1.1  christos 	YY_BREAK
    917  1.1  christos case 22:
    918  1.1  christos YY_RULE_SETUP
    919  1.1  christos #line 207 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    920  1.1  christos return (EXPOP_OR);
    921  1.1  christos 	YY_BREAK
    922  1.1  christos case 23:
    923  1.1  christos YY_RULE_SETUP
    924  1.1  christos #line 208 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    925  1.1  christos return (EXPOP_LOGICAL_AND);
    926  1.1  christos 	YY_BREAK
    927  1.1  christos case 24:
    928  1.1  christos YY_RULE_SETUP
    929  1.1  christos #line 209 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    930  1.1  christos return (EXPOP_LOGICAL_OR);
    931  1.1  christos 	YY_BREAK
    932  1.1  christos case 25:
    933  1.1  christos YY_RULE_SETUP
    934  1.1  christos #line 211 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    935  1.1  christos return (EXPOP_DEFINE);
    936  1.1  christos 	YY_BREAK
    937  1.1  christos case 26:
    938  1.1  christos YY_RULE_SETUP
    939  1.1  christos #line 212 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    940  1.1  christos {STRING_SETUP; return (EXPOP_IDENTIFIER);}
    941  1.1  christos 	YY_BREAK
    942  1.1  christos case YY_STATE_EOF(INITIAL):
    943  1.1  christos #line 214 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    944  1.1  christos return (EXPOP_EOF); /* null end-of-string */
    945  1.1  christos 	YY_BREAK
    946  1.1  christos case 27:
    947  1.1  christos YY_RULE_SETUP
    948  1.1  christos #line 216 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    949  1.1  christos return (EXPOP_NUMBER);
    950  1.1  christos 	YY_BREAK
    951  1.1  christos case 28:
    952  1.1  christos YY_RULE_SETUP
    953  1.1  christos #line 217 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    954  1.1  christos return (EXPOP_HEX_NUMBER);
    955  1.1  christos 	YY_BREAK
    956  1.1  christos case 29:
    957  1.1  christos YY_RULE_SETUP
    958  1.1  christos #line 218 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    959  1.1  christos return (EXPOP_NEW_LINE);
    960  1.1  christos 	YY_BREAK
    961  1.1  christos case 30:
    962  1.1  christos YY_RULE_SETUP
    963  1.1  christos #line 219 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    964  1.1  christos /* Ignore */
    965  1.1  christos 	YY_BREAK
    966  1.1  christos case 31:
    967  1.1  christos YY_RULE_SETUP
    968  1.1  christos #line 221 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    969  1.1  christos return (EXPOP_EOF);
    970  1.1  christos 	YY_BREAK
    971  1.1  christos case 32:
    972  1.1  christos YY_RULE_SETUP
    973  1.1  christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
    974  1.1  christos ECHO;
    975  1.1  christos 	YY_BREAK
    976  1.1  christos #line 977 "lex.yy.c"
    977  1.1  christos 
    978  1.1  christos 	case YY_END_OF_BUFFER:
    979  1.1  christos 		{
    980  1.1  christos 		/* Amount of text matched not including the EOB char. */
    981  1.1  christos 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
    982  1.1  christos 
    983  1.1  christos 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
    984  1.1  christos 		*yy_cp = yy_hold_char;
    985  1.1  christos 		YY_RESTORE_YY_MORE_OFFSET
    986  1.1  christos 
    987  1.1  christos 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
    988  1.1  christos 			{
    989  1.1  christos 			/* We're scanning a new file or input source.  It's
    990  1.1  christos 			 * possible that this happened because the user
    991  1.1  christos 			 * just pointed yyin at a new source and called
    992  1.1  christos 			 * yylex().  If so, then we have to assure
    993  1.1  christos 			 * consistency between yy_current_buffer and our
    994  1.1  christos 			 * globals.  Here is the right place to do so, because
    995  1.1  christos 			 * this is the first action (other than possibly a
    996  1.1  christos 			 * back-up) that will match for the new input source.
    997  1.1  christos 			 */
    998  1.1  christos 			yy_n_chars = yy_current_buffer->yy_n_chars;
    999  1.1  christos 			yy_current_buffer->yy_input_file = yyin;
   1000  1.1  christos 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
   1001  1.1  christos 			}
   1002  1.1  christos 
   1003  1.1  christos 		/* Note that here we test for yy_c_buf_p "<=" to the position
   1004  1.1  christos 		 * of the first EOB in the buffer, since yy_c_buf_p will
   1005  1.1  christos 		 * already have been incremented past the NUL character
   1006  1.1  christos 		 * (since all states make transitions on EOB to the
   1007  1.1  christos 		 * end-of-buffer state).  Contrast this with the test
   1008  1.1  christos 		 * in input().
   1009  1.1  christos 		 */
   1010  1.1  christos 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
   1011  1.1  christos 			{ /* This was really a NUL. */
   1012  1.1  christos 			yy_state_type yy_next_state;
   1013  1.1  christos 
   1014  1.1  christos 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
   1015  1.1  christos 
   1016  1.1  christos 			yy_current_state = yy_get_previous_state();
   1017  1.1  christos 
   1018  1.1  christos 			/* Okay, we're now positioned to make the NUL
   1019  1.1  christos 			 * transition.  We couldn't have
   1020  1.1  christos 			 * yy_get_previous_state() go ahead and do it
   1021  1.1  christos 			 * for us because it doesn't know how to deal
   1022  1.1  christos 			 * with the possibility of jamming (and we don't
   1023  1.1  christos 			 * want to build jamming into it because then it
   1024  1.1  christos 			 * will run more slowly).
   1025  1.1  christos 			 */
   1026  1.1  christos 
   1027  1.1  christos 			yy_next_state = yy_try_NUL_trans( yy_current_state );
   1028  1.1  christos 
   1029  1.1  christos 			yy_bp = yytext_ptr + YY_MORE_ADJ;
   1030  1.1  christos 
   1031  1.1  christos 			if ( yy_next_state )
   1032  1.1  christos 				{
   1033  1.1  christos 				/* Consume the NUL. */
   1034  1.1  christos 				yy_cp = ++yy_c_buf_p;
   1035  1.1  christos 				yy_current_state = yy_next_state;
   1036  1.1  christos 				goto yy_match;
   1037  1.1  christos 				}
   1038  1.1  christos 
   1039  1.1  christos 			else
   1040  1.1  christos 				{
   1041  1.1  christos 				yy_cp = yy_c_buf_p;
   1042  1.1  christos 				goto yy_find_action;
   1043  1.1  christos 				}
   1044  1.1  christos 			}
   1045  1.1  christos 
   1046  1.1  christos 		else switch ( yy_get_next_buffer() )
   1047  1.1  christos 			{
   1048  1.1  christos 			case EOB_ACT_END_OF_FILE:
   1049  1.1  christos 				{
   1050  1.1  christos 				yy_did_buffer_switch_on_eof = 0;
   1051  1.1  christos 
   1052  1.1  christos 				if ( yywrap() )
   1053  1.1  christos 					{
   1054  1.1  christos 					/* Note: because we've taken care in
   1055  1.1  christos 					 * yy_get_next_buffer() to have set up
   1056  1.1  christos 					 * yytext, we can now set up
   1057  1.1  christos 					 * yy_c_buf_p so that if some total
   1058  1.1  christos 					 * hoser (like flex itself) wants to
   1059  1.1  christos 					 * call the scanner after we return the
   1060  1.1  christos 					 * YY_NULL, it'll still work - another
   1061  1.1  christos 					 * YY_NULL will get returned.
   1062  1.1  christos 					 */
   1063  1.1  christos 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
   1064  1.1  christos 
   1065  1.1  christos 					yy_act = YY_STATE_EOF(YY_START);
   1066  1.1  christos 					goto do_action;
   1067  1.1  christos 					}
   1068  1.1  christos 
   1069  1.1  christos 				else
   1070  1.1  christos 					{
   1071  1.1  christos 					if ( ! yy_did_buffer_switch_on_eof )
   1072  1.1  christos 						YY_NEW_FILE;
   1073  1.1  christos 					}
   1074  1.1  christos 				break;
   1075  1.1  christos 				}
   1076  1.1  christos 
   1077  1.1  christos 			case EOB_ACT_CONTINUE_SCAN:
   1078  1.1  christos 				yy_c_buf_p =
   1079  1.1  christos 					yytext_ptr + yy_amount_of_matched_text;
   1080  1.1  christos 
   1081  1.1  christos 				yy_current_state = yy_get_previous_state();
   1082  1.1  christos 
   1083  1.1  christos 				yy_cp = yy_c_buf_p;
   1084  1.1  christos 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   1085  1.1  christos 				goto yy_match;
   1086  1.1  christos 
   1087  1.1  christos 			case EOB_ACT_LAST_MATCH:
   1088  1.1  christos 				yy_c_buf_p =
   1089  1.1  christos 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
   1090  1.1  christos 
   1091  1.1  christos 				yy_current_state = yy_get_previous_state();
   1092  1.1  christos 
   1093  1.1  christos 				yy_cp = yy_c_buf_p;
   1094  1.1  christos 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   1095  1.1  christos 				goto yy_find_action;
   1096  1.1  christos 			}
   1097  1.1  christos 		break;
   1098  1.1  christos 		}
   1099  1.1  christos 
   1100  1.1  christos 	default:
   1101  1.1  christos 		YY_FATAL_ERROR(
   1102  1.1  christos 			"fatal flex scanner internal error--no action found" );
   1103  1.1  christos 	} /* end of action switch */
   1104  1.1  christos 		} /* end of scanning one token */
   1105  1.1  christos 	} /* end of yylex */
   1106  1.1  christos 
   1107  1.1  christos 
   1108  1.1  christos /* yy_get_next_buffer - try to read in a new buffer
   1109  1.1  christos  *
   1110  1.1  christos  * Returns a code representing an action:
   1111  1.1  christos  *	EOB_ACT_LAST_MATCH -
   1112  1.1  christos  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
   1113  1.1  christos  *	EOB_ACT_END_OF_FILE - end of file
   1114  1.1  christos  */
   1115  1.1  christos 
   1116  1.1  christos static int yy_get_next_buffer()
   1117  1.1  christos 	{
   1118  1.1  christos 	register char *dest = yy_current_buffer->yy_ch_buf;
   1119  1.1  christos 	register char *source = yytext_ptr;
   1120  1.1  christos 	register int number_to_move, i;
   1121  1.1  christos 	int ret_val;
   1122  1.1  christos 
   1123  1.1  christos 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
   1124  1.1  christos 		YY_FATAL_ERROR(
   1125  1.1  christos 		"fatal flex scanner internal error--end of buffer missed" );
   1126  1.1  christos 
   1127  1.1  christos 	if ( yy_current_buffer->yy_fill_buffer == 0 )
   1128  1.1  christos 		{ /* Don't try to fill the buffer, so this is an EOF. */
   1129  1.1  christos 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
   1130  1.1  christos 			{
   1131  1.1  christos 			/* We matched a single character, the EOB, so
   1132  1.1  christos 			 * treat this as a final EOF.
   1133  1.1  christos 			 */
   1134  1.1  christos 			return EOB_ACT_END_OF_FILE;
   1135  1.1  christos 			}
   1136  1.1  christos 
   1137  1.1  christos 		else
   1138  1.1  christos 			{
   1139  1.1  christos 			/* We matched some text prior to the EOB, first
   1140  1.1  christos 			 * process it.
   1141  1.1  christos 			 */
   1142  1.1  christos 			return EOB_ACT_LAST_MATCH;
   1143  1.1  christos 			}
   1144  1.1  christos 		}
   1145  1.1  christos 
   1146  1.1  christos 	/* Try to read more data. */
   1147  1.1  christos 
   1148  1.1  christos 	/* First move last chars to start of buffer. */
   1149  1.1  christos 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
   1150  1.1  christos 
   1151  1.1  christos 	for ( i = 0; i < number_to_move; ++i )
   1152  1.1  christos 		*(dest++) = *(source++);
   1153  1.1  christos 
   1154  1.1  christos 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
   1155  1.1  christos 		/* don't do the read, it's not guaranteed to return an EOF,
   1156  1.1  christos 		 * just force an EOF
   1157  1.1  christos 		 */
   1158  1.1  christos 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
   1159  1.1  christos 
   1160  1.1  christos 	else
   1161  1.1  christos 		{
   1162  1.1  christos 		int num_to_read =
   1163  1.1  christos 			yy_current_buffer->yy_buf_size - number_to_move - 1;
   1164  1.1  christos 
   1165  1.1  christos 		while ( num_to_read <= 0 )
   1166  1.1  christos 			{ /* Not enough room in the buffer - grow it. */
   1167  1.1  christos #ifdef YY_USES_REJECT
   1168  1.1  christos 			YY_FATAL_ERROR(
   1169  1.1  christos "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
   1170  1.1  christos #else
   1171  1.1  christos 
   1172  1.1  christos 			/* just a shorter name for the current buffer */
   1173  1.1  christos 			YY_BUFFER_STATE b = yy_current_buffer;
   1174  1.1  christos 
   1175  1.1  christos 			int yy_c_buf_p_offset =
   1176  1.1  christos 				(int) (yy_c_buf_p - b->yy_ch_buf);
   1177  1.1  christos 
   1178  1.1  christos 			if ( b->yy_is_our_buffer )
   1179  1.1  christos 				{
   1180  1.1  christos 				int new_size = b->yy_buf_size * 2;
   1181  1.1  christos 
   1182  1.1  christos 				if ( new_size <= 0 )
   1183  1.1  christos 					b->yy_buf_size += b->yy_buf_size / 8;
   1184  1.1  christos 				else
   1185  1.1  christos 					b->yy_buf_size *= 2;
   1186  1.1  christos 
   1187  1.1  christos 				b->yy_ch_buf = (char *)
   1188  1.1  christos 					/* Include room in for 2 EOB chars. */
   1189  1.1  christos 					yy_flex_realloc( (void *) b->yy_ch_buf,
   1190  1.1  christos 							 b->yy_buf_size + 2 );
   1191  1.1  christos 				}
   1192  1.1  christos 			else
   1193  1.1  christos 				/* Can't grow it, we don't own it. */
   1194  1.1  christos 				b->yy_ch_buf = 0;
   1195  1.1  christos 
   1196  1.1  christos 			if ( ! b->yy_ch_buf )
   1197  1.1  christos 				YY_FATAL_ERROR(
   1198  1.1  christos 				"fatal error - scanner input buffer overflow" );
   1199  1.1  christos 
   1200  1.1  christos 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
   1201  1.1  christos 
   1202  1.1  christos 			num_to_read = yy_current_buffer->yy_buf_size -
   1203  1.1  christos 						number_to_move - 1;
   1204  1.1  christos #endif
   1205  1.1  christos 			}
   1206  1.1  christos 
   1207  1.1  christos 		if ( num_to_read > YY_READ_BUF_SIZE )
   1208  1.1  christos 			num_to_read = YY_READ_BUF_SIZE;
   1209  1.1  christos 
   1210  1.1  christos 		/* Read in more data. */
   1211  1.1  christos 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
   1212  1.1  christos 			yy_n_chars, num_to_read );
   1213  1.1  christos 
   1214  1.1  christos 		yy_current_buffer->yy_n_chars = yy_n_chars;
   1215  1.1  christos 		}
   1216  1.1  christos 
   1217  1.1  christos 	if ( yy_n_chars == 0 )
   1218  1.1  christos 		{
   1219  1.1  christos 		if ( number_to_move == YY_MORE_ADJ )
   1220  1.1  christos 			{
   1221  1.1  christos 			ret_val = EOB_ACT_END_OF_FILE;
   1222  1.1  christos 			yyrestart( yyin );
   1223  1.1  christos 			}
   1224  1.1  christos 
   1225  1.1  christos 		else
   1226  1.1  christos 			{
   1227  1.1  christos 			ret_val = EOB_ACT_LAST_MATCH;
   1228  1.1  christos 			yy_current_buffer->yy_buffer_status =
   1229  1.1  christos 				YY_BUFFER_EOF_PENDING;
   1230  1.1  christos 			}
   1231  1.1  christos 		}
   1232  1.1  christos 
   1233  1.1  christos 	else
   1234  1.1  christos 		ret_val = EOB_ACT_CONTINUE_SCAN;
   1235  1.1  christos 
   1236  1.1  christos 	yy_n_chars += number_to_move;
   1237  1.1  christos 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
   1238  1.1  christos 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
   1239  1.1  christos 
   1240  1.1  christos 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
   1241  1.1  christos 
   1242  1.1  christos 	return ret_val;
   1243  1.1  christos 	}
   1244  1.1  christos 
   1245  1.1  christos 
   1246  1.1  christos /* yy_get_previous_state - get the state just before the EOB char was reached */
   1247  1.1  christos 
   1248  1.1  christos static yy_state_type yy_get_previous_state()
   1249  1.1  christos 	{
   1250  1.1  christos 	register yy_state_type yy_current_state;
   1251  1.1  christos 	register char *yy_cp;
   1252  1.1  christos 
   1253  1.1  christos 	yy_current_state = yy_start;
   1254  1.1  christos 
   1255  1.1  christos 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
   1256  1.1  christos 		{
   1257  1.1  christos 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
   1258  1.1  christos 		if ( yy_accept[yy_current_state] )
   1259  1.1  christos 			{
   1260  1.1  christos 			yy_last_accepting_state = yy_current_state;
   1261  1.1  christos 			yy_last_accepting_cpos = yy_cp;
   1262  1.1  christos 			}
   1263  1.1  christos 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1264  1.1  christos 			{
   1265  1.1  christos 			yy_current_state = (int) yy_def[yy_current_state];
   1266  1.1  christos 			if ( yy_current_state >= 50 )
   1267  1.1  christos 				yy_c = yy_meta[(unsigned int) yy_c];
   1268  1.1  christos 			}
   1269  1.1  christos 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1270  1.1  christos 		}
   1271  1.1  christos 
   1272  1.1  christos 	return yy_current_state;
   1273  1.1  christos 	}
   1274  1.1  christos 
   1275  1.1  christos 
   1276  1.1  christos /* yy_try_NUL_trans - try to make a transition on the NUL character
   1277  1.1  christos  *
   1278  1.1  christos  * synopsis
   1279  1.1  christos  *	next_state = yy_try_NUL_trans( current_state );
   1280  1.1  christos  */
   1281  1.1  christos 
   1282  1.1  christos #ifdef YY_USE_PROTOS
   1283  1.1  christos static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
   1284  1.1  christos #else
   1285  1.1  christos static yy_state_type yy_try_NUL_trans( yy_current_state )
   1286  1.1  christos yy_state_type yy_current_state;
   1287  1.1  christos #endif
   1288  1.1  christos 	{
   1289  1.1  christos 	register int yy_is_jam;
   1290  1.1  christos 	register char *yy_cp = yy_c_buf_p;
   1291  1.1  christos 
   1292  1.1  christos 	register YY_CHAR yy_c = 1;
   1293  1.1  christos 	if ( yy_accept[yy_current_state] )
   1294  1.1  christos 		{
   1295  1.1  christos 		yy_last_accepting_state = yy_current_state;
   1296  1.1  christos 		yy_last_accepting_cpos = yy_cp;
   1297  1.1  christos 		}
   1298  1.1  christos 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1299  1.1  christos 		{
   1300  1.1  christos 		yy_current_state = (int) yy_def[yy_current_state];
   1301  1.1  christos 		if ( yy_current_state >= 50 )
   1302  1.1  christos 			yy_c = yy_meta[(unsigned int) yy_c];
   1303  1.1  christos 		}
   1304  1.1  christos 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1305  1.1  christos 	yy_is_jam = (yy_current_state == 49);
   1306  1.1  christos 
   1307  1.1  christos 	return yy_is_jam ? 0 : yy_current_state;
   1308  1.1  christos 	}
   1309  1.1  christos 
   1310  1.1  christos 
   1311  1.1  christos #ifndef YY_NO_UNPUT
   1312  1.1  christos #ifdef YY_USE_PROTOS
   1313  1.1  christos static void yyunput( int c, register char *yy_bp )
   1314  1.1  christos #else
   1315  1.1  christos static void yyunput( c, yy_bp )
   1316  1.1  christos int c;
   1317  1.1  christos register char *yy_bp;
   1318  1.1  christos #endif
   1319  1.1  christos 	{
   1320  1.1  christos 	register char *yy_cp = yy_c_buf_p;
   1321  1.1  christos 
   1322  1.1  christos 	/* undo effects of setting up yytext */
   1323  1.1  christos 	*yy_cp = yy_hold_char;
   1324  1.1  christos 
   1325  1.1  christos 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
   1326  1.1  christos 		{ /* need to shift things up to make room */
   1327  1.1  christos 		/* +2 for EOB chars. */
   1328  1.1  christos 		register int number_to_move = yy_n_chars + 2;
   1329  1.1  christos 		register char *dest = &yy_current_buffer->yy_ch_buf[
   1330  1.1  christos 					yy_current_buffer->yy_buf_size + 2];
   1331  1.1  christos 		register char *source =
   1332  1.1  christos 				&yy_current_buffer->yy_ch_buf[number_to_move];
   1333  1.1  christos 
   1334  1.1  christos 		while ( source > yy_current_buffer->yy_ch_buf )
   1335  1.1  christos 			*--dest = *--source;
   1336  1.1  christos 
   1337  1.1  christos 		yy_cp += (int) (dest - source);
   1338  1.1  christos 		yy_bp += (int) (dest - source);
   1339  1.1  christos 		yy_current_buffer->yy_n_chars =
   1340  1.1  christos 			yy_n_chars = yy_current_buffer->yy_buf_size;
   1341  1.1  christos 
   1342  1.1  christos 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
   1343  1.1  christos 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
   1344  1.1  christos 		}
   1345  1.1  christos 
   1346  1.1  christos 	*--yy_cp = (char) c;
   1347  1.1  christos 
   1348  1.1  christos 
   1349  1.1  christos 	yytext_ptr = yy_bp;
   1350  1.1  christos 	yy_hold_char = *yy_cp;
   1351  1.1  christos 	yy_c_buf_p = yy_cp;
   1352  1.1  christos 	}
   1353  1.1  christos #endif	/* ifndef YY_NO_UNPUT */
   1354  1.1  christos 
   1355  1.1  christos 
   1356  1.1  christos #ifdef __cplusplus
   1357  1.1  christos static int yyinput()
   1358  1.1  christos #else
   1359  1.1  christos static int input()
   1360  1.1  christos #endif
   1361  1.1  christos 	{
   1362  1.1  christos 	int c;
   1363  1.1  christos 
   1364  1.1  christos 	*yy_c_buf_p = yy_hold_char;
   1365  1.1  christos 
   1366  1.1  christos 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
   1367  1.1  christos 		{
   1368  1.1  christos 		/* yy_c_buf_p now points to the character we want to return.
   1369  1.1  christos 		 * If this occurs *before* the EOB characters, then it's a
   1370  1.1  christos 		 * valid NUL; if not, then we've hit the end of the buffer.
   1371  1.1  christos 		 */
   1372  1.1  christos 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
   1373  1.1  christos 			/* This was really a NUL. */
   1374  1.1  christos 			*yy_c_buf_p = '\0';
   1375  1.1  christos 
   1376  1.1  christos 		else
   1377  1.1  christos 			{ /* need more input */
   1378  1.1  christos 			int offset = yy_c_buf_p - yytext_ptr;
   1379  1.1  christos 			++yy_c_buf_p;
   1380  1.1  christos 
   1381  1.1  christos 			switch ( yy_get_next_buffer() )
   1382  1.1  christos 				{
   1383  1.1  christos 				case EOB_ACT_LAST_MATCH:
   1384  1.1  christos 					/* This happens because yy_g_n_b()
   1385  1.1  christos 					 * sees that we've accumulated a
   1386  1.1  christos 					 * token and flags that we need to
   1387  1.1  christos 					 * try matching the token before
   1388  1.1  christos 					 * proceeding.  But for input(),
   1389  1.1  christos 					 * there's no matching to consider.
   1390  1.1  christos 					 * So convert the EOB_ACT_LAST_MATCH
   1391  1.1  christos 					 * to EOB_ACT_END_OF_FILE.
   1392  1.1  christos 					 */
   1393  1.1  christos 
   1394  1.1  christos 					/* Reset buffer status. */
   1395  1.1  christos 					yyrestart( yyin );
   1396  1.1  christos 
   1397  1.1  christos 					/* fall through */
   1398  1.1  christos 
   1399  1.1  christos 				case EOB_ACT_END_OF_FILE:
   1400  1.1  christos 					{
   1401  1.1  christos 					if ( yywrap() )
   1402  1.1  christos 						return EOF;
   1403  1.1  christos 
   1404  1.1  christos 					if ( ! yy_did_buffer_switch_on_eof )
   1405  1.1  christos 						YY_NEW_FILE;
   1406  1.1  christos #ifdef __cplusplus
   1407  1.1  christos 					return yyinput();
   1408  1.1  christos #else
   1409  1.1  christos 					return input();
   1410  1.1  christos #endif
   1411  1.1  christos 					}
   1412  1.1  christos 
   1413  1.1  christos 				case EOB_ACT_CONTINUE_SCAN:
   1414  1.1  christos 					yy_c_buf_p = yytext_ptr + offset;
   1415  1.1  christos 					break;
   1416  1.1  christos 				}
   1417  1.1  christos 			}
   1418  1.1  christos 		}
   1419  1.1  christos 
   1420  1.1  christos 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
   1421  1.1  christos 	*yy_c_buf_p = '\0';	/* preserve yytext */
   1422  1.1  christos 	yy_hold_char = *++yy_c_buf_p;
   1423  1.1  christos 
   1424  1.1  christos 
   1425  1.1  christos 	return c;
   1426  1.1  christos 	}
   1427  1.1  christos 
   1428  1.1  christos 
   1429  1.1  christos #ifdef YY_USE_PROTOS
   1430  1.1  christos void yyrestart( FILE *input_file )
   1431  1.1  christos #else
   1432  1.1  christos void yyrestart( input_file )
   1433  1.1  christos FILE *input_file;
   1434  1.1  christos #endif
   1435  1.1  christos 	{
   1436  1.1  christos 	if ( ! yy_current_buffer )
   1437  1.1  christos 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
   1438  1.1  christos 
   1439  1.1  christos 	yy_init_buffer( yy_current_buffer, input_file );
   1440  1.1  christos 	yy_load_buffer_state();
   1441  1.1  christos 	}
   1442  1.1  christos 
   1443  1.1  christos 
   1444  1.1  christos #ifdef YY_USE_PROTOS
   1445  1.1  christos void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
   1446  1.1  christos #else
   1447  1.1  christos void yy_switch_to_buffer( new_buffer )
   1448  1.1  christos YY_BUFFER_STATE new_buffer;
   1449  1.1  christos #endif
   1450  1.1  christos 	{
   1451  1.1  christos 	if ( yy_current_buffer == new_buffer )
   1452  1.1  christos 		return;
   1453  1.1  christos 
   1454  1.1  christos 	if ( yy_current_buffer )
   1455  1.1  christos 		{
   1456  1.1  christos 		/* Flush out information for old buffer. */
   1457  1.1  christos 		*yy_c_buf_p = yy_hold_char;
   1458  1.1  christos 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
   1459  1.1  christos 		yy_current_buffer->yy_n_chars = yy_n_chars;
   1460  1.1  christos 		}
   1461  1.1  christos 
   1462  1.1  christos 	yy_current_buffer = new_buffer;
   1463  1.1  christos 	yy_load_buffer_state();
   1464  1.1  christos 
   1465  1.1  christos 	/* We don't actually know whether we did this switch during
   1466  1.1  christos 	 * EOF (yywrap()) processing, but the only time this flag
   1467  1.1  christos 	 * is looked at is after yywrap() is called, so it's safe
   1468  1.1  christos 	 * to go ahead and always set it.
   1469  1.1  christos 	 */
   1470  1.1  christos 	yy_did_buffer_switch_on_eof = 1;
   1471  1.1  christos 	}
   1472  1.1  christos 
   1473  1.1  christos 
   1474  1.1  christos #ifdef YY_USE_PROTOS
   1475  1.1  christos void yy_load_buffer_state( void )
   1476  1.1  christos #else
   1477  1.1  christos void yy_load_buffer_state()
   1478  1.1  christos #endif
   1479  1.1  christos 	{
   1480  1.1  christos 	yy_n_chars = yy_current_buffer->yy_n_chars;
   1481  1.1  christos 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
   1482  1.1  christos 	yyin = yy_current_buffer->yy_input_file;
   1483  1.1  christos 	yy_hold_char = *yy_c_buf_p;
   1484  1.1  christos 	}
   1485  1.1  christos 
   1486  1.1  christos 
   1487  1.1  christos #ifdef YY_USE_PROTOS
   1488  1.1  christos YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
   1489  1.1  christos #else
   1490  1.1  christos YY_BUFFER_STATE yy_create_buffer( file, size )
   1491  1.1  christos FILE *file;
   1492  1.1  christos int size;
   1493  1.1  christos #endif
   1494  1.1  christos 	{
   1495  1.1  christos 	YY_BUFFER_STATE b;
   1496  1.1  christos 
   1497  1.1  christos 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
   1498  1.1  christos 	if ( ! b )
   1499  1.1  christos 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
   1500  1.1  christos 
   1501  1.1  christos 	b->yy_buf_size = size;
   1502  1.1  christos 
   1503  1.1  christos 	/* yy_ch_buf has to be 2 characters longer than the size given because
   1504  1.1  christos 	 * we need to put in 2 end-of-buffer characters.
   1505  1.1  christos 	 */
   1506  1.1  christos 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
   1507  1.1  christos 	if ( ! b->yy_ch_buf )
   1508  1.1  christos 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
   1509  1.1  christos 
   1510  1.1  christos 	b->yy_is_our_buffer = 1;
   1511  1.1  christos 
   1512  1.1  christos 	yy_init_buffer( b, file );
   1513  1.1  christos 
   1514  1.1  christos 	return b;
   1515  1.1  christos 	}
   1516  1.1  christos 
   1517  1.1  christos 
   1518  1.1  christos #ifdef YY_USE_PROTOS
   1519  1.1  christos void yy_delete_buffer( YY_BUFFER_STATE b )
   1520  1.1  christos #else
   1521  1.1  christos void yy_delete_buffer( b )
   1522  1.1  christos YY_BUFFER_STATE b;
   1523  1.1  christos #endif
   1524  1.1  christos 	{
   1525  1.1  christos 	if ( ! b )
   1526  1.1  christos 		return;
   1527  1.1  christos 
   1528  1.1  christos 	if ( b == yy_current_buffer )
   1529  1.1  christos 		yy_current_buffer = (YY_BUFFER_STATE) 0;
   1530  1.1  christos 
   1531  1.1  christos 	if ( b->yy_is_our_buffer )
   1532  1.1  christos 		yy_flex_free( (void *) b->yy_ch_buf );
   1533  1.1  christos 
   1534  1.1  christos 	yy_flex_free( (void *) b );
   1535  1.1  christos 	}
   1536  1.1  christos 
   1537  1.1  christos 
   1538  1.1  christos #ifndef YY_ALWAYS_INTERACTIVE
   1539  1.1  christos #ifndef YY_NEVER_INTERACTIVE
   1540  1.1  christos extern int isatty YY_PROTO(( int ));
   1541  1.1  christos #endif
   1542  1.1  christos #endif
   1543  1.1  christos 
   1544  1.1  christos #ifdef YY_USE_PROTOS
   1545  1.1  christos void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
   1546  1.1  christos #else
   1547  1.1  christos void yy_init_buffer( b, file )
   1548  1.1  christos YY_BUFFER_STATE b;
   1549  1.1  christos FILE *file;
   1550  1.1  christos #endif
   1551  1.1  christos 
   1552  1.1  christos 
   1553  1.1  christos 	{
   1554  1.1  christos 	yy_flush_buffer( b );
   1555  1.1  christos 
   1556  1.1  christos 	b->yy_input_file = file;
   1557  1.1  christos 	b->yy_fill_buffer = 1;
   1558  1.1  christos 
   1559  1.1  christos #if YY_ALWAYS_INTERACTIVE
   1560  1.1  christos 	b->yy_is_interactive = 1;
   1561  1.1  christos #else
   1562  1.1  christos #if YY_NEVER_INTERACTIVE
   1563  1.1  christos 	b->yy_is_interactive = 0;
   1564  1.1  christos #else
   1565  1.1  christos 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
   1566  1.1  christos #endif
   1567  1.1  christos #endif
   1568  1.1  christos 	}
   1569  1.1  christos 
   1570  1.1  christos 
   1571  1.1  christos #ifdef YY_USE_PROTOS
   1572  1.1  christos void yy_flush_buffer( YY_BUFFER_STATE b )
   1573  1.1  christos #else
   1574  1.1  christos void yy_flush_buffer( b )
   1575  1.1  christos YY_BUFFER_STATE b;
   1576  1.1  christos #endif
   1577  1.1  christos 
   1578  1.1  christos 	{
   1579  1.1  christos 	if ( ! b )
   1580  1.1  christos 		return;
   1581  1.1  christos 
   1582  1.1  christos 	b->yy_n_chars = 0;
   1583  1.1  christos 
   1584  1.1  christos 	/* We always need two end-of-buffer characters.  The first causes
   1585  1.1  christos 	 * a transition to the end-of-buffer state.  The second causes
   1586  1.1  christos 	 * a jam in that state.
   1587  1.1  christos 	 */
   1588  1.1  christos 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
   1589  1.1  christos 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
   1590  1.1  christos 
   1591  1.1  christos 	b->yy_buf_pos = &b->yy_ch_buf[0];
   1592  1.1  christos 
   1593  1.1  christos 	b->yy_at_bol = 1;
   1594  1.1  christos 	b->yy_buffer_status = YY_BUFFER_NEW;
   1595  1.1  christos 
   1596  1.1  christos 	if ( b == yy_current_buffer )
   1597  1.1  christos 		yy_load_buffer_state();
   1598  1.1  christos 	}
   1599  1.1  christos 
   1600  1.1  christos 
   1601  1.1  christos #ifndef YY_NO_SCAN_BUFFER
   1602  1.1  christos #ifdef YY_USE_PROTOS
   1603  1.1  christos YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
   1604  1.1  christos #else
   1605  1.1  christos YY_BUFFER_STATE yy_scan_buffer( base, size )
   1606  1.1  christos char *base;
   1607  1.1  christos yy_size_t size;
   1608  1.1  christos #endif
   1609  1.1  christos 	{
   1610  1.1  christos 	YY_BUFFER_STATE b;
   1611  1.1  christos 
   1612  1.1  christos 	if ( size < 2 ||
   1613  1.1  christos 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
   1614  1.1  christos 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
   1615  1.1  christos 		/* They forgot to leave room for the EOB's. */
   1616  1.1  christos 		return 0;
   1617  1.1  christos 
   1618  1.1  christos 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
   1619  1.1  christos 	if ( ! b )
   1620  1.1  christos 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
   1621  1.1  christos 
   1622  1.1  christos 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
   1623  1.1  christos 	b->yy_buf_pos = b->yy_ch_buf = base;
   1624  1.1  christos 	b->yy_is_our_buffer = 0;
   1625  1.1  christos 	b->yy_input_file = 0;
   1626  1.1  christos 	b->yy_n_chars = b->yy_buf_size;
   1627  1.1  christos 	b->yy_is_interactive = 0;
   1628  1.1  christos 	b->yy_at_bol = 1;
   1629  1.1  christos 	b->yy_fill_buffer = 0;
   1630  1.1  christos 	b->yy_buffer_status = YY_BUFFER_NEW;
   1631  1.1  christos 
   1632  1.1  christos 	yy_switch_to_buffer( b );
   1633  1.1  christos 
   1634  1.1  christos 	return b;
   1635  1.1  christos 	}
   1636  1.1  christos #endif
   1637  1.1  christos 
   1638  1.1  christos 
   1639  1.1  christos #ifndef YY_NO_SCAN_STRING
   1640  1.1  christos #ifdef YY_USE_PROTOS
   1641  1.1  christos YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
   1642  1.1  christos #else
   1643  1.1  christos YY_BUFFER_STATE yy_scan_string( yy_str )
   1644  1.1  christos yyconst char *yy_str;
   1645  1.1  christos #endif
   1646  1.1  christos 	{
   1647  1.1  christos 	int len;
   1648  1.1  christos 	for ( len = 0; yy_str[len]; ++len )
   1649  1.1  christos 		;
   1650  1.1  christos 
   1651  1.1  christos 	return yy_scan_bytes( yy_str, len );
   1652  1.1  christos 	}
   1653  1.1  christos #endif
   1654  1.1  christos 
   1655  1.1  christos 
   1656  1.1  christos #ifndef YY_NO_SCAN_BYTES
   1657  1.1  christos #ifdef YY_USE_PROTOS
   1658  1.1  christos YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
   1659  1.1  christos #else
   1660  1.1  christos YY_BUFFER_STATE yy_scan_bytes( bytes, len )
   1661  1.1  christos yyconst char *bytes;
   1662  1.1  christos int len;
   1663  1.1  christos #endif
   1664  1.1  christos 	{
   1665  1.1  christos 	YY_BUFFER_STATE b;
   1666  1.1  christos 	char *buf;
   1667  1.1  christos 	yy_size_t n;
   1668  1.1  christos 	int i;
   1669  1.1  christos 
   1670  1.1  christos 	/* Get memory for full buffer, including space for trailing EOB's. */
   1671  1.1  christos 	n = len + 2;
   1672  1.1  christos 	buf = (char *) yy_flex_alloc( n );
   1673  1.1  christos 	if ( ! buf )
   1674  1.1  christos 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
   1675  1.1  christos 
   1676  1.1  christos 	for ( i = 0; i < len; ++i )
   1677  1.1  christos 		buf[i] = bytes[i];
   1678  1.1  christos 
   1679  1.1  christos 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
   1680  1.1  christos 
   1681  1.1  christos 	b = yy_scan_buffer( buf, n );
   1682  1.1  christos 	if ( ! b )
   1683  1.1  christos 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
   1684  1.1  christos 
   1685  1.1  christos 	/* It's okay to grow etc. this buffer, and we should throw it
   1686  1.1  christos 	 * away when we're done.
   1687  1.1  christos 	 */
   1688  1.1  christos 	b->yy_is_our_buffer = 1;
   1689  1.1  christos 
   1690  1.1  christos 	return b;
   1691  1.1  christos 	}
   1692  1.1  christos #endif
   1693  1.1  christos 
   1694  1.1  christos 
   1695  1.1  christos #ifndef YY_NO_PUSH_STATE
   1696  1.1  christos #ifdef YY_USE_PROTOS
   1697  1.1  christos static void yy_push_state( int new_state )
   1698  1.1  christos #else
   1699  1.1  christos static void yy_push_state( new_state )
   1700  1.1  christos int new_state;
   1701  1.1  christos #endif
   1702  1.1  christos 	{
   1703  1.1  christos 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
   1704  1.1  christos 		{
   1705  1.1  christos 		yy_size_t new_size;
   1706  1.1  christos 
   1707  1.1  christos 		yy_start_stack_depth += YY_START_STACK_INCR;
   1708  1.1  christos 		new_size = yy_start_stack_depth * sizeof( int );
   1709  1.1  christos 
   1710  1.1  christos 		if ( ! yy_start_stack )
   1711  1.1  christos 			yy_start_stack = (int *) yy_flex_alloc( new_size );
   1712  1.1  christos 
   1713  1.1  christos 		else
   1714  1.1  christos 			yy_start_stack = (int *) yy_flex_realloc(
   1715  1.1  christos 					(void *) yy_start_stack, new_size );
   1716  1.1  christos 
   1717  1.1  christos 		if ( ! yy_start_stack )
   1718  1.1  christos 			YY_FATAL_ERROR(
   1719  1.1  christos 			"out of memory expanding start-condition stack" );
   1720  1.1  christos 		}
   1721  1.1  christos 
   1722  1.1  christos 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
   1723  1.1  christos 
   1724  1.1  christos 	BEGIN(new_state);
   1725  1.1  christos 	}
   1726  1.1  christos #endif
   1727  1.1  christos 
   1728  1.1  christos 
   1729  1.1  christos #ifndef YY_NO_POP_STATE
   1730  1.1  christos static void yy_pop_state()
   1731  1.1  christos 	{
   1732  1.1  christos 	if ( --yy_start_stack_ptr < 0 )
   1733  1.1  christos 		YY_FATAL_ERROR( "start-condition stack underflow" );
   1734  1.1  christos 
   1735  1.1  christos 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
   1736  1.1  christos 	}
   1737  1.1  christos #endif
   1738  1.1  christos 
   1739  1.1  christos 
   1740  1.1  christos #ifndef YY_NO_TOP_STATE
   1741  1.1  christos static int yy_top_state()
   1742  1.1  christos 	{
   1743  1.1  christos 	return yy_start_stack[yy_start_stack_ptr - 1];
   1744  1.1  christos 	}
   1745  1.1  christos #endif
   1746  1.1  christos 
   1747  1.1  christos #ifndef YY_EXIT_FAILURE
   1748  1.1  christos #define YY_EXIT_FAILURE 2
   1749  1.1  christos #endif
   1750  1.1  christos 
   1751  1.1  christos #ifdef YY_USE_PROTOS
   1752  1.1  christos static void yy_fatal_error( yyconst char msg[] )
   1753  1.1  christos #else
   1754  1.1  christos static void yy_fatal_error( msg )
   1755  1.1  christos char msg[];
   1756  1.1  christos #endif
   1757  1.1  christos 	{
   1758  1.1  christos 	(void) fprintf( stderr, "%s\n", msg );
   1759  1.1  christos 	exit( YY_EXIT_FAILURE );
   1760  1.1  christos 	}
   1761  1.1  christos 
   1762  1.1  christos 
   1763  1.1  christos 
   1764  1.1  christos /* Redefine yyless() so it works in section 3 code. */
   1765  1.1  christos 
   1766  1.1  christos #undef yyless
   1767  1.1  christos #define yyless(n) \
   1768  1.1  christos 	do \
   1769  1.1  christos 		{ \
   1770  1.1  christos 		/* Undo effects of setting up yytext. */ \
   1771  1.1  christos 		yytext[yyleng] = yy_hold_char; \
   1772  1.1  christos 		yy_c_buf_p = yytext + n; \
   1773  1.1  christos 		yy_hold_char = *yy_c_buf_p; \
   1774  1.1  christos 		*yy_c_buf_p = '\0'; \
   1775  1.1  christos 		yyleng = n; \
   1776  1.1  christos 		} \
   1777  1.1  christos 	while ( 0 )
   1778  1.1  christos 
   1779  1.1  christos 
   1780  1.1  christos /* Internal utility routines. */
   1781  1.1  christos 
   1782  1.1  christos #ifndef yytext_ptr
   1783  1.1  christos #ifdef YY_USE_PROTOS
   1784  1.1  christos static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
   1785  1.1  christos #else
   1786  1.1  christos static void yy_flex_strncpy( s1, s2, n )
   1787  1.1  christos char *s1;
   1788  1.1  christos yyconst char *s2;
   1789  1.1  christos int n;
   1790  1.1  christos #endif
   1791  1.1  christos 	{
   1792  1.1  christos 	register int i;
   1793  1.1  christos 	for ( i = 0; i < n; ++i )
   1794  1.1  christos 		s1[i] = s2[i];
   1795  1.1  christos 	}
   1796  1.1  christos #endif
   1797  1.1  christos 
   1798  1.1  christos #ifdef YY_NEED_STRLEN
   1799  1.1  christos #ifdef YY_USE_PROTOS
   1800  1.1  christos static int yy_flex_strlen( yyconst char *s )
   1801  1.1  christos #else
   1802  1.1  christos static int yy_flex_strlen( s )
   1803  1.1  christos yyconst char *s;
   1804  1.1  christos #endif
   1805  1.1  christos 	{
   1806  1.1  christos 	register int n;
   1807  1.1  christos 	for ( n = 0; s[n]; ++n )
   1808  1.1  christos 		;
   1809  1.1  christos 
   1810  1.1  christos 	return n;
   1811  1.1  christos 	}
   1812  1.1  christos #endif
   1813  1.1  christos 
   1814  1.1  christos 
   1815  1.1  christos #ifdef YY_USE_PROTOS
   1816  1.1  christos static void *yy_flex_alloc( yy_size_t size )
   1817  1.1  christos #else
   1818  1.1  christos static void *yy_flex_alloc( size )
   1819  1.1  christos yy_size_t size;
   1820  1.1  christos #endif
   1821  1.1  christos 	{
   1822  1.1  christos 	return (void *) malloc( size );
   1823  1.1  christos 	}
   1824  1.1  christos 
   1825  1.1  christos #ifdef YY_USE_PROTOS
   1826  1.1  christos static void *yy_flex_realloc( void *ptr, yy_size_t size )
   1827  1.1  christos #else
   1828  1.1  christos static void *yy_flex_realloc( ptr, size )
   1829  1.1  christos void *ptr;
   1830  1.1  christos yy_size_t size;
   1831  1.1  christos #endif
   1832  1.1  christos 	{
   1833  1.1  christos 	/* The cast to (char *) in the following accommodates both
   1834  1.1  christos 	 * implementations that use char* generic pointers, and those
   1835  1.1  christos 	 * that use void* generic pointers.  It works with the latter
   1836  1.1  christos 	 * because both ANSI C and C++ allow castless assignment from
   1837  1.1  christos 	 * any pointer type to void*, and deal with argument conversions
   1838  1.1  christos 	 * as though doing an assignment.
   1839  1.1  christos 	 */
   1840  1.1  christos 	return (void *) realloc( (char *) ptr, size );
   1841  1.1  christos 	}
   1842  1.1  christos 
   1843  1.1  christos #ifdef YY_USE_PROTOS
   1844  1.1  christos static void yy_flex_free( void *ptr )
   1845  1.1  christos #else
   1846  1.1  christos static void yy_flex_free( ptr )
   1847  1.1  christos void *ptr;
   1848  1.1  christos #endif
   1849  1.1  christos 	{
   1850  1.1  christos 	free( ptr );
   1851  1.1  christos 	}
   1852  1.1  christos 
   1853  1.1  christos #if YY_MAIN
   1854  1.1  christos int main()
   1855  1.1  christos 	{
   1856  1.1  christos 	yylex();
   1857  1.1  christos 	return 0;
   1858  1.1  christos 	}
   1859  1.1  christos #endif
   1860  1.1  christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
   1861  1.1  christos 
   1862  1.1  christos 
   1863  1.1  christos /*
   1864  1.1  christos  * Local support functions
   1865  1.1  christos  */
   1866  1.1  christos static YY_BUFFER_STATE         LexBuffer;
   1867  1.1  christos 
   1868  1.1  christos 
   1869  1.1  christos /******************************************************************************
   1870  1.1  christos  *
   1871  1.1  christos  * FUNCTION:    PrInitLexer
   1872  1.1  christos  *
   1873  1.1  christos  * PARAMETERS:  String              - Input string to be parsed
   1874  1.1  christos  *
   1875  1.1  christos  * RETURN:      TRUE if parser returns NULL. FALSE otherwise.
   1876  1.1  christos  *
   1877  1.1  christos  * DESCRIPTION: Initialization routine for lexer. The lexer needs
   1878  1.1  christos  *              a buffer to handle strings instead of a file.
   1879  1.1  christos  *
   1880  1.1  christos  *****************************************************************************/
   1881  1.1  christos 
   1882  1.1  christos int
   1883  1.1  christos PrInitLexer (
   1884  1.1  christos     char                    *String)
   1885  1.1  christos {
   1886  1.1  christos 
   1887  1.1  christos     LexBuffer = yy_scan_string (String);
   1888  1.1  christos     return (LexBuffer == NULL);
   1889  1.1  christos }
   1890  1.1  christos 
   1891  1.1  christos 
   1892  1.1  christos /******************************************************************************
   1893  1.1  christos  *
   1894  1.1  christos  * FUNCTION:    PrTerminateLexer
   1895  1.1  christos  *
   1896  1.1  christos  * PARAMETERS:  None
   1897  1.1  christos  *
   1898  1.1  christos  * RETURN:      None
   1899  1.1  christos  *
   1900  1.1  christos  * DESCRIPTION: Termination routine for thelexer.
   1901  1.1  christos  *
   1902  1.1  christos  *****************************************************************************/
   1903  1.1  christos 
   1904  1.1  christos void
   1905  1.1  christos PrTerminateLexer (
   1906  1.1  christos     void)
   1907  1.1  christos {
   1908  1.1  christos 
   1909  1.1  christos     yy_delete_buffer (LexBuffer);
   1910  1.1  christos }
   1911  1.1  christos 
   1912  1.1  christos 
   1913  1.1  christos /********************************************************************************
   1914  1.1  christos  *
   1915  1.1  christos  * FUNCTION:    PrDoCommentType1
   1916  1.1  christos  *
   1917  1.1  christos  * PARAMETERS:  none
   1918  1.1  christos  *
   1919  1.1  christos  * RETURN:      none
   1920  1.1  christos  *
   1921  1.1  christos  * DESCRIPTION: Process a new legacy comment. Just toss it.
   1922  1.1  christos  *
   1923  1.1  christos  ******************************************************************************/
   1924  1.1  christos 
   1925  1.1  christos static char
   1926  1.1  christos PrDoCommentType1 (
   1927  1.1  christos     void)
   1928  1.1  christos {
   1929  1.1  christos     int                 c;
   1930  1.1  christos 
   1931  1.1  christos 
   1932  1.1  christos Loop:
   1933  1.1  christos     while (((c = input ()) != '*') && (c != EOF))
   1934  1.1  christos     {
   1935  1.1  christos     }
   1936  1.1  christos     if (c == EOF)
   1937  1.1  christos     {
   1938  1.1  christos         return (FALSE);
   1939  1.1  christos     }
   1940  1.1  christos 
   1941  1.1  christos     if (((c = input ()) != '/') && (c != EOF))
   1942  1.1  christos     {
   1943  1.1  christos         unput (c);
   1944  1.1  christos         goto Loop;
   1945  1.1  christos     }
   1946  1.1  christos     if (c == EOF)
   1947  1.1  christos     {
   1948  1.1  christos         return (FALSE);
   1949  1.1  christos     }
   1950  1.1  christos 
   1951  1.1  christos     return (TRUE);
   1952  1.1  christos }
   1953  1.1  christos 
   1954  1.1  christos 
   1955  1.1  christos /********************************************************************************
   1956  1.1  christos  *
   1957  1.1  christos  * FUNCTION:    PrDoCommentType2
   1958  1.1  christos  *
   1959  1.1  christos  * PARAMETERS:  none
   1960  1.1  christos  *
   1961  1.1  christos  * RETURN:      none
   1962  1.1  christos  *
   1963  1.1  christos  * DESCRIPTION: Process a new "//" comment. Just toss it.
   1964  1.1  christos  *
   1965  1.1  christos  ******************************************************************************/
   1966  1.1  christos 
   1967  1.1  christos static char
   1968  1.1  christos PrDoCommentType2 (
   1969  1.1  christos     void)
   1970  1.1  christos {
   1971  1.1  christos     int                 c;
   1972  1.1  christos 
   1973  1.1  christos 
   1974  1.1  christos     while (((c = input ()) != '\n') && (c != EOF))
   1975  1.1  christos     {
   1976  1.1  christos     }
   1977  1.1  christos     if (c == EOF)
   1978  1.1  christos     {
   1979  1.1  christos         return (FALSE);
   1980  1.1  christos     }
   1981  1.1  christos 
   1982  1.1  christos     return (TRUE);
   1983  1.1  christos }
   1984