Blame demos/calc/calclex.c

Packit 5c3484
/* A lexical scanner generated by flex */
Packit 5c3484
Packit 5c3484
/* Scanner skeleton version:
Packit 5c3484
 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
Packit 5c3484
 * $FreeBSD: releng/9.3/usr.bin/lex/flex.skl 214272 2010-10-24 15:31:41Z uqs $
Packit 5c3484
 */
Packit 5c3484
Packit 5c3484
#if defined(__FreeBSD__)
Packit 5c3484
#include <sys/cdefs.h>
Packit 5c3484
#else
Packit 5c3484
#define __unused
Packit 5c3484
#define __dead2
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#define FLEX_SCANNER
Packit 5c3484
#define YY_FLEX_MAJOR_VERSION 2
Packit 5c3484
#define YY_FLEX_MINOR_VERSION 5
Packit 5c3484
Packit 5c3484
#include <stdio.h>
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
Packit 5c3484
#ifdef c_plusplus
Packit 5c3484
#ifndef __cplusplus
Packit 5c3484
#define __cplusplus
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef __cplusplus
Packit 5c3484
Packit 5c3484
#include <stdlib.h>
Packit 5c3484
#include <unistd.h>
Packit 5c3484
Packit 5c3484
/* Use prototypes in function declarations. */
Packit 5c3484
#define YY_USE_PROTOS
Packit 5c3484
Packit 5c3484
/* The "const" storage-class-modifier is valid. */
Packit 5c3484
#define YY_USE_CONST
Packit 5c3484
Packit 5c3484
#else	/* ! __cplusplus */
Packit 5c3484
Packit 5c3484
#if __STDC__
Packit 5c3484
Packit 5c3484
#define YY_USE_PROTOS
Packit 5c3484
#define YY_USE_CONST
Packit 5c3484
Packit 5c3484
#endif	/* __STDC__ */
Packit 5c3484
#endif	/* ! __cplusplus */
Packit 5c3484
Packit 5c3484
#ifdef __TURBOC__
Packit 5c3484
 #pragma warn -rch
Packit 5c3484
 #pragma warn -use
Packit 5c3484
#include <io.h>
Packit 5c3484
#include <stdlib.h>
Packit 5c3484
#define YY_USE_CONST
Packit 5c3484
#define YY_USE_PROTOS
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_CONST
Packit 5c3484
#define yyconst const
Packit 5c3484
#else
Packit 5c3484
#define yyconst
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
#define YY_PROTO(proto) proto
Packit 5c3484
#else
Packit 5c3484
#define YY_PROTO(proto) ()
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Returned upon end-of-file. */
Packit 5c3484
#define YY_NULL 0
Packit 5c3484
Packit 5c3484
/* Promotes a possibly negative, possibly signed char to an unsigned
Packit 5c3484
 * integer for use as an array index.  If the signed char is negative,
Packit 5c3484
 * we want to instead treat it as an 8-bit unsigned char, hence the
Packit 5c3484
 * double cast.
Packit 5c3484
 */
Packit 5c3484
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
Packit 5c3484
Packit 5c3484
/* Enter a start condition.  This macro really ought to take a parameter,
Packit 5c3484
 * but we do it the disgusting crufty way forced on us by the ()-less
Packit 5c3484
 * definition of BEGIN.
Packit 5c3484
 */
Packit 5c3484
#define BEGIN yy_start = 1 + 2 *
Packit 5c3484
Packit 5c3484
/* Translate the current start state into a value that can be later handed
Packit 5c3484
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
Packit 5c3484
 * compatibility.
Packit 5c3484
 */
Packit 5c3484
#define YY_START ((yy_start - 1) / 2)
Packit 5c3484
#define YYSTATE YY_START
Packit 5c3484
Packit 5c3484
/* Action number for EOF rule of a given start state. */
Packit 5c3484
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
Packit 5c3484
Packit 5c3484
/* Special action meaning "start processing a new file". */
Packit 5c3484
#define YY_NEW_FILE yyrestart( yyin )
Packit 5c3484
Packit 5c3484
#define YY_END_OF_BUFFER_CHAR 0
Packit 5c3484
Packit 5c3484
/* Size of default input buffer. */
Packit 5c3484
#define YY_BUF_SIZE 16384
Packit 5c3484
Packit 5c3484
typedef struct yy_buffer_state *YY_BUFFER_STATE;
Packit 5c3484
Packit 5c3484
extern int yyleng;
Packit 5c3484
extern FILE *yyin, *yyout;
Packit 5c3484
Packit 5c3484
#define EOB_ACT_CONTINUE_SCAN 0
Packit 5c3484
#define EOB_ACT_END_OF_FILE 1
Packit 5c3484
#define EOB_ACT_LAST_MATCH 2
Packit 5c3484
Packit 5c3484
/* The funky do-while in the following #define is used to turn the definition
Packit 5c3484
 * int a single C statement (which needs a semi-colon terminator).  This
Packit 5c3484
 * avoids problems with code like:
Packit 5c3484
 *
Packit 5c3484
 * 	if ( condition_holds )
Packit 5c3484
 *		yyless( 5 );
Packit 5c3484
 *	else
Packit 5c3484
 *		do_something_else();
Packit 5c3484
 *
Packit 5c3484
 * Prior to using the do-while the compiler would get upset at the
Packit 5c3484
 * "else" because it interpreted the "if" statement as being all
Packit 5c3484
 * done when it reached the ';' after the yyless() call.
Packit 5c3484
 */
Packit 5c3484
Packit 5c3484
/* Return all but the first 'n' matched characters back to the input stream. */
Packit 5c3484
Packit 5c3484
#define yyless(n) \
Packit 5c3484
	do \
Packit 5c3484
		{ \
Packit 5c3484
		/* Undo effects of setting up yytext. */ \
Packit 5c3484
		*yy_cp = yy_hold_char; \
Packit 5c3484
		YY_RESTORE_YY_MORE_OFFSET \
Packit 5c3484
		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
Packit 5c3484
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
Packit 5c3484
		} \
Packit 5c3484
	while ( 0 )
Packit 5c3484
Packit 5c3484
#define unput(c) yyunput( c, yytext_ptr )
Packit 5c3484
Packit 5c3484
/* The following is because we cannot portably get our hands on size_t
Packit 5c3484
 * (without autoconf's help, which isn't available because we want
Packit 5c3484
 * flex-generated scanners to compile on their own).
Packit 5c3484
 */
Packit 5c3484
typedef unsigned int yy_size_t;
Packit 5c3484
Packit 5c3484
Packit 5c3484
struct yy_buffer_state
Packit 5c3484
	{
Packit 5c3484
	FILE *yy_input_file;
Packit 5c3484
Packit 5c3484
	char *yy_ch_buf;		/* input buffer */
Packit 5c3484
	char *yy_buf_pos;		/* current position in input buffer */
Packit 5c3484
Packit 5c3484
	/* Size of input buffer in bytes, not including room for EOB
Packit 5c3484
	 * characters.
Packit 5c3484
	 */
Packit 5c3484
	yy_size_t yy_buf_size;
Packit 5c3484
Packit 5c3484
	/* Number of characters read into yy_ch_buf, not including EOB
Packit 5c3484
	 * characters.
Packit 5c3484
	 */
Packit 5c3484
	int yy_n_chars;
Packit 5c3484
Packit 5c3484
	/* Whether we "own" the buffer - i.e., we know we created it,
Packit 5c3484
	 * and can realloc() it to grow it, and should free() it to
Packit 5c3484
	 * delete it.
Packit 5c3484
	 */
Packit 5c3484
	int yy_is_our_buffer;
Packit 5c3484
Packit 5c3484
	/* Whether this is an "interactive" input source; if so, and
Packit 5c3484
	 * if we're using stdio for input, then we want to use getc()
Packit 5c3484
	 * instead of fread(), to make sure we stop fetching input after
Packit 5c3484
	 * each newline.
Packit 5c3484
	 */
Packit 5c3484
	int yy_is_interactive;
Packit 5c3484
Packit 5c3484
	/* Whether we're considered to be at the beginning of a line.
Packit 5c3484
	 * If so, '^' rules will be active on the next match, otherwise
Packit 5c3484
	 * not.
Packit 5c3484
	 */
Packit 5c3484
	int yy_at_bol;
Packit 5c3484
Packit 5c3484
	/* Whether to try to fill the input buffer when we reach the
Packit 5c3484
	 * end of it.
Packit 5c3484
	 */
Packit 5c3484
	int yy_fill_buffer;
Packit 5c3484
Packit 5c3484
	int yy_buffer_status;
Packit 5c3484
#define YY_BUFFER_NEW 0
Packit 5c3484
#define YY_BUFFER_NORMAL 1
Packit 5c3484
	/* When an EOF's been seen but there's still some text to process
Packit 5c3484
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
Packit 5c3484
	 * shouldn't try reading from the input source any more.  We might
Packit 5c3484
	 * still have a bunch of tokens to match, though, because of
Packit 5c3484
	 * possible backing-up.
Packit 5c3484
	 *
Packit 5c3484
	 * When we actually see the EOF, we change the status to "new"
Packit 5c3484
	 * (via yyrestart()), so that the user can continue scanning by
Packit 5c3484
	 * just pointing yyin at a new input file.
Packit 5c3484
	 */
Packit 5c3484
#define YY_BUFFER_EOF_PENDING 2
Packit 5c3484
	};
Packit 5c3484
Packit 5c3484
static YY_BUFFER_STATE yy_current_buffer = 0;
Packit 5c3484
Packit 5c3484
/* We provide macros for accessing buffer states in case in the
Packit 5c3484
 * future we want to put the buffer states in a more general
Packit 5c3484
 * "scanner state".
Packit 5c3484
 */
Packit 5c3484
#define YY_CURRENT_BUFFER yy_current_buffer
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* yy_hold_char holds the character lost when yytext is formed. */
Packit 5c3484
static char yy_hold_char;
Packit 5c3484
Packit 5c3484
static int yy_n_chars;		/* number of characters read into yy_ch_buf */
Packit 5c3484
Packit 5c3484
Packit 5c3484
int yyleng;
Packit 5c3484
Packit 5c3484
/* Points to current character in buffer. */
Packit 5c3484
static char *yy_c_buf_p = (char *) 0;
Packit 5c3484
static int yy_init = 1;		/* whether we need to initialize */
Packit 5c3484
static int yy_start = 0;	/* start state number */
Packit 5c3484
Packit 5c3484
/* Flag which is used to allow yywrap()'s to do buffer switches
Packit 5c3484
 * instead of setting up a fresh yyin.  A bit of a hack ...
Packit 5c3484
 */
Packit 5c3484
static int yy_did_buffer_switch_on_eof;
Packit 5c3484
Packit 5c3484
void yyrestart YY_PROTO(( FILE *input_file ));
Packit 5c3484
Packit 5c3484
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
Packit 5c3484
void yy_load_buffer_state YY_PROTO(( void ));
Packit 5c3484
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
Packit 5c3484
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
Packit 5c3484
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
Packit 5c3484
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
Packit 5c3484
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
Packit 5c3484
Packit 5c3484
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
Packit 5c3484
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
Packit 5c3484
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
Packit 5c3484
Packit 5c3484
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
Packit 5c3484
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused;
Packit 5c3484
static void yy_flex_free YY_PROTO(( void * ));
Packit 5c3484
Packit 5c3484
#define yy_new_buffer yy_create_buffer
Packit 5c3484
Packit 5c3484
#define yy_set_interactive(is_interactive) \
Packit 5c3484
	{ \
Packit 5c3484
	if ( ! yy_current_buffer ) \
Packit 5c3484
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
Packit 5c3484
	yy_current_buffer->yy_is_interactive = is_interactive; \
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
#define yy_set_bol(at_bol) \
Packit 5c3484
	{ \
Packit 5c3484
	if ( ! yy_current_buffer ) \
Packit 5c3484
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
Packit 5c3484
	yy_current_buffer->yy_at_bol = at_bol; \
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
Packit 5c3484
Packit 5c3484
typedef unsigned char YY_CHAR;
Packit 5c3484
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
Packit 5c3484
typedef int yy_state_type;
Packit 5c3484
extern char *yytext;
Packit 5c3484
#define yytext_ptr yytext
Packit 5c3484
Packit 5c3484
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
Packit 5c3484
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
Packit 5c3484
static int yy_get_next_buffer YY_PROTO(( void ));
Packit 5c3484
static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) __dead2;
Packit 5c3484
Packit 5c3484
/* Done after the current pattern has been matched and before the
Packit 5c3484
 * corresponding action - sets up yytext.
Packit 5c3484
 */
Packit 5c3484
#define YY_DO_BEFORE_ACTION \
Packit 5c3484
	yytext_ptr = yy_bp; \
Packit 5c3484
	yyleng = (int) (yy_cp - yy_bp); \
Packit 5c3484
	yy_hold_char = *yy_cp; \
Packit 5c3484
	*yy_cp = '\0'; \
Packit 5c3484
	yy_c_buf_p = yy_cp;
Packit 5c3484
Packit 5c3484
#define YY_NUM_RULES 19
Packit 5c3484
#define YY_END_OF_BUFFER 20
Packit 5c3484
static yyconst short int yy_accept[39] =
Packit 5c3484
    {   0,
Packit 5c3484
        0,    0,   20,   18,    1,    2,    7,    6,    7,   18,
Packit 5c3484
       16,   16,    2,    7,    7,    7,   16,   17,   18,   18,
Packit 5c3484
       11,    6,    5,    6,   14,   16,    0,   12,    8,   10,
Packit 5c3484
        9,   13,   16,   17,    3,   15,    4,    0
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst int yy_ec[256] =
Packit 5c3484
    {   0,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
Packit 5c3484
        1,    2,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    2,    4,    1,    5,    1,    6,    7,    1,    6,
Packit 5c3484
        6,    6,    6,    6,    6,    1,    6,    8,    9,    9,
Packit 5c3484
        9,    9,    9,    9,    9,    9,    9,    1,   10,   11,
Packit 5c3484
       12,   13,    1,    1,   14,   14,   14,   14,   14,   14,
Packit 5c3484
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
Packit 5c3484
       15,   15,   15,   15,   15,   15,   15,   16,   15,   15,
Packit 5c3484
        1,   17,    1,    6,    1,    1,   15,   15,   15,   15,
Packit 5c3484
Packit 5c3484
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
Packit 5c3484
       15,   15,   15,   15,   15,   15,   15,   15,   15,   16,
Packit 5c3484
       15,   15,    1,   18,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst int yy_meta[19] =
Packit 5c3484
    {   0,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    2,    2,    1,
Packit 5c3484
        1,    1,    1,    2,    3,    2,    1,    1
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst short int yy_base[43] =
Packit 5c3484
    {   0,
Packit 5c3484
        0,    0,   39,   49,   49,   49,   26,   16,   49,   30,
Packit 5c3484
       20,   19,   49,    9,   22,   10,    9,    0,   29,   13,
Packit 5c3484
       49,   23,   49,   24,   49,    0,    0,   49,   49,   49,
Packit 5c3484
       49,   49,   13,    0,   49,   49,   49,   49,   41,   28,
Packit 5c3484
       43,   45
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst short int yy_def[43] =
Packit 5c3484
    {   0,
Packit 5c3484
       38,    1,   38,   38,   38,   38,   38,   39,   38,   38,
Packit 5c3484
       40,   40,   38,   38,   38,   38,   41,   42,   38,   38,
Packit 5c3484
       38,   39,   38,   39,   38,   12,   12,   38,   38,   38,
Packit 5c3484
       38,   38,   41,   42,   38,   38,   38,    0,   38,   38,
Packit 5c3484
       38,   38
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst short int yy_nxt[68] =
Packit 5c3484
    {   0,
Packit 5c3484
        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
Packit 5c3484
       14,   15,   16,   17,   18,   18,   19,   20,   23,   28,
Packit 5c3484
       29,   31,   32,   34,   34,   23,   37,   34,   34,   26,
Packit 5c3484
       36,   35,   24,   30,   38,   27,   25,   21,   38,   24,
Packit 5c3484
       24,   22,   22,   22,   33,   33,   34,   34,    3,   38,
Packit 5c3484
       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
Packit 5c3484
       38,   38,   38,   38,   38,   38,   38
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yyconst short int yy_chk[68] =
Packit 5c3484
    {   0,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Packit 5c3484
        1,    1,    1,    1,    1,    1,    1,    1,    8,   14,
Packit 5c3484
       14,   16,   16,   17,   17,   22,   24,   33,   33,   40,
Packit 5c3484
       20,   19,    8,   15,   12,   11,   10,    7,    3,   22,
Packit 5c3484
       24,   39,   39,   39,   41,   41,   42,   42,   38,   38,
Packit 5c3484
       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
Packit 5c3484
       38,   38,   38,   38,   38,   38,   38
Packit 5c3484
    } ;
Packit 5c3484
Packit 5c3484
static yy_state_type yy_last_accepting_state;
Packit 5c3484
static char *yy_last_accepting_cpos;
Packit 5c3484
Packit 5c3484
/* The intent behind this definition is that it'll catch
Packit 5c3484
 * any uses of REJECT which flex missed.
Packit 5c3484
 */
Packit 5c3484
#define REJECT reject_used_but_not_detected
Packit 5c3484
#define yymore() yymore_used_but_not_detected
Packit 5c3484
#define YY_MORE_ADJ 0
Packit 5c3484
#define YY_RESTORE_YY_MORE_OFFSET
Packit 5c3484
char *yytext;
Packit 5c3484
#line 1 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
#define INITIAL 0
Packit 5c3484
/* Lexical analyzer for calc program.
Packit 5c3484
Packit 5c3484
Copyright 2000-2002 Free Software Foundation, Inc.
Packit 5c3484
Packit 5c3484
This file is part of the GNU MP Library.
Packit 5c3484
Packit 5c3484
This program is free software; you can redistribute it and/or modify it under
Packit 5c3484
the terms of the GNU General Public License as published by the Free Software
Packit 5c3484
Foundation; either version 3 of the License, or (at your option) any later
Packit 5c3484
version.
Packit 5c3484
Packit 5c3484
This program is distributed in the hope that it will be useful, but WITHOUT ANY
Packit 5c3484
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
Packit 5c3484
PARTICULAR PURPOSE.  See the GNU General Public License for more details.
Packit 5c3484
Packit 5c3484
You should have received a copy of the GNU General Public License along with
Packit 5c3484
this program.  If not, see https://www.gnu.org/licenses/.  */
Packit 5c3484
#line 20 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
#include <string.h>
Packit 5c3484
#include "calc-common.h"
Packit 5c3484
Packit 5c3484
Packit 5c3484
#if WITH_READLINE
Packit 5c3484
/* Let GNU flex use readline.  See the calcread.c redefined input() for a
Packit 5c3484
   way that might work for a standard lex too.  */
Packit 5c3484
#define YY_INPUT(buf,result,max_size)   \
Packit 5c3484
  result = calc_input (buf, max_size);
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* Non-zero when reading the second or subsequent line of an expression,
Packit 5c3484
   used to give a different prompt when using readline.  */
Packit 5c3484
int  calc_more_input = 0;
Packit 5c3484
Packit 5c3484
Packit 5c3484
const struct calc_keywords_t  calc_keywords[] = {
Packit 5c3484
  { "abs",       ABS },
Packit 5c3484
  { "bin",       BIN },
Packit 5c3484
  { "decimal",   DECIMAL },
Packit 5c3484
  { "fib",       FIB },
Packit 5c3484
  { "hex",       HEX },
Packit 5c3484
  { "help",      HELP },
Packit 5c3484
  { "gcd",       GCD },
Packit 5c3484
  { "kron",      KRON },
Packit 5c3484
  { "lcm",       LCM },
Packit 5c3484
  { "lucnum",    LUCNUM },
Packit 5c3484
  { "nextprime", NEXTPRIME },
Packit 5c3484
  { "powm",      POWM },
Packit 5c3484
  { "quit",      QUIT },
Packit 5c3484
  { "root",      ROOT },
Packit 5c3484
  { "sqrt",      SQRT },
Packit 5c3484
  { NULL }
Packit 5c3484
};
Packit 5c3484
#line 448 "calclex.c"
Packit 5c3484
Packit 5c3484
/* Macros after this point can all be overridden by user definitions in
Packit 5c3484
 * section 1.
Packit 5c3484
 */
Packit 5c3484
Packit 5c3484
#ifndef YY_SKIP_YYWRAP
Packit 5c3484
#ifdef __cplusplus
Packit 5c3484
extern "C" int yywrap YY_PROTO(( void ));
Packit 5c3484
#else
Packit 5c3484
extern int yywrap YY_PROTO(( void ));
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_UNPUT
Packit 5c3484
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifndef yytext_ptr
Packit 5c3484
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_NEED_STRLEN
Packit 5c3484
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_INPUT
Packit 5c3484
#ifdef __cplusplus
Packit 5c3484
static int yyinput YY_PROTO(( void ));
Packit 5c3484
#else
Packit 5c3484
static int input YY_PROTO(( void ));
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#if YY_STACK_USED
Packit 5c3484
static int yy_start_stack_ptr = 0;
Packit 5c3484
static int yy_start_stack_depth = 0;
Packit 5c3484
static int *yy_start_stack = 0;
Packit 5c3484
#ifndef YY_NO_PUSH_STATE
Packit 5c3484
static void yy_push_state YY_PROTO(( int new_state ));
Packit 5c3484
#endif
Packit 5c3484
#ifndef YY_NO_POP_STATE
Packit 5c3484
static void yy_pop_state YY_PROTO(( void ));
Packit 5c3484
#endif
Packit 5c3484
#ifndef YY_NO_TOP_STATE
Packit 5c3484
static int yy_top_state YY_PROTO(( void ));
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#else
Packit 5c3484
#define YY_NO_PUSH_STATE 1
Packit 5c3484
#define YY_NO_POP_STATE 1
Packit 5c3484
#define YY_NO_TOP_STATE 1
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_MALLOC_DECL
Packit 5c3484
YY_MALLOC_DECL
Packit 5c3484
#else
Packit 5c3484
#if __STDC__
Packit 5c3484
#ifndef __cplusplus
Packit 5c3484
#include <stdlib.h>
Packit 5c3484
#endif
Packit 5c3484
#else
Packit 5c3484
/* Just try to get by without declaring the routines.  This will fail
Packit 5c3484
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
Packit 5c3484
 * or sizeof(void*) != sizeof(int).
Packit 5c3484
 */
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Amount of stuff to slurp up with each read. */
Packit 5c3484
#ifndef YY_READ_BUF_SIZE
Packit 5c3484
#define YY_READ_BUF_SIZE 8192
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Copy whatever the last rule matched to the standard output. */
Packit 5c3484
Packit 5c3484
#ifndef ECHO
Packit 5c3484
/* This used to be an fputs(), but since the string might contain NUL's,
Packit 5c3484
 * we now use fwrite().
Packit 5c3484
 */
Packit 5c3484
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
Packit 5c3484
 * is returned in "result".
Packit 5c3484
 */
Packit 5c3484
#ifndef YY_INPUT
Packit 5c3484
#define YY_INPUT(buf,result,max_size) \
Packit 5c3484
	if ( yy_current_buffer->yy_is_interactive ) \
Packit 5c3484
		{ \
Packit 5c3484
		int c = '*', n; \
Packit 5c3484
		for ( n = 0; n < max_size && \
Packit 5c3484
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
Packit 5c3484
			buf[n] = (char) c; \
Packit 5c3484
		if ( c == '\n' ) \
Packit 5c3484
			buf[n++] = (char) c; \
Packit 5c3484
		if ( c == EOF && ferror( yyin ) ) \
Packit 5c3484
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
Packit 5c3484
		result = n; \
Packit 5c3484
		} \
Packit 5c3484
	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
Packit 5c3484
		  && ferror( yyin ) ) \
Packit 5c3484
		YY_FATAL_ERROR( "input in flex scanner failed" );
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* No semi-colon after return; correct usage is to write "yyterminate();" -
Packit 5c3484
 * we don't want an extra ';' after the "return" because that will cause
Packit 5c3484
 * some compilers to complain about unreachable statements.
Packit 5c3484
 */
Packit 5c3484
#ifndef yyterminate
Packit 5c3484
#define yyterminate() return YY_NULL
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Number of entries by which start-condition stack grows. */
Packit 5c3484
#ifndef YY_START_STACK_INCR
Packit 5c3484
#define YY_START_STACK_INCR 25
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Report a fatal error. */
Packit 5c3484
#ifndef YY_FATAL_ERROR
Packit 5c3484
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Default declaration of generated scanner - a define so the user can
Packit 5c3484
 * easily add parameters.
Packit 5c3484
 */
Packit 5c3484
#ifndef YY_DECL
Packit 5c3484
#define YY_DECL int yylex YY_PROTO(( void ))
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Code executed at the beginning of each rule, after yytext and yyleng
Packit 5c3484
 * have been set up.
Packit 5c3484
 */
Packit 5c3484
#ifndef YY_USER_ACTION
Packit 5c3484
#define YY_USER_ACTION
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
/* Code executed at the end of each rule. */
Packit 5c3484
#ifndef YY_BREAK
Packit 5c3484
#define YY_BREAK break;
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#define YY_RULE_SETUP \
Packit 5c3484
	YY_USER_ACTION
Packit 5c3484
Packit 5c3484
YY_DECL
Packit 5c3484
	{
Packit 5c3484
	yy_state_type yy_current_state;
Packit 5c3484
	char *yy_cp, *yy_bp;
Packit 5c3484
	int yy_act;
Packit 5c3484
Packit 5c3484
#line 57 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
Packit 5c3484
Packit 5c3484
#line 602 "calclex.c"
Packit 5c3484
Packit 5c3484
	if ( yy_init )
Packit 5c3484
		{
Packit 5c3484
		yy_init = 0;
Packit 5c3484
Packit 5c3484
#ifdef YY_USER_INIT
Packit 5c3484
		YY_USER_INIT;
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
		if ( ! yy_start )
Packit 5c3484
			yy_start = 1;	/* first start state */
Packit 5c3484
Packit 5c3484
		if ( ! yyin )
Packit 5c3484
			yyin = stdin;
Packit 5c3484
Packit 5c3484
		if ( ! yyout )
Packit 5c3484
			yyout = stdout;
Packit 5c3484
Packit 5c3484
		if ( ! yy_current_buffer )
Packit 5c3484
			yy_current_buffer =
Packit 5c3484
				yy_create_buffer( yyin, YY_BUF_SIZE );
Packit 5c3484
Packit 5c3484
		yy_load_buffer_state();
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	while ( 1 )		/* loops until end-of-file is reached */
Packit 5c3484
		{
Packit 5c3484
		yy_cp = yy_c_buf_p;
Packit 5c3484
Packit 5c3484
		/* Support of yytext. */
Packit 5c3484
		*yy_cp = yy_hold_char;
Packit 5c3484
Packit 5c3484
		/* yy_bp points to the position in yy_ch_buf of the start of
Packit 5c3484
		 * the current run.
Packit 5c3484
		 */
Packit 5c3484
		yy_bp = yy_cp;
Packit 5c3484
Packit 5c3484
		yy_current_state = yy_start;
Packit 5c3484
yy_match:
Packit 5c3484
		do
Packit 5c3484
			{
Packit 5c3484
			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
Packit 5c3484
			if ( yy_accept[yy_current_state] )
Packit 5c3484
				{
Packit 5c3484
				yy_last_accepting_state = yy_current_state;
Packit 5c3484
				yy_last_accepting_cpos = yy_cp;
Packit 5c3484
				}
Packit 5c3484
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
Packit 5c3484
				{
Packit 5c3484
				yy_current_state = (int) yy_def[yy_current_state];
Packit 5c3484
				if ( yy_current_state >= 39 )
Packit 5c3484
					yy_c = yy_meta[(unsigned int) yy_c];
Packit 5c3484
				}
Packit 5c3484
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Packit 5c3484
			++yy_cp;
Packit 5c3484
			}
Packit 5c3484
		while ( yy_base[yy_current_state] != 49 );
Packit 5c3484
Packit 5c3484
yy_find_action:
Packit 5c3484
		yy_act = yy_accept[yy_current_state];
Packit 5c3484
		if ( yy_act == 0 )
Packit 5c3484
			{ /* have to back up */
Packit 5c3484
			yy_cp = yy_last_accepting_cpos;
Packit 5c3484
			yy_current_state = yy_last_accepting_state;
Packit 5c3484
			yy_act = yy_accept[yy_current_state];
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		YY_DO_BEFORE_ACTION;
Packit 5c3484
Packit 5c3484
Packit 5c3484
do_action:	/* This label is used only to access EOF actions. */
Packit 5c3484
Packit 5c3484
Packit 5c3484
		switch ( yy_act )
Packit 5c3484
	{ /* beginning of action switch */
Packit 5c3484
			case 0: /* must back up */
Packit 5c3484
			/* undo the effects of YY_DO_BEFORE_ACTION */
Packit 5c3484
			*yy_cp = yy_hold_char;
Packit 5c3484
			yy_cp = yy_last_accepting_cpos;
Packit 5c3484
			yy_current_state = yy_last_accepting_state;
Packit 5c3484
			goto yy_find_action;
Packit 5c3484
Packit 5c3484
case 1:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 59 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ /* white space is skipped */ }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 2:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 61 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ /* semicolon or newline separates statements */
Packit 5c3484
          calc_more_input = 0;
Packit 5c3484
          return EOS; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 3:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 64 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ /* escaped newlines are skipped */ }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 4:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 67 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{
Packit 5c3484
            /* comment through to escaped newline is skipped */ }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 5:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 69 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ /* comment through to newline is a separator */
Packit 5c3484
            calc_more_input = 0;
Packit 5c3484
            return EOS; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 6:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 72 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{   /* comment through to EOF skipped */ }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 7:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 75 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return yytext[0]; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 8:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 76 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return LE; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 9:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 77 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return GE; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 10:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 78 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return EQ; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 11:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 79 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return NE; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 12:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 80 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return LSHIFT; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 13:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 81 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return RSHIFT; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 14:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 82 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return LAND; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 15:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 83 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return LOR; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 16:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 85 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{
Packit 5c3484
        yylval.str = yytext;
Packit 5c3484
        return NUMBER; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 17:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 89 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{
Packit 5c3484
        int  i;
Packit 5c3484
Packit 5c3484
        for (i = 0; calc_keywords[i].name != NULL; i++)
Packit 5c3484
          if (strcmp (yytext, calc_keywords[i].name) == 0)
Packit 5c3484
            return calc_keywords[i].value;
Packit 5c3484
Packit 5c3484
        if (yytext[0] >= 'a' && yytext[0] <= 'z' && yytext[1] == '\0')
Packit 5c3484
          {
Packit 5c3484
            yylval.var = yytext[0] - 'a';
Packit 5c3484
            return VARIABLE;
Packit 5c3484
          }
Packit 5c3484
Packit 5c3484
        return BAD;
Packit 5c3484
}
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 18:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 105 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
{ return BAD; }
Packit 5c3484
	YY_BREAK
Packit 5c3484
case 19:
Packit 5c3484
YY_RULE_SETUP
Packit 5c3484
#line 107 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
ECHO;
Packit 5c3484
	YY_BREAK
Packit 5c3484
#line 801 "calclex.c"
Packit 5c3484
case YY_STATE_EOF(INITIAL):
Packit 5c3484
	yyterminate();
Packit 5c3484
Packit 5c3484
	case YY_END_OF_BUFFER:
Packit 5c3484
		{
Packit 5c3484
		/* Amount of text matched not including the EOB char. */
Packit 5c3484
		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
Packit 5c3484
Packit 5c3484
		/* Undo the effects of YY_DO_BEFORE_ACTION. */
Packit 5c3484
		*yy_cp = yy_hold_char;
Packit 5c3484
		YY_RESTORE_YY_MORE_OFFSET
Packit 5c3484
Packit 5c3484
		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
Packit 5c3484
			{
Packit 5c3484
			/* We're scanning a new file or input source.  It's
Packit 5c3484
			 * possible that this happened because the user
Packit 5c3484
			 * just pointed yyin at a new source and called
Packit 5c3484
			 * yylex().  If so, then we have to assure
Packit 5c3484
			 * consistency between yy_current_buffer and our
Packit 5c3484
			 * globals.  Here is the right place to do so, because
Packit 5c3484
			 * this is the first action (other than possibly a
Packit 5c3484
			 * back-up) that will match for the new input source.
Packit 5c3484
			 */
Packit 5c3484
			yy_n_chars = yy_current_buffer->yy_n_chars;
Packit 5c3484
			yy_current_buffer->yy_input_file = yyin;
Packit 5c3484
			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		/* Note that here we test for yy_c_buf_p "<=" to the position
Packit 5c3484
		 * of the first EOB in the buffer, since yy_c_buf_p will
Packit 5c3484
		 * already have been incremented past the NUL character
Packit 5c3484
		 * (since all states make transitions on EOB to the
Packit 5c3484
		 * end-of-buffer state).  Contrast this with the test
Packit 5c3484
		 * in input().
Packit 5c3484
		 */
Packit 5c3484
		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
Packit 5c3484
			{ /* This was really a NUL. */
Packit 5c3484
			yy_state_type yy_next_state;
Packit 5c3484
Packit 5c3484
			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
Packit 5c3484
Packit 5c3484
			yy_current_state = yy_get_previous_state();
Packit 5c3484
Packit 5c3484
			/* Okay, we're now positioned to make the NUL
Packit 5c3484
			 * transition.  We couldn't have
Packit 5c3484
			 * yy_get_previous_state() go ahead and do it
Packit 5c3484
			 * for us because it doesn't know how to deal
Packit 5c3484
			 * with the possibility of jamming (and we don't
Packit 5c3484
			 * want to build jamming into it because then it
Packit 5c3484
			 * will run more slowly).
Packit 5c3484
			 */
Packit 5c3484
Packit 5c3484
			yy_next_state = yy_try_NUL_trans( yy_current_state );
Packit 5c3484
Packit 5c3484
			yy_bp = yytext_ptr + YY_MORE_ADJ;
Packit 5c3484
Packit 5c3484
			if ( yy_next_state )
Packit 5c3484
				{
Packit 5c3484
				/* Consume the NUL. */
Packit 5c3484
				yy_cp = ++yy_c_buf_p;
Packit 5c3484
				yy_current_state = yy_next_state;
Packit 5c3484
				goto yy_match;
Packit 5c3484
				}
Packit 5c3484
Packit 5c3484
			else
Packit 5c3484
				{
Packit 5c3484
				yy_cp = yy_c_buf_p;
Packit 5c3484
				goto yy_find_action;
Packit 5c3484
				}
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		else switch ( yy_get_next_buffer() )
Packit 5c3484
			{
Packit 5c3484
			case EOB_ACT_END_OF_FILE:
Packit 5c3484
				{
Packit 5c3484
				yy_did_buffer_switch_on_eof = 0;
Packit 5c3484
Packit 5c3484
				if ( yywrap() )
Packit 5c3484
					{
Packit 5c3484
					/* Note: because we've taken care in
Packit 5c3484
					 * yy_get_next_buffer() to have set up
Packit 5c3484
					 * yytext, we can now set up
Packit 5c3484
					 * yy_c_buf_p so that if some total
Packit 5c3484
					 * hoser (like flex itself) wants to
Packit 5c3484
					 * call the scanner after we return the
Packit 5c3484
					 * YY_NULL, it'll still work - another
Packit 5c3484
					 * YY_NULL will get returned.
Packit 5c3484
					 */
Packit 5c3484
					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
Packit 5c3484
Packit 5c3484
					yy_act = YY_STATE_EOF(YY_START);
Packit 5c3484
					goto do_action;
Packit 5c3484
					}
Packit 5c3484
Packit 5c3484
				else
Packit 5c3484
					{
Packit 5c3484
					if ( ! yy_did_buffer_switch_on_eof )
Packit 5c3484
						YY_NEW_FILE;
Packit 5c3484
					}
Packit 5c3484
				break;
Packit 5c3484
				}
Packit 5c3484
Packit 5c3484
			case EOB_ACT_CONTINUE_SCAN:
Packit 5c3484
				yy_c_buf_p =
Packit 5c3484
					yytext_ptr + yy_amount_of_matched_text;
Packit 5c3484
Packit 5c3484
				yy_current_state = yy_get_previous_state();
Packit 5c3484
Packit 5c3484
				yy_cp = yy_c_buf_p;
Packit 5c3484
				yy_bp = yytext_ptr + YY_MORE_ADJ;
Packit 5c3484
				goto yy_match;
Packit 5c3484
Packit 5c3484
			case EOB_ACT_LAST_MATCH:
Packit 5c3484
				yy_c_buf_p =
Packit 5c3484
				&yy_current_buffer->yy_ch_buf[yy_n_chars];
Packit 5c3484
Packit 5c3484
				yy_current_state = yy_get_previous_state();
Packit 5c3484
Packit 5c3484
				yy_cp = yy_c_buf_p;
Packit 5c3484
				yy_bp = yytext_ptr + YY_MORE_ADJ;
Packit 5c3484
				goto yy_find_action;
Packit 5c3484
			}
Packit 5c3484
		break;
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	default:
Packit 5c3484
		YY_FATAL_ERROR(
Packit 5c3484
			"fatal flex scanner internal error--no action found" );
Packit 5c3484
	} /* end of action switch */
Packit 5c3484
		} /* end of scanning one token */
Packit 5c3484
	} /* end of yylex */
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* yy_get_next_buffer - try to read in a new buffer
Packit 5c3484
 *
Packit 5c3484
 * Returns a code representing an action:
Packit 5c3484
 *	EOB_ACT_LAST_MATCH -
Packit 5c3484
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
Packit 5c3484
 *	EOB_ACT_END_OF_FILE - end of file
Packit 5c3484
 */
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static int yy_get_next_buffer(void)
Packit 5c3484
#else
Packit 5c3484
static int yy_get_next_buffer()
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	char *dest = yy_current_buffer->yy_ch_buf;
Packit 5c3484
	char *source = yytext_ptr;
Packit 5c3484
	int number_to_move, i;
Packit 5c3484
	int ret_val;
Packit 5c3484
Packit 5c3484
	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
Packit 5c3484
		YY_FATAL_ERROR(
Packit 5c3484
		"fatal flex scanner internal error--end of buffer missed" );
Packit 5c3484
Packit 5c3484
	if ( yy_current_buffer->yy_fill_buffer == 0 )
Packit 5c3484
		{ /* Don't try to fill the buffer, so this is an EOF. */
Packit 5c3484
		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
Packit 5c3484
			{
Packit 5c3484
			/* We matched a single character, the EOB, so
Packit 5c3484
			 * treat this as a final EOF.
Packit 5c3484
			 */
Packit 5c3484
			return EOB_ACT_END_OF_FILE;
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		else
Packit 5c3484
			{
Packit 5c3484
			/* We matched some text prior to the EOB, first
Packit 5c3484
			 * process it.
Packit 5c3484
			 */
Packit 5c3484
			return EOB_ACT_LAST_MATCH;
Packit 5c3484
			}
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	/* Try to read more data. */
Packit 5c3484
Packit 5c3484
	/* First move last chars to start of buffer. */
Packit 5c3484
	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
Packit 5c3484
Packit 5c3484
	for ( i = 0; i < number_to_move; ++i )
Packit 5c3484
		*(dest++) = *(source++);
Packit 5c3484
Packit 5c3484
	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
Packit 5c3484
		/* don't do the read, it's not guaranteed to return an EOF,
Packit 5c3484
		 * just force an EOF
Packit 5c3484
		 */
Packit 5c3484
		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
Packit 5c3484
Packit 5c3484
	else
Packit 5c3484
		{
Packit 5c3484
		int num_to_read =
Packit 5c3484
			yy_current_buffer->yy_buf_size - number_to_move - 1;
Packit 5c3484
Packit 5c3484
		while ( num_to_read <= 0 )
Packit 5c3484
			{ /* Not enough room in the buffer - grow it. */
Packit 5c3484
#ifdef YY_USES_REJECT
Packit 5c3484
			YY_FATAL_ERROR(
Packit 5c3484
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
Packit 5c3484
#else
Packit 5c3484
Packit 5c3484
			/* just a shorter name for the current buffer */
Packit 5c3484
			YY_BUFFER_STATE b = yy_current_buffer;
Packit 5c3484
Packit 5c3484
			int yy_c_buf_p_offset =
Packit 5c3484
				(int) (yy_c_buf_p - b->yy_ch_buf);
Packit 5c3484
Packit 5c3484
			if ( b->yy_is_our_buffer )
Packit 5c3484
				{
Packit 5c3484
				int new_size = b->yy_buf_size * 2;
Packit 5c3484
Packit 5c3484
				if ( new_size <= 0 )
Packit 5c3484
					b->yy_buf_size += b->yy_buf_size / 8;
Packit 5c3484
				else
Packit 5c3484
					b->yy_buf_size *= 2;
Packit 5c3484
Packit 5c3484
				b->yy_ch_buf = (char *)
Packit 5c3484
					/* Include room in for 2 EOB chars. */
Packit 5c3484
					yy_flex_realloc( (void *) b->yy_ch_buf,
Packit 5c3484
							 b->yy_buf_size + 2 );
Packit 5c3484
				}
Packit 5c3484
			else
Packit 5c3484
				/* Can't grow it, we don't own it. */
Packit 5c3484
				b->yy_ch_buf = 0;
Packit 5c3484
Packit 5c3484
			if ( ! b->yy_ch_buf )
Packit 5c3484
				YY_FATAL_ERROR(
Packit 5c3484
				"fatal error - scanner input buffer overflow" );
Packit 5c3484
Packit 5c3484
			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
Packit 5c3484
Packit 5c3484
			num_to_read = yy_current_buffer->yy_buf_size -
Packit 5c3484
						number_to_move - 1;
Packit 5c3484
#endif
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		if ( num_to_read > YY_READ_BUF_SIZE )
Packit 5c3484
			num_to_read = YY_READ_BUF_SIZE;
Packit 5c3484
Packit 5c3484
		/* Read in more data. */
Packit 5c3484
		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
Packit 5c3484
			yy_n_chars, num_to_read );
Packit 5c3484
Packit 5c3484
		yy_current_buffer->yy_n_chars = yy_n_chars;
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	if ( yy_n_chars == 0 )
Packit 5c3484
		{
Packit 5c3484
		if ( number_to_move == YY_MORE_ADJ )
Packit 5c3484
			{
Packit 5c3484
			ret_val = EOB_ACT_END_OF_FILE;
Packit 5c3484
			yyrestart( yyin );
Packit 5c3484
			}
Packit 5c3484
Packit 5c3484
		else
Packit 5c3484
			{
Packit 5c3484
			ret_val = EOB_ACT_LAST_MATCH;
Packit 5c3484
			yy_current_buffer->yy_buffer_status =
Packit 5c3484
				YY_BUFFER_EOF_PENDING;
Packit 5c3484
			}
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	else
Packit 5c3484
		ret_val = EOB_ACT_CONTINUE_SCAN;
Packit 5c3484
Packit 5c3484
	yy_n_chars += number_to_move;
Packit 5c3484
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
Packit 5c3484
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
Packit 5c3484
Packit 5c3484
	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
Packit 5c3484
Packit 5c3484
	return ret_val;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* yy_get_previous_state - get the state just before the EOB char was reached */
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static yy_state_type yy_get_previous_state(void)
Packit 5c3484
#else
Packit 5c3484
static yy_state_type yy_get_previous_state()
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	yy_state_type yy_current_state;
Packit 5c3484
	char *yy_cp;
Packit 5c3484
Packit 5c3484
	yy_current_state = yy_start;
Packit 5c3484
Packit 5c3484
	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
Packit 5c3484
		{
Packit 5c3484
		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
Packit 5c3484
		if ( yy_accept[yy_current_state] )
Packit 5c3484
			{
Packit 5c3484
			yy_last_accepting_state = yy_current_state;
Packit 5c3484
			yy_last_accepting_cpos = yy_cp;
Packit 5c3484
			}
Packit 5c3484
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
Packit 5c3484
			{
Packit 5c3484
			yy_current_state = (int) yy_def[yy_current_state];
Packit 5c3484
			if ( yy_current_state >= 39 )
Packit 5c3484
				yy_c = yy_meta[(unsigned int) yy_c];
Packit 5c3484
			}
Packit 5c3484
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	return yy_current_state;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* yy_try_NUL_trans - try to make a transition on the NUL character
Packit 5c3484
 *
Packit 5c3484
 * synopsis
Packit 5c3484
 *	next_state = yy_try_NUL_trans( current_state );
Packit 5c3484
 */
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
Packit 5c3484
#else
Packit 5c3484
static yy_state_type yy_try_NUL_trans( yy_current_state )
Packit 5c3484
yy_state_type yy_current_state;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	int yy_is_jam;
Packit 5c3484
	char *yy_cp = yy_c_buf_p;
Packit 5c3484
Packit 5c3484
	YY_CHAR yy_c = 1;
Packit 5c3484
	if ( yy_accept[yy_current_state] )
Packit 5c3484
		{
Packit 5c3484
		yy_last_accepting_state = yy_current_state;
Packit 5c3484
		yy_last_accepting_cpos = yy_cp;
Packit 5c3484
		}
Packit 5c3484
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
Packit 5c3484
		{
Packit 5c3484
		yy_current_state = (int) yy_def[yy_current_state];
Packit 5c3484
		if ( yy_current_state >= 39 )
Packit 5c3484
			yy_c = yy_meta[(unsigned int) yy_c];
Packit 5c3484
		}
Packit 5c3484
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Packit 5c3484
	yy_is_jam = (yy_current_state == 38);
Packit 5c3484
Packit 5c3484
	return yy_is_jam ? 0 : yy_current_state;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_UNPUT
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yyunput( int c, char *yy_bp )
Packit 5c3484
#else
Packit 5c3484
static void yyunput( c, yy_bp )
Packit 5c3484
int c;
Packit 5c3484
char *yy_bp;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	char *yy_cp = yy_c_buf_p;
Packit 5c3484
Packit 5c3484
	/* undo effects of setting up yytext */
Packit 5c3484
	*yy_cp = yy_hold_char;
Packit 5c3484
Packit 5c3484
	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
Packit 5c3484
		{ /* need to shift things up to make room */
Packit 5c3484
		/* +2 for EOB chars. */
Packit 5c3484
		int number_to_move = yy_n_chars + 2;
Packit 5c3484
		char *dest = &yy_current_buffer->yy_ch_buf[
Packit 5c3484
					yy_current_buffer->yy_buf_size + 2];
Packit 5c3484
		char *source =
Packit 5c3484
				&yy_current_buffer->yy_ch_buf[number_to_move];
Packit 5c3484
Packit 5c3484
		while ( source > yy_current_buffer->yy_ch_buf )
Packit 5c3484
			*--dest = *--source;
Packit 5c3484
Packit 5c3484
		yy_cp += (int) (dest - source);
Packit 5c3484
		yy_bp += (int) (dest - source);
Packit 5c3484
		yy_current_buffer->yy_n_chars =
Packit 5c3484
			yy_n_chars = yy_current_buffer->yy_buf_size;
Packit 5c3484
Packit 5c3484
		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
Packit 5c3484
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	*--yy_cp = (char) c;
Packit 5c3484
Packit 5c3484
Packit 5c3484
	yytext_ptr = yy_bp;
Packit 5c3484
	yy_hold_char = *yy_cp;
Packit 5c3484
	yy_c_buf_p = yy_cp;
Packit 5c3484
	}
Packit 5c3484
#endif	/* ifndef YY_NO_UNPUT */
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_INPUT
Packit 5c3484
#ifdef __cplusplus
Packit 5c3484
static int yyinput()
Packit 5c3484
#else
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static int input(void)
Packit 5c3484
#else
Packit 5c3484
static int input()
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	int c;
Packit 5c3484
Packit 5c3484
	*yy_c_buf_p = yy_hold_char;
Packit 5c3484
Packit 5c3484
	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
Packit 5c3484
		{
Packit 5c3484
		/* yy_c_buf_p now points to the character we want to return.
Packit 5c3484
		 * If this occurs *before* the EOB characters, then it's a
Packit 5c3484
		 * valid NUL; if not, then we've hit the end of the buffer.
Packit 5c3484
		 */
Packit 5c3484
		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
Packit 5c3484
			/* This was really a NUL. */
Packit 5c3484
			*yy_c_buf_p = '\0';
Packit 5c3484
Packit 5c3484
		else
Packit 5c3484
			{ /* need more input */
Packit 5c3484
			int offset = yy_c_buf_p - yytext_ptr;
Packit 5c3484
			++yy_c_buf_p;
Packit 5c3484
Packit 5c3484
			switch ( yy_get_next_buffer() )
Packit 5c3484
				{
Packit 5c3484
				case EOB_ACT_LAST_MATCH:
Packit 5c3484
					/* This happens because yy_g_n_b()
Packit 5c3484
					 * sees that we've accumulated a
Packit 5c3484
					 * token and flags that we need to
Packit 5c3484
					 * try matching the token before
Packit 5c3484
					 * proceeding.  But for input(),
Packit 5c3484
					 * there's no matching to consider.
Packit 5c3484
					 * So convert the EOB_ACT_LAST_MATCH
Packit 5c3484
					 * to EOB_ACT_END_OF_FILE.
Packit 5c3484
					 */
Packit 5c3484
Packit 5c3484
					/* Reset buffer status. */
Packit 5c3484
					yyrestart( yyin );
Packit 5c3484
Packit 5c3484
					/* fall through */
Packit 5c3484
Packit 5c3484
				case EOB_ACT_END_OF_FILE:
Packit 5c3484
					{
Packit 5c3484
					if ( yywrap() )
Packit 5c3484
						return EOF;
Packit 5c3484
Packit 5c3484
					if ( ! yy_did_buffer_switch_on_eof )
Packit 5c3484
						YY_NEW_FILE;
Packit 5c3484
#ifdef __cplusplus
Packit 5c3484
					return yyinput();
Packit 5c3484
#else
Packit 5c3484
					return input();
Packit 5c3484
#endif
Packit 5c3484
					}
Packit 5c3484
Packit 5c3484
				case EOB_ACT_CONTINUE_SCAN:
Packit 5c3484
					yy_c_buf_p = yytext_ptr + offset;
Packit 5c3484
					break;
Packit 5c3484
				}
Packit 5c3484
			}
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
Packit 5c3484
	*yy_c_buf_p = '\0';	/* preserve yytext */
Packit 5c3484
	yy_hold_char = *++yy_c_buf_p;
Packit 5c3484
Packit 5c3484
Packit 5c3484
	return c;
Packit 5c3484
	}
Packit 5c3484
#endif	/* ifndef YY_NO_INPUT */
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yyrestart( FILE *input_file )
Packit 5c3484
#else
Packit 5c3484
void yyrestart( input_file )
Packit 5c3484
FILE *input_file;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	if ( ! yy_current_buffer )
Packit 5c3484
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
Packit 5c3484
Packit 5c3484
	yy_init_buffer( yy_current_buffer, input_file );
Packit 5c3484
	yy_load_buffer_state();
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
Packit 5c3484
#else
Packit 5c3484
void yy_switch_to_buffer( new_buffer )
Packit 5c3484
YY_BUFFER_STATE new_buffer;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	if ( yy_current_buffer == new_buffer )
Packit 5c3484
		return;
Packit 5c3484
Packit 5c3484
	if ( yy_current_buffer )
Packit 5c3484
		{
Packit 5c3484
		/* Flush out information for old buffer. */
Packit 5c3484
		*yy_c_buf_p = yy_hold_char;
Packit 5c3484
		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
Packit 5c3484
		yy_current_buffer->yy_n_chars = yy_n_chars;
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	yy_current_buffer = new_buffer;
Packit 5c3484
	yy_load_buffer_state();
Packit 5c3484
Packit 5c3484
	/* We don't actually know whether we did this switch during
Packit 5c3484
	 * EOF (yywrap()) processing, but the only time this flag
Packit 5c3484
	 * is looked at is after yywrap() is called, so it's safe
Packit 5c3484
	 * to go ahead and always set it.
Packit 5c3484
	 */
Packit 5c3484
	yy_did_buffer_switch_on_eof = 1;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yy_load_buffer_state( void )
Packit 5c3484
#else
Packit 5c3484
void yy_load_buffer_state()
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	yy_n_chars = yy_current_buffer->yy_n_chars;
Packit 5c3484
	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
Packit 5c3484
	yyin = yy_current_buffer->yy_input_file;
Packit 5c3484
	yy_hold_char = *yy_c_buf_p;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
Packit 5c3484
#else
Packit 5c3484
YY_BUFFER_STATE yy_create_buffer( file, size )
Packit 5c3484
FILE *file;
Packit 5c3484
int size;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	YY_BUFFER_STATE b;
Packit 5c3484
Packit 5c3484
	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
Packit 5c3484
	if ( ! b )
Packit 5c3484
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
Packit 5c3484
Packit 5c3484
	b->yy_buf_size = size;
Packit 5c3484
Packit 5c3484
	/* yy_ch_buf has to be 2 characters longer than the size given because
Packit 5c3484
	 * we need to put in 2 end-of-buffer characters.
Packit 5c3484
	 */
Packit 5c3484
	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
Packit 5c3484
	if ( ! b->yy_ch_buf )
Packit 5c3484
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
Packit 5c3484
Packit 5c3484
	b->yy_is_our_buffer = 1;
Packit 5c3484
Packit 5c3484
	yy_init_buffer( b, file );
Packit 5c3484
Packit 5c3484
	return b;
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yy_delete_buffer( YY_BUFFER_STATE b )
Packit 5c3484
#else
Packit 5c3484
void yy_delete_buffer( b )
Packit 5c3484
YY_BUFFER_STATE b;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	if ( ! b )
Packit 5c3484
		return;
Packit 5c3484
Packit 5c3484
	if ( b == yy_current_buffer )
Packit 5c3484
		yy_current_buffer = (YY_BUFFER_STATE) 0;
Packit 5c3484
Packit 5c3484
	if ( b->yy_is_our_buffer )
Packit 5c3484
		yy_flex_free( (void *) b->yy_ch_buf );
Packit 5c3484
Packit 5c3484
	yy_flex_free( (void *) b );
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_ALWAYS_INTERACTIVE
Packit 5c3484
#ifndef YY_NEVER_INTERACTIVE
Packit 5c3484
extern int isatty YY_PROTO(( int ));
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
Packit 5c3484
#else
Packit 5c3484
void yy_init_buffer( b, file )
Packit 5c3484
YY_BUFFER_STATE b;
Packit 5c3484
FILE *file;
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
	{
Packit 5c3484
	yy_flush_buffer( b );
Packit 5c3484
Packit 5c3484
	b->yy_input_file = file;
Packit 5c3484
	b->yy_fill_buffer = 1;
Packit 5c3484
Packit 5c3484
#if YY_ALWAYS_INTERACTIVE
Packit 5c3484
	b->yy_is_interactive = 1;
Packit 5c3484
#else
Packit 5c3484
#if YY_NEVER_INTERACTIVE
Packit 5c3484
	b->yy_is_interactive = 0;
Packit 5c3484
#else
Packit 5c3484
	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
Packit 5c3484
#endif
Packit 5c3484
#endif
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
void yy_flush_buffer( YY_BUFFER_STATE b )
Packit 5c3484
#else
Packit 5c3484
void yy_flush_buffer( b )
Packit 5c3484
YY_BUFFER_STATE b;
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
	{
Packit 5c3484
	if ( ! b )
Packit 5c3484
		return;
Packit 5c3484
Packit 5c3484
	b->yy_n_chars = 0;
Packit 5c3484
Packit 5c3484
	/* We always need two end-of-buffer characters.  The first causes
Packit 5c3484
	 * a transition to the end-of-buffer state.  The second causes
Packit 5c3484
	 * a jam in that state.
Packit 5c3484
	 */
Packit 5c3484
	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
Packit 5c3484
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
Packit 5c3484
Packit 5c3484
	b->yy_buf_pos = &b->yy_ch_buf[0];
Packit 5c3484
Packit 5c3484
	b->yy_at_bol = 1;
Packit 5c3484
	b->yy_buffer_status = YY_BUFFER_NEW;
Packit 5c3484
Packit 5c3484
	if ( b == yy_current_buffer )
Packit 5c3484
		yy_load_buffer_state();
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_SCAN_BUFFER
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
Packit 5c3484
#else
Packit 5c3484
YY_BUFFER_STATE yy_scan_buffer( base, size )
Packit 5c3484
char *base;
Packit 5c3484
yy_size_t size;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	YY_BUFFER_STATE b;
Packit 5c3484
Packit 5c3484
	if ( size < 2 ||
Packit 5c3484
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
Packit 5c3484
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
Packit 5c3484
		/* They forgot to leave room for the EOB's. */
Packit 5c3484
		return 0;
Packit 5c3484
Packit 5c3484
	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
Packit 5c3484
	if ( ! b )
Packit 5c3484
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
Packit 5c3484
Packit 5c3484
	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
Packit 5c3484
	b->yy_buf_pos = b->yy_ch_buf = base;
Packit 5c3484
	b->yy_is_our_buffer = 0;
Packit 5c3484
	b->yy_input_file = 0;
Packit 5c3484
	b->yy_n_chars = b->yy_buf_size;
Packit 5c3484
	b->yy_is_interactive = 0;
Packit 5c3484
	b->yy_at_bol = 1;
Packit 5c3484
	b->yy_fill_buffer = 0;
Packit 5c3484
	b->yy_buffer_status = YY_BUFFER_NEW;
Packit 5c3484
Packit 5c3484
	yy_switch_to_buffer( b );
Packit 5c3484
Packit 5c3484
	return b;
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_SCAN_STRING
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
Packit 5c3484
#else
Packit 5c3484
YY_BUFFER_STATE yy_scan_string( yy_str )
Packit 5c3484
yyconst char *yy_str;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	int len;
Packit 5c3484
	for ( len = 0; yy_str[len]; ++len )
Packit 5c3484
		;
Packit 5c3484
Packit 5c3484
	return yy_scan_bytes( yy_str, len );
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_SCAN_BYTES
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
Packit 5c3484
#else
Packit 5c3484
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
Packit 5c3484
yyconst char *bytes;
Packit 5c3484
int len;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	YY_BUFFER_STATE b;
Packit 5c3484
	char *buf;
Packit 5c3484
	yy_size_t n;
Packit 5c3484
	int i;
Packit 5c3484
Packit 5c3484
	/* Get memory for full buffer, including space for trailing EOB's. */
Packit 5c3484
	n = len + 2;
Packit 5c3484
	buf = (char *) yy_flex_alloc( n );
Packit 5c3484
	if ( ! buf )
Packit 5c3484
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
Packit 5c3484
Packit 5c3484
	for ( i = 0; i < len; ++i )
Packit 5c3484
		buf[i] = bytes[i];
Packit 5c3484
Packit 5c3484
	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
Packit 5c3484
Packit 5c3484
	b = yy_scan_buffer( buf, n );
Packit 5c3484
	if ( ! b )
Packit 5c3484
		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
Packit 5c3484
Packit 5c3484
	/* It's okay to grow etc. this buffer, and we should throw it
Packit 5c3484
	 * away when we're done.
Packit 5c3484
	 */
Packit 5c3484
	b->yy_is_our_buffer = 1;
Packit 5c3484
Packit 5c3484
	return b;
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_PUSH_STATE
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yy_push_state( int new_state )
Packit 5c3484
#else
Packit 5c3484
static void yy_push_state( new_state )
Packit 5c3484
int new_state;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	if ( yy_start_stack_ptr >= yy_start_stack_depth )
Packit 5c3484
		{
Packit 5c3484
		yy_size_t new_size;
Packit 5c3484
Packit 5c3484
		yy_start_stack_depth += YY_START_STACK_INCR;
Packit 5c3484
		new_size = yy_start_stack_depth * sizeof( int );
Packit 5c3484
Packit 5c3484
		if ( ! yy_start_stack )
Packit 5c3484
			yy_start_stack = (int *) yy_flex_alloc( new_size );
Packit 5c3484
Packit 5c3484
		else
Packit 5c3484
			yy_start_stack = (int *) yy_flex_realloc(
Packit 5c3484
					(void *) yy_start_stack, new_size );
Packit 5c3484
Packit 5c3484
		if ( ! yy_start_stack )
Packit 5c3484
			YY_FATAL_ERROR(
Packit 5c3484
			"out of memory expanding start-condition stack" );
Packit 5c3484
		}
Packit 5c3484
Packit 5c3484
	yy_start_stack[yy_start_stack_ptr++] = YY_START;
Packit 5c3484
Packit 5c3484
	BEGIN(new_state);
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_POP_STATE
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yy_pop_state(void)
Packit 5c3484
#else
Packit 5c3484
static void yy_pop_state()
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	if ( --yy_start_stack_ptr < 0 )
Packit 5c3484
		YY_FATAL_ERROR( "start-condition stack underflow" );
Packit 5c3484
Packit 5c3484
	BEGIN(yy_start_stack[yy_start_stack_ptr]);
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifndef YY_NO_TOP_STATE
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static int yy_top_state(void)
Packit 5c3484
#else
Packit 5c3484
static int yy_top_state()
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	return yy_start_stack[yy_start_stack_ptr - 1];
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifndef YY_EXIT_FAILURE
Packit 5c3484
#define YY_EXIT_FAILURE 2
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yy_fatal_error( yyconst char msg[] )
Packit 5c3484
#else
Packit 5c3484
static void yy_fatal_error( msg )
Packit 5c3484
char msg[];
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	(void) fprintf( stderr, "%s\n", msg );
Packit 5c3484
	exit( YY_EXIT_FAILURE );
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* Redefine yyless() so it works in section 3 code. */
Packit 5c3484
Packit 5c3484
#undef yyless
Packit 5c3484
#define yyless(n) \
Packit 5c3484
	do \
Packit 5c3484
		{ \
Packit 5c3484
		/* Undo effects of setting up yytext. */ \
Packit 5c3484
		yytext[yyleng] = yy_hold_char; \
Packit 5c3484
		yy_c_buf_p = yytext + n; \
Packit 5c3484
		yy_hold_char = *yy_c_buf_p; \
Packit 5c3484
		*yy_c_buf_p = '\0'; \
Packit 5c3484
		yyleng = n; \
Packit 5c3484
		} \
Packit 5c3484
	while ( 0 )
Packit 5c3484
Packit 5c3484
Packit 5c3484
/* Internal utility routines. */
Packit 5c3484
Packit 5c3484
#ifndef yytext_ptr
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
Packit 5c3484
#else
Packit 5c3484
static void yy_flex_strncpy( s1, s2, n )
Packit 5c3484
char *s1;
Packit 5c3484
yyconst char *s2;
Packit 5c3484
int n;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	int i;
Packit 5c3484
	for ( i = 0; i < n; ++i )
Packit 5c3484
		s1[i] = s2[i];
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
#ifdef YY_NEED_STRLEN
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static int yy_flex_strlen( yyconst char *s )
Packit 5c3484
#else
Packit 5c3484
static int yy_flex_strlen( s )
Packit 5c3484
yyconst char *s;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	int n;
Packit 5c3484
	for ( n = 0; s[n]; ++n )
Packit 5c3484
		;
Packit 5c3484
Packit 5c3484
	return n;
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void *yy_flex_alloc( yy_size_t size )
Packit 5c3484
#else
Packit 5c3484
static void *yy_flex_alloc( size )
Packit 5c3484
yy_size_t size;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	return (void *) malloc( size );
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void *yy_flex_realloc( void *ptr, yy_size_t size )
Packit 5c3484
#else
Packit 5c3484
static void *yy_flex_realloc( ptr, size )
Packit 5c3484
void *ptr;
Packit 5c3484
yy_size_t size;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	/* The cast to (char *) in the following accommodates both
Packit 5c3484
	 * implementations that use char* generic pointers, and those
Packit 5c3484
	 * that use void* generic pointers.  It works with the latter
Packit 5c3484
	 * because both ANSI C and C++ allow castless assignment from
Packit 5c3484
	 * any pointer type to void*, and deal with argument conversions
Packit 5c3484
	 * as though doing an assignment.
Packit 5c3484
	 */
Packit 5c3484
	return (void *) realloc( (char *) ptr, size );
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
#ifdef YY_USE_PROTOS
Packit 5c3484
static void yy_flex_free( void *ptr )
Packit 5c3484
#else
Packit 5c3484
static void yy_flex_free( ptr )
Packit 5c3484
void *ptr;
Packit 5c3484
#endif
Packit 5c3484
	{
Packit 5c3484
	free( ptr );
Packit 5c3484
	}
Packit 5c3484
Packit 5c3484
#if YY_MAIN
Packit 5c3484
int main()
Packit 5c3484
	{
Packit 5c3484
	yylex();
Packit 5c3484
	return 0;
Packit 5c3484
	}
Packit 5c3484
#endif
Packit 5c3484
#line 107 "../../../gmp/demos/calc/calclex.l"
Packit 5c3484
Packit 5c3484
Packit 5c3484
int
Packit 5c3484
yywrap ()
Packit 5c3484
{
Packit 5c3484
  return 1;
Packit 5c3484
}