
#line 3 "ldlex.c"

#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

/* First, we deal with  platform-specific or compiler-specific issues. */

/* begin standard C headers. */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>

/* end standard C headers. */

/* flex integer type definitions */

#ifndef FLEXINT_H
#define FLEXINT_H

/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */

#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L

/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
 * if you want the limit (max/min) macros for int types. 
 */
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif

#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
typedef uint64_t flex_uint64_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
typedef unsigned char flex_uint8_t; 
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */

/* Limits of integral types. */
#ifndef INT8_MIN
#define INT8_MIN               (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN              (-32767-1)
#endif
#ifndef INT32_MIN
#define INT32_MIN              (-2147483647-1)
#endif
#ifndef INT8_MAX
#define INT8_MAX               (127)
#endif
#ifndef INT16_MAX
#define INT16_MAX              (32767)
#endif
#ifndef INT32_MAX
#define INT32_MAX              (2147483647)
#endif
#ifndef UINT8_MAX
#define UINT8_MAX              (255U)
#endif
#ifndef UINT16_MAX
#define UINT16_MAX             (65535U)
#endif
#ifndef UINT32_MAX
#define UINT32_MAX             (4294967295U)
#endif

#endif /* ! FLEXINT_H */

#ifdef __cplusplus

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

#else	/* ! __cplusplus */

/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)

#define YY_USE_CONST

#endif	/* defined (__STDC__) */
#endif	/* ! __cplusplus */

#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
#define BEGIN (yy_start) = 1 + 2 *

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 * compatibility.
 */
#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart(yyin  )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE 16384
#endif

/* The state buf must be large enough to hold one state per character in the main buffer.
 */
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))

#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif

#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif

extern yy_size_t yyleng;

extern FILE *yyin, *yyout;

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

    #define YY_LESS_LINENO(n)
    
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		*yy_cp = (yy_hold_char); \
		YY_RESTORE_YY_MORE_OFFSET \
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

#define unput(c) yyunput( c, (yytext_ptr)  )

#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
	{
	FILE *yy_input_file;

	char *yy_ch_buf;		/* input buffer */
	char *yy_buf_pos;		/* current position in input buffer */

	/* Size of input buffer in bytes, not including room for EOB
	 * characters.
	 */
	yy_size_t yy_buf_size;

	/* Number of characters read into yy_ch_buf, not including EOB
	 * characters.
	 */
	yy_size_t yy_n_chars;

	/* Whether we "own" the buffer - i.e., we know we created it,
	 * and can realloc() it to grow it, and should free() it to
	 * delete it.
	 */
	int yy_is_our_buffer;

	/* Whether this is an "interactive" input source; if so, and
	 * if we're using stdio for input, then we want to use getc()
	 * instead of fread(), to make sure we stop fetching input after
	 * each newline.
	 */
	int yy_is_interactive;

	/* Whether we're considered to be at the beginning of a line.
	 * If so, '^' rules will be active on the next match, otherwise
	 * not.
	 */
	int yy_at_bol;

    int yy_bs_lineno; /**< The line count. */
    int yy_bs_column; /**< The column count. */
    
	/* Whether to try to fill the input buffer when we reach the
	 * end of it.
	 */
	int yy_fill_buffer;

	int yy_buffer_status;

#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
	/* When an EOF's been seen but there's still some text to process
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
	 * shouldn't try reading from the input source any more.  We might
	 * still have a bunch of tokens to match, though, because of
	 * possible backing-up.
	 *
	 * When we actually see the EOF, we change the status to "new"
	 * (via yyrestart()), so that the user can continue scanning by
	 * just pointing yyin at a new input file.
	 */
#define YY_BUFFER_EOF_PENDING 2

	};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */

/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
 *
 * Returns the top of the stack, or NULL.
 */
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                          : NULL)

/* Same as previous macro, but useful when we know that the buffer stack is not
 * NULL or when we need an lvalue. For internal use only.
 */
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]

/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
yy_size_t yyleng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 0;		/* whether we need to initialize */
static int yy_start = 0;	/* start state number */

/* Flag which is used to allow yywrap()'s to do buffer switches
 * instead of setting up a fresh yyin.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;

void yyrestart (FILE *input_file  );
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
void yy_delete_buffer (YY_BUFFER_STATE b  );
void yy_flush_buffer (YY_BUFFER_STATE b  );
void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
void yypop_buffer_state (void );

static void yyensure_buffer_stack (void );
static void yy_load_buffer_state (void );
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );

#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )

YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );

void *yyalloc (yy_size_t  );
void *yyrealloc (void *,yy_size_t  );
void yyfree (void *  );

#define yy_new_buffer yy_create_buffer

#define yy_set_interactive(is_interactive) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){ \
        yyensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
	}

#define yy_set_bol(at_bol) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){\
        yyensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            yy_create_buffer(yyin,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
	}

#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)

/* Begin user sect3 */

typedef unsigned char YY_CHAR;

FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;

typedef int yy_state_type;

extern int yylineno;

int yylineno = 1;

extern char *yytext;
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state (void );
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
static int yy_get_next_buffer (void );
static void yy_fatal_error (yyconst char msg[]  );

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up yytext.
 */
#define YY_DO_BEFORE_ACTION \
	(yytext_ptr) = yy_bp; \
	yyleng = (yy_size_t) (yy_cp - yy_bp); \
	(yy_hold_char) = *yy_cp; \
	*yy_cp = '\0'; \
	(yy_c_buf_p) = yy_cp;

#define YY_NUM_RULES 198
#define YY_END_OF_BUFFER 199
/* This struct is not used in this scanner,
   but its presence is necessary. */
struct yy_trans_info
	{
	flex_int32_t yy_verify;
	flex_int32_t yy_nxt;
	};
static yyconst flex_int16_t yy_accept[1766] =
    {   0,
        0,    0,  178,  178,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      199,  198,  196,  181,  180,   32,  196,  178,   38,   29,
       44,   43,   34,   35,   28,   36,  178,   37,    8,    8,
       45,   46,   39,   40,   27,   33,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,   10,    9,  178,  119,
      117,  178,   42,   30,   41,   31,  195,  198,  173,   44,
       43,   28,  198,  173,  198,  173,  197,  181,   32,  197,
      176,   38,   29,   44,   43,   34,   35,   28,   36,  176,

       37,    8,    8,   45,   46,   39,   40,   27,   33,  176,
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  176,   10,    9,  176,  176,   42,
       30,   41,   31,  173,   36,  173,   37,    8,    8,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      119,  117,  173,   31,    4,    3,    2,    4,    5,  134,
       32,  133,  172,   34,   35,   28,   36,  172,   37,    8,
        8,   45,   46,   40,   33,  172,  172,  172,  172,  172,
      172,  172,  172,  172,  172,  172,  172,   10,    9,  172,

      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
       31,  195,  193,  194,  196,  188,  187,  182,  189,  190,
      186,  186,  186,  186,  191,  192,  181,  178,   15,    0,
      179,    8,   26,   24,   22,   20,   21,    1,   23,    8,
        8,  178,   18,   17,   14,   16,   19,  178,  178,  178,
      178,  178,  124,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,

      178,  178,   25,   13,  195,  173,    0,    1,  174,  173,
       15,  176,    6,   22,   20,   21,    0,   23,    8,    0,
        7,    7,    8,    7,   14,  176,    7,    7,    7,  176,
      176,  124,    7,  176,  176,    7,  176,  176,  176,    7,
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  176,  176,  176,  176,    7,  176,
        8,   23,    8,    0,  173,  173,  173,  173,  173,  124,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,

      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        4,    4,  133,  133,  172,    6,  135,   22,  136,  172,
        7,    7,    7,  172,  172,  172,    7,  172,    7,    7,
      172,  172,  172,  172,  172,  172,  172,  172,    7,  172,
      172,  172,    7,  172,    7,    7,  172,  172,  172,  172,
      172,  172,  172,  172,  194,  187,  186,    0,  186,  186,
      186,   11,   12,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,   93,  178,  178,

      178,  178,  178,  178,  178,  178,  178,  178,   72,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  120,  118,  178,  175,
      174,  173,    8,  177,    8,  176,    7,  176,  176,  176,
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  176,  176,  176,   62,   63,  176,
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  176,    8,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,

      173,  173,  173,  173,  173,  173,   93,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,   72,   62,
      173,   63,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  120,  118,
      173,    4,    8,  172,  172,  172,  172,  172,  137,  172,
      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
      172,  172,  172,  172,  154,  172,  172,  172,  172,  172,
      172,  172,  172,  172,  172,  186,  186,  186,  178,   59,
      178,  178,  178,  178,  178,   53,  178,  100,  178,  111,

      178,  178,  178,  178,  178,  178,  178,   89,  178,  178,
      178,  178,  178,  112,  178,  178,  178,  130,  178,  178,
      178,   98,  178,   68,  178,  178,  178,  178,  178,  178,
      178,  178,  178,   96,  178,  178,  178,  178,  178,  178,
      106,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      173,  176,   59,  176,  176,  176,   53,  176,  176,  111,
      176,  176,  176,  176,  176,  176,  176,  112,  176,  130,
      176,  176,  176,   68,  176,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  176,  176,  173,   59,  173,  173,
      173,  173,   53,  173,  100,  173,  111,  173,  173,  173,

      173,  173,  173,  173,   89,  173,  173,  173,  173,  173,
      112,  173,  173,  173,  130,  173,  173,  173,  173,   98,
      173,   68,  173,  173,  173,  173,  173,  173,  173,  173,
      173,   96,  173,  173,  173,  173,  173,  173,  106,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  172,  172,
      172,  141,  149,  140,  172,  172,  151,  144,  147,  172,
      172,  152,  172,  172,  172,  172,  172,  158,  166,  157,
      172,  172,  169,  161,  164,  172,  172,  170,  172,  172,
      186,  186,  186,  178,   87,   55,  178,  178,  178,   52,
      178,  178,  178,  178,  110,   66,  178,  178,   95,  178,

       78,  178,  178,  178,   77,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  123,  178,  178,
      178,  178,  178,   99,  178,  178,  178,   97,  178,  178,
      178,  178,  178,  178,  178,  173,  176,   55,  176,  176,
       52,  176,  176,  176,  110,  176,   78,  176,  176,  176,
      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  176,  173,   87,   55,  173,  173,
       52,  173,  173,  173,  173,  110,   66,  173,  173,   95,
      173,   78,  173,  173,  173,   77,  173,  173,  173,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  173,  123,

      173,  173,  173,  173,  173,   99,  173,  173,  173,   97,
      173,  173,  173,  173,  173,  173,  173,  172,  142,  139,
      172,  172,  151,  151,  146,  172,  150,  172,  172,  159,
      156,  172,  172,  169,  169,  163,  172,  168,  172,  186,
      186,  184,  178,  178,  178,   65,  178,   88,  178,  178,
      178,  178,  178,  178,   67,  178,  127,  178,  178,  178,
       86,  178,   54,  178,   47,  178,  178,  109,  178,   50,
       76,  178,  178,  178,  178,  178,  178,   73,  178,  178,
      178,  178,  178,   94,   74,  178,  178,  178,  173,  176,
      176,  176,   65,  176,  176,  176,  176,  176,  127,  176,

      176,   54,  176,  176,  176,  109,  176,   50,  176,  176,
      176,   73,  176,  176,  176,  176,  173,  173,  173,   65,
       88,  173,  173,  173,  173,  173,  173,   67,  173,  127,
      173,  173,  173,   86,  173,   54,  173,  173,   47,  173,
      173,  109,  173,   50,   76,  173,  173,  173,  173,  173,
      173,   73,  173,  173,  173,  173,  173,   94,   74,  173,
      173,  173,  172,  172,   67,  148,  145,  172,  172,  172,
      167,  165,  162,  172,  185,  183,  178,   61,  178,  178,
      178,  178,  178,  178,   80,  178,  178,  122,  178,  178,
      178,  178,  178,  101,  178,  178,  103,  128,  178,  178,

      178,  178,  178,  178,  178,  116,   90,  178,   51,  178,
      178,  173,  176,   61,  176,  176,  176,  176,   80,  176,
      122,  176,  176,  176,  176,  176,  113,  128,  176,  176,
      116,  176,  176,  176,  173,   61,  173,  173,  173,  173,
      173,   80,  173,  173,  122,  173,  173,  173,  173,  173,
      173,  101,  173,  173,  103,  128,  173,  173,  173,  173,
      173,  173,  173,  116,   90,  173,   51,  173,  173,  172,
      172,  172,  172,  172,  172,  153,  178,  178,  132,  178,
      178,  178,  178,  178,  178,  178,  178,   60,  178,  178,
      178,  178,  178,  178,  178,   85,  178,  178,  178,  178,

      126,  171,  178,  173,  153,  176,  176,  132,  176,  176,
      176,   60,   64,  176,  176,  176,  176,  176,  126,  171,
      176,  153,  173,  132,  173,  173,  173,  173,  173,  173,
      173,  173,   60,   64,  173,  173,  173,  173,  173,  173,
      173,   85,  173,  173,  173,  173,  126,  171,  173,  153,
      138,  143,  171,  155,  160,  178,   79,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  108,  178,   79,
      176,   79,  176,  176,  176,  176,  176,  176,  176,  176,
      176,  173,  173,  173,  173,  173,  173,  173,  173,  173,

      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  108,  173,  178,  178,  178,  178,  178,  178,
      178,  178,   49,  178,  114,  115,  178,  178,  178,  178,
       75,  178,  178,  178,  178,  178,  178,  176,  176,  176,
      176,  176,  114,  115,  176,  176,  176,  176,  173,  173,
      173,  173,  173,  173,  173,  173,   49,  173,  114,  115,
      173,  173,  173,  173,   75,  173,  173,  173,  173,  173,
      173,  178,  178,  178,  178,  178,  178,  178,  178,  102,
       92,  178,  178,  178,  178,  178,  178,  178,  178,  178,
      176,  176,  176,  176,  102,  176,  176,  176,  176,  173,

      173,  173,  173,  173,  173,  173,  173,  102,   92,  173,
      173,  173,  173,  173,  173,  173,  173,  173,  178,   82,
      178,  178,  131,  178,  178,  178,  178,  178,   48,  178,
      178,  178,  178,  104,  178,  176,  176,  131,  176,  176,
      176,  176,  176,  173,   82,  173,  173,  131,  173,  173,
      173,  173,  173,   48,  173,  173,  173,  173,  104,  173,
      178,  178,  178,  178,  178,  178,   91,  178,   71,  178,
      178,  178,  178,  176,  176,  176,  176,   71,  176,  176,
      173,  173,  173,  173,  173,  173,   91,  173,   71,  173,
      173,  173,  173,  178,  178,  178,  178,  178,  178,  178,

      178,  129,   70,  178,  178,   69,  176,  176,  176,  176,
      176,  129,   70,   69,  173,  173,  173,  173,  173,  173,
      173,  173,  129,   70,  173,  173,   69,  178,  178,  178,
      178,  178,  178,  178,  178,  178,  178,  176,  176,  176,
      176,  176,  173,  173,  173,  173,  173,  173,  173,  173,
      173,  173,  125,  178,  178,   58,  178,  178,  178,  178,
      178,  178,  125,  176,   58,  176,  176,  125,  173,  173,
       58,  173,  173,  173,  173,  173,  173,  178,  178,  178,
      178,  178,  178,  105,  178,  176,  176,  176,  173,  173,
      173,  173,  173,  173,  105,  173,  178,   56,  178,  178,

      178,  178,  178,   56,  176,  176,  173,   56,  173,  173,
      173,  173,  173,  178,  178,  178,  178,  121,  178,  176,
      121,  173,  173,  173,  173,  121,  173,  178,  178,  178,
      178,  178,  176,  173,  173,  173,  173,  173,   81,  178,
      178,  178,  107,  176,   81,  173,  173,  173,  107,   57,
      178,  178,   57,   57,  173,  173,   83,  178,   83,  173,
      178,  173,   84,   84,    0
    } ;

static yyconst flex_int32_t yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    4,    5,    6,    7,    8,    9,    1,   10,
       11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
       19,   19,   19,   19,   19,   19,   19,   21,   22,   23,
       24,   25,   26,    1,   27,   28,   29,   30,   31,   32,
       33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
       43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
       53,   54,   55,   56,   57,    1,   58,   59,   60,   61,

       62,   63,   64,   65,   66,   16,   67,   68,   69,   70,
       71,   72,   16,   73,   74,   75,   76,   16,   16,   77,
       16,   78,   79,   80,   81,   82,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static yyconst flex_int32_t yy_meta[83] =
    {   0,
        1,    1,    2,    3,    1,    1,    4,    1,    1,    1,
        1,    3,    5,    6,    7,    8,    9,   10,   10,   10,
        7,    1,    1,    6,    1,    3,   11,   11,   11,   11,
       11,   11,    8,    8,    8,    8,    8,    8,    8,    8,
        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
        8,    8,    7,    4,    7,    3,    8,   11,   11,   11,
       11,   11,   11,    8,    8,    8,    8,    8,    8,    8,
        8,    8,    8,    8,    8,    8,    8,    8,    1,    1,
        1,    9
    } ;

static yyconst flex_int16_t yy_base[1798] =
    {   0,
        0,    0,    0,    0,   82,  163,  244,    0,  326,    0,
      408,  489,  570,    0,  112,  114,  652,  734,  816,  898,
     2847, 2848, 2848, 2844, 2848, 2821, 2839,  963, 2848,   89,
     2848, 2848, 2819, 2818,    0, 2817,    0,   98,  743,  417,
        0, 2848,   88, 2816,   99,    0,   98,  119,   98,  114,
      106,  114, 2795,  113, 2798, 2806,  164,   94,  161,  156,
      163, 2789, 2804,  179, 2807, 2802,    0,    0, 2773, 2769,
     2757, 2763, 2848,  129, 2848,    0, 2826, 2822,    0, 2848,
     2848, 2848, 2758, 2813,    0, 2779, 2848, 2821, 2798, 2816,
     1009, 2848,  110, 2848, 2848, 2796, 2795, 2848,   65,    0,

      187, 1055,  129, 2848, 2848,  200, 2794,  203, 2848, 1115,
      412,  421,  489,  493,  502, 2773, 2781, 2775, 2783,  167,
      105,  198,  192, 2769,  413, 2848, 2848,  651, 2746, 2848,
      400, 2848,    0, 1175,  401,    0,  429,  825,  906,  521,
      649,  171,  491,  191,  430, 2767,  199, 2770, 2778,  442,
      443,  444,  510,  512, 2761, 2776,  678, 2779, 2774, 2745,
     2741, 2729, 2735,    0, 1221, 2848, 2848,    0, 2848, 2848,
     2776, 2796, 1267, 2774, 2773, 2848, 2772,    0, 2771,    0,
      402, 2848,    0, 2770, 2848, 1313,  655,  664,  524,  676,
      689,  404, 2766, 2748, 2744,  495, 2746, 2848, 2848,  736,

      657,  738,  804,  737,  167, 2731, 2715, 2711,   85, 2713,
        0, 2783, 2848,    0, 2772, 2848,    0, 2848, 2848, 2848,
     2762,  456,  460,  484, 2848, 2848, 2780,    0,    0, 2776,
     2848,  730, 2848, 2848,    0,    0,    0,    0,    0,  917,
        0,    0, 2756, 2848,    0, 2848, 2755, 2733, 2747, 2730,
     2740,  480,    0, 2742, 2733, 2731, 2725,  521, 2739, 2723,
     2736, 2736, 2720,  657, 2727, 2723, 2719, 2721, 2731, 2722,
      739, 2728, 2701, 2717,  661, 2714, 2716, 2704,  754, 2715,
     2717, 2705, 2719, 2719, 2707, 2720, 2713,  773, 2704, 2692,
     2699, 2711, 2694, 2713, 2711, 2693, 2693, 2692, 2661, 2664,

     2669, 2654, 2848, 2848, 2729,    0,    0, 2848,    0, 2673,
     2848,    0, 1373, 2848, 2848, 2848,    0, 2848,  673,  920,
        0, 2848, 2848,    0, 2848,  820,  823,  903,    0, 2694,
      654,    0,  923, 2688, 2686,  730,  968,  971, 2695, 2696,
     2683, 2693,  769, 2691, 2681,  449, 2670, 2679, 2668,  630,
     2679, 2681, 2684, 2673, 2680, 2660, 2680, 2682,  974, 2631,
      740,    0, 1012,    0, 2663, 2677, 2660, 2670,  802,    0,
     2672, 2663, 2661, 2655,  812, 2669, 2653, 2666, 2666, 2650,
      817, 2657, 2653, 2649, 2651, 2661, 2652, 1013, 2658, 2631,
     2647,  843,  396, 2647, 2645, 2634,  850, 2645, 2647, 2635,

     2649, 2649, 2637, 2650, 2643,  844, 2634, 2622, 2629, 2641,
     2624, 2643, 2641, 2623, 2623, 2622, 2591, 2594, 2599, 2584,
        0, 1425, 2658, 2848,    0, 1477,    0,    0,    0, 1529,
     2615,    0,    0, 2624, 2613, 2612, 2621, 2625, 2608, 2609,
     2607, 2624, 2611, 2619, 2620, 2618, 2619, 2598, 2570, 2577,
     2568, 2567, 2574, 2578, 2563, 2564, 2562, 2577, 2565, 2572,
     2573, 2571, 2572, 2553,    0,    0, 2607, 2606,  485,  707,
      807, 2848, 2848, 2585, 2581, 2593, 2590, 2591, 2581, 2579,
     2589, 2589, 2586, 2571, 2564, 2587, 2586, 2577, 2582, 2566,
     2571, 2577, 2569, 2579, 2576, 2557, 2573,    0, 2564, 2560,

     2565, 2552, 2567, 2555, 2564, 2562, 2564, 2560,    0, 2551,
     2545, 2546, 2551, 2547, 2536, 2553, 2543, 2540, 2539, 2534,
     2551, 2545, 2535, 2532, 2538, 2532, 2544, 2528, 2544, 2545,
     2527, 2543, 2531, 2535, 2522, 2495,    0,    0, 2503,    0,
        0, 2524,    0,    0,  818, 2522, 1016, 2529, 2530, 2520,
     2529, 2529, 2512, 2505, 2528, 1063, 2525, 2515, 2505, 2521,
     2512, 2508, 2501, 2505, 2513, 2515, 2524,    0,    0, 2497,
     2498, 2500, 2489, 2506, 2494, 2489, 2497, 2504, 2505, 2506,
     2461, 2469,    0, 2489, 2485, 2497, 2494, 2495, 2484, 2494,
     2494, 2491, 2476, 2469, 2492, 2491, 2482, 2487, 2471, 2476,

     2482, 2474, 2484, 2481, 2462, 2478,    0, 2469, 2465, 2470,
     2457, 2472, 2460, 2469, 2467, 2469, 2478, 2464,    0,    0,
     2455,    0, 2449, 2450, 2455, 2451, 2440, 2457, 2447, 2444,
     2443, 2438, 2455, 2449, 2439, 2436, 2442, 2436, 2448, 2432,
     2448, 2449, 2431, 2447, 2435, 2439, 2426, 2399,    0,    0,
     2407,    0,    0, 2427,  758, 2436, 2435, 2423,    0, 2433,
     2424, 2416, 2431, 2429, 2428, 2420, 2411, 2412, 2415, 2383,
      870, 2391, 2390, 2379,    0, 2388, 2380, 2373, 2386, 2384,
     2383, 2376, 2368, 2369, 2371,  503,  851,  773, 2402,    0,
     2395, 2398, 2393, 2405, 2391,    0, 2397,    0, 2387,    0,

     2386, 2374, 2390, 2383, 2377, 2380, 2382,    0, 2379, 2393,
     2381, 2391, 2374,    0, 2392, 2373, 2374,    0, 2386, 2370,
     2388,    0, 2370,    0, 2372, 2371, 2384, 2353, 2374, 2361,
     2369, 2361, 2370,    0, 2363, 2374, 2367, 2370, 2354, 2358,
     2341, 2362, 2366, 2349, 2356, 2358, 2361, 2356, 2322, 2318,
     2357, 2349,    0, 2346, 2341, 2353,    0, 2346, 2336,    0,
     2324, 2340, 2333, 2331, 2335, 2336, 2309,    0, 2299,    0,
     2288, 2303, 2298,    0, 2285, 2294, 2253, 2264, 2250, 2244,
     2227, 2214, 2219, 2211, 2170, 2156, 2178,    0, 2165, 2151,
     2146, 2145,    0, 2145,    0, 2132,    0, 2129, 2117, 2133,

       81,  107,  154,  173,    0,  189,  412,  487,  533,  643,
        0,  666,  672,  678,    0,  710,  759,  796,  820,    0,
      812,    0,  819,  845,  862,  833,  856,  846,  867,  868,
      879,    0,  886,  900,  895,  901,  896,  903,  889,  912,
      920,  906,  917,  923,  932,  929,  897,  896,  933,  927,
      934,    0,    0,    0,  932,  958, 1606,    0,    0,  944,
      965,    0,  959,  978,  940,  936,  941,    0,    0,    0,
      942,  960, 1687,    0,    0,  960,  968,    0,  960,  983,
     1029, 1032, 1031, 1009,    0, 1023, 1011, 1028, 1032,    0,
     1051, 1034, 1021, 1045,    0,    0, 1047, 1048,    0, 1040,

        0, 1060, 1073, 1069, 1049, 1061, 1083, 1077, 1082, 1068,
     1076, 1096, 1095, 1092, 1088, 1083, 1103,    0, 1101, 1096,
     1103, 1097, 1099,    0, 1108, 1122, 1114,    0, 1101, 1116,
     1124, 1108, 1114, 1081, 1095, 1128, 1116, 1125, 1118, 1136,
        0, 1141, 1124, 1139,    0, 1141,    0, 1132, 1149, 1124,
     1149, 1154, 1154, 1142, 1158, 1154, 1150, 1164, 1166, 1157,
     1166, 1172, 1165, 1125, 1145, 1162,    0, 1169, 1165, 1181,
        0, 1186, 1183, 1170, 1185,    0,    0, 1187, 1178,    0,
     1162,    0, 1180, 1191, 1187, 1166, 1178, 1198, 1193, 1198,
     1198, 1180, 1187, 1215, 1213, 1209, 1205, 1200, 1220,    0,

     1224, 1215, 1222, 1216, 1218,    0, 1227, 1232, 1234,    0,
     1215, 1228, 1236, 1219, 1225, 1191, 1205, 1222,    0, 1231,
     1231, 1227,    0, 1768,    0, 1245,    0, 1248, 1200,    0,
     1208, 1208, 1213,    0, 1849,    0, 1229,    0, 1232, 1279,
     1270, 1271, 1247, 1269, 1253,    0, 1273,    0, 1264, 1258,
     1249, 1276, 1278, 1278,    0, 1281,    0, 1280, 1266, 1268,
        0, 1268,    0, 1285,    0, 1271, 1271,    0, 1286,    0,
     1262, 1269, 1290, 1265, 1266, 1284, 1288, 1278, 1285, 1296,
     1301, 1304, 1315,    0,    0, 1310, 1277, 1296, 1325, 1310,
     1325, 1309,    0, 1329, 1320, 1330, 1332, 1333,    0, 1334,

     1321,    0, 1337, 1333, 1324,    0, 1338,    0, 1326, 1348,
     1334, 1324, 1344, 1350, 1310, 1329, 1341, 1356, 1340,    0,
        0, 1354, 1348, 1339, 1366, 1368, 1368,    0, 1377,    0,
     1376, 1362, 1364,    0, 1365,    0, 1383, 1379,    0, 1370,
     1370,    0, 1385,    0, 1361, 1368, 1389, 1364, 1365, 1383,
     1378, 1368, 1375, 1386, 1390, 1387, 1397,    0,    0, 1397,
     1363, 1382, 1395, 1405,    0,    0,    0, 1401, 1373, 1378,
        0,    0,    0, 1375, 1430, 1437, 1428,    0, 1425, 1430,
     1417, 1436, 1425, 1434,    0, 1411, 1428,    0, 1413, 1440,
     1425, 1429, 1430,    0, 1418, 1449,    0, 1420, 1451, 1449,

     1435, 1425, 1455, 1433, 1451,    0,    0, 1453,    0, 1436,
     1434, 1469, 1470,    0, 1467, 1472, 1464, 1478,    0, 1455,
        0, 1482, 1471, 1479, 1474, 1462,    0, 1463, 1464, 1488,
        0, 1483, 1462, 1460, 1495,    0, 1492, 1482, 1500, 1489,
     1498,    0, 1475, 1492,    0, 1477, 1510, 1495, 1499, 1507,
     1506,    0, 1494, 1535,    0, 1495, 1526, 1524, 1510, 1507,
     1531, 1509, 1528,    0,    0, 1529,    0, 1509, 1507, 1542,
     1544, 1544, 1514, 1516, 1516,    0, 1534, 1551,    0, 1536,
     1555, 1545, 1553, 1547, 1564, 1566, 1552,    0, 1566, 1554,
     1555, 1560, 1568, 1565, 1569,    0, 1560, 1578, 1586, 1588,

        0,    0, 1560, 1593,    0, 1578, 1595,    0, 1588, 1601,
     1605,    0,    0, 1604, 1592, 1603, 1593, 1608,    0,    0,
     1578,    0, 1595,    0, 1596, 1615, 1605, 1613, 1607, 1618,
     1619, 1605,    0,    0, 1619, 1607, 1608, 1612, 1620, 1617,
     1621,    0, 1612, 1627, 1632, 1629,    0,    0, 1599,    0,
        0,    0,    0,    0,    0, 1629,    0, 1623, 1629, 1635,
     1633, 1630, 1629, 1625, 1642, 1642, 1634, 1647, 1633, 1643,
     1644, 1636, 1635, 1655, 1646, 1650, 1667,    0, 1642,    0,
     1668,    0, 1672, 1669, 1659, 1674, 1666, 1673, 1668, 1689,
     1659, 1684, 1678, 1684, 1690, 1687, 1684, 1683, 1679, 1695,

     1695, 1687, 1700, 1686, 1696, 1697, 1689, 1688, 1708, 1699,
     1698, 1712,    0, 1682, 1684, 1698, 1713, 1705, 1708, 1706,
     1709, 1714,    0, 1705,    0,    0, 1717, 1713, 1723, 1727,
        0, 1728, 1726, 1722, 1723, 1720, 1699, 1704, 1722, 1725,
     1729, 1720,    0,    0, 1741, 1748, 1751, 1722, 1727, 1741,
     1755, 1747, 1750, 1748, 1756, 1761,    0, 1752,    0,    0,
     1764, 1760, 1770, 1774,    0, 1775, 1773, 1769, 1770, 1767,
     1746, 1773, 1764, 1781, 1765, 1781, 1773, 1775, 1774,    0,
        0, 1789, 1787, 1773, 1775, 1789, 1788, 1776, 1792, 1763,
     1791, 1781, 1797, 1788,    0, 1800, 1787, 1801, 1771, 1799,

     1790, 1807, 1791, 1807, 1799, 1801, 1800,    0,    0, 1815,
     1813, 1799, 1801, 1815, 1819, 1810, 1831, 1802, 1825,    0,
     1820, 1810,    0, 1811, 1828, 1830, 1830, 1846,    0, 1832,
     1835, 1840, 1824,    0, 1809, 1843, 1827,    0, 1845, 1855,
     1841, 1844, 1816, 1850,    0, 1845, 1835,    0, 1836, 1853,
     1855, 1850, 1866,    0, 1852, 1855, 1860, 1844,    0, 1829,
     1861, 1847, 1879, 1880, 1868, 1852,    0, 1871,    0, 1867,
     1874, 1872, 1841, 1874, 1890, 1861, 1879,    0, 1875, 1848,
     1882, 1868, 1900, 1899, 1892, 1876,    0, 1895,    0, 1891,
     1898, 1896, 1865, 1893, 1896, 1904, 1903, 1914, 1908, 1890,

     1916,    0,    0, 1918, 1906,    0, 1904, 1914, 1913, 1923,
     1923,    0,    0,    0, 1909, 1912, 1920, 1919, 1929, 1923,
     1905, 1931,    0,    0, 1933, 1921,    0, 1920, 1916, 1933,
     1939, 1932, 1933, 1945, 1935, 1934, 1940, 1930, 1942, 1948,
     1941, 1942, 1935, 1931, 1948, 1954, 1947, 1948, 1960, 1950,
     1949, 1955,    0, 1952, 1959,    0, 1949, 1953, 1957, 1969,
     1951, 1957,    0, 1966,    0, 1956, 1974,    0, 1963, 1970,
        0, 1960, 1964, 1968, 1980, 1962, 1968, 1982, 1971, 1971,
     1984, 1976, 1982,    0, 1972, 1977, 1977, 1986, 1992, 1981,
     1981, 1994, 1986, 1992,    0, 1982, 1986,    0, 1971, 2002,

     1989, 1986, 1997,    0, 1976, 1989, 1994,    0, 1979, 2010,
     1997, 1994, 2005, 2003, 2011, 1997, 2015,    0, 1999, 2015,
        0, 2009, 2017, 2003, 2021,    0, 2005, 2007, 2013, 2019,
     2028, 2005, 2017, 2013, 2019, 2025, 2034, 2011,    0, 2033,
     2023, 2019,    0, 2036,    0, 2037, 2027, 2023,    0,    0,
     2030, 2036,    0,    0, 2032, 2038,    0, 2033,    0, 2034,
     2036, 2037,    0,    0, 2848, 2077, 2088, 2099, 2110, 2121,
     2132, 2141, 2152, 2160, 2168, 2176, 2184, 2195, 2203, 2214,
     2225, 2236, 2240, 2249, 2257, 2265, 2273, 2275, 2286, 2297,
     2308, 2312, 2321, 2332, 2343, 2354, 2365

    } ;

static yyconst flex_int16_t yy_def[1798] =
    {   0,
     1766, 1766, 1765,    3, 1767, 1767, 1765,    7, 1765,    9,
     1768, 1768, 1765,   13, 1769, 1769, 1770, 1770, 1771, 1771,
     1765, 1765, 1765, 1765, 1765, 1772, 1773, 1772, 1765, 1765,
     1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1765, 1765, 1772, 1765, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1765, 1765, 1765, 1772, 1765, 1773, 1774, 1765,
     1765, 1765, 1765, 1774, 1775, 1774, 1765, 1765, 1765, 1773,
     1776, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1776,

     1776, 1765,  102, 1765, 1765, 1765, 1765, 1765, 1765, 1776,
      110,  110,  110,  110,  110, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1765, 1765,  110, 1776, 1765,
     1765, 1765, 1776, 1774, 1765, 1774, 1774, 1765, 1765, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1777, 1765, 1765, 1777, 1765, 1765,
     1765, 1778, 1779, 1780, 1765, 1765, 1765, 1779, 1779,  102,
      102, 1765, 1781, 1765, 1765, 1779,  186,  186,  186,  186,
      186, 1779, 1779, 1779, 1779, 1779, 1779, 1765, 1765,  186,

      186,  186,  186,  186, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1765, 1765, 1782, 1765, 1765, 1783, 1765, 1765, 1765,
     1784, 1784, 1784, 1784, 1765, 1765, 1765, 1772, 1772, 1773,
     1765,   28, 1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772,
     1772,   28, 1765, 1765, 1772, 1765, 1765, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1765, 1765, 1765, 1774, 1785, 1765, 1786, 1774,
     1765, 1776, 1776, 1765, 1765, 1765, 1787, 1765,  102,  102,
      320, 1765, 1765, 1788, 1765,  110,  110,  110, 1776, 1776,
     1776, 1776,  110, 1776, 1776, 1776,  110,  110, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,  110, 1776,
      134, 1774, 1765, 1788, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1777, 1777, 1778, 1765, 1779, 1779, 1789, 1789, 1790, 1779,
      430,  430, 1779, 1779,  430,  430, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,  430, 1779,
      430,  430, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1791, 1792, 1793, 1765, 1793, 1793,
     1793, 1765, 1765, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1785,
     1786, 1774, 1776, 1787, 1788, 1776,  110, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776,  110, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1777, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1793, 1793, 1793, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1774, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1779, 1794, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1795, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1793, 1793, 1793, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1774, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779, 1779, 1779,
     1779, 1779, 1796, 1794, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1797, 1795, 1779, 1779, 1779, 1779, 1793,
     1793, 1793, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1774, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,

     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779,
     1779, 1779, 1779, 1779, 1793, 1793, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1774, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779,
     1779, 1779, 1779, 1779, 1779, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1774, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1779,
     1779, 1779, 1779, 1779, 1779, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1774,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1774,

     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1772, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1776,
     1776, 1776, 1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776,
     1776, 1776, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1776, 1776, 1776, 1776, 1776, 1774, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
     1772, 1772, 1772, 1772, 1772, 1776, 1776, 1776, 1774, 1774,
     1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772, 1772,

     1772, 1772, 1772, 1776, 1776, 1776, 1774, 1774, 1774, 1774,
     1774, 1774, 1774, 1772, 1772, 1772, 1772, 1772, 1772, 1776,
     1776, 1774, 1774, 1774, 1774, 1774, 1774, 1772, 1772, 1772,
     1772, 1772, 1776, 1774, 1774, 1774, 1774, 1774, 1772, 1772,
     1772, 1772, 1772, 1776, 1774, 1774, 1774, 1774, 1774, 1772,
     1772, 1772, 1776, 1774, 1774, 1774, 1772, 1772, 1774, 1774,
     1772, 1774, 1772, 1774,    0, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765

    } ;

static yyconst flex_int16_t yy_nxt[2931] =
    {   0,
       23,   24,   25,   26,   27,   23,   28,   29,   30,   31,
       32,   33,   34,   35,   36,   37,   38,   39,   40,   40,
       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
       51,   52,   53,   54,   55,   37,   56,   57,   58,   59,
       60,   61,   62,   63,   64,   65,   37,   66,   37,   37,
       37,   37,   67,   37,   68,   37,   37,   69,   37,   37,
       37,   37,   37,   37,   37,   37,   37,   70,   37,   37,
       71,   37,   37,   72,   37,   37,   37,   37,   73,   74,
       75,   76,   22,   77,   22,   22,   78,   22,  316,   22,
       22,   80,   81,   22,   22,   82,   83,  233,   84,   22,

       22,   22,   22,   22,   22,   85,   22,   22,   86,  238,
      243,  244,  234,  212,  213,  212,  213,  214,  233,  214,
      276,  239,  246,  247,  277,  248,  976,  249,  215,  250,
      215,  347,  317,  234,   22,  251,   22,   22,  258,  348,
      260,  259,  252,  253,  261,  263,  462,  269,  265,  254,
      270,  266,  303,  255,  267,  264,  256,  977,  262,  463,
       22,   22,   22,   22,   77,   22,   22,   78,   22,  257,
       22,   22,   80,   81,   22,   22,   82,   83,  322,   84,
       22,   22,   22,   22,   22,   22,   85,   22,   22,   86,
      216,  278,  216,  273,  274,  280,  284,  345,  308,  281,

      978,  279,  282,  283,  275,  322,  285,  346,  304,  288,
      318,  375,  289,  290,  376,   22,  979,   22,   22,  291,
      292,  293,  243,  244,  294,  295,  246,  247,  349,  296,
      380,  351,  457,  386,  980,  352,  387,  458,  350,  353,
      381,   22,   22,   22,   87,   88,   25,   89,   90,   87,
       91,   92,   93,   94,   95,   96,   97,   98,   99,  100,
      101,  102,  103,  103,  104,  105,  106,  107,  108,  109,
      110,  111,  112,  113,  114,  115,  116,  117,  118,  100,
      119,  120,  121,  122,  123,  124,  100,  100,  125,  100,
      100,  100,  100,  100,  100,  100,  126,  100,  127,   87,

      100,  128,  115,  115,  115,  115,  115,  100,  100,  100,
      100,  100,  100,  100,  100,  100,  100,  129,  100,  100,
      100,  100,  130,  131,  132,  133,   87,   88,   25,   89,
       90,   87,  134,   92,   93,   94,   95,   96,   97,   98,
      135,  136,  137,  138,  139,  139,  104,  105,  106,  107,
      108,  109,  140,  141,  142,  143,  144,  145,  146,  147,
      148,  136,  149,  150,  151,  152,  153,  154,  155,  156,
      157,  158,  136,  159,  136,  136,  136,  136,  126,  136,
      127,   87,  136,  160,  136,  136,  136,  136,  136,  136,
      136,  136,  136,  161,  136,  136,  162,  136,  136,  163,

      136,  136,  136,  136,  130,  131,  132,  164,   87,   87,
       22,   87,   87,   87,  165,   87,   87,   87,   87,   87,
      166,   87,  167,  303,  316,  138,  139,  139,   87,   87,
       87,  169,   87,   87,  240,  240,  240,  619,  441,  333,
      308,  333,  981,  355,  442,  620,  334,  356,  333,  335,
      333,  322,  362,  241,  357,  241,  312,  312,  312,  358,
       87,  336,   87,   87,  382,  312,  312,  383,  307,  393,
      384,  390,  391,  394,  396,  566,  468,  395,  322,  304,
      468,  567,  392,  241,  397,  241,   87,   87,   87,   87,
       87,   22,   87,   87,   87,  165,   87,   87,   87,   87,

       87,  166,   87,  167,  468,  468,  138,  139,  139,   87,
       87,   87,  169,   87,   87,  337,  333,  377,  333,  338,
      333,  378,  333,  468,  478,  446,  312,  470,  982,  333,
      312,  333,  469,  339,  312,  379,  479,  312,  312,  312,
      447,   87,  340,   87,   87,  402,  312,  312,  365,  398,
      366,  432,  367,  399,  471,  403,  400,  401,  368,  686,
      484,  425,  485,  983,  881,  369,  370,   87,   87,   87,
       23,   24,  170,  171,   23,  172,  173,   29,   30,   31,
       32,  174,  175,  176,  177,  178,  179,  180,  181,  181,
      182,  183,   43,  184,   45,  185,  186,  187,  188,  189,

      190,  191,  178,  178,  178,  178,  178,  192,  178,  193,
      194,  195,  178,  178,  196,  197,  178,  178,  178,  178,
      178,  178,  198,  178,  199,   23,  178,  200,  201,  202,
      189,  203,  204,  178,  178,  178,  178,  205,  178,  206,
      207,  208,  178,  209,  210,  178,  178,  178,   73,   74,
       75,  211,   23,  212,  213,   23,   23,  214,  571,   23,
       23,   23,   23,   23,   23,  218,   23,  572,  215,   23,
       23,   23,  218,  218,   23,   23,   23,   23,  333,  371,
      333,  435,  432,  372,  432,  491,  373,  507,  312,  984,
      436,  432,  425,  985,  425,  312,  312,  437,  549,  374,

      508,  425,  492,  432,   23,   23,   23,   23,  406,  359,
      550,  407,  408,  425,  451,  438,  432,  986,  409,  410,
      411,  987,  322,  412,  413,  439,  425,  468,  414,  440,
      219,   23,  220,   23,   23,  212,  213,   23,   23,  214,
      988,   23,   23,   23,   23,   23,   23,  218,   23,  322,
      215,   23,   23,   23,  218,  218,   23,   23,   23,   23,
      240,  240,  240,  432,  432,  432,  241,  499,  241,  553,
      500,  554,  501,  425,  425,  425,  583,  687,  583,  241,
      502,  241,  512,  503,  850,  513,   23,   23,   23,   23,
      851,  514,  242,  468,  449,  452,  241,  561,  241,  523,

      562,  524,  453,  450,  989,  525,  583,  456,  583,  241,
      563,  241,  219,   23,  220,   23,   23,  212,  213,  242,
       27,  214,  990,   23,   23,   23,   23,  468,   23,  218,
      883,  432,  215,   23,   23,   23,  218,  218,   23,   23,
       23,  425,  363,  363,  363,  600,  588,  333,  991,  333,
      333,  593,  333,  594,  323,  992,  323,  312,  542,  993,
      312,  323,  601,  323,  312,  312,  688,  546,  312,  616,
      635,  468,  636,  454,  364,  617,  637,  222,  624,  223,
      455,  625,  618,  224,  323,  994,  323,  626,  995,  996,
      997,  323,  998,  323,  225,   23,  226,   23,   23,  212,

      213,  364,   27,  214,  999,   23,   23,   23,   23,  882,
       23,  218, 1000, 1001,  215,   23,   23,   23,  218,  218,
       23,   23,   23,  363,  363,  363, 1002,  866, 1003, 1004,
      333, 1005,  547,  867,  240,  240,  240,  320,  320,  320,
      312, 1006,  323, 1007,  323, 1008, 1009,  312,  312, 1010,
      333, 1011,  333,  241, 1012,  241, 1765, 1013, 1765,  222,
      312,  223, 1014, 1015, 1016,  224, 1017,  312,  312,  322,
     1018, 1019,  323, 1020,  323, 1021,  225,   23,  226,   23,
      232,  232,  232,  241, 1022,  241, 1765, 1025, 1765,  232,
      232,  232,  232,  232,  232,  333,  322,  333,  333, 1026,

      333,  333,  556,  333, 1027,  312, 1028, 1029,  312, 1030,
     1031,  312,  312,  555, 1032,  312,  312, 1033,  312,  312,
      232,  232,  232,  232,  232,  232,  313,  313,  313,  363,
      363,  363, 1036, 1037, 1038,  313,  313,  313,  313,  313,
      313,  608, 1039,  333,  609,  333,  610,  581,  323,  468,
      323,  468,  468,  312,  611, 1043, 1046,  612, 1047,  753,
      312,  312, 1048, 1044, 1051, 1052,  313,  313,  313,  313,
      313,  313,  319,  319,  319, 1053, 1054, 1049,  323, 1045,
      323,  320,  321,  320,  321,  320,  320, 1055,  322, 1041,
      333,  323,  333,  323, 1050,  322, 1056,  762, 1042, 1057,

      312, 1040, 1058, 1059,  324, 1060, 1061,  312,  312, 1062,
     1063, 1064,  320,  321,  320,  321,  320,  320, 1065,  322,
     1066,  323, 1067,  323, 1068,  322, 1069, 1070, 1071, 1072,
     1073,  324,  326,  326,  326, 1074, 1075, 1076, 1077, 1078,
     1081,  326,  327,  326,  328,  326,  326, 1082,  329, 1079,
     1083, 1084,  330, 1085, 1086,  329, 1087, 1088, 1089,  331,
      332, 1080, 1090, 1093,  329, 1091, 1094, 1095, 1096, 1097,
     1098, 1099,  326,  333,  326,  333,  326,  326, 1100,  329,
     1101, 1092, 1102, 1103, 1104,  329, 1105, 1106, 1107, 1108,
     1109,  329,  361,  361,  361, 1110, 1111, 1112, 1113, 1114,

     1115,  361,  361,  361,  361,  361,  361, 1116, 1117, 1118,
     1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
     1131, 1132, 1133, 1134, 1135, 1119, 1136, 1137, 1138, 1123,
     1139, 1140,  361,  361,  361,  361,  361,  361,  422,  422,
      422, 1141, 1142, 1143, 1144, 1145, 1146,  422,  422,  422,
      422,  422,  422, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
     1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
     1165, 1154, 1166, 1167, 1168, 1169, 1170, 1171,  422,  422,
      422,  422,  422,  422,  426,  426,  426, 1172, 1173, 1174,
      468,  468, 1177,  426,  426,  426,  426,  426,  426,  468,

     1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187,
     1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197,
     1198, 1199, 1200, 1201,  426,  426,  426,  426,  426,  426,
      430,  430,  430, 1202, 1203, 1204, 1205, 1176, 1206,  430,
      431,  430,  432,  430,  430, 1207,  433, 1208, 1175, 1209,
      434, 1210, 1211,  433, 1212, 1213, 1214, 1215, 1216, 1217,
     1218, 1219,  433, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
      430,  432,  430,  432,  430,  430, 1227,  433, 1228, 1229,
     1230, 1231, 1232,  433, 1233, 1234, 1235, 1236, 1237,  433,
      313,  313,  313, 1238, 1239, 1240, 1241, 1242, 1243,  313,

      313,  313,  313,  313,  313, 1244, 1245, 1246, 1247,  543,
     1248,  543, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
     1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
      313,  313,  313,  313,  313,  313, 1267, 1268, 1269,  543,
     1270,  543,  422,  422,  422, 1271, 1272, 1273, 1274, 1275,
      468,  422,  422,  422,  422,  422,  422,  468, 1276, 1277,
     1278,  652, 1279,  652, 1280, 1281, 1282, 1283, 1284, 1285,
     1286, 1287, 1288, 1289, 1290, 1291, 1293, 1294, 1295, 1296,
     1292, 1297,  422,  422,  422,  422,  422,  422, 1298, 1299,
     1300,  652, 1301,  652,  426,  426,  426, 1302, 1303, 1304,

     1305, 1306, 1307,  426,  426,  426,  426,  426,  426, 1308,
     1309, 1310, 1311,  653, 1312,  653, 1313, 1314, 1315, 1316,
     1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
     1327, 1328, 1329, 1330,  426,  426,  426,  426,  426,  426,
     1331, 1332, 1333,  653, 1334,  653,  430,  430,  430, 1335,
     1336, 1339, 1340, 1341, 1342,  430,  432,  430,  432,  430,
      430, 1337,  433, 1343, 1344, 1345, 1338, 1346, 1347,  433,
     1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,  433, 1356,
     1357, 1358, 1359, 1360, 1361, 1362,  430,  432,  430,  432,
      430,  430, 1363,  433, 1364, 1365, 1366, 1367, 1368,  433,

     1369, 1370, 1371, 1372, 1373,  433, 1023, 1023, 1374, 1023,
     1023, 1023, 1375, 1023, 1023, 1023, 1023, 1023, 1378, 1023,
     1376, 1379, 1380, 1381, 1382, 1377, 1383, 1023, 1023, 1023,
     1023, 1023, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
     1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
     1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1413,
     1414, 1023, 1415, 1416, 1417, 1418, 1411, 1419, 1420, 1421,
     1422, 1412, 1423, 1424, 1425, 1427, 1428, 1429, 1430, 1431,
     1432, 1433, 1426, 1434, 1023, 1023, 1023, 1034, 1034, 1435,
     1034, 1034, 1034, 1436, 1034, 1034, 1034, 1034, 1034, 1437,

     1034, 1438, 1439, 1440, 1441, 1442, 1443, 1445, 1034, 1034,
     1034, 1034, 1034, 1446, 1444, 1447, 1448, 1449, 1450, 1451,
     1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1461, 1462,
     1463, 1464, 1465, 1466, 1467, 1460, 1468, 1469, 1470, 1471,
     1472, 1473, 1034, 1474, 1475, 1476, 1477, 1478, 1479, 1480,
     1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490,
     1491, 1492, 1493, 1494, 1495, 1034, 1034, 1034, 1023, 1023,
     1496, 1023, 1023, 1023, 1497, 1023, 1023, 1023, 1023, 1023,
     1498, 1023, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1023,
     1023, 1023, 1023, 1023, 1506, 1507, 1508, 1509, 1510, 1511,

     1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
     1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
     1532, 1533, 1534, 1023, 1535, 1536, 1537, 1538, 1539, 1540,
     1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
     1551, 1552, 1553, 1554, 1555, 1556, 1023, 1023, 1023, 1034,
     1034, 1557, 1034, 1034, 1034, 1558, 1034, 1034, 1034, 1034,
     1034, 1559, 1034, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
     1034, 1034, 1034, 1034, 1034, 1567, 1568, 1569, 1570, 1571,
     1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
     1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,

     1592, 1593, 1594, 1595, 1034, 1596, 1599, 1600, 1601, 1597,
     1602, 1603, 1604, 1605, 1606, 1607, 1608, 1611, 1612, 1613,
     1609, 1614, 1598, 1615, 1616, 1620, 1617, 1034, 1034, 1034,
     1618, 1621, 1622, 1610, 1623, 1624, 1625, 1626, 1627, 1628,
     1629, 1630, 1631, 1619, 1632, 1633, 1634, 1635, 1636, 1637,
     1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
     1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
     1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
     1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
     1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687,

     1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697,
     1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707,
     1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717,
     1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
     1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
     1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
     1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757,
     1758, 1759, 1760, 1761, 1762, 1763, 1764,   22,   22,   22,
       22,   22,   22,   22,   22,   22,   22,   22,   79,   79,
       79,   79,   79,   79,   79,   79,   79,   79,   79,  168,

      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,  217,  217,  217,  217,  217,  217,  217,  217,  217,
      217,  217,  221,  221,  221,  221,  221,  221,  221,  221,
      221,  221,  221,  228,  228,  228,  228,  228,  228,  228,
      228,  228,  230,  230,  230,  230,  230,  230,  230,  230,
      230,  230,  230,  306,  306,  306,  306,  306,  306,  306,
      306,  309,  975,  974,  973,  309,  309,  972,  309,  312,
      312,  971,  312,  312,  312,  312,  312,  421,  970,  969,
      968,  421,  421,  421,  421,  423,  423,  423,  423,  423,

      423,  423,  423,  423,  423,  423,  425,  425,  967,  425,
      425,  425,  425,  425,  427,  966,  427,  427,  427,  427,
      427,  427,  427,  427,  427,  429,  965,  429,  429,  429,
      429,  429,  429,  429,  429,  429,  465,  964,  465,  465,
      465,  465,  465,  465,  465,  465,  465,  466,  963,  466,
      466,  467,  467,  962,  961,  467,  467,  960,  467,  467,
      540,  540,  540,  540,  540,  540,  540,  540,  541,  541,
      541,  541,  541,  541,  541,  541,  544,  544,  959,  544,
      544,  544,  544,  544,  545,  545,  427,  958,  427,  427,
      427,  427,  427,  427,  427,  427,  427,  429,  957,  429,

      429,  429,  429,  429,  429,  429,  429,  429,  465,  956,
      465,  465,  465,  465,  465,  465,  465,  465,  465,  466,
      955,  466,  466,  467,  467,  954,  953,  467,  467,  952,
      467,  467, 1024,  951, 1024, 1024, 1024, 1024, 1024, 1024,
     1024, 1024, 1024, 1035,  950, 1035, 1035, 1035, 1035, 1035,
     1035, 1035, 1035, 1035, 1023,  949, 1023, 1023, 1023, 1023,
     1023, 1023, 1023, 1023, 1023, 1034,  948, 1034, 1034, 1034,
     1034, 1034, 1034, 1034, 1034, 1034,  947,  946,  945,  944,
      943,  942,  941,  940,  939,  938,  937,  936,  935,  934,
      933,  932,  931,  930,  929,  928,  927,  926,  925,  924,

      923,  922,  921,  920,  919,  918,  917,  916,  915,  914,
      913,  912,  911,  910,  909,  908,  907,  906,  905,  904,
      903,  902,  901,  900,  899,  898,  897,  896,  895,  894,
      893,  892,  891,  890,  889,  888,  887,  886,  885,  884,
      880,  879,  878,  877,  876,  875,  874,  873,  872,  871,
      870,  869,  868,  865,  864,  863,  862,  861,  860,  859,
      858,  857,  856,  855,  854,  853,  852,  849,  848,  847,
      846,  845,  844,  843,  842,  841,  840,  839,  838,  837,
      836,  835,  834,  833,  832,  831,  830,  829,  828,  827,
      826,  825,  824,  823,  822,  821,  820,  819,  818,  817,

      816,  815,  814,  813,  812,  811,  810,  809,  808,  807,
      806,  805,  804,  803,  802,  801,  800,  799,  798,  797,
      796,  795,  794,  793,  792,  791,  790,  789,  788,  787,
      786,  785,  784,  783,  782,  781,  780,  779,  778,  777,
      776,  775,  774,  773,  772,  771,  770,  769,  768,  767,
      766,  765,  764,  763,  761,  760,  759,  758,  757,  756,
      755,  754,  752,  751,  750,  749,  748,  747,  746,  745,
      744,  743,  742,  741,  740,  739,  738,  737,  736,  735,
      734,  733,  732,  731,  730,  729,  728,  727,  726,  725,
      724,  723,  722,  721,  720,  719,  718,  717,  716,  715,

      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
      704,  703,  702,  701,  700,  699,  698,  697,  696,  695,
      694,  693,  692,  691,  690,  689,  467,  468,  685,  684,
      683,  682,  681,  680,  679,  678,  677,  676,  675,  674,
      673,  672,  671,  670,  669,  668,  667,  666,  665,  664,
      663,  662,  661,  660,  659,  658,  657,  656,  655,  654,
      424,  651,  650,  649,  648,  647,  646,  645,  644,  643,
      642,  641,  640,  639,  638,  634,  633,  632,  631,  630,
      629,  628,  627,  623,  622,  621,  615,  614,  613,  607,
      606,  605,  604,  603,  602,  599,  598,  597,  596,  595,

      592,  591,  590,  589,  587,  586,  585,  584,  582,  580,
      579,  578,  577,  576,  575,  574,  573,  570,  569,  568,
      565,  564,  560,  559,  558,  557,  552,  551,  548,  542,
      305,  539,  538,  537,  536,  535,  534,  533,  532,  531,
      530,  529,  528,  527,  526,  522,  521,  520,  519,  518,
      517,  516,  515,  511,  510,  509,  506,  505,  504,  498,
      497,  496,  495,  494,  493,  490,  489,  488,  487,  486,
      483,  482,  481,  480,  477,  476,  475,  474,  473,  472,
      231,  227,  468,  308,  305,  464,  461,  460,  459,  448,
      445,  444,  443,  325,  318,  316,  315,  428,  424,  311,

      420,  419,  418,  417,  416,  415,  405,  404,  389,  388,
      385,  360,  354,  344,  343,  342,  341,  325,  315,  314,
      231,  311,  227,  310,  308,  307,  231,  305,  302,  301,
      300,  299,  298,  297,  287,  286,  272,  271,  268,  245,
      237,  236,  235,  231,  229,  227, 1765,   21, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,

     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765
    } ;

static yyconst flex_int16_t yy_chk[2931] =
    {   0,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    5,    5,    5,    5,    5,    5,   99,    5,
        5,    5,    5,    5,    5,    5,    5,   30,    5,    5,

        5,    5,    5,    5,    5,    5,    5,    5,    5,   38,
       43,   43,   30,   15,   15,   16,   16,   15,   93,   16,
       58,   38,   45,   45,   58,   47,  801,   47,   15,   47,
       16,  121,   99,   93,    5,   47,    5,    5,   49,  121,
       50,   49,   47,   47,   50,   51,  209,   54,   52,   48,
       54,   52,   74,   48,   52,   51,   48,  802,   50,  209,
        5,    5,    5,    6,    6,    6,    6,    6,    6,   48,
        6,    6,    6,    6,    6,    6,    6,    6,  103,    6,
        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
       15,   59,   16,   57,   57,   60,   61,  120,  101,   60,

      803,   59,   60,   60,   57,  103,   61,  120,   74,   64,
      101,  142,   64,   64,  142,    6,  804,    6,    6,   64,
       64,   64,  106,  106,   64,   64,  108,  108,  122,   64,
      144,  123,  205,  147,  806,  123,  147,  205,  122,  123,
      144,    6,    6,    6,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,

        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,    7,    7,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,

        9,    9,    9,    9,    9,    9,    9,    9,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,  131,  135,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   40,   40,   40,  393,  192,  111,
      137,  111,  807,  125,  192,  393,  111,  125,  112,  111,
      112,  181,  137,   40,  125,   40,  111,  111,  112,  125,
       11,  112,   11,   11,  145,  112,  112,  145,  135,  151,
      145,  150,  150,  151,  152,  346,  222,  151,  181,  131,
      223,  346,  150,   40,  152,   40,   11,   11,   11,   12,
       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,

       12,   12,   12,   12,  224,  469,   12,   12,   12,   12,
       12,   12,   12,   12,   12,  113,  113,  143,  113,  113,
      114,  143,  114,  686,  252,  196,  113,  223,  808,  115,
      114,  115,  222,  113,  113,  143,  252,  114,  114,  115,
      196,   12,  114,   12,   12,  154,  115,  115,  140,  153,
      140,  189,  140,  153,  224,  154,  153,  153,  140,  469,
      258,  189,  258,  809,  686,  140,  140,   12,   12,   12,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,

       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   17,   17,   17,   17,   17,   17,  350,   17,
       17,   17,   17,   17,   17,   17,   17,  350,   17,   17,
       17,   17,   17,   17,   17,   17,   17,   17,  128,  141,
      128,  187,  187,  141,  201,  264,  141,  275,  128,  810,
      188,  188,  187,  812,  201,  128,  128,  188,  331,  141,

      275,  188,  264,  190,   17,   17,   17,   17,  157,  128,
      331,  157,  157,  190,  201,  190,  191,  813,  157,  157,
      157,  814,  319,  157,  157,  190,  191,  470,  157,  191,
       17,   17,   17,   17,   18,   18,   18,   18,   18,   18,
      816,   18,   18,   18,   18,   18,   18,   18,   18,  319,
       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
       39,   39,   39,  200,  204,  202,  232,  271,  232,  336,
      271,  336,  271,  200,  204,  202,  361,  470,  361,   39,
      271,   39,  279,  271,  655,  279,   18,   18,   18,   18,
      655,  279,   39,  688,  200,  202,  232,  343,  232,  288,

      343,  288,  202,  200,  817,  288,  361,  204,  361,   39,
      343,   39,   18,   18,   18,   18,   19,   19,   19,   39,
       19,   19,  818,   19,   19,   19,   19,  471,   19,   19,
      688,  203,   19,   19,   19,   19,   19,   19,   19,   19,
       19,  203,  138,  138,  138,  381,  369,  326,  819,  326,
      327,  375,  327,  375,  545,  821,  545,  326,  369,  823,
      327,  138,  381,  138,  326,  326,  471,  327,  327,  392,
      406,  687,  406,  203,  138,  392,  406,   19,  397,   19,
      203,  397,  392,   19,  545,  824,  545,  397,  825,  826,
      827,  138,  828,  138,   19,   19,   19,   19,   20,   20,

       20,  138,   20,   20,  829,   20,   20,   20,   20,  687,
       20,   20,  830,  831,   20,   20,   20,   20,   20,   20,
       20,   20,   20,  139,  139,  139,  833,  671,  834,  835,
      328,  836,  328,  671,  240,  240,  240,  320,  320,  320,
      328,  837,  139,  838,  139,  839,  840,  328,  328,  841,
      333,  842,  333,  240,  843,  240,  320,  844,  320,   20,
      333,   20,  845,  846,  847,   20,  848,  333,  333,  320,
      849,  850,  139,  851,  139,  855,   20,   20,   20,   20,
       28,   28,   28,  240,  856,  240,  320,  860,  320,   28,
       28,   28,   28,   28,   28,  337,  320,  337,  338,  861,

      338,  359,  338,  359,  863,  337,  864,  865,  338,  866,
      867,  359,  337,  337,  871,  338,  338,  872,  359,  359,
       28,   28,   28,   28,   28,   28,   91,   91,   91,  363,
      363,  363,  876,  877,  879,   91,   91,   91,   91,   91,
       91,  388,  880,  547,  388,  547,  388,  359,  363,  881,
      363,  883,  882,  547,  388,  884,  887,  388,  888,  547,
      547,  547,  889,  886,  892,  893,   91,   91,   91,   91,
       91,   91,  102,  102,  102,  894,  897,  891,  363,  886,
      363,  102,  102,  102,  102,  102,  102,  898,  102,  882,
      556,  102,  556,  102,  891,  102,  900,  556,  883,  902,

      556,  881,  903,  904,  102,  905,  906,  556,  556,  907,
      908,  909,  102,  102,  102,  102,  102,  102,  910,  102,
      911,  102,  912,  102,  913,  102,  914,  915,  916,  917,
      919,  102,  110,  110,  110,  920,  921,  922,  923,  925,
      927,  110,  110,  110,  110,  110,  110,  929,  110,  926,
      930,  931,  110,  932,  933,  110,  934,  935,  936,  110,
      110,  926,  937,  939,  110,  938,  940,  942,  943,  944,
      946,  948,  110,  110,  110,  110,  110,  110,  949,  110,
      950,  938,  951,  952,  953,  110,  954,  955,  956,  957,
      958,  110,  134,  134,  134,  959,  960,  961,  962,  963,

      964,  134,  134,  134,  134,  134,  134,  965,  966,  968,
      969,  970,  972,  973,  974,  975,  978,  979,  981,  983,
      984,  985,  986,  987,  988,  968,  989,  990,  991,  972,
      992,  993,  134,  134,  134,  134,  134,  134,  165,  165,
      165,  994,  995,  996,  997,  998,  999,  165,  165,  165,
      165,  165,  165, 1001, 1002, 1003, 1004, 1005, 1007, 1008,
     1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1020,
     1021, 1008, 1022, 1026, 1028, 1029, 1031, 1032,  165,  165,
      165,  165,  165,  165,  173,  173,  173, 1033, 1037, 1039,
     1041, 1042, 1043,  173,  173,  173,  173,  173,  173, 1040,

     1044, 1045, 1047, 1049, 1050, 1051, 1052, 1053, 1054, 1056,
     1058, 1059, 1060, 1062, 1064, 1066, 1067, 1069, 1071, 1072,
     1073, 1074, 1075, 1076,  173,  173,  173,  173,  173,  173,
      186,  186,  186, 1077, 1078, 1079, 1080, 1041, 1081,  186,
      186,  186,  186,  186,  186, 1082,  186, 1083, 1040, 1086,
      186, 1087, 1088,  186, 1089, 1090, 1091, 1092, 1094, 1095,
     1096, 1097,  186, 1098, 1100, 1101, 1103, 1104, 1105, 1107,
      186,  186,  186,  186,  186,  186, 1109,  186, 1110, 1111,
     1112, 1113, 1114,  186, 1115, 1116, 1117, 1118, 1119,  186,
      313,  313,  313, 1122, 1123, 1124, 1125, 1126, 1127,  313,

      313,  313,  313,  313,  313, 1129, 1131, 1132, 1133,  313,
     1135,  313, 1137, 1138, 1140, 1141, 1143, 1145, 1146, 1147,
     1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
      313,  313,  313,  313,  313,  313, 1160, 1161, 1162,  313,
     1163,  313,  422,  422,  422, 1164, 1168, 1169, 1170, 1174,
     1175,  422,  422,  422,  422,  422,  422, 1176, 1177, 1179,
     1180,  422, 1181,  422, 1182, 1183, 1184, 1186, 1187, 1189,
     1190, 1191, 1192, 1193, 1195, 1196, 1198, 1199, 1200, 1201,
     1196, 1202,  422,  422,  422,  422,  422,  422, 1203, 1204,
     1205,  422, 1208,  422,  426,  426,  426, 1210, 1211, 1212,

     1213, 1215, 1216,  426,  426,  426,  426,  426,  426, 1217,
     1218, 1220, 1222,  426, 1223,  426, 1224, 1225, 1226, 1228,
     1229, 1230, 1232, 1233, 1234, 1235, 1237, 1238, 1239, 1240,
     1241, 1243, 1244, 1246,  426,  426,  426,  426,  426,  426,
     1247, 1248, 1249,  426, 1250,  426,  430,  430,  430, 1251,
     1253, 1256, 1257, 1258, 1259,  430,  430,  430,  430,  430,
      430, 1254,  430, 1260, 1261, 1262, 1254, 1263, 1266,  430,
     1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,  430, 1277,
     1278, 1280, 1281, 1282, 1283, 1284,  430,  430,  430,  430,
      430,  430, 1285,  430, 1286, 1287, 1289, 1290, 1291,  430,

     1292, 1293, 1294, 1295, 1297,  430,  857,  857, 1298,  857,
      857,  857, 1299,  857,  857,  857,  857,  857, 1300,  857,
     1299, 1303, 1304, 1306, 1307, 1299, 1309,  857,  857,  857,
      857,  857, 1310, 1311, 1314, 1315, 1316, 1317, 1318, 1321,
     1323, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1335,
     1336, 1337, 1338, 1339, 1340, 1341, 1343, 1344, 1345, 1346,
     1349,  857, 1356, 1358, 1359, 1360, 1345, 1361, 1362, 1363,
     1364, 1345, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
     1373, 1374, 1367, 1375,  857,  857,  857,  873,  873, 1376,
      873,  873,  873, 1377,  873,  873,  873,  873,  873, 1379,

      873, 1381, 1383, 1384, 1385, 1386, 1387, 1388,  873,  873,
      873,  873,  873, 1389, 1387, 1390, 1391, 1392, 1393, 1394,
     1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
     1405, 1406, 1407, 1408, 1409, 1402, 1410, 1411, 1412, 1414,
     1415, 1416,  873, 1417, 1418, 1419, 1420, 1421, 1422, 1424,
     1427, 1428, 1429, 1430, 1432, 1433, 1434, 1435, 1436, 1437,
     1438, 1439, 1440, 1441, 1442,  873,  873,  873, 1024, 1024,
     1445, 1024, 1024, 1024, 1446, 1024, 1024, 1024, 1024, 1024,
     1447, 1024, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1024,
     1024, 1024, 1024, 1024, 1455, 1456, 1458, 1461, 1462, 1463,

     1464, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
     1475, 1476, 1477, 1478, 1479, 1482, 1483, 1484, 1485, 1486,
     1487, 1488, 1489, 1024, 1490, 1491, 1492, 1493, 1494, 1496,
     1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
     1507, 1510, 1511, 1512, 1513, 1514, 1024, 1024, 1024, 1035,
     1035, 1515, 1035, 1035, 1035, 1516, 1035, 1035, 1035, 1035,
     1035, 1517, 1035, 1518, 1519, 1521, 1522, 1524, 1525, 1526,
     1035, 1035, 1035, 1035, 1035, 1527, 1528, 1530, 1531, 1532,
     1533, 1535, 1536, 1537, 1539, 1540, 1541, 1542, 1543, 1544,
     1546, 1547, 1549, 1550, 1551, 1552, 1553, 1555, 1556, 1557,

     1558, 1560, 1561, 1562, 1035, 1563, 1564, 1565, 1566, 1563,
     1568, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1579,
     1575, 1580, 1563, 1581, 1582, 1584, 1583, 1035, 1035, 1035,
     1583, 1585, 1586, 1575, 1588, 1590, 1591, 1592, 1593, 1594,
     1595, 1596, 1597, 1583, 1598, 1599, 1600, 1601, 1604, 1605,
     1607, 1608, 1609, 1610, 1611, 1615, 1616, 1617, 1618, 1619,
     1620, 1621, 1622, 1625, 1626, 1628, 1629, 1630, 1631, 1632,
     1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
     1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
     1654, 1655, 1657, 1658, 1659, 1660, 1661, 1662, 1664, 1666,

     1667, 1669, 1670, 1672, 1673, 1674, 1675, 1676, 1677, 1678,
     1679, 1680, 1681, 1682, 1683, 1685, 1686, 1687, 1688, 1689,
     1690, 1691, 1692, 1693, 1694, 1696, 1697, 1699, 1700, 1701,
     1702, 1703, 1705, 1706, 1707, 1709, 1710, 1711, 1712, 1713,
     1714, 1715, 1716, 1717, 1719, 1720, 1722, 1723, 1724, 1725,
     1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
     1737, 1738, 1740, 1741, 1742, 1744, 1746, 1747, 1748, 1751,
     1752, 1755, 1756, 1758, 1760, 1761, 1762, 1766, 1766, 1766,
     1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1767, 1767,
     1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1768,

     1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
     1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
     1769, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
     1770, 1770, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
     1771, 1771, 1771, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
     1772, 1772, 1773, 1773, 1773, 1773, 1773, 1773, 1773, 1773,
     1773, 1773, 1773, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
     1774, 1775,  800,  799,  798, 1775, 1775,  796, 1775, 1776,
     1776,  794, 1776, 1776, 1776, 1776, 1776, 1777,  792,  791,
      790, 1777, 1777, 1777, 1777, 1778, 1778, 1778, 1778, 1778,

     1778, 1778, 1778, 1778, 1778, 1778, 1779, 1779,  789, 1779,
     1779, 1779, 1779, 1779, 1780,  787, 1780, 1780, 1780, 1780,
     1780, 1780, 1780, 1780, 1780, 1781,  786, 1781, 1781, 1781,
     1781, 1781, 1781, 1781, 1781, 1781, 1782,  785, 1782, 1782,
     1782, 1782, 1782, 1782, 1782, 1782, 1782, 1783,  784, 1783,
     1783, 1784, 1784,  783,  782, 1784, 1784,  781, 1784, 1784,
     1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1786, 1786,
     1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787,  780, 1787,
     1787, 1787, 1787, 1787, 1788, 1788, 1789,  779, 1789, 1789,
     1789, 1789, 1789, 1789, 1789, 1789, 1789, 1790,  778, 1790,

     1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1791,  777,
     1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1791, 1792,
      776, 1792, 1792, 1793, 1793,  775,  773, 1793, 1793,  772,
     1793, 1793, 1794,  771, 1794, 1794, 1794, 1794, 1794, 1794,
     1794, 1794, 1794, 1795,  769, 1795, 1795, 1795, 1795, 1795,
     1795, 1795, 1795, 1795, 1796,  767, 1796, 1796, 1796, 1796,
     1796, 1796, 1796, 1796, 1796, 1797,  766, 1797, 1797, 1797,
     1797, 1797, 1797, 1797, 1797, 1797,  765,  764,  763,  762,
      761,  759,  758,  756,  755,  754,  752,  751,  750,  749,
      748,  747,  746,  745,  744,  743,  742,  741,  740,  739,

      738,  737,  736,  735,  733,  732,  731,  730,  729,  728,
      727,  726,  725,  723,  721,  720,  719,  717,  716,  715,
      713,  712,  711,  710,  709,  707,  706,  705,  704,  703,
      702,  701,  699,  697,  695,  694,  693,  692,  691,  689,
      685,  684,  683,  682,  681,  680,  679,  678,  677,  676,
      674,  673,  672,  670,  669,  668,  667,  666,  665,  664,
      663,  662,  661,  660,  658,  657,  656,  654,  651,  648,
      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
      637,  636,  635,  634,  633,  632,  631,  630,  629,  628,
      627,  626,  625,  624,  623,  621,  618,  617,  616,  615,

      614,  613,  612,  611,  610,  609,  608,  606,  605,  604,
      603,  602,  601,  600,  599,  598,  597,  596,  595,  594,
      593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
      582,  581,  580,  579,  578,  577,  576,  575,  574,  573,
      572,  571,  570,  567,  566,  565,  564,  563,  562,  561,
      560,  559,  558,  557,  555,  554,  553,  552,  551,  550,
      549,  548,  546,  542,  539,  536,  535,  534,  533,  532,
      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
      511,  510,  508,  507,  506,  505,  504,  503,  502,  501,

      500,  499,  497,  496,  495,  494,  493,  492,  491,  490,
      489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
      479,  478,  477,  476,  475,  474,  468,  467,  464,  463,
      462,  461,  460,  459,  458,  457,  456,  455,  454,  453,
      452,  451,  450,  449,  448,  447,  446,  445,  444,  443,
      442,  441,  440,  439,  438,  437,  436,  435,  434,  431,
      423,  420,  419,  418,  417,  416,  415,  414,  413,  412,
      411,  410,  409,  408,  407,  405,  404,  403,  402,  401,
      400,  399,  398,  396,  395,  394,  391,  390,  389,  387,
      386,  385,  384,  383,  382,  380,  379,  378,  377,  376,

      374,  373,  372,  371,  368,  367,  366,  365,  360,  358,
      357,  356,  355,  354,  353,  352,  351,  349,  348,  347,
      345,  344,  342,  341,  340,  339,  335,  334,  330,  310,
      305,  302,  301,  300,  299,  298,  297,  296,  295,  294,
      293,  292,  291,  290,  289,  287,  286,  285,  284,  283,
      282,  281,  280,  278,  277,  276,  274,  273,  272,  270,
      269,  268,  267,  266,  265,  263,  262,  261,  260,  259,
      257,  256,  255,  254,  251,  250,  249,  248,  247,  243,
      230,  227,  221,  215,  212,  210,  208,  207,  206,  197,
      195,  194,  193,  184,  179,  177,  175,  174,  172,  171,

      163,  162,  161,  160,  159,  158,  156,  155,  149,  148,
      146,  129,  124,  119,  118,  117,  116,  107,   97,   96,
       90,   89,   88,   86,   84,   83,   78,   77,   72,   71,
       70,   69,   66,   65,   63,   62,   56,   55,   53,   44,
       36,   34,   33,   27,   26,   24,   21, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,

     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765,
     1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765, 1765
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

extern int yy_flex_debug;
int yy_flex_debug = 0;

/* The intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed.
 */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "ldlex.l"
#line 4 "ldlex.l"

/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
   Written by Steve Chamberlain of Cygnus Support.

   This file is part of the GNU Binutils.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
   MA 02110-1301, USA.  */

#include "bfd.h"
#include "safe-ctype.h"
#include "bfdlink.h"
#include "ld.h"
#include "ldmisc.h"
#include "ldexp.h"
#include "ldlang.h"
#include <ldgram.h>
#include "ldfile.h"
#include "ldlex.h"
#include "ldmain.h"
#include "libiberty.h"

/* The type of top-level parser input.
   yylex and yyparse (indirectly) both check this.  */
input_type parser_input;

/* Line number in the current input file.
   (FIXME Actually, it doesn't appear to get reset for each file?)  */
unsigned int lineno = 1;

/* The string we are currently lexing, or NULL if we are reading a
   file.  */
const char *lex_string = NULL;

/* Support for flex reading from more than one input file (stream).
   `include_stack' is flex's input state for each open file;
   `file_name_stack' is the file names.  `lineno_stack' is the current
   line numbers.

   If `include_stack_ptr' is 0, we haven't started reading anything yet.
   Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */

#undef YY_INPUT
#define YY_INPUT(buf,result,max_size) result = yy_input (buf, max_size)

#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT
#endif

#define MAX_INCLUDE_DEPTH 10
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
static unsigned int sysrooted_stack[MAX_INCLUDE_DEPTH];
static unsigned int include_stack_ptr = 0;
static int vers_node_nesting = 0;

static int yy_input (char *, int);
static void comment (void);
static void lex_warn_invalid (char *where, char *what);

/* STATES
	EXPRESSION	definitely in an expression
	SCRIPT		definitely in a script
	INPUTLIST	definitely in a script, a filename-list
	BOTH		either EXPRESSION or SCRIPT
	DEFSYMEXP	in an argument to -defsym
        MRI             in an MRI script
	VERS_START	starting a Sun style mapfile
	VERS_SCRIPT	a Sun style mapfile
	VERS_NODE	a node within a Sun style mapfile
*/
#define RTOKEN(x)  {  yylval.token = x; return x; }

/* Some versions of flex want this.  */
#ifndef yywrap
int yywrap (void) { return 1; }
#endif









#line 1787 "ldlex.c"

#define INITIAL 0
#define SCRIPT 1
#define INPUTLIST 2
#define EXPRESSION 3
#define BOTH 4
#define DEFSYMEXP 5
#define MRI 6
#define VERS_START 7
#define VERS_SCRIPT 8
#define VERS_NODE 9

#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 * down here because we want the user's section 1 to have been scanned first.
 * The user has a chance to override it with an option.
 */
#include <unistd.h>
#endif

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

static int yy_init_globals (void );

/* Accessor methods to globals.
   These are made visible to non-reentrant scanners for convenience. */

int yylex_destroy (void );

int yyget_debug (void );

void yyset_debug (int debug_flag  );

YY_EXTRA_TYPE yyget_extra (void );

void yyset_extra (YY_EXTRA_TYPE user_defined  );

FILE *yyget_in (void );

void yyset_in  (FILE * in_str  );

FILE *yyget_out (void );

void yyset_out  (FILE * out_str  );

yy_size_t yyget_leng (void );

char *yyget_text (void );

int yyget_lineno (void );

void yyset_lineno (int line_number  );

/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap (void );
#else
extern int yywrap (void );
#endif
#endif

#ifndef yytext_ptr
static void yy_flex_strncpy (char *,yyconst char *,int );
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * );
#endif

#ifndef YY_NO_INPUT

#ifdef __cplusplus
static int yyinput (void );
#else
static int input (void );
#endif

#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
		yy_size_t n; \
		for ( n = 0; n < max_size && \
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( yyin ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else \
		{ \
		errno=0; \
		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(yyin); \
			} \
		}\
\

#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* end tables serialization structures and prototypes */

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1

extern int yylex (void);

#define YY_DECL int yylex (void)
#endif /* !YY_DECL */

/* Code executed at the beginning of each rule, after yytext and yyleng
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

#define YY_RULE_SETUP \
	YY_USER_ACTION

/** The main scanner function which does all the work.
 */
YY_DECL
{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;
    
#line 121 "ldlex.l"


  if (parser_input != input_selected)
    {
      /* The first token of the input determines the initial parser state.  */
      input_type t = parser_input;
      parser_input = input_selected;
      switch (t)
	{
	case input_script: return INPUT_SCRIPT; break;
	case input_mri_script: return INPUT_MRI_SCRIPT; break;
	case input_version_script: return INPUT_VERSION_SCRIPT; break;
	case input_dynamic_list: return INPUT_DYNAMIC_LIST; break;
	case input_defsym: return INPUT_DEFSYM; break;
	default: abort ();
	}
    }

#line 1995 "ldlex.c"

	if ( !(yy_init) )
		{
		(yy_init) = 1;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

		if ( ! (yy_start) )
			(yy_start) = 1;	/* first start state */

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

		if ( ! YY_CURRENT_BUFFER ) {
			yyensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				yy_create_buffer(yyin,YY_BUF_SIZE );
		}

		yy_load_buffer_state( );
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = (yy_c_buf_p);

		/* Support of yytext. */
		*yy_cp = (yy_hold_char);

		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;

		yy_current_state = (yy_start);
yy_match:
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			if ( yy_accept[yy_current_state] )
				{
				(yy_last_accepting_state) = yy_current_state;
				(yy_last_accepting_cpos) = yy_cp;
				}
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
				{
				yy_current_state = (int) yy_def[yy_current_state];
				if ( yy_current_state >= 1766 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			++yy_cp;
			}
		while ( yy_base[yy_current_state] != 2848 );

yy_find_action:
		yy_act = yy_accept[yy_current_state];
		if ( yy_act == 0 )
			{ /* have to back up */
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			yy_act = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;

do_action:	/* This label is used only to access EOF actions. */

		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = (yy_hold_char);
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			goto yy_find_action;

case 1:
YY_RULE_SETUP
#line 139 "ldlex.l"
{ comment (); }
	YY_BREAK
case 2:
YY_RULE_SETUP
#line 142 "ldlex.l"
{ RTOKEN('-');}
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 143 "ldlex.l"
{ RTOKEN('+');}
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 144 "ldlex.l"
{ yylval.name = xstrdup (yytext); return NAME; }
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 145 "ldlex.l"
{ RTOKEN('='); }
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 147 "ldlex.l"
{
  				yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
				yylval.bigint.str = NULL;
				return INT;
			}
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 153 "ldlex.l"
{
				   int ibase ;
				   switch (yytext[yyleng - 1]) {
				    case 'X':
				    case 'x':
				    case 'H':
				    case 'h':
				     ibase = 16;
				     break;
				    case 'O':
				    case 'o':
				     ibase = 8;
				     break;
				    case 'B':
				    case 'b':
				     ibase = 2;
				     break;
				    default:
				     ibase = 10;
				   }
				   yylval.integer = bfd_scan_vma (yytext, 0,
								  ibase);
				   yylval.bigint.str = NULL;
				   return INT;
				 }
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 178 "ldlex.l"
{
				  char *s = yytext;
				  int ibase = 0;

				  if (*s == '$')
				    {
				      ++s;
				      ibase = 16;
				    }
				  yylval.integer = bfd_scan_vma (s, 0, ibase);
				  yylval.bigint.str = NULL;
				  if (yytext[yyleng - 1] == 'M'
				      || yytext[yyleng - 1] == 'm')
				    {
				      yylval.integer *= 1024 * 1024;
				    }
				  else if (yytext[yyleng - 1] == 'K'
				      || yytext[yyleng - 1]=='k')
				    {
				      yylval.integer *= 1024;
				    }
				  else if (yytext[0] == '0'
					   && (yytext[1] == 'x'
					       || yytext[1] == 'X'))
				    {
				      yylval.bigint.str = xstrdup (yytext + 2);
				    }
				  return INT;
				}
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 207 "ldlex.l"
{ RTOKEN(']');}
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 208 "ldlex.l"
{ RTOKEN('[');}
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 209 "ldlex.l"
{ RTOKEN(LSHIFTEQ);}
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 210 "ldlex.l"
{ RTOKEN(RSHIFTEQ);}
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 211 "ldlex.l"
{ RTOKEN(OROR);}
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 212 "ldlex.l"
{ RTOKEN(EQ);}
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 213 "ldlex.l"
{ RTOKEN(NE);}
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 214 "ldlex.l"
{ RTOKEN(GE);}
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 215 "ldlex.l"
{ RTOKEN(LE);}
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 216 "ldlex.l"
{ RTOKEN(LSHIFT);}
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 217 "ldlex.l"
{ RTOKEN(RSHIFT);}
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 218 "ldlex.l"
{ RTOKEN(PLUSEQ);}
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 219 "ldlex.l"
{ RTOKEN(MINUSEQ);}
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 220 "ldlex.l"
{ RTOKEN(MULTEQ);}
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 221 "ldlex.l"
{ RTOKEN(DIVEQ);}
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 222 "ldlex.l"
{ RTOKEN(ANDEQ);}
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 223 "ldlex.l"
{ RTOKEN(OREQ);}
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 224 "ldlex.l"
{ RTOKEN(ANDAND);}
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 225 "ldlex.l"
{ RTOKEN('>');}
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 226 "ldlex.l"
{ RTOKEN(',');}
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 227 "ldlex.l"
{ RTOKEN('&');}
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 228 "ldlex.l"
{ RTOKEN('|');}
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 229 "ldlex.l"
{ RTOKEN('~');}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 230 "ldlex.l"
{ RTOKEN('!');}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 231 "ldlex.l"
{ RTOKEN('?');}
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 232 "ldlex.l"
{ RTOKEN('*');}
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 233 "ldlex.l"
{ RTOKEN('+');}
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 234 "ldlex.l"
{ RTOKEN('-');}
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 235 "ldlex.l"
{ RTOKEN('/');}
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 236 "ldlex.l"
{ RTOKEN('%');}
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 237 "ldlex.l"
{ RTOKEN('<');}
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 238 "ldlex.l"
{ RTOKEN('=');}
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 239 "ldlex.l"
{ RTOKEN('}') ; }
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 240 "ldlex.l"
{ RTOKEN('{'); }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 241 "ldlex.l"
{ RTOKEN(')');}
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 242 "ldlex.l"
{ RTOKEN('(');}
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 243 "ldlex.l"
{ RTOKEN(':'); }
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 244 "ldlex.l"
{ RTOKEN(';');}
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 245 "ldlex.l"
{ RTOKEN(MEMORY);}
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 246 "ldlex.l"
{ RTOKEN(REGION_ALIAS);}
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 247 "ldlex.l"
{ RTOKEN(LD_FEATURE);}
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 248 "ldlex.l"
{ RTOKEN(ORIGIN);}
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 249 "ldlex.l"
{ RTOKEN(VERSIONK);}
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 250 "ldlex.l"
{ RTOKEN(BLOCK);}
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 251 "ldlex.l"
{ RTOKEN(BIND);}
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 252 "ldlex.l"
{ RTOKEN(LENGTH);}
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 253 "ldlex.l"
{ RTOKEN(ALIGN_K);}
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 254 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_ALIGN);}
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 255 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_RELRO_END);}
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 256 "ldlex.l"
{ RTOKEN(DATA_SEGMENT_END);}
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 257 "ldlex.l"
{ RTOKEN(ADDR);}
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 258 "ldlex.l"
{ RTOKEN(LOADADDR);}
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 259 "ldlex.l"
{ RTOKEN(ALIGNOF); }
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 260 "ldlex.l"
{ RTOKEN(MAX_K); }
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 261 "ldlex.l"
{ RTOKEN(MIN_K); }
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 262 "ldlex.l"
{ RTOKEN(LOG2CEIL); }
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 263 "ldlex.l"
{ RTOKEN(ASSERT_K); }
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 264 "ldlex.l"
{ RTOKEN(ENTRY);}
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 265 "ldlex.l"
{ RTOKEN(EXTERN);}
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 266 "ldlex.l"
{ RTOKEN(NEXT);}
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 267 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 268 "ldlex.l"
{ RTOKEN(SIZEOF_HEADERS);}
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 269 "ldlex.l"
{ RTOKEN(SEGMENT_START);}
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 270 "ldlex.l"
{ RTOKEN(MAP);}
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 271 "ldlex.l"
{ RTOKEN(SIZEOF);}
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 272 "ldlex.l"
{ RTOKEN(TARGET_K);}
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 273 "ldlex.l"
{ RTOKEN(SEARCH_DIR);}
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 274 "ldlex.l"
{ RTOKEN(OUTPUT);}
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 275 "ldlex.l"
{ RTOKEN(INPUT);}
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 276 "ldlex.l"
{ RTOKEN(GROUP);}
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 277 "ldlex.l"
{ RTOKEN(AS_NEEDED);}
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 278 "ldlex.l"
{ RTOKEN(DEFINED);}
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 279 "ldlex.l"
{ RTOKEN(CREATE_OBJECT_SYMBOLS);}
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 280 "ldlex.l"
{ RTOKEN( CONSTRUCTORS);}
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 281 "ldlex.l"
{ RTOKEN(FORCE_COMMON_ALLOCATION);}
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 282 "ldlex.l"
{ RTOKEN(INHIBIT_COMMON_ALLOCATION);}
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 283 "ldlex.l"
{ RTOKEN(SECTIONS);}
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 284 "ldlex.l"
{ RTOKEN(INSERT_K);}
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 285 "ldlex.l"
{ RTOKEN(AFTER);}
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 286 "ldlex.l"
{ RTOKEN(BEFORE);}
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 287 "ldlex.l"
{ RTOKEN(FILL);}
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 288 "ldlex.l"
{ RTOKEN(STARTUP);}
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 289 "ldlex.l"
{ RTOKEN(OUTPUT_FORMAT);}
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 290 "ldlex.l"
{ RTOKEN( OUTPUT_ARCH);}
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 291 "ldlex.l"
{ RTOKEN(HLL);}
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 292 "ldlex.l"
{ RTOKEN(SYSLIB);}
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 293 "ldlex.l"
{ RTOKEN(FLOAT);}
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 294 "ldlex.l"
{ RTOKEN( QUAD);}
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 295 "ldlex.l"
{ RTOKEN( SQUAD);}
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 296 "ldlex.l"
{ RTOKEN( LONG);}
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 297 "ldlex.l"
{ RTOKEN( SHORT);}
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 298 "ldlex.l"
{ RTOKEN( BYTE);}
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 299 "ldlex.l"
{ RTOKEN(NOFLOAT);}
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 300 "ldlex.l"
{ RTOKEN(NOCROSSREFS);}
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 301 "ldlex.l"
{ RTOKEN(OVERLAY); }
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 302 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 303 "ldlex.l"
{ RTOKEN(SORT_BY_ALIGNMENT); }
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 304 "ldlex.l"
{ RTOKEN(SORT_BY_NAME); }
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 305 "ldlex.l"
{ RTOKEN(SORT_BY_INIT_PRIORITY); }
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 306 "ldlex.l"
{ RTOKEN(SORT_NONE); }
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 307 "ldlex.l"
{ RTOKEN(NOLOAD);}
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 308 "ldlex.l"
{ RTOKEN(DSECT);}
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 309 "ldlex.l"
{ RTOKEN(COPY);}
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 310 "ldlex.l"
{ RTOKEN(INFO);}
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 311 "ldlex.l"
{ RTOKEN(OVERLAY);}
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 312 "ldlex.l"
{ RTOKEN(ONLY_IF_RO); }
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 313 "ldlex.l"
{ RTOKEN(ONLY_IF_RW); }
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 314 "ldlex.l"
{ RTOKEN(SPECIAL); }
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 315 "ldlex.l"
{ RTOKEN(ORIGIN);}
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 316 "ldlex.l"
{ RTOKEN(ORIGIN);}
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 317 "ldlex.l"
{ RTOKEN( LENGTH);}
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 318 "ldlex.l"
{ RTOKEN( LENGTH);}
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 319 "ldlex.l"
{ RTOKEN(INPUT_SECTION_FLAGS); }
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 320 "ldlex.l"
{ RTOKEN(INCLUDE);}
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 321 "ldlex.l"
{ RTOKEN (PHDRS); }
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 322 "ldlex.l"
{ RTOKEN(AT);}
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 323 "ldlex.l"
{ RTOKEN(ALIGN_WITH_INPUT);}
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 324 "ldlex.l"
{ RTOKEN(SUBALIGN);}
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 325 "ldlex.l"
{ RTOKEN(HIDDEN); }
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 326 "ldlex.l"
{ RTOKEN(PROVIDE); }
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 327 "ldlex.l"
{ RTOKEN(PROVIDE_HIDDEN); }
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 328 "ldlex.l"
{ RTOKEN(KEEP); }
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 329 "ldlex.l"
{ RTOKEN(EXCLUDE_FILE); }
	YY_BREAK
case 132:
YY_RULE_SETUP
#line 330 "ldlex.l"
{ RTOKEN(CONSTANT);}
	YY_BREAK
case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
#line 331 "ldlex.l"
{ ++ lineno; }
	YY_BREAK
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 332 "ldlex.l"
{ ++ lineno;  RTOKEN(NEWLINE); }
	YY_BREAK
case 135:
YY_RULE_SETUP
#line 333 "ldlex.l"
{ /* Mri comment line */ }
	YY_BREAK
case 136:
YY_RULE_SETUP
#line 334 "ldlex.l"
{ /* Mri comment line */ }
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 335 "ldlex.l"
{ RTOKEN(ENDWORD); }
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 336 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
	YY_BREAK
case 139:
YY_RULE_SETUP
#line 337 "ldlex.l"
{ RTOKEN(ALIGN_K);}
	YY_BREAK
case 140:
YY_RULE_SETUP
#line 338 "ldlex.l"
{ RTOKEN(CHIP); }
	YY_BREAK
case 141:
YY_RULE_SETUP
#line 339 "ldlex.l"
{ RTOKEN(BASE); }
	YY_BREAK
case 142:
YY_RULE_SETUP
#line 340 "ldlex.l"
{ RTOKEN(ALIAS); }
	YY_BREAK
case 143:
YY_RULE_SETUP
#line 341 "ldlex.l"
{ RTOKEN(TRUNCATE); }
	YY_BREAK
case 144:
YY_RULE_SETUP
#line 342 "ldlex.l"
{ RTOKEN(LOAD); }
	YY_BREAK
case 145:
YY_RULE_SETUP
#line 343 "ldlex.l"
{ RTOKEN(PUBLIC); }
	YY_BREAK
case 146:
YY_RULE_SETUP
#line 344 "ldlex.l"
{ RTOKEN(ORDER); }
	YY_BREAK
case 147:
YY_RULE_SETUP
#line 345 "ldlex.l"
{ RTOKEN(NAMEWORD); }
	YY_BREAK
case 148:
YY_RULE_SETUP
#line 346 "ldlex.l"
{ RTOKEN(FORMAT); }
	YY_BREAK
case 149:
YY_RULE_SETUP
#line 347 "ldlex.l"
{ RTOKEN(CASE); }
	YY_BREAK
case 150:
YY_RULE_SETUP
#line 348 "ldlex.l"
{ RTOKEN(START); }
	YY_BREAK
case 151:
YY_RULE_SETUP
#line 349 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
	YY_BREAK
case 152:
YY_RULE_SETUP
#line 350 "ldlex.l"
{ RTOKEN(SECT); }
	YY_BREAK
case 153:
YY_RULE_SETUP
#line 351 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
	YY_BREAK
case 154:
YY_RULE_SETUP
#line 352 "ldlex.l"
{ RTOKEN(ENDWORD); }
	YY_BREAK
case 155:
YY_RULE_SETUP
#line 353 "ldlex.l"
{ RTOKEN(ALIGNMOD);}
	YY_BREAK
case 156:
YY_RULE_SETUP
#line 354 "ldlex.l"
{ RTOKEN(ALIGN_K);}
	YY_BREAK
case 157:
YY_RULE_SETUP
#line 355 "ldlex.l"
{ RTOKEN(CHIP); }
	YY_BREAK
case 158:
YY_RULE_SETUP
#line 356 "ldlex.l"
{ RTOKEN(BASE); }
	YY_BREAK
case 159:
YY_RULE_SETUP
#line 357 "ldlex.l"
{ RTOKEN(ALIAS); }
	YY_BREAK
case 160:
YY_RULE_SETUP
#line 358 "ldlex.l"
{ RTOKEN(TRUNCATE); }
	YY_BREAK
case 161:
YY_RULE_SETUP
#line 359 "ldlex.l"
{ RTOKEN(LOAD); }
	YY_BREAK
case 162:
YY_RULE_SETUP
#line 360 "ldlex.l"
{ RTOKEN(PUBLIC); }
	YY_BREAK
case 163:
YY_RULE_SETUP
#line 361 "ldlex.l"
{ RTOKEN(ORDER); }
	YY_BREAK
case 164:
YY_RULE_SETUP
#line 362 "ldlex.l"
{ RTOKEN(NAMEWORD); }
	YY_BREAK
case 165:
YY_RULE_SETUP
#line 363 "ldlex.l"
{ RTOKEN(FORMAT); }
	YY_BREAK
case 166:
YY_RULE_SETUP
#line 364 "ldlex.l"
{ RTOKEN(CASE); }
	YY_BREAK
case 167:
YY_RULE_SETUP
#line 365 "ldlex.l"
{ RTOKEN(EXTERN); }
	YY_BREAK
case 168:
YY_RULE_SETUP
#line 366 "ldlex.l"
{ RTOKEN(START); }
	YY_BREAK
case 169:
YY_RULE_SETUP
#line 367 "ldlex.l"
{ RTOKEN(LIST); /* LIST and ignore to end of line */ }
	YY_BREAK
case 170:
YY_RULE_SETUP
#line 368 "ldlex.l"
{ RTOKEN(SECT); }
	YY_BREAK
case 171:
YY_RULE_SETUP
#line 369 "ldlex.l"
{ RTOKEN(ABSOLUTE); }
	YY_BREAK
case 172:
YY_RULE_SETUP
#line 371 "ldlex.l"
{
/* Filename without commas, needed to parse mri stuff */
				 yylval.name = xstrdup (yytext);
				  return NAME;
				}
	YY_BREAK
case 173:
YY_RULE_SETUP
#line 378 "ldlex.l"
{
				 yylval.name = xstrdup (yytext);
				  return NAME;
				}
	YY_BREAK
case 174:
YY_RULE_SETUP
#line 382 "ldlex.l"
{
/* Filename to be prefixed by --sysroot or when non-sysrooted, nothing.  */
				 yylval.name = xstrdup (yytext);
				  return NAME;
				}
	YY_BREAK
case 175:
YY_RULE_SETUP
#line 387 "ldlex.l"
{
				  yylval.name = xstrdup (yytext + 2);
				  return LNAME;
				}
	YY_BREAK
case 176:
YY_RULE_SETUP
#line 391 "ldlex.l"
{
				 yylval.name = xstrdup (yytext);
				  return NAME;
				}
	YY_BREAK
case 177:
YY_RULE_SETUP
#line 395 "ldlex.l"
{
				  yylval.name = xstrdup (yytext + 2);
				  return LNAME;
				}
	YY_BREAK
case 178:
YY_RULE_SETUP
#line 399 "ldlex.l"
{
		/* Annoyingly, this pattern can match comments, and we have
		   longest match issues to consider.  So if the first two
		   characters are a comment opening, put the input back and
		   try again.  */
		if (yytext[0] == '/' && yytext[1] == '*')
		  {
		    yyless (2);
		    comment ();
		  }
		else
		  {
		    yylval.name = xstrdup (yytext);
		    return NAME;
		  }
	}
	YY_BREAK
case 179:
/* rule 179 can match eol */
YY_RULE_SETUP
#line 416 "ldlex.l"
{
					/* No matter the state, quotes
					   give what's inside */
					yylval.name = xstrdup (yytext + 1);
					yylval.name[yyleng - 2] = 0;
					return NAME;
				}
	YY_BREAK
case 180:
/* rule 180 can match eol */
YY_RULE_SETUP
#line 423 "ldlex.l"
{ lineno++;}
	YY_BREAK
case 181:
YY_RULE_SETUP
#line 424 "ldlex.l"
{ }
	YY_BREAK
case 182:
YY_RULE_SETUP
#line 426 "ldlex.l"
{ return *yytext; }
	YY_BREAK
case 183:
YY_RULE_SETUP
#line 428 "ldlex.l"
{ RTOKEN(GLOBAL); }
	YY_BREAK
case 184:
YY_RULE_SETUP
#line 430 "ldlex.l"
{ RTOKEN(LOCAL); }
	YY_BREAK
case 185:
YY_RULE_SETUP
#line 432 "ldlex.l"
{ RTOKEN(EXTERN); }
	YY_BREAK
case 186:
YY_RULE_SETUP
#line 434 "ldlex.l"
{ yylval.name = xstrdup (yytext);
				  return VERS_IDENTIFIER; }
	YY_BREAK
case 187:
YY_RULE_SETUP
#line 437 "ldlex.l"
{ yylval.name = xstrdup (yytext);
				  return VERS_TAG; }
	YY_BREAK
case 188:
YY_RULE_SETUP
#line 440 "ldlex.l"
{ BEGIN(VERS_SCRIPT); return *yytext; }
	YY_BREAK
case 189:
YY_RULE_SETUP
#line 442 "ldlex.l"
{ BEGIN(VERS_NODE);
				  vers_node_nesting = 0;
				  return *yytext;
				}
	YY_BREAK
case 190:
YY_RULE_SETUP
#line 446 "ldlex.l"
{ return *yytext; }
	YY_BREAK
case 191:
YY_RULE_SETUP
#line 447 "ldlex.l"
{ vers_node_nesting++; return *yytext; }
	YY_BREAK
case 192:
YY_RULE_SETUP
#line 448 "ldlex.l"
{ if (--vers_node_nesting < 0)
				    BEGIN(VERS_SCRIPT);
				  return *yytext;
				}
	YY_BREAK
case 193:
/* rule 193 can match eol */
YY_RULE_SETUP
#line 453 "ldlex.l"
{ lineno++; }
	YY_BREAK
case 194:
YY_RULE_SETUP
#line 455 "ldlex.l"
{ /* Eat up comments */ }
	YY_BREAK
case 195:
YY_RULE_SETUP
#line 457 "ldlex.l"
{ /* Eat up whitespace */ }
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(SCRIPT):
case YY_STATE_EOF(INPUTLIST):
case YY_STATE_EOF(EXPRESSION):
case YY_STATE_EOF(BOTH):
case YY_STATE_EOF(DEFSYMEXP):
case YY_STATE_EOF(MRI):
case YY_STATE_EOF(VERS_START):
case YY_STATE_EOF(VERS_SCRIPT):
case YY_STATE_EOF(VERS_NODE):
#line 459 "ldlex.l"
{
  include_stack_ptr--;
  if (include_stack_ptr == 0)
    yyterminate ();
  else
    yy_switch_to_buffer (include_stack[include_stack_ptr]);

  lineno = lineno_stack[include_stack_ptr];
  input_flags.sysrooted = sysrooted_stack[include_stack_ptr];

  return END;
}
	YY_BREAK
case 196:
YY_RULE_SETUP
#line 472 "ldlex.l"
lex_warn_invalid (" in script", yytext);
	YY_BREAK
case 197:
YY_RULE_SETUP
#line 473 "ldlex.l"
lex_warn_invalid (" in expression", yytext);
	YY_BREAK
case 198:
YY_RULE_SETUP
#line 475 "ldlex.l"
ECHO;
	YY_BREAK
#line 3202 "ldlex.c"

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = (yy_hold_char);
		YY_RESTORE_YY_MORE_OFFSET

		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed yyin at a new source and called
			 * yylex().  If so, then we have to assure
			 * consistency between YY_CURRENT_BUFFER and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state(  );

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = (yytext_ptr) + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++(yy_c_buf_p);
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
				yy_cp = (yy_c_buf_p);
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer(  ) )
			{
			case EOB_ACT_END_OF_FILE:
				{
				(yy_did_buffer_switch_on_eof) = 0;

				if ( yywrap( ) )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * yytext, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				(yy_c_buf_p) =
					(yytext_ptr) + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				(yy_c_buf_p) =
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
} /* end of yylex */

/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */
static int yy_get_next_buffer (void)
{
    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
	register char *source = (yytext_ptr);
	register int number_to_move, i;
	int ret_val;

	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
		{ /* Don't try to fill the buffer, so this is an EOF. */
		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
			{
			/* We matched a single character, the EOB, so
			 * treat this as a final EOF.
			 */
			return EOB_ACT_END_OF_FILE;
			}

		else
			{
			/* We matched some text prior to the EOB, first
			 * process it.
			 */
			return EOB_ACT_LAST_MATCH;
			}
		}

	/* Try to read more data. */

	/* First move last chars to start of buffer. */
	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;

	for ( i = 0; i < number_to_move; ++i )
		*(dest++) = *(source++);

	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
		/* don't do the read, it's not guaranteed to return an EOF,
		 * just force an EOF
		 */
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;

	else
		{
			yy_size_t num_to_read =
			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */

			/* just a shorter name for the current buffer */
			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;

			int yy_c_buf_p_offset =
				(int) ((yy_c_buf_p) - b->yy_ch_buf);

			if ( b->yy_is_our_buffer )
				{
				yy_size_t new_size = b->yy_buf_size * 2;

				if ( new_size <= 0 )
					b->yy_buf_size += b->yy_buf_size / 8;
				else
					b->yy_buf_size *= 2;

				b->yy_ch_buf = (char *)
					/* Include room in for 2 EOB chars. */
					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
				}
			else
				/* Can't grow it, we don't own it. */
				b->yy_ch_buf = 0;

			if ( ! b->yy_ch_buf )
				YY_FATAL_ERROR(
				"fatal error - scanner input buffer overflow" );

			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
						number_to_move - 1;

			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

		/* Read in more data. */
		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
			(yy_n_chars), num_to_read );

		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	if ( (yy_n_chars) == 0 )
		{
		if ( number_to_move == YY_MORE_ADJ )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			yyrestart(yyin  );
			}

		else
			{
			ret_val = EOB_ACT_LAST_MATCH;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
		/* Extend the array by 50%, plus the number we really need. */
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
	}

	(yy_n_chars) += number_to_move;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;

	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];

	return ret_val;
}

/* yy_get_previous_state - get the state just before the EOB char was reached */

    static yy_state_type yy_get_previous_state (void)
{
	register yy_state_type yy_current_state;
	register char *yy_cp;
    
	yy_current_state = (yy_start);

	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
		{
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		if ( yy_accept[yy_current_state] )
			{
			(yy_last_accepting_state) = yy_current_state;
			(yy_last_accepting_cpos) = yy_cp;
			}
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
			{
			yy_current_state = (int) yy_def[yy_current_state];
			if ( yy_current_state >= 1766 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		}

	return yy_current_state;
}

/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *	next_state = yy_try_NUL_trans( current_state );
 */
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
{
	register int yy_is_jam;
    	register char *yy_cp = (yy_c_buf_p);

	register YY_CHAR yy_c = 1;
	if ( yy_accept[yy_current_state] )
		{
		(yy_last_accepting_state) = yy_current_state;
		(yy_last_accepting_cpos) = yy_cp;
		}
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
		{
		yy_current_state = (int) yy_def[yy_current_state];
		if ( yy_current_state >= 1766 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 1765);

	return yy_is_jam ? 0 : yy_current_state;
}

#ifndef YY_NO_INPUT
#ifdef __cplusplus
    static int yyinput (void)
#else
    static int input  (void)
#endif

{
	int c;
    
	*(yy_c_buf_p) = (yy_hold_char);

	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
		{
		/* yy_c_buf_p now points to the character we want to return.
		 * If this occurs *before* the EOB characters, then it's a
		 * valid NUL; if not, then we've hit the end of the buffer.
		 */
		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			/* This was really a NUL. */
			*(yy_c_buf_p) = '\0';

		else
			{ /* need more input */
			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
			++(yy_c_buf_p);

			switch ( yy_get_next_buffer(  ) )
				{
				case EOB_ACT_LAST_MATCH:
					/* This happens because yy_g_n_b()
					 * sees that we've accumulated a
					 * token and flags that we need to
					 * try matching the token before
					 * proceeding.  But for input(),
					 * there's no matching to consider.
					 * So convert the EOB_ACT_LAST_MATCH
					 * to EOB_ACT_END_OF_FILE.
					 */

					/* Reset buffer status. */
					yyrestart(yyin );

					/*FALLTHROUGH*/

				case EOB_ACT_END_OF_FILE:
					{
					if ( yywrap( ) )
						return 0;

					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
#ifdef __cplusplus
					return yyinput();
#else
					return input();
#endif
					}

				case EOB_ACT_CONTINUE_SCAN:
					(yy_c_buf_p) = (yytext_ptr) + offset;
					break;
				}
			}
		}

	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
	*(yy_c_buf_p) = '\0';	/* preserve yytext */
	(yy_hold_char) = *++(yy_c_buf_p);

	return c;
}
#endif	/* ifndef YY_NO_INPUT */

/** Immediately switch to a different input stream.
 * @param input_file A readable stream.
 * 
 * @note This function does not reset the start condition to @c INITIAL .
 */
    void yyrestart  (FILE * input_file )
{
    
	if ( ! YY_CURRENT_BUFFER ){
        yyensure_buffer_stack ();
		YY_CURRENT_BUFFER_LVALUE =
            yy_create_buffer(yyin,YY_BUF_SIZE );
	}

	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
	yy_load_buffer_state( );
}

/** Switch to a different input buffer.
 * @param new_buffer The new input buffer.
 * 
 */
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
{
    
	/* TODO. We should be able to replace this entire function body
	 * with
	 *		yypop_buffer_state();
	 *		yypush_buffer_state(new_buffer);
     */
	yyensure_buffer_stack ();
	if ( YY_CURRENT_BUFFER == new_buffer )
		return;

	if ( YY_CURRENT_BUFFER )
		{
		/* Flush out information for old buffer. */
		*(yy_c_buf_p) = (yy_hold_char);
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	YY_CURRENT_BUFFER_LVALUE = new_buffer;
	yy_load_buffer_state( );

	/* We don't actually know whether we did this switch during
	 * EOF (yywrap()) processing, but the only time this flag
	 * is looked at is after yywrap() is called, so it's safe
	 * to go ahead and always set it.
	 */
	(yy_did_buffer_switch_on_eof) = 1;
}

static void yy_load_buffer_state  (void)
{
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
	(yy_hold_char) = *(yy_c_buf_p);
}

/** Allocate and initialize an input buffer state.
 * @param file A readable stream.
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 * 
 * @return the allocated buffer state.
 */
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
{
	YY_BUFFER_STATE b;
    
	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

	b->yy_buf_size = size;

	/* yy_ch_buf has to be 2 characters longer than the size given because
	 * we need to put in 2 end-of-buffer characters.
	 */
	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
	if ( ! b->yy_ch_buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

	b->yy_is_our_buffer = 1;

	yy_init_buffer(b,file );

	return b;
}

/** Destroy the buffer.
 * @param b a buffer created with yy_create_buffer()
 * 
 */
    void yy_delete_buffer (YY_BUFFER_STATE  b )
{
    
	if ( ! b )
		return;

	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;

	if ( b->yy_is_our_buffer )
		yyfree((void *) b->yy_ch_buf  );

	yyfree((void *) b  );
}

#ifndef __cplusplus
extern int isatty (int );
#endif /* __cplusplus */
    
/* Initializes or reinitializes a buffer.
 * This function is sometimes called more than once on the same buffer,
 * such as during a yyrestart() or at EOF.
 */
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )

{
	int oerrno = errno;
    
	yy_flush_buffer(b );

	b->yy_input_file = file;
	b->yy_fill_buffer = 1;

    /* If b is the current buffer, then yy_init_buffer was _probably_
     * called from yyrestart() or through yy_get_next_buffer.
     * In that case, we don't want to reset the lineno or column.
     */
    if (b != YY_CURRENT_BUFFER){
        b->yy_bs_lineno = 1;
        b->yy_bs_column = 0;
    }

        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
    
	errno = oerrno;
}

/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 * 
 */
    void yy_flush_buffer (YY_BUFFER_STATE  b )
{
    	if ( ! b )
		return;

	b->yy_n_chars = 0;

	/* We always need two end-of-buffer characters.  The first causes
	 * a transition to the end-of-buffer state.  The second causes
	 * a jam in that state.
	 */
	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;

	b->yy_buf_pos = &b->yy_ch_buf[0];

	b->yy_at_bol = 1;
	b->yy_buffer_status = YY_BUFFER_NEW;

	if ( b == YY_CURRENT_BUFFER )
		yy_load_buffer_state( );
}

/** Pushes the new state onto the stack. The new state becomes
 *  the current state. This function will allocate the stack
 *  if necessary.
 *  @param new_buffer The new state.
 *  
 */
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
    	if (new_buffer == NULL)
		return;

	yyensure_buffer_stack();

	/* This block is copied from yy_switch_to_buffer. */
	if ( YY_CURRENT_BUFFER )
		{
		/* Flush out information for old buffer. */
		*(yy_c_buf_p) = (yy_hold_char);
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	/* Only push if top exists. Otherwise, replace top. */
	if (YY_CURRENT_BUFFER)
		(yy_buffer_stack_top)++;
	YY_CURRENT_BUFFER_LVALUE = new_buffer;

	/* copied from yy_switch_to_buffer. */
	yy_load_buffer_state( );
	(yy_did_buffer_switch_on_eof) = 1;
}

/** Removes and deletes the top of the stack, if present.
 *  The next element becomes the new top.
 *  
 */
void yypop_buffer_state (void)
{
    	if (!YY_CURRENT_BUFFER)
		return;

	yy_delete_buffer(YY_CURRENT_BUFFER );
	YY_CURRENT_BUFFER_LVALUE = NULL;
	if ((yy_buffer_stack_top) > 0)
		--(yy_buffer_stack_top);

	if (YY_CURRENT_BUFFER) {
		yy_load_buffer_state( );
		(yy_did_buffer_switch_on_eof) = 1;
	}
}

/* Allocates the stack if it does not exist.
 *  Guarantees space for at least one push.
 */
static void yyensure_buffer_stack (void)
{
	yy_size_t num_to_alloc;
    
	if (!(yy_buffer_stack)) {

		/* First allocation is just for 2 elements, since we don't know if this
		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
		 * immediate realloc on the next call.
         */
		num_to_alloc = 1;
		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
								(num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
								  
		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
				
		(yy_buffer_stack_max) = num_to_alloc;
		(yy_buffer_stack_top) = 0;
		return;
	}

	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){

		/* Increase the buffer to prepare for a possible push. */
		int grow_size = 8 /* arbitrary grow size */;

		num_to_alloc = (yy_buffer_stack_max) + grow_size;
		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
								((yy_buffer_stack),
								num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );

		/* zero only the new slots.*/
		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
		(yy_buffer_stack_max) = num_to_alloc;
	}
}

/** Setup the input buffer state to scan directly from a user-specified character buffer.
 * @param base the character buffer
 * @param size the size in bytes of the character buffer
 * 
 * @return the newly allocated buffer state object. 
 */
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
{
	YY_BUFFER_STATE b;
    
	if ( size < 2 ||
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
		/* They forgot to leave room for the EOB's. */
		return 0;

	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );

	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
	b->yy_buf_pos = b->yy_ch_buf = base;
	b->yy_is_our_buffer = 0;
	b->yy_input_file = 0;
	b->yy_n_chars = b->yy_buf_size;
	b->yy_is_interactive = 0;
	b->yy_at_bol = 1;
	b->yy_fill_buffer = 0;
	b->yy_buffer_status = YY_BUFFER_NEW;

	yy_switch_to_buffer(b  );

	return b;
}

/** Setup the input buffer state to scan a string. The next call to yylex() will
 * scan from a @e copy of @a str.
 * @param yystr a NUL-terminated string to scan
 * 
 * @return the newly allocated buffer state object.
 * @note If you want to scan bytes that may contain NUL values, then use
 *       yy_scan_bytes() instead.
 */
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
{
    
	return yy_scan_bytes(yystr,strlen(yystr) );
}

/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
 * scan from a @e copy of @a bytes.
 * @param bytes the byte buffer to scan
 * @param len the number of bytes in the buffer pointed to by @a bytes.
 * 
 * @return the newly allocated buffer state object.
 */
YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n, i;
    
	/* Get memory for full buffer, including space for trailing EOB's. */
	n = _yybytes_len + 2;
	buf = (char *) yyalloc(n  );
	if ( ! buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );

	for ( i = 0; i < _yybytes_len; ++i )
		buf[i] = yybytes[i];

	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;

	b = yy_scan_buffer(buf,n );
	if ( ! b )
		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );

	/* It's okay to grow etc. this buffer, and we should throw it
	 * away when we're done.
	 */
	b->yy_is_our_buffer = 1;

	return b;
}

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

static void yy_fatal_error (yyconst char* msg )
{
    	(void) fprintf( stderr, "%s\n", msg );
	exit( YY_EXIT_FAILURE );
}

/* Redefine yyless() so it works in section 3 code. */

#undef yyless
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		yytext[yyleng] = (yy_hold_char); \
		(yy_c_buf_p) = yytext + yyless_macro_arg; \
		(yy_hold_char) = *(yy_c_buf_p); \
		*(yy_c_buf_p) = '\0'; \
		yyleng = yyless_macro_arg; \
		} \
	while ( 0 )

/* Accessor  methods (get/set functions) to struct members. */

/** Get the current line number.
 * 
 */
int yyget_lineno  (void)
{
        
    return yylineno;
}

/** Get the input stream.
 * 
 */
FILE *yyget_in  (void)
{
        return yyin;
}

/** Get the output stream.
 * 
 */
FILE *yyget_out  (void)
{
        return yyout;
}

/** Get the length of the current token.
 * 
 */
yy_size_t yyget_leng  (void)
{
        return yyleng;
}

/** Get the current token.
 * 
 */

char *yyget_text  (void)
{
        return yytext;
}

/** Set the current line number.
 * @param line_number
 * 
 */
void yyset_lineno (int  line_number )
{
    
    yylineno = line_number;
}

/** Set the input stream. This does not discard the current
 * input buffer.
 * @param in_str A readable stream.
 * 
 * @see yy_switch_to_buffer
 */
void yyset_in (FILE *  in_str )
{
        yyin = in_str ;
}

void yyset_out (FILE *  out_str )
{
        yyout = out_str ;
}

int yyget_debug  (void)
{
        return yy_flex_debug;
}

void yyset_debug (int  bdebug )
{
        yy_flex_debug = bdebug ;
}

static int yy_init_globals (void)
{
        /* Initialization is the same as for the non-reentrant scanner.
     * This function is called from yylex_destroy(), so don't allocate here.
     */

    (yy_buffer_stack) = 0;
    (yy_buffer_stack_top) = 0;
    (yy_buffer_stack_max) = 0;
    (yy_c_buf_p) = (char *) 0;
    (yy_init) = 0;
    (yy_start) = 0;

/* Defined in main.c */
#ifdef YY_STDINIT
    yyin = stdin;
    yyout = stdout;
#else
    yyin = (FILE *) 0;
    yyout = (FILE *) 0;
#endif

    /* For future reference: Set errno on error, since we are called by
     * yylex_init()
     */
    return 0;
}

/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy  (void)
{
    
    /* Pop the buffer stack, destroying each element. */
	while(YY_CURRENT_BUFFER){
		yy_delete_buffer(YY_CURRENT_BUFFER  );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		yypop_buffer_state();
	}

	/* Destroy the stack itself. */
	yyfree((yy_buffer_stack) );
	(yy_buffer_stack) = NULL;

    /* Reset the globals. This is important in a non-reentrant scanner so the next time
     * yylex() is called, initialization will occur. */
    yy_init_globals( );

    return 0;
}

/*
 * Internal utility routines.
 */

#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
	register int i;
	for ( i = 0; i < n; ++i )
		s1[i] = s2[i];
}
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * s )
{
	register int n;
	for ( n = 0; s[n]; ++n )
		;

	return n;
}
#endif

void *yyalloc (yy_size_t  size )
{
	return (void *) malloc( size );
}

void *yyrealloc  (void * ptr, yy_size_t  size )
{
	/* The cast to (char *) in the following accommodates both
	 * implementations that use char* generic pointers, and those
	 * that use void* generic pointers.  It works with the latter
	 * because both ANSI C and C++ allow castless assignment from
	 * any pointer type to void*, and deal with argument conversions
	 * as though doing an assignment.
	 */
	return (void *) realloc( (char *) ptr, size );
}

void yyfree (void * ptr )
{
	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
}

#define YYTABLES_NAME "yytables"

#line 475 "ldlex.l"




/* Switch flex to reading script file NAME, open on FILE,
   saving the current input info on the include stack.  */

void
lex_push_file (FILE *file, const char *name, unsigned int sysrooted)
{
  if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
    {
      einfo ("%F:includes nested too deeply\n");
    }
  file_name_stack[include_stack_ptr] = name;
  lineno_stack[include_stack_ptr] = lineno;
  sysrooted_stack[include_stack_ptr] = input_flags.sysrooted;
  include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;

  include_stack_ptr++;
  lineno = 1;
  input_flags.sysrooted = sysrooted;
  yyin = file;
  yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE));
}

/* Return a newly created flex input buffer containing STRING,
   which is SIZE bytes long.  */

static YY_BUFFER_STATE
yy_create_string_buffer (const char *string, size_t size)
{
  YY_BUFFER_STATE b;

  /* Calls to m-alloc get turned by sed into xm-alloc.  */
  b = malloc (sizeof (struct yy_buffer_state));
  b->yy_input_file = 0;
  b->yy_buf_size = size;

  /* yy_ch_buf has to be 2 characters longer than the size given because
     we need to put in 2 end-of-buffer characters.  */
  b->yy_ch_buf = malloc ((unsigned) (b->yy_buf_size + 3));

  b->yy_ch_buf[0] = '\n';
  strcpy (b->yy_ch_buf+1, string);
  b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR;
  b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR;
  b->yy_n_chars = size+1;
  b->yy_buf_pos = &b->yy_ch_buf[1];

  b->yy_is_our_buffer = 1;
  b->yy_is_interactive = 0;
  b->yy_at_bol = 1;
  b->yy_fill_buffer = 0;

  /* flex 2.4.7 changed the interface.  FIXME: We should not be using
     a flex internal interface in the first place!  */
#ifdef YY_BUFFER_NEW
  b->yy_buffer_status = YY_BUFFER_NEW;
#else
  b->yy_eof_status = EOF_NOT_SEEN;
#endif

  return b;
}

/* Switch flex to reading from STRING, saving the current input info
   on the include stack.  */

void
lex_redirect (const char *string, const char *fake_filename, unsigned int count)
{
  YY_BUFFER_STATE tmp;

  yy_init = 0;
  if (include_stack_ptr >= MAX_INCLUDE_DEPTH)
    {
      einfo("%F: macros nested too deeply\n");
    }
  file_name_stack[include_stack_ptr] = fake_filename;
  lineno_stack[include_stack_ptr] = lineno;
  include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  include_stack_ptr++;
  lineno = count;
  tmp = yy_create_string_buffer (string, strlen (string));
  yy_switch_to_buffer (tmp);
}

/* Functions to switch to a different flex start condition,
   saving the current start condition on `state_stack'.  */

static int state_stack[MAX_INCLUDE_DEPTH * 2];
static int *state_stack_p = state_stack;

void
ldlex_script (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (SCRIPT);
}

void
ldlex_inputlist (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (INPUTLIST);
}

void
ldlex_mri_script (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (MRI);
}

void
ldlex_version_script (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (VERS_START);
}

void
ldlex_version_file (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (VERS_SCRIPT);
}

void
ldlex_defsym (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (DEFSYMEXP);
}

void
ldlex_expression (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (EXPRESSION);
}

void
ldlex_both (void)
{
  *(state_stack_p)++ = yy_start;
  BEGIN (BOTH);
}

void
ldlex_popstate (void)
{
  yy_start = *(--state_stack_p);
}

/* Return the current file name, or the previous file if no file is
   current.  */

const char*
ldlex_filename (void)
{
  return file_name_stack[include_stack_ptr - (include_stack_ptr != 0)];
}


/* Place up to MAX_SIZE characters in BUF and return
   either the number of characters read, or 0 to indicate EOF.  */

static int
yy_input (char *buf, int max_size)
{
  int result = 0;
  if (YY_CURRENT_BUFFER->yy_input_file)
    {
      if (yyin)
	{
	  result = fread (buf, 1, max_size, yyin);
	  if (result < max_size && ferror (yyin))
	    einfo ("%F%P: read in flex scanner failed\n");
	}
    }
  return result;
}

/* Eat the rest of a C-style comment.  */

static void
comment (void)
{
  int c;

  while (1)
  {
    c = input();
    while (c != '*' && c != EOF)
    {
      if (c == '\n')
	lineno++;
      c = input();
    }

    if (c == '*')
    {
      c = input();
      while (c == '*')
       c = input();
      if (c == '/')
       break;			/* found the end */
    }

    if (c == '\n')
      lineno++;

    if (c == EOF)
    {
      einfo( "%F%P: EOF in comment\n");
      break;
    }
  }
}

/* Warn the user about a garbage character WHAT in the input
   in context WHERE.  */

static void
lex_warn_invalid (char *where, char *what)
{
  char buf[5];

  /* If we have found an input file whose format we do not recognize,
     and we are therefore treating it as a linker script, and we find
     an invalid character, then most likely this is a real object file
     of some different format.  Treat it as such.  */
  if (ldfile_assumed_script)
    {
      bfd_set_error (bfd_error_file_not_recognized);
      einfo ("%F%s: file not recognized: %E\n", ldlex_filename ());
    }

  if (! ISPRINT (*what))
    {
      sprintf (buf, "\\%03o", *(unsigned char *) what);
      what = buf;
    }

  einfo ("%P:%S: ignoring invalid character `%s'%s\n", NULL, what, where);
}

