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