#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>


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


#ifdef __cplusplus

#include <stdlib.h>
#include <unistd.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 "/Users/sabre/cvs/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 "/Users/sabre/cvs/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, *yy_bp;
	register int yy_act;

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


#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;
	}


#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 );
	}


#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif

#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 "/Users/sabre/cvs/llvm/tools/llvmc/ConfigLexer.l"

