#define yy_create_buffer Config_create_buffer
#define yy_delete_buffer Config_delete_buffer
#define yy_scan_buffer Config_scan_buffer
#define yy_scan_string Config_scan_string
#define yy_scan_bytes Config_scan_bytes
#define yy_flex_debug Config_flex_debug
#define yy_init_buffer Config_init_buffer
#define yy_flush_buffer Config_flush_buffer
#define yy_load_buffer_state Config_load_buffer_state
#define yy_switch_to_buffer Config_switch_to_buffer
#define yyin Configin
#define yyleng Configleng
#define yylex Configlex
#define yyout Configout
#define yyrestart Configrestart
#define yytext Configtext

#line 19 "ConfigLexer.cpp"
/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header$
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>
#include <unistd.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif


#ifdef __cplusplus

#include <stdlib.h>

/* Use prototypes in function declarations. */
#define YY_USE_PROTOS

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

#else	/* ! __cplusplus */

#if __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

#endif	/* __STDC__ */
#endif	/* ! __cplusplus */

#ifdef __TURBOC__
 #pragma warn -rch
 #pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif

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


#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#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. */
#define YY_BUF_SIZE (16384*64)

typedef struct yy_buffer_state *YY_BUFFER_STATE;

extern int yyleng;
extern FILE *yyin, *yyout;

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

/* The funky do-while in the following #define is used to turn the definition
 * int a single C statement (which needs a semi-colon terminator).  This
 * avoids problems with code like:
 *
 * 	if ( condition_holds )
 *		yyless( 5 );
 *	else
 *		do_something_else();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the yyless() call.
 */

/* Return all but the first 'n' matched characters back to the input stream. */

#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
		*yy_cp = yy_hold_char; \
		YY_RESTORE_YY_MORE_OFFSET \
		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

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

/* The following is because we cannot portably get our hands on size_t
 * (without autoconf's help, which isn't available because we want
 * flex-generated scanners to compile on their own).
 */
typedef unsigned int yy_size_t;


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.
	 */
	int 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;

	/* 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
	};

static YY_BUFFER_STATE yy_current_buffer = 0;

/* 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".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;

static int yy_n_chars;		/* number of characters read into yy_ch_buf */


int yyleng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1;		/* 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 YY_PROTO(( FILE *input_file ));

void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )

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

static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));

#define yy_new_buffer yy_create_buffer

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

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

#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)


#define yywrap() 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
extern char *yytext;
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO(( 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 = (int) (yy_cp - yy_bp); \
	yy_hold_char = *yy_cp; \
	*yy_cp = '\0'; \
	yy_c_buf_p = yy_cp;

#define YY_NUM_RULES 55
#define YY_END_OF_BUFFER 56
static yyconst short int yy_accept[411] =
    {   0,
        1,    1,   56,   55,    1,    4,   55,   55,   55,   52,
       52,    6,    5,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,    1,    4,
        0,   53,    0,    2,    0,   54,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   49,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   51,   52,   52,   50,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,    3,    0,   52,   52,   52,   52,   52,

       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   48,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   29,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,    8,    9,   52,   52,   10,

       11,   12,   13,   14,   15,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   39,   40,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   26,   52,   28,   52,
       52,   52,   32,   52,   52,   52,   52,   43,   52,   52,
       52,   52,   52,   52,   52,   25,   52,   21,   52,   52,

       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   46,   47,   52,   45,   30,
       52,   52,   52,   52,   41,   52,   52,   52,   52,   52,
       52,   17,   52,   52,   52,   52,   52,   52,   52,   52,
        7,   52,   52,   52,   52,   52,   52,   27,   31,   52,
       52,   52,   42,   52,   52,   52,   52,   52,   52,   52,
       18,   52,   52,   52,   52,   52,   52,   37,   52,   35,
       52,   52,   36,   44,   24,   22,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       23,   19,   52,   52,   52,   52,   52,   52,   52,   52,

       52,   52,   52,   52,   33,   20,   16,   38,   34,    0
    } ;

static yyconst int yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    1,    5,    6,    1,    7,    1,    1,    1,
        1,    1,    8,    8,    8,    9,    8,    8,   10,   11,
       12,   13,   14,    8,    8,    8,    8,    8,    1,    1,
       15,    1,    1,   16,   17,   18,   19,   20,   21,   22,
       23,   24,   25,   24,   26,   27,   28,   29,   30,   31,
       32,   33,   34,   35,   36,   37,   38,   24,   39,   40,
        1,   41,    1,    1,    8,    1,   42,   43,   44,   45,

       46,   47,   48,   49,   50,   24,   51,   52,   53,   54,
       55,   56,   57,   58,   59,   60,   61,   62,   24,   63,
       64,   65,    1,    8,    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,    1,    1
    } ;

static yyconst int yy_meta[66] =
    {   0,
        1,    1,    1,    1,    1,    1,    2,    3,    1,    3,
        3,    3,    3,    3,    1,    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
    } ;

static yyconst short int yy_base[415] =
    {   0,
        0,    0,  728, 3250,  725, 3250,  723,  719,   63,   61,
        0, 3250, 3250,   36,   61,   46,   65,   67,   80,   83,
       57,   72,   91,  105,  106,   75,  659,   84,  659,  671,
       41,   39,   82,  654,  665,  651,  662,  661,  704, 3250,
      700, 3250,   82, 3250,  701, 3250,    0,  146,  181,  216,
      251,  303,  347,  387,  422,  470,  516,  571,  625,  669,
      106,  644,    0,  667,  641,  672,  646,  671,  645,  667,
       69,  641,   88,  666,    0,  640,  670,    0,  656,  655,
      642,  628,  627,  665,  638,  646,  617,  128,  104,  640,
      614,  637,  611, 3250,  666,   88,  608,  612,  612,  609,

      107,  609,  614,  600,  599,  612,  600,  113,  598,  596,
      709,  759,  809,  851,  899,  940,  990, 1028, 1065, 1121,
     1175, 1229, 1265, 1317, 1364,    0,  633,  607,  631,  605,
      622,  596,  614,  588,  623,  611,  618,  595,  583,  589,
      613,  584,  156,  598,  165,  572,  596,  595,  589,  563,
      594,  601,  567,  574,  585,  559,  571,  570,  562,  555,
      565,  552,  559,  563,  188,  552,  551,  545,  551,  558,
      544, 1416, 1470, 1524, 1577, 1616, 1669, 3250, 1723, 1769,
     1822,  196,  237, 1869, 1923, 1965, 2005,  574,  548,  581,
      555,  581,  555,  575,  549,    0,    0,  573,  546,    0,

        0,    0,    0,    0,    0,  563,  554,  536,  527,  553,
      518,  550,  524,  539,  512,  545,  519,  508,  514,  514,
      508,  502,  492,  483,  483,  485,  466,  469, 2042, 2095,
      261, 2148,  277, 2192, 2245, 2298,  287, 2342, 3250, 3250,
     2384, 2437,  323, 2477,  499,  465,  477,  450,  470,  435,
      446,  417,  449,  437,  421,  409,  429,  398,  417,  389,
      414,  385,  401,  372,  383,  370,  369,  356,  363,  351,
      355,  351,  356,  352,  335,  361, 3250, 2526, 3250,  371,
      408, 2578, 3250, 2630, 2668,  432, 2725, 3250, 2779,  379,
      353,  384,  351,  372,  346,    0,  350,    0,  324,  367,

      336,  349,  321,  349,  323,  333,  302,  300,  305,  296,
      275,  294,  286,  287,  273, 3250, 3250,  444, 3250, 3250,
      454,  480, 2832, 2870, 3250,  490, 2927,  151,  150,  305,
      279,    0,  303,  277,  301,  275,  300,  267,  273,  247,
        0,  167,  260,  258,  240,  238,  222, 3250, 3250,  126,
     2967,  502, 3250,  526,  248,  222,  243,  208,  226,  197,
        0,  150,  170,  197,  196,  193,  187, 3250,  189, 3250,
     3006, 3058, 3250, 3250,    0,    0,  206,  180,  202,  202,
      162,  162,  160,  159,  159,  144, 3102, 3140,  213,  224,
        0,    0,  250,  127, 3192,  539,  151,  151,  124,  115,

      104,   74,   89,  552, 3250,    0,    0, 3250, 3250, 3250,
     3241, 3244, 3246,   85
    } ;

static yyconst short int yy_def[415] =
    {   0,
      410,    1,  410,  410,  410,  410,  410,  411,  412,  413,
      414,  410,  410,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  410,  410,
      411,  410,  412,  410,  410,  410,  414,  413,  413,  413,
      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  410,  410,  414,  414,  414,  414,  414,

      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
      413,  413,  413,  413,  413,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  413,  413,  413,  413,  413,  413,  410,  413,  413,
      413,  413,  413,  413,  413,  413,  413,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,

      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  413,  413,
      413,  413,  413,  413,  413,  413,  413,  413,  410,  410,
      413,  413,  413,  413,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  413,  413,  410,  413,  410,  413,
      413,  413,  410,  413,  413,  413,  413,  410,  413,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,

      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  410,  410,  413,  410,  410,
      413,  413,  413,  413,  410,  413,  413,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  410,  410,  414,
      413,  413,  410,  413,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  414,  410,  414,  410,
      413,  413,  410,  410,  414,  414,  414,  414,  414,  414,
      414,  414,  414,  414,  414,  414,  413,  413,  414,  414,
      414,  414,  414,  414,  413,  413,  414,  414,  414,  414,

      414,  414,  414,  413,  410,  414,  414,  410,  410,    0,
      410,  410,  410,  410
    } ;

static yyconst short int yy_nxt[3316] =
    {   0,
        4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
       11,   11,   11,   11,   13,    4,   14,   15,   16,   11,
       11,   17,   11,   11,   11,   11,   18,   11,   19,   20,
       21,   11,   22,   11,   23,   11,   24,   11,   25,   11,
       26,   27,   28,   29,   11,   11,   30,   11,   11,   11,
       11,   31,   11,   32,   33,   34,   11,   35,   11,   36,
       11,   37,   11,   38,   11,   44,   45,   46,   47,   61,
       47,   47,   47,   47,   47,   66,   47,   94,   95,   63,
      102,   68,  100,   70,   44,   45,  136,   47,   49,   84,
      101,   71,   86,   75,   62,  408,   74,  137,   50,   64,

       67,   47,   51,   52,   77,   53,   69,   54,   72,   75,
       55,   78,   56,   79,   85,   57,   73,   87,   80,   58,
       59,   76,   60,   88,   65,   90,   92,   63,  103,   81,
      139,  407,  368,  126,   75,   78,   78,  104,   82,  127,
      126,  140,  105,   83,  151,  153,  157,   97,   89,  162,
       91,   93,   46,   47,  169,   47,   47,   47,   47,   47,
      163,   47,  406,  152,  154,  201,  202,  203,  204,  205,
      379,  355,  407,  170,  201,  202,  203,  204,  205,  380,
      206,  369,  406,  407,  406,  403,   47,   46,   47,  126,
       47,   47,   47,   47,   47,  356,   47,  201,  202,  203,

      204,  205,  239,   47,  394,   47,   47,   47,   47,   47,
      111,   47,  364,  126,  208,  381,  392,  391,  393,  392,
      391,   47,   46,   47,  382,   47,   47,   47,   47,   47,
      126,   47,  384,  397,  392,  391,   47,  223,  390,  389,
      386,  385,  398,  240,   47,  112,   47,   47,   47,   47,
       47,  383,   47,  376,  375,  378,   47,   46,   47,  377,
       47,   47,   47,   47,   47,  376,   47,  277,   47,  399,
       47,   47,   47,   47,   47,  376,   47,   47,  400,  375,
      375,  367,  361,  279,   47,  366,   47,   47,   47,   47,
       47,   47,   47,  283,   47,  401,   47,   47,   47,   47,

       47,   47,   47,  365,  402,   63,  363,  362,  113,   46,
       47,  361,   47,   47,   47,   47,   47,   47,   47,  361,
      360,  359,  358,  357,   63,   63,  341,   47,  347,  288,
       47,  346,   47,   47,   47,   47,   47,  345,   47,  344,
      332,  316,   47,   47,   47,   47,   47,   47,   47,  343,
       47,  342,  114,   46,   47,  341,   47,   47,   47,   47,
       47,  341,   47,   47,  340,  339,  338,  317,   47,  337,
       47,   47,   47,   47,   47,   47,   47,  319,   47,  336,
       47,   47,   47,   47,   47,  335,   47,   47,  334,  333,
      332,  332,  115,   46,   47,  331,   47,   47,   47,   47,

       47,   47,   47,  330,  329,  328,  315,  314,  313,  312,
      298,   47,  311,  296,  320,   47,  116,   47,   47,   47,
       47,   47,  310,   47,  309,  308,  307,   47,   46,   47,
      306,   47,   47,   47,   47,   47,  305,   47,  325,   47,
      304,   47,   47,   47,   47,   47,  303,   47,   47,  302,
      348,   47,  301,   47,   47,   47,   47,   47,  300,   47,
      349,   47,   47,   47,   47,   47,   47,   47,  298,   47,
      299,  298,   47,  297,  296,  117,   46,   47,  296,   47,
       47,   47,   47,   47,   47,   47,   46,   47,  295,  350,
       47,   47,   47,   47,   47,   47,  353,   47,  294,   47,

       47,   47,   47,   47,  293,   47,  292,  291,  373,   47,
       47,   47,   47,   47,   47,   47,  290,   47,  274,  118,
       47,  119,   46,   47,  273,   47,   47,   47,   47,   47,
       47,   47,  374,   47,  272,   47,   47,   47,   47,   47,
      271,   47,   47,  270,  269,  405,   47,  268,   47,   47,
       47,   47,   47,   75,   47,  267,   47,  266,  409,   47,
      265,   47,   47,   47,   47,   47,   47,   47,  264,  263,
      262,  120,  261,  260,  259,  258,  121,   46,   47,   47,
       47,   47,   47,   47,   47,  257,   47,  256,  255,  254,
      253,  252,   47,  251,   75,   75,  250,  249,  248,  247,

      246,  245,  228,   78,  227,  226,  225,  224,  200,  222,
      197,   47,  196,  221,  220,  219,  218,  217,  216,   78,
      215,   78,  214,  213,  212,  211,  210,  209,  207,  200,
      122,   46,   47,  200,   47,   47,   47,   47,   47,  199,
       47,  197,  196,  198,  197,  196,  195,  194,  193,  192,
      191,  190,  189,  188,   78,  171,  168,  167,  166,  165,
       75,  164,  161,  160,  159,   47,  123,  158,   94,   78,
       78,  156,  155,  150,  124,   46,   47,  149,   47,   47,
       47,   47,   47,  148,   47,  147,  146,  145,   75,  144,
      143,   75,  142,  141,  138,  135,  134,  133,  132,  131,

      130,  129,  128,   44,   42,   39,  110,  109,  108,   47,
      107,  106,   99,   98,  125,   46,   47,   96,   47,   47,
       47,   47,   47,   42,   47,   40,   39,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  172,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  173,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  410,  174,   46,   47,  410,
       47,   47,   47,   47,   47,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  175,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  176,   46,   47,  410,   47,
       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  177,  178,   47,  410,   47,

       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  179,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,
      180,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  181,   46,   47,  410,
       47,   47,   47,   47,   47,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      182,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  183,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      184,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  185,   46,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  186,
       46,   47,  410,   47,   47,   47,   47,   47,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  187,   46,   47,  410,   47,   47,   47,   47,   47,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  229,   46,   47,  410,   47,
       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  230,
       46,   47,  410,   47,   47,   47,   47,   47,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  231,   46,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,   47,  410,  410,
      410,  232,   46,   47,  410,   47,   47,   47,   47,   47,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  233,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  234,   46,
       47,  410,   47,   47,   47,   47,   47,  410,   47,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  235,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  236,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  237,   46,   47,
      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  238,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  241,   46,
       47,  410,   47,   47,   47,   47,   47,  410,   47,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,   47,  410,  410,  410,  410,  410,  410,
      242,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      243,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,   47,  410,  244,   46,   47,
      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      275,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  276,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,
      410,  410,  410,  410,  410,  410,  410,  278,   46,   47,

      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      280,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  281,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,
      410,  410,  410,  410,  410,  410,  410,  282,   46,   47,
      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  284,  410,  410,  410,  285,
       46,   47,  410,   47,   47,   47,   47,   47,  410,   47,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,   47,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  286,   46,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,   47,  410,  410,
      410,  410,  287,   46,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  289,   46,   47,  410,   47,   47,   47,   47,   47,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  318,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  321,   46,   47,  410,   47,
       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  322,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,
      410,  323,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      324,   46,   47,  410,   47,   47,   47,   47,   47,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  326,   46,   47,  410,   47,   47,
       47,   47,   47,  410,   47,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,   47,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  327,   46,   47,
      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  351,   46,   47,  410,   47,
       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  352,   46,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,   47,  410,  410,
      410,  410,  354,  370,   47,  410,   47,   47,   47,   47,
       47,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,   47,  371,  410,
      410,  372,   46,   47,  410,   47,   47,   47,   47,   47,
      410,   47,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,   47,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  387,   46,   47,  410,   47,   47,   47,
       47,   47,  410,   47,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,   47,  410,

      410,  410,  410,  410,  410,  410,  410,  388,   46,   47,
      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  395,   46,   47,  410,   47,
       47,   47,   47,   47,  410,   47,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
       47,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  396,   46,   47,

      410,   47,   47,   47,   47,   47,  410,   47,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,   47,  410,  410,  410,  410,  410,  410,  410,
      404,   41,   41,   41,   43,   43,   43,   48,   48,    3,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410
    } ;

static yyconst short int yy_chk[3316] =
    {   0,
        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,    9,    9,   10,   10,   14,
       10,   10,   10,   10,   10,   16,   10,   26,   26,   15,
       32,   17,   31,   18,   43,   43,   71,  414,   10,   21,
       31,   18,   22,   32,   14,  403,   19,   71,   10,   15,

       16,   10,   10,   10,   20,   10,   17,   10,   18,   19,
       10,   20,   10,   20,   21,   10,   18,   22,   20,   10,
       10,   19,   10,   23,   15,   24,   25,   28,   33,   20,
       73,  402,  350,   61,   19,   33,   20,   33,   20,   61,
       96,   73,   33,   20,   88,   89,   96,   28,   23,  101,
       24,   25,   48,   48,  108,   48,   48,   48,   48,   48,
      101,   48,  401,   88,   89,  143,  143,  143,  143,  143,
      362,  328,  400,  108,  145,  145,  145,  145,  145,  362,
      143,  350,  399,  398,  397,  394,   48,   49,   49,  328,
       49,   49,   49,   49,   49,  329,   49,  165,  165,  165,

      165,  165,  182,  182,  386,  182,  182,  182,  182,  182,
       49,  182,  342,  329,  145,  363,  385,  384,  383,  382,
      381,   49,   50,   50,  363,   50,   50,   50,   50,   50,
      342,   50,  367,  389,  380,  379,  182,  165,  378,  377,
      369,  367,  389,  183,  183,   50,  183,  183,  183,  183,
      183,  366,  183,  365,  364,  360,   50,   51,   51,  359,
       51,   51,   51,   51,   51,  358,   51,  231,  231,  390,
      231,  231,  231,  231,  231,  357,  231,  183,  390,  356,
      355,  347,  346,  233,  233,  345,  233,  233,  233,  233,
      233,   51,  233,  237,  237,  393,  237,  237,  237,  237,

      237,  231,  237,  344,  393,  343,  340,  339,   51,   52,
       52,  338,   52,   52,   52,   52,   52,  233,   52,  337,
      336,  335,  334,  333,  331,  330,  315,  237,  314,  243,
      243,  313,  243,  243,  243,  243,  243,  312,  243,  311,
      310,  275,  275,   52,  275,  275,  275,  275,  275,  309,
      275,  308,   52,   53,   53,  307,   53,   53,   53,   53,
       53,  306,   53,  243,  305,  304,  303,  276,  276,  302,
      276,  276,  276,  276,  276,  275,  276,  280,  280,  301,
      280,  280,  280,  280,  280,  300,  280,   53,  299,  297,
      295,  294,   53,   54,   54,  293,   54,   54,   54,   54,

       54,  276,   54,  292,  291,  290,  274,  273,  272,  271,
      270,  280,  269,  268,  281,  281,   54,  281,  281,  281,
      281,  281,  267,  281,  266,  265,  264,   54,   55,   55,
      263,   55,   55,   55,   55,   55,  262,   55,  286,  286,
      261,  286,  286,  286,  286,  286,  260,  286,  281,  259,
      318,  318,  258,  318,  318,  318,  318,  318,  257,  318,
      321,  321,   55,  321,  321,  321,  321,  321,  256,  321,
      255,  254,  286,  253,  252,   55,   56,   56,  251,   56,
       56,   56,   56,   56,  318,   56,  322,  322,  250,  322,
      322,  322,  322,  322,  321,  322,  326,  326,  249,  326,

      326,  326,  326,  326,  248,  326,  247,  246,  352,  352,
       56,  352,  352,  352,  352,  352,  245,  352,  228,   56,
      322,   56,   57,   57,  227,   57,   57,   57,   57,   57,
      326,   57,  354,  354,  226,  354,  354,  354,  354,  354,
      225,  354,  352,  224,  223,  396,  396,  222,  396,  396,
      396,  396,  396,  221,  396,  220,   57,  219,  404,  404,
      218,  404,  404,  404,  404,  404,  354,  404,  217,  216,
      215,   57,  214,  213,  212,  211,   57,   58,   58,  396,
       58,   58,   58,   58,   58,  210,   58,  209,  208,  207,
      206,  199,  404,  198,  195,  194,  193,  192,  191,  190,

      189,  188,  171,  170,  169,  168,  167,  166,  164,  163,
      162,   58,  161,  160,  159,  158,  157,  156,  155,  154,
      153,  152,  151,  150,  149,  148,  147,  146,  144,  142,
       58,   59,   59,  141,   59,   59,   59,   59,   59,  140,
       59,  139,  138,  137,  136,  135,  134,  133,  132,  131,
      130,  129,  128,  127,  110,  109,  107,  106,  105,  104,
      103,  102,  100,   99,   98,   59,   59,   97,   95,   93,
       92,   91,   90,   87,   59,   60,   60,   86,   60,   60,
       60,   60,   60,   85,   60,   84,   83,   82,   81,   80,
       79,   77,   76,   74,   72,   70,   69,   68,   67,   66,

       65,   64,   62,   45,   41,   39,   38,   37,   36,   60,
       35,   34,   30,   29,   60,  111,  111,   27,  111,  111,
      111,  111,  111,    8,  111,    7,    5,    3,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  111,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  111,  112,  112,    0,  112,  112,
      112,  112,  112,    0,  112,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  112,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  112,  113,  113,    0,  113,  113,
      113,  113,  113,    0,  113,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  113,
        0,    0,    0,    0,    0,    0,  113,  114,  114,    0,
      114,  114,  114,  114,  114,    0,  114,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  114,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,  114,  115,  115,    0,  115,  115,
      115,  115,  115,    0,  115,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  115,
        0,    0,    0,    0,    0,  115,  116,  116,    0,  116,
      116,  116,  116,  116,    0,  116,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      116,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  116,  117,  117,    0,  117,

      117,  117,  117,  117,    0,  117,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      117,    0,    0,  117,  118,  118,    0,  118,  118,  118,
      118,  118,    0,  118,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
      118,  119,  119,    0,  119,  119,  119,  119,  119,    0,
      119,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,  119,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  119,  120,  120,    0,
      120,  120,  120,  120,  120,    0,  120,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  120,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      120,  121,  121,    0,  121,  121,  121,  121,  121,    0,
      121,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  121,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  121,  122,  122,    0,  122,  122,
      122,  122,  122,    0,  122,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  122,
      122,  123,  123,    0,  123,  123,  123,  123,  123,    0,
      123,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,  123,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  123,  124,  124,    0,  124,  124,  124,  124,
      124,    0,  124,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  124,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  124,
      125,  125,    0,  125,  125,  125,  125,  125,    0,  125,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,  125,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  125,  172,  172,    0,  172,  172,  172,  172,  172,
        0,  172,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  172,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  172,  173,  173,    0,  173,
      173,  173,  173,  173,    0,  173,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      173,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
      174,  174,    0,  174,  174,  174,  174,  174,    0,  174,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  174,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  174,  175,  175,    0,  175,  175,  175,  175,
      175,    0,  175,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  175,    0,    0,
        0,  175,  176,  176,    0,  176,  176,  176,  176,  176,
        0,  176,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  176,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  176,  177,  177,    0,  177,  177,
      177,  177,  177,    0,  177,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,  177,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  177,  179,
      179,    0,  179,  179,  179,  179,  179,    0,  179,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  179,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  179,  180,  180,    0,  180,  180,
      180,  180,  180,    0,  180,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,  180,
        0,    0,    0,  180,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  180,  181,  181,
        0,  181,  181,  181,  181,  181,    0,  181,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  181,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  181,  184,  184,    0,  184,  184,
      184,  184,  184,    0,  184,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,  184,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  184,  185,
      185,    0,  185,  185,  185,  185,  185,    0,  185,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  185,    0,    0,    0,    0,    0,    0,
      185,  186,  186,    0,  186,  186,  186,  186,  186,    0,
      186,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,  186,    0,    0,    0,    0,
      186,  187,  187,    0,  187,  187,  187,  187,  187,    0,
      187,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  187,    0,  187,  229,  229,
        0,  229,  229,  229,  229,  229,    0,  229,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  229,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

      229,  230,  230,    0,  230,  230,  230,  230,  230,    0,
      230,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  230,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  230,  232,  232,    0,  232,  232,  232,
      232,  232,    0,  232,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  232,    0,
        0,    0,    0,    0,    0,    0,    0,  232,  234,  234,

        0,  234,  234,  234,  234,  234,    0,  234,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  234,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      234,  235,  235,    0,  235,  235,  235,  235,  235,    0,
      235,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  235,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,  235,  236,  236,    0,  236,  236,  236,
      236,  236,    0,  236,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  236,    0,
        0,    0,    0,    0,    0,    0,    0,  236,  238,  238,
        0,  238,  238,  238,  238,  238,    0,  238,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  238,    0,    0,  238,    0,    0,    0,  238,
      241,  241,    0,  241,  241,  241,  241,  241,    0,  241,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  241,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  241,  242,  242,    0,  242,  242,  242,  242,
      242,    0,  242,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  242,    0,    0,
        0,    0,  242,  244,  244,    0,  244,  244,  244,  244,
      244,    0,  244,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  244,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,  244,  278,  278,    0,  278,  278,  278,  278,  278,
        0,  278,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  278,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  278,  282,  282,    0,  282,  282,  282,
      282,  282,    0,  282,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  282,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  282,  284,  284,    0,  284,
      284,  284,  284,  284,    0,  284,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      284,    0,    0,  284,  285,  285,    0,  285,  285,  285,
      285,  285,    0,  285,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,  285,    0,
        0,  285,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      285,  287,  287,    0,  287,  287,  287,  287,  287,    0,
      287,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  287,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,  287,  289,  289,    0,  289,  289,
      289,  289,  289,    0,  289,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,  289,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  289,  323,  323,
        0,  323,  323,  323,  323,  323,    0,  323,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  323,    0,    0,  323,  324,  324,    0,  324,
      324,  324,  324,  324,    0,  324,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      324,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  324,  327,  327,    0,  327,  327,  327,  327,
      327,    0,  327,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  327,    0,    0,
        0,    0,  327,  351,  351,    0,  351,  351,  351,  351,
      351,    0,  351,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,

        0,    0,    0,    0,    0,    0,    0,  351,  351,    0,
        0,  351,  371,  371,    0,  371,  371,  371,  371,  371,
        0,  371,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,  371,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  371,  372,  372,    0,  372,  372,  372,
      372,  372,    0,  372,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,  372,    0,

        0,    0,    0,    0,    0,    0,    0,  372,  387,  387,
        0,  387,  387,  387,  387,  387,    0,  387,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  387,    0,    0,  387,  388,  388,    0,  388,
      388,  388,  388,  388,    0,  388,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
      388,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,  388,  395,  395,

        0,  395,  395,  395,  395,  395,    0,  395,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  395,    0,    0,    0,    0,    0,    0,    0,
      395,  411,  411,  411,  412,  412,  412,  413,  413,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,

      410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
      410,  410,  410,  410,  410
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

/* 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 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
#define INITIAL 0
/*===- ConfigLexer.l - Scanner for CompilerDriver Config Files -*- C++ -*--===//
// 
//                     The LLVM Compiler Infrastructure
//
// This file was developed by Reid Spencer and is distributed under the 
// University of Illinois Open Source License. See LICENSE.TXT for details.
// 
//===----------------------------------------------------------------------===//
//
// This file implements the flex scanner for configuration files for the
// llvmc CompilerDriver.
//
//===----------------------------------------------------------------------===*/
#define YY_NEVER_INTERACTIVE 1
#line 29 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"

#include "ConfigLexer.h"

#define YY_INPUT(buf,result,max_size) \
  { \
    assert(ConfigLexerInput != 0 && "Oops"); \
    result = ConfigLexerInput->read(buf,max_size); \
    if (result == 0 ) result = YY_NULL; \
  }

#define YY_FATAL_ERROR(msg) \
  { \
    assert(ConfigLexerInput != 0 && "Oops"); \
    ConfigLexerInput->error(msg); \
  }

#define YY_DECL ConfigLexerTokens llvm::Configlex()

#define yyterminate() { return EOFTOK; }

using namespace llvm;

inline llvm::ConfigLexerTokens 
handleNameContext(llvm::ConfigLexerTokens token) {
  ConfigLexerState.StringVal = yytext;
  if (ConfigLexerState.in_value)
    return OPTION;
  return token;
}

inline llvm::ConfigLexerTokens 
handleSubstitution(llvm::ConfigLexerTokens token) {
  if (ConfigLexerState.in_value) {
    ConfigLexerState.StringVal = yytext;
    return token;
  }
  YY_FATAL_ERROR("Substitition tokens not allowed in names" ); 
  return ERRORTOK;
};

inline llvm::ConfigLexerTokens handleValueContext(llvm::ConfigLexerTokens token) {
  ConfigLexerState.StringVal = yytext;
  if (ConfigLexerState.in_value)
    return token;
  return OPTION;
}

#line 1314 "ConfigLexer.cpp"

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

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

#ifndef YY_NO_UNPUT
static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif

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

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

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

#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#endif

#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#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 (void) 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->yy_is_interactive ) \
		{ \
		int c = '*', 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 if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
		  && ferror( yyin ) ) \
		YY_FATAL_ERROR( "input in flex scanner failed" );
#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

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

/* 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

YY_DECL
	{
	register yy_state_type yy_current_state;
	register char *yy_cp = NULL, *yy_bp = NULL;
	register int yy_act;

#line 114 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"


#line 1468 "ConfigLexer.cpp"

	if ( yy_init )
		{
		yy_init = 0;

#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 )
			yy_current_buffer =
				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 >= 411 )
					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_current_state != 410 );
		yy_cp = yy_last_accepting_cpos;
		yy_current_state = yy_last_accepting_state;

yy_find_action:
		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 116 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ if (ConfigLexerState.in_value) return SPACE; }
	YY_BREAK
case 2:
YY_RULE_SETUP
#line 118 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ /* Ignore comments */
                  ConfigLexerState.in_value = false; 
                  ConfigLexerState.lineNum++; 
                  return EOLTOK; 
                }
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 124 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ ConfigLexerState.lineNum++; 
                  /* Don't return EOLTOK! */
                }
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 128 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ ConfigLexerState.in_value = false; 
                  ConfigLexerState.lineNum++; 
                  return EOLTOK; 
                }
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 133 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ ConfigLexerState.in_value = true; 
                  return EQUALS; 
                }
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 137 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return SEPARATOR; }
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 139 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(VERSION_TOK); }
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 141 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(LANG); }
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 142 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(LIBS); }
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 143 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(NAME); }
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 144 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPT1); }
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 145 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPT2); }
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 146 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPT3); }
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 147 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPT4); }
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 148 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPT5); }
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 150 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(PREPROCESSOR); }
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 151 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(COMMAND); }
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 152 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(REQUIRED); }
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 154 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(TRANSLATOR); }
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 155 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(PREPROCESSES); }
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 156 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OUTPUT); }
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 158 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(OPTIMIZER); }
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 159 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(TRANSLATES); }
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 161 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(ASSEMBLER); }
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 163 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleNameContext(LINKER); }
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 165 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(ARGS_SUBST); }
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 166 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(BINDIR_SUBST); }      
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 167 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(DEFS_SUBST); }
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 168 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(IN_SUBST); }
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 169 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(INCLS_SUBST); }
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 170 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LIBDIR_SUBST); }
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 171 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LIBS_SUBST); }
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 172 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMGCCDIR_SUBST); }
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 173 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMGCCARCH_SUBST); }
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 174 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMGCC_SUBST); }
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 175 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMGXX_SUBST); }
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 176 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMCC1_SUBST); }
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 177 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(LLVMCC1PLUS_SUBST); }
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 178 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(OPT_SUBST); }
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 179 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(OUT_SUBST); }
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 180 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(STATS_SUBST); }
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 181 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(TARGET_SUBST); }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 182 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(TIME_SUBST); }
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 183 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(VERBOSE_SUBST); }
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 184 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(FOPTS_SUBST); }
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 185 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(MOPTS_SUBST); }
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 186 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleSubstitution(WOPTS_SUBST); }
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 188 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleValueContext(ASSEMBLY); }
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 189 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleValueContext(BYTECODE); }
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 190 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleValueContext(TRUETOK); }
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 191 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ return handleValueContext(FALSETOK); }
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 193 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ ConfigLexerState.StringVal = yytext; return OPTION; }
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 194 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ ConfigLexerState.StringVal = yytext+1;  // Nuke start quote
                  ConfigLexerState.StringVal.erase(
                  --ConfigLexerState.StringVal.end());
                  return STRING;
                }
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 199 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
{ YY_FATAL_ERROR("Invalid substitution token"); }
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 201 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"
ECHO;
	YY_BREAK
#line 1837 "ConfigLexer.cpp"
case YY_STATE_EOF(INITIAL):
	yyterminate();

	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->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->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->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->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_last_accepting_cpos;
				yy_current_state = yy_last_accepting_state;
				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->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()
	{
	register char *dest = yy_current_buffer->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->yy_ch_buf[yy_n_chars + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( yy_current_buffer->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->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->yy_n_chars = yy_n_chars = 0;

	else
		{
		int num_to_read =
			yy_current_buffer->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

			/* 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 )
				{
				int 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. */
					yy_flex_realloc( (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->yy_buf_size -
						number_to_move - 1;
#endif
			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

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

		yy_current_buffer->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->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	yy_n_chars += number_to_move;
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	yytext_ptr = &yy_current_buffer->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()
	{
	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 >= 411 )
				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 );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
	{
	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 >= 411 )
			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 == 410);

	return yy_is_jam ? 0 : yy_current_state;
	}


#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static inline void yyunput( int c, register char *yy_bp )
#else
static inline void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
	{
	register char *yy_cp = yy_c_buf_p;

	/* undo effects of setting up yytext */
	*yy_cp = yy_hold_char;

	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
		{ /* need to shift things up to make room */
		/* +2 for EOB chars. */
		register int number_to_move = yy_n_chars + 2;
		register char *dest = &yy_current_buffer->yy_ch_buf[
					yy_current_buffer->yy_buf_size + 2];
		register char *source =
				&yy_current_buffer->yy_ch_buf[number_to_move];

		while ( source > yy_current_buffer->yy_ch_buf )
			*--dest = *--source;

		yy_cp += (int) (dest - source);
		yy_bp += (int) (dest - source);
		yy_current_buffer->yy_n_chars =
			yy_n_chars = yy_current_buffer->yy_buf_size;

		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
		}

	*--yy_cp = (char) c;


	yytext_ptr = yy_bp;
	yy_hold_char = *yy_cp;
	yy_c_buf_p = yy_cp;
	}
#endif	/* ifndef YY_NO_UNPUT */


#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
static int input()
#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->yy_ch_buf[yy_n_chars] )
			/* This was really a NUL. */
			*yy_c_buf_p = '\0';

		else
			{ /* need more input */
			int 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 );

					/* fall through */

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

					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 /* YY_NO_INPUT */

#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
	{
	if ( ! yy_current_buffer )
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );

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


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
	{
	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->yy_buf_pos = yy_c_buf_p;
		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

	yy_current_buffer = 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;
	}


#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
	{
	yy_n_chars = yy_current_buffer->yy_n_chars;
	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
	yyin = yy_current_buffer->yy_input_file;
	yy_hold_char = *yy_c_buf_p;
	}


#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
	{
	YY_BUFFER_STATE b;

	b = (YY_BUFFER_STATE) yy_flex_alloc( 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 *) yy_flex_alloc( 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;
	}


#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
	{
	if ( ! b )
		return;

	if ( b == yy_current_buffer )
		yy_current_buffer = (YY_BUFFER_STATE) 0;

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

	yy_flex_free( (void *) b );
	}



#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif


	{
	yy_flush_buffer( b );

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

#if YY_ALWAYS_INTERACTIVE
	b->yy_is_interactive = 1;
#else
#if YY_NEVER_INTERACTIVE
	b->yy_is_interactive = 0;
#else
	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
	}


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#endif

	{
	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();
	}


#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
	{
	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) yy_flex_alloc( 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;
	}
#endif


#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_str;
#endif
	{
	int len;
	for ( len = 0; yy_str[len]; ++len )
		;

	return yy_scan_bytes( yy_str, len );
	}
#endif


#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *bytes;
int len;
#endif
	{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n;
	int i;

	/* Get memory for full buffer, including space for trailing EOB's. */
	n = len + 2;
	buf = (char *) yy_flex_alloc( n );
	if ( ! buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );

	for ( i = 0; i < len; ++i )
		buf[i] = bytes[i];

	buf[len] = buf[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;
	}
#endif


#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#endif
	{
	if ( yy_start_stack_ptr >= yy_start_stack_depth )
		{
		yy_size_t new_size;

		yy_start_stack_depth += YY_START_STACK_INCR;
		new_size = yy_start_stack_depth * sizeof( int );

		if ( ! yy_start_stack )
			yy_start_stack = (int *) yy_flex_alloc( new_size );

		else
			yy_start_stack = (int *) yy_flex_realloc(
					(void *) yy_start_stack, new_size );

		if ( ! yy_start_stack )
			YY_FATAL_ERROR(
			"out of memory expanding start-condition stack" );
		}

	yy_start_stack[yy_start_stack_ptr++] = YY_START;

	BEGIN(new_state);
	}
#endif


#ifndef YY_NO_POP_STATE
static void yy_pop_state()
	{
	if ( --yy_start_stack_ptr < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN(yy_start_stack[yy_start_stack_ptr]);
	}
#endif


#ifndef YY_NO_TOP_STATE
static int yy_top_state()
	{
	return yy_start_stack[yy_start_stack_ptr - 1];
	}
#endif

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
	{
	(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. */ \
		yytext[yyleng] = yy_hold_char; \
		yy_c_buf_p = yytext + n; \
		yy_hold_char = *yy_c_buf_p; \
		*yy_c_buf_p = '\0'; \
		yyleng = n; \
		} \
	while ( 0 )


/* Internal utility routines. */

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

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

	return n;
	}
#endif


#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
	{
	return (void *) malloc( size );
	}

#ifdef YY_USE_PROTOS
static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static inline void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
	{
	/* 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 );
	}

#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
	{
	free( ptr );
	}

#if YY_MAIN
int main()
	{
	yylex();
	return 0;
	}
#endif
#line 201 "/proj/llvm/build/../llvm/tools/llvmc/ConfigLexer.l"

