/ util / sconfig / lex.yy.c_shipped
lex.yy.c_shipped
   1  
   2  #define  YY_INT_ALIGNED short int
   3  
   4  /* A lexical scanner generated by flex */
   5  
   6  #define FLEX_SCANNER
   7  #define YY_FLEX_MAJOR_VERSION 2
   8  #define YY_FLEX_MINOR_VERSION 6
   9  #define YY_FLEX_SUBMINOR_VERSION 4
  10  #if YY_FLEX_SUBMINOR_VERSION > 0
  11  #define FLEX_BETA
  12  #endif
  13  
  14  /* First, we deal with  platform-specific or compiler-specific issues. */
  15  
  16  /* begin standard C headers. */
  17  #include <stdio.h>
  18  #include <string.h>
  19  #include <errno.h>
  20  #include <stdlib.h>
  21  
  22  /* end standard C headers. */
  23  
  24  /* flex integer type definitions */
  25  
  26  #ifndef FLEXINT_H
  27  #define FLEXINT_H
  28  
  29  /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
  30  
  31  #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  32  
  33  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  34   * if you want the limit (max/min) macros for int types. 
  35   */
  36  #ifndef __STDC_LIMIT_MACROS
  37  #define __STDC_LIMIT_MACROS 1
  38  #endif
  39  
  40  #include <inttypes.h>
  41  typedef int8_t flex_int8_t;
  42  typedef uint8_t flex_uint8_t;
  43  typedef int16_t flex_int16_t;
  44  typedef uint16_t flex_uint16_t;
  45  typedef int32_t flex_int32_t;
  46  typedef uint32_t flex_uint32_t;
  47  #else
  48  typedef signed char flex_int8_t;
  49  typedef short int flex_int16_t;
  50  typedef int flex_int32_t;
  51  typedef unsigned char flex_uint8_t; 
  52  typedef unsigned short int flex_uint16_t;
  53  typedef unsigned int flex_uint32_t;
  54  
  55  /* Limits of integral types. */
  56  #ifndef INT8_MIN
  57  #define INT8_MIN               (-128)
  58  #endif
  59  #ifndef INT16_MIN
  60  #define INT16_MIN              (-32767-1)
  61  #endif
  62  #ifndef INT32_MIN
  63  #define INT32_MIN              (-2147483647-1)
  64  #endif
  65  #ifndef INT8_MAX
  66  #define INT8_MAX               (127)
  67  #endif
  68  #ifndef INT16_MAX
  69  #define INT16_MAX              (32767)
  70  #endif
  71  #ifndef INT32_MAX
  72  #define INT32_MAX              (2147483647)
  73  #endif
  74  #ifndef UINT8_MAX
  75  #define UINT8_MAX              (255U)
  76  #endif
  77  #ifndef UINT16_MAX
  78  #define UINT16_MAX             (65535U)
  79  #endif
  80  #ifndef UINT32_MAX
  81  #define UINT32_MAX             (4294967295U)
  82  #endif
  83  
  84  #ifndef SIZE_MAX
  85  #define SIZE_MAX               (~(size_t)0)
  86  #endif
  87  
  88  #endif /* ! C99 */
  89  
  90  #endif /* ! FLEXINT_H */
  91  
  92  /* begin standard C++ headers. */
  93  
  94  /* TODO: this is always defined, so inline it */
  95  #define yyconst const
  96  
  97  #if defined(__GNUC__) && __GNUC__ >= 3
  98  #define yynoreturn __attribute__((__noreturn__))
  99  #else
 100  #define yynoreturn
 101  #endif
 102  
 103  /* Returned upon end-of-file. */
 104  #define YY_NULL 0
 105  
 106  /* Promotes a possibly negative, possibly signed char to an
 107   *   integer in range [0..255] for use as an array index.
 108   */
 109  #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
 110  
 111  /* Enter a start condition.  This macro really ought to take a parameter,
 112   * but we do it the disgusting crufty way forced on us by the ()-less
 113   * definition of BEGIN.
 114   */
 115  #define BEGIN (yy_start) = 1 + 2 *
 116  /* Translate the current start state into a value that can be later handed
 117   * to BEGIN to return to the state.  The YYSTATE alias is for lex
 118   * compatibility.
 119   */
 120  #define YY_START (((yy_start) - 1) / 2)
 121  #define YYSTATE YY_START
 122  /* Action number for EOF rule of a given start state. */
 123  #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 124  /* Special action meaning "start processing a new file". */
 125  #define YY_NEW_FILE yyrestart( yyin  )
 126  #define YY_END_OF_BUFFER_CHAR 0
 127  
 128  /* Size of default input buffer. */
 129  #ifndef YY_BUF_SIZE
 130  #ifdef __ia64__
 131  /* On IA-64, the buffer size is 16k, not 8k.
 132   * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
 133   * Ditto for the __ia64__ case accordingly.
 134   */
 135  #define YY_BUF_SIZE 32768
 136  #else
 137  #define YY_BUF_SIZE 16384
 138  #endif /* __ia64__ */
 139  #endif
 140  
 141  /* The state buf must be large enough to hold one state per character in the main buffer.
 142   */
 143  #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 144  
 145  #ifndef YY_TYPEDEF_YY_BUFFER_STATE
 146  #define YY_TYPEDEF_YY_BUFFER_STATE
 147  typedef struct yy_buffer_state *YY_BUFFER_STATE;
 148  #endif
 149  
 150  #ifndef YY_TYPEDEF_YY_SIZE_T
 151  #define YY_TYPEDEF_YY_SIZE_T
 152  typedef size_t yy_size_t;
 153  #endif
 154  
 155  extern int yyleng;
 156  
 157  extern FILE *yyin, *yyout;
 158  
 159  #define EOB_ACT_CONTINUE_SCAN 0
 160  #define EOB_ACT_END_OF_FILE 1
 161  #define EOB_ACT_LAST_MATCH 2
 162      
 163      #define YY_LESS_LINENO(n)
 164      #define YY_LINENO_REWIND_TO(ptr)
 165      
 166  /* Return all but the first "n" matched characters back to the input stream. */
 167  #define yyless(n) \
 168  	do \
 169  		{ \
 170  		/* Undo effects of setting up yytext. */ \
 171          int yyless_macro_arg = (n); \
 172          YY_LESS_LINENO(yyless_macro_arg);\
 173  		*yy_cp = (yy_hold_char); \
 174  		YY_RESTORE_YY_MORE_OFFSET \
 175  		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
 176  		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 177  		} \
 178  	while ( 0 )
 179  #define unput(c) yyunput( c, (yytext_ptr)  )
 180  
 181  #ifndef YY_STRUCT_YY_BUFFER_STATE
 182  #define YY_STRUCT_YY_BUFFER_STATE
 183  struct yy_buffer_state
 184  	{
 185  	FILE *yy_input_file;
 186  
 187  	char *yy_ch_buf;		/* input buffer */
 188  	char *yy_buf_pos;		/* current position in input buffer */
 189  
 190  	/* Size of input buffer in bytes, not including room for EOB
 191  	 * characters.
 192  	 */
 193  	int yy_buf_size;
 194  
 195  	/* Number of characters read into yy_ch_buf, not including EOB
 196  	 * characters.
 197  	 */
 198  	int yy_n_chars;
 199  
 200  	/* Whether we "own" the buffer - i.e., we know we created it,
 201  	 * and can realloc() it to grow it, and should free() it to
 202  	 * delete it.
 203  	 */
 204  	int yy_is_our_buffer;
 205  
 206  	/* Whether this is an "interactive" input source; if so, and
 207  	 * if we're using stdio for input, then we want to use getc()
 208  	 * instead of fread(), to make sure we stop fetching input after
 209  	 * each newline.
 210  	 */
 211  	int yy_is_interactive;
 212  
 213  	/* Whether we're considered to be at the beginning of a line.
 214  	 * If so, '^' rules will be active on the next match, otherwise
 215  	 * not.
 216  	 */
 217  	int yy_at_bol;
 218  
 219      int yy_bs_lineno; /**< The line count. */
 220      int yy_bs_column; /**< The column count. */
 221  
 222  	/* Whether to try to fill the input buffer when we reach the
 223  	 * end of it.
 224  	 */
 225  	int yy_fill_buffer;
 226  
 227  	int yy_buffer_status;
 228  
 229  #define YY_BUFFER_NEW 0
 230  #define YY_BUFFER_NORMAL 1
 231  	/* When an EOF's been seen but there's still some text to process
 232  	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
 233  	 * shouldn't try reading from the input source any more.  We might
 234  	 * still have a bunch of tokens to match, though, because of
 235  	 * possible backing-up.
 236  	 *
 237  	 * When we actually see the EOF, we change the status to "new"
 238  	 * (via yyrestart()), so that the user can continue scanning by
 239  	 * just pointing yyin at a new input file.
 240  	 */
 241  #define YY_BUFFER_EOF_PENDING 2
 242  
 243  	};
 244  #endif /* !YY_STRUCT_YY_BUFFER_STATE */
 245  
 246  /* Stack of input buffers. */
 247  static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 248  static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
 249  static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 250  
 251  /* We provide macros for accessing buffer states in case in the
 252   * future we want to put the buffer states in a more general
 253   * "scanner state".
 254   *
 255   * Returns the top of the stack, or NULL.
 256   */
 257  #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
 258                            ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
 259                            : NULL)
 260  /* Same as previous macro, but useful when we know that the buffer stack is not
 261   * NULL or when we need an lvalue. For internal use only.
 262   */
 263  #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 264  
 265  /* yy_hold_char holds the character lost when yytext is formed. */
 266  static char yy_hold_char;
 267  static int yy_n_chars;		/* number of characters read into yy_ch_buf */
 268  int yyleng;
 269  
 270  /* Points to current character in buffer. */
 271  static char *yy_c_buf_p = NULL;
 272  static int yy_init = 0;		/* whether we need to initialize */
 273  static int yy_start = 0;	/* start state number */
 274  
 275  /* Flag which is used to allow yywrap()'s to do buffer switches
 276   * instead of setting up a fresh yyin.  A bit of a hack ...
 277   */
 278  static int yy_did_buffer_switch_on_eof;
 279  
 280  void yyrestart ( FILE *input_file  );
 281  void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
 282  YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
 283  void yy_delete_buffer ( YY_BUFFER_STATE b  );
 284  void yy_flush_buffer ( YY_BUFFER_STATE b  );
 285  void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
 286  void yypop_buffer_state ( void );
 287  
 288  static void yyensure_buffer_stack ( void );
 289  static void yy_load_buffer_state ( void );
 290  static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
 291  #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
 292  
 293  YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
 294  YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
 295  YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 296  
 297  void *yyalloc ( yy_size_t  );
 298  void *yyrealloc ( void *, yy_size_t  );
 299  void yyfree ( void *  );
 300  
 301  #define yy_new_buffer yy_create_buffer
 302  #define yy_set_interactive(is_interactive) \
 303  	{ \
 304  	if ( ! YY_CURRENT_BUFFER ){ \
 305          yyensure_buffer_stack (); \
 306  		YY_CURRENT_BUFFER_LVALUE =    \
 307              yy_create_buffer( yyin, YY_BUF_SIZE ); \
 308  	} \
 309  	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 310  	}
 311  #define yy_set_bol(at_bol) \
 312  	{ \
 313  	if ( ! YY_CURRENT_BUFFER ){\
 314          yyensure_buffer_stack (); \
 315  		YY_CURRENT_BUFFER_LVALUE =    \
 316              yy_create_buffer( yyin, YY_BUF_SIZE ); \
 317  	} \
 318  	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 319  	}
 320  #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 321  
 322  /* Begin user sect3 */
 323  typedef flex_uint8_t YY_CHAR;
 324  
 325  FILE *yyin = NULL, *yyout = NULL;
 326  
 327  typedef int yy_state_type;
 328  
 329  extern int yylineno;
 330  int yylineno = 1;
 331  
 332  extern char *yytext;
 333  #ifdef yytext_ptr
 334  #undef yytext_ptr
 335  #endif
 336  #define yytext_ptr yytext
 337  
 338  static yy_state_type yy_get_previous_state ( void );
 339  static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
 340  static int yy_get_next_buffer ( void );
 341  static void yynoreturn yy_fatal_error ( const char* msg  );
 342  
 343  /* Done after the current pattern has been matched and before the
 344   * corresponding action - sets up yytext.
 345   */
 346  #define YY_DO_BEFORE_ACTION \
 347  	(yytext_ptr) = yy_bp; \
 348  	yyleng = (int) (yy_cp - yy_bp); \
 349  	(yy_hold_char) = *yy_cp; \
 350  	*yy_cp = '\0'; \
 351  	(yy_c_buf_p) = yy_cp;
 352  #define YY_NUM_RULES 49
 353  #define YY_END_OF_BUFFER 50
 354  /* This struct is not used in this scanner,
 355     but its presence is necessary. */
 356  struct yy_trans_info
 357  	{
 358  	flex_int32_t yy_verify;
 359  	flex_int32_t yy_nxt;
 360  	};
 361  static const flex_int16_t yy_accept[209] =
 362      {   0,
 363          0,    0,   50,   48,    1,    3,   48,   48,   48,   44,
 364         44,   41,   45,   45,   45,   45,   45,   45,   48,   48,
 365         48,   48,   48,   48,   48,   48,   48,   42,   48,    1,
 366          3,   48,    0,   48,   48,    0,    2,   44,   45,   48,
 367         48,   10,   48,   48,   45,   48,   48,   48,   48,   48,
 368         48,   48,   48,   48,   48,   35,   48,   48,   48,   48,
 369         48,   17,   48,   48,   48,   48,   48,   48,   48,   48,
 370         48,   48,   47,   47,   48,    0,   43,   48,   48,   25,
 371         48,   48,   34,   38,   48,   48,   48,   48,   48,   23,
 372         48,   33,   48,   48,   48,   18,    7,   48,   21,   22,
 373  
 374         48,    9,   48,   48,   29,   48,   48,   30,    8,   48,
 375          0,   48,    4,   48,   48,   48,   48,   48,   48,   31,
 376         48,   48,   48,   32,   28,   48,   48,   48,   48,   48,
 377         48,   46,   46,    6,   48,   48,   48,   13,   48,   48,
 378         48,   48,   48,   48,   15,   48,   48,   48,   48,   48,
 379          5,   26,   48,   48,   19,   48,   48,   14,   48,   48,
 380         48,   48,   48,   48,   27,   36,   48,   48,   48,   48,
 381         48,   48,   48,   48,   11,   48,   48,   48,   48,   48,
 382         12,   20,   48,   48,   48,   48,   48,   48,   48,   48,
 383         48,   24,   48,   48,   37,   48,   48,   48,   48,   48,
 384  
 385         48,   16,   48,   48,   40,   48,   39,    0
 386      } ;
 387  
 388  static const YY_CHAR yy_ec[256] =
 389      {   0,
 390          1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
 391          1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
 392          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 393          1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
 394          1,    1,    1,    1,    1,    7,    1,    8,    7,    9,
 395          7,    7,    7,    7,    7,    7,    7,    1,    1,    1,
 396         10,    1,    1,    1,   11,   11,   11,   11,   11,   11,
 397          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 398          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 399          1,    1,    1,    1,   12,    1,   13,   14,   15,   16,
 400  
 401         17,   18,   19,   20,   21,    1,    1,   22,   23,   24,
 402         25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
 403         35,    1,    1,   36,    1,    1,    1,    1,    1,    1,
 404          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 405          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 406          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 407          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 408          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 409          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 410          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 411  
 412          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 413          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 414          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 415          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 416          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 417          1,    1,    1,    1,    1
 418      } ;
 419  
 420  static const YY_CHAR yy_meta[37] =
 421      {   0,
 422          1,    2,    2,    1,    1,    1,    1,    1,    1,    1,
 423          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 424          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 425          1,    1,    1,    1,    1,    1
 426      } ;
 427  
 428  static const flex_int16_t yy_base[216] =
 429      {   0,
 430          0,    0,  277,    0,  274,  278,  272,   35,   39,   36,
 431        240,    0,   48,   51,   55,   75,   61,   58,   22,  252,
 432         62,   81,   75,   74,  255,   82,   48,    0,    0,  269,
 433        278,  104,  265,  109,   93,  266,  278,    0,  108,  111,
 434        247,    0,  246,  235,  123,  242,  237,  247,  245,  249,
 435        236,  238,  242,  242,  236,    0,  228,  230,  232,  231,
 436        233,    0,  104,  229,  223,  223,  117,  233,  225,  231,
 437        218,  123,    0,  278,  136,  238,    0,  229,  215,  228,
 438        218,  225,    0,    0,  215,  221,  218,  209,  217,    0,
 439        215,    0,  215,  205,  204,    0,    0,  207,    0,    0,
 440  
 441        213,    0,  205,  204,    0,  195,  195,    0,    0,  217,
 442        216,  191,    0,  204,  203,  196,  200,  190,  186,    0,
 443        196,  184,  198,    0,    0,  185,  192,  179,  182,  171,
 444        180,    0,  278,    0,  182,  186,  178,    0,  177,  179,
 445        175,  177,  167,  172,    0,  165,  165,  164,  160,  160,
 446          0,    0,  172,  174,    0,  158,  162,    0,  169,  173,
 447        154,  162,  153,  160,    0,    0,  152,  151,   45,  161,
 448        148,  146,  156,  139,    0,  156,  150,  148,  149,  152,
 449          0,    0,  136,  129,  132,  127,  123,  138,  119,  132,
 450        123,    0,  125,  133,    0,  127,  119,  126,  107,  103,
 451  
 452         93,    0,   63,   49,    0,   61,    0,  278,   45,  155,
 453        157,  159,  161,  163,  165
 454      } ;
 455  
 456  static const flex_int16_t yy_def[216] =
 457      {   0,
 458        208,    1,  208,  209,  208,  208,  209,  210,  211,  209,
 459         10,  209,   10,   10,   10,   10,   10,   10,  209,  209,
 460        209,  209,  209,  209,  209,  209,  209,  209,  209,  208,
 461        208,  210,  212,  213,  211,  214,  208,   10,   10,   10,
 462        209,  209,  209,  209,   10,  209,  209,  209,  209,  209,
 463        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 464        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 465        209,  209,  209,  208,  213,  215,   40,  209,  209,  209,
 466        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 467        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 468  
 469        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 470        208,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 471        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 472        209,  209,  208,  209,  209,  209,  209,  209,  209,  209,
 473        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 474        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 475        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 476        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 477        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 478        209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
 479  
 480        209,  209,  209,  209,  209,  209,  209,    0,  208,  208,
 481        208,  208,  208,  208,  208
 482      } ;
 483  
 484  static const flex_int16_t yy_nxt[315] =
 485      {   0,
 486          4,    5,    6,    7,    8,    9,   10,   11,   10,   12,
 487         13,    4,   14,   13,   15,   16,   17,   18,   19,   20,
 488         21,    4,   22,    4,   23,   24,    4,   25,   26,    4,
 489         27,    4,    4,    4,    4,   28,   33,   33,   51,   34,
 490         36,   37,   38,   38,   38,   29,   39,   52,   39,   39,
 491         39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
 492        176,   39,   39,   39,   39,   39,   39,   39,   39,   39,
 493         54,   71,   41,  177,   43,  207,   72,  206,   49,   42,
 494         44,   39,   39,   39,   48,   55,   56,  205,   64,   57,
 495         50,   45,   61,   58,   36,   37,   59,   65,   62,   46,
 496  
 497         63,   66,   47,   60,   68,   33,   33,   69,   73,  204,
 498         76,   76,   70,   29,   39,   39,   39,   77,   77,   77,
 499        203,   77,  202,   77,   77,   77,   77,   77,   77,   39,
 500         39,   39,   97,   98,  102,  103,  108,   76,   76,  109,
 501        110,  201,  200,  199,  198,  197,  196,  195,  194,  193,
 502        192,  191,  190,  189,   81,   32,   32,   35,   35,   33,
 503         33,   75,   75,   36,   36,   76,   76,  188,  187,  186,
 504        185,  184,  183,  182,  181,  180,  179,  178,  175,  174,
 505        173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
 506        163,  162,  161,  160,  159,  158,  157,  156,  155,  154,
 507  
 508        153,  152,  151,  150,  149,  148,  147,  146,  145,  144,
 509        143,  142,  141,  140,  139,  138,  137,  136,  135,  134,
 510        133,  132,  131,  130,  129,  128,  127,  126,  125,  124,
 511        123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
 512        113,  112,  111,  107,  106,  105,  104,  101,  100,   99,
 513         96,   95,   94,   93,   92,   91,   90,   89,   88,   87,
 514         86,   85,   84,   83,   82,   80,   79,   78,   37,   74,
 515         30,   67,   53,   40,   31,   30,  208,    3,  208,  208,
 516        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 517        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 518  
 519        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 520        208,  208,  208,  208
 521      } ;
 522  
 523  static const flex_int16_t yy_chk[315] =
 524      {   0,
 525          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 526          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 527          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 528          1,    1,    1,    1,    1,    1,    8,    8,   19,    8,
 529          9,    9,   10,   10,   10,  209,   10,   19,   10,   10,
 530         10,   10,   10,   10,   13,   13,   13,   14,   14,   14,
 531        169,   15,   15,   15,   18,   18,   18,   17,   17,   17,
 532         21,   27,   14,  169,   15,  206,   27,  204,   18,   14,
 533         15,   16,   16,   16,   17,   21,   21,  203,   24,   21,
 534         18,   16,   23,   22,   35,   35,   22,   24,   23,   16,
 535  
 536         23,   24,   16,   22,   26,   32,   32,   26,   32,  201,
 537         34,   34,   26,   34,   39,   39,   39,   40,   40,   40,
 538        200,   40,  199,   40,   40,   40,   40,   40,   40,   45,
 539         45,   45,   63,   63,   67,   67,   72,   75,   75,   72,
 540         75,  198,  197,  196,  194,  193,  191,  190,  189,  188,
 541        187,  186,  185,  184,   45,  210,  210,  211,  211,  212,
 542        212,  213,  213,  214,  214,  215,  215,  183,  180,  179,
 543        178,  177,  176,  174,  173,  172,  171,  170,  168,  167,
 544        164,  163,  162,  161,  160,  159,  157,  156,  154,  153,
 545        150,  149,  148,  147,  146,  144,  143,  142,  141,  140,
 546  
 547        139,  137,  136,  135,  131,  130,  129,  128,  127,  126,
 548        123,  122,  121,  119,  118,  117,  116,  115,  114,  112,
 549        111,  110,  107,  106,  104,  103,  101,   98,   95,   94,
 550         93,   91,   89,   88,   87,   86,   85,   82,   81,   80,
 551         79,   78,   76,   71,   70,   69,   68,   66,   65,   64,
 552         61,   60,   59,   58,   57,   55,   54,   53,   52,   51,
 553         50,   49,   48,   47,   46,   44,   43,   41,   36,   33,
 554         30,   25,   20,   11,    7,    5,    3,  208,  208,  208,
 555        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 556        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 557  
 558        208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
 559        208,  208,  208,  208
 560      } ;
 561  
 562  static yy_state_type yy_last_accepting_state;
 563  static char *yy_last_accepting_cpos;
 564  
 565  extern int yy_flex_debug;
 566  int yy_flex_debug = 0;
 567  
 568  /* The intent behind this definition is that it'll catch
 569   * any uses of REJECT which flex missed.
 570   */
 571  #define REJECT reject_used_but_not_detected
 572  #define yymore() yymore_used_but_not_detected
 573  #define YY_MORE_ADJ 0
 574  #define YY_RESTORE_YY_MORE_OFFSET
 575  char *yytext;
 576  /* sconfig, coreboot device tree compiler */
 577  /* SPDX-License-Identifier: GPL-2.0-only */
 578  
 579  #include "sconfig.tab.h"
 580  
 581  int linenum = 0;
 582  
 583  #define INITIAL 0
 584  
 585  #ifndef YY_NO_UNISTD_H
 586  /* Special case for "unistd.h", since it is non-ANSI. We include it way
 587   * down here because we want the user's section 1 to have been scanned first.
 588   * The user has a chance to override it with an option.
 589   */
 590  #include <unistd.h>
 591  #endif
 592  
 593  #ifndef YY_EXTRA_TYPE
 594  #define YY_EXTRA_TYPE void *
 595  #endif
 596  
 597  static int yy_init_globals ( void );
 598  
 599  /* Accessor methods to globals.
 600     These are made visible to non-reentrant scanners for convenience. */
 601  
 602  int yylex_destroy ( void );
 603  
 604  int yyget_debug ( void );
 605  
 606  void yyset_debug ( int debug_flag  );
 607  
 608  YY_EXTRA_TYPE yyget_extra ( void );
 609  
 610  void yyset_extra ( YY_EXTRA_TYPE user_defined  );
 611  
 612  FILE *yyget_in ( void );
 613  
 614  void yyset_in  ( FILE * _in_str  );
 615  
 616  FILE *yyget_out ( void );
 617  
 618  void yyset_out  ( FILE * _out_str  );
 619  
 620  			int yyget_leng ( void );
 621  
 622  char *yyget_text ( void );
 623  
 624  int yyget_lineno ( void );
 625  
 626  void yyset_lineno ( int _line_number  );
 627  
 628  /* Macros after this point can all be overridden by user definitions in
 629   * section 1.
 630   */
 631  
 632  #ifndef YY_SKIP_YYWRAP
 633  #ifdef __cplusplus
 634  extern "C" int yywrap ( void );
 635  #else
 636  extern int yywrap ( void );
 637  #endif
 638  #endif
 639  
 640  #ifndef YY_NO_UNPUT
 641      
 642      static void yyunput ( int c, char *buf_ptr  );
 643      
 644  #endif
 645  
 646  #ifndef yytext_ptr
 647  static void yy_flex_strncpy ( char *, const char *, int );
 648  #endif
 649  
 650  #ifdef YY_NEED_STRLEN
 651  static int yy_flex_strlen ( const char * );
 652  #endif
 653  
 654  #ifndef YY_NO_INPUT
 655  #ifdef __cplusplus
 656  static int yyinput ( void );
 657  #else
 658  static int input ( void );
 659  #endif
 660  
 661  #endif
 662  
 663  /* Amount of stuff to slurp up with each read. */
 664  #ifndef YY_READ_BUF_SIZE
 665  #ifdef __ia64__
 666  /* On IA-64, the buffer size is 16k, not 8k */
 667  #define YY_READ_BUF_SIZE 16384
 668  #else
 669  #define YY_READ_BUF_SIZE 8192
 670  #endif /* __ia64__ */
 671  #endif
 672  
 673  /* Copy whatever the last rule matched to the standard output. */
 674  #ifndef ECHO
 675  /* This used to be an fputs(), but since the string might contain NUL's,
 676   * we now use fwrite().
 677   */
 678  #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
 679  #endif
 680  
 681  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 682   * is returned in "result".
 683   */
 684  #ifndef YY_INPUT
 685  #define YY_INPUT(buf,result,max_size) \
 686  	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 687  		{ \
 688  		int c = '*'; \
 689  		int n; \
 690  		for ( n = 0; n < max_size && \
 691  			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 692  			buf[n] = (char) c; \
 693  		if ( c == '\n' ) \
 694  			buf[n++] = (char) c; \
 695  		if ( c == EOF && ferror( yyin ) ) \
 696  			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 697  		result = n; \
 698  		} \
 699  	else \
 700  		{ \
 701  		errno=0; \
 702  		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
 703  			{ \
 704  			if( errno != EINTR) \
 705  				{ \
 706  				YY_FATAL_ERROR( "input in flex scanner failed" ); \
 707  				break; \
 708  				} \
 709  			errno=0; \
 710  			clearerr(yyin); \
 711  			} \
 712  		}\
 713  \
 714  
 715  #endif
 716  
 717  /* No semi-colon after return; correct usage is to write "yyterminate();" -
 718   * we don't want an extra ';' after the "return" because that will cause
 719   * some compilers to complain about unreachable statements.
 720   */
 721  #ifndef yyterminate
 722  #define yyterminate() return YY_NULL
 723  #endif
 724  
 725  /* Number of entries by which start-condition stack grows. */
 726  #ifndef YY_START_STACK_INCR
 727  #define YY_START_STACK_INCR 25
 728  #endif
 729  
 730  /* Report a fatal error. */
 731  #ifndef YY_FATAL_ERROR
 732  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 733  #endif
 734  
 735  /* end tables serialization structures and prototypes */
 736  
 737  /* Default declaration of generated scanner - a define so the user can
 738   * easily add parameters.
 739   */
 740  #ifndef YY_DECL
 741  #define YY_DECL_IS_OURS 1
 742  
 743  extern int yylex (void);
 744  
 745  #define YY_DECL int yylex (void)
 746  #endif /* !YY_DECL */
 747  
 748  /* Code executed at the beginning of each rule, after yytext and yyleng
 749   * have been set up.
 750   */
 751  #ifndef YY_USER_ACTION
 752  #define YY_USER_ACTION
 753  #endif
 754  
 755  /* Code executed at the end of each rule. */
 756  #ifndef YY_BREAK
 757  #define YY_BREAK /*LINTED*/break;
 758  #endif
 759  
 760  #define YY_RULE_SETUP \
 761  	YY_USER_ACTION
 762  
 763  /** The main scanner function which does all the work.
 764   */
 765  YY_DECL
 766  {
 767  	yy_state_type yy_current_state;
 768  	char *yy_cp, *yy_bp;
 769  	int yy_act;
 770      
 771  	if ( !(yy_init) )
 772  		{
 773  		(yy_init) = 1;
 774  
 775  #ifdef YY_USER_INIT
 776  		YY_USER_INIT;
 777  #endif
 778  
 779  		if ( ! (yy_start) )
 780  			(yy_start) = 1;	/* first start state */
 781  
 782  		if ( ! yyin )
 783  			yyin = stdin;
 784  
 785  		if ( ! yyout )
 786  			yyout = stdout;
 787  
 788  		if ( ! YY_CURRENT_BUFFER ) {
 789  			yyensure_buffer_stack ();
 790  			YY_CURRENT_BUFFER_LVALUE =
 791  				yy_create_buffer( yyin, YY_BUF_SIZE );
 792  		}
 793  
 794  		yy_load_buffer_state(  );
 795  		}
 796  
 797  	{
 798  
 799  	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 800  		{
 801  		yy_cp = (yy_c_buf_p);
 802  
 803  		/* Support of yytext. */
 804  		*yy_cp = (yy_hold_char);
 805  
 806  		/* yy_bp points to the position in yy_ch_buf of the start of
 807  		 * the current run.
 808  		 */
 809  		yy_bp = yy_cp;
 810  
 811  		yy_current_state = (yy_start);
 812  yy_match:
 813  		do
 814  			{
 815  			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
 816  			if ( yy_accept[yy_current_state] )
 817  				{
 818  				(yy_last_accepting_state) = yy_current_state;
 819  				(yy_last_accepting_cpos) = yy_cp;
 820  				}
 821  			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 822  				{
 823  				yy_current_state = (int) yy_def[yy_current_state];
 824  				if ( yy_current_state >= 209 )
 825  					yy_c = yy_meta[yy_c];
 826  				}
 827  			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 828  			++yy_cp;
 829  			}
 830  		while ( yy_base[yy_current_state] != 278 );
 831  
 832  yy_find_action:
 833  		yy_act = yy_accept[yy_current_state];
 834  		if ( yy_act == 0 )
 835  			{ /* have to back up */
 836  			yy_cp = (yy_last_accepting_cpos);
 837  			yy_current_state = (yy_last_accepting_state);
 838  			yy_act = yy_accept[yy_current_state];
 839  			}
 840  
 841  		YY_DO_BEFORE_ACTION;
 842  
 843  do_action:	/* This label is used only to access EOF actions. */
 844  
 845  		switch ( yy_act )
 846  	{ /* beginning of action switch */
 847  			case 0: /* must back up */
 848  			/* undo the effects of YY_DO_BEFORE_ACTION */
 849  			*yy_cp = (yy_hold_char);
 850  			yy_cp = (yy_last_accepting_cpos);
 851  			yy_current_state = (yy_last_accepting_state);
 852  			goto yy_find_action;
 853  
 854  case 1:
 855  YY_RULE_SETUP
 856  {}
 857  	YY_BREAK
 858  case 2:
 859  /* rule 2 can match eol */
 860  YY_RULE_SETUP
 861  {linenum++;}
 862  	YY_BREAK
 863  case 3:
 864  /* rule 3 can match eol */
 865  YY_RULE_SETUP
 866  {linenum++;}
 867  	YY_BREAK
 868  case 4:
 869  YY_RULE_SETUP
 870  {return(CHIP);}
 871  	YY_BREAK
 872  case 5:
 873  YY_RULE_SETUP
 874  {return(DEVICE);}
 875  	YY_BREAK
 876  case 6:
 877  YY_RULE_SETUP
 878  {return(ALIAS);}
 879  	YY_BREAK
 880  case 7:
 881  YY_RULE_SETUP
 882  {return(OPS);}
 883  	YY_BREAK
 884  case 8:
 885  YY_RULE_SETUP
 886  {return(REFERENCE);}
 887  	YY_BREAK
 888  case 9:
 889  YY_RULE_SETUP
 890  {return(REFERENCE);}
 891  	YY_BREAK
 892  case 10:
 893  YY_RULE_SETUP
 894  {return(ASSOCIATION);}
 895  	YY_BREAK
 896  case 11:
 897  YY_RULE_SETUP
 898  {return(REGISTER);}
 899  	YY_BREAK
 900  case 12:
 901  YY_RULE_SETUP
 902  {return(FW_CONFIG_TABLE);}
 903  	YY_BREAK
 904  case 13:
 905  YY_RULE_SETUP
 906  {return(FW_CONFIG_FIELD);}
 907  	YY_BREAK
 908  case 14:
 909  YY_RULE_SETUP
 910  {return(FW_CONFIG_OPTION);}
 911  	YY_BREAK
 912  case 15:
 913  YY_RULE_SETUP
 914  {return(FW_CONFIG_PROBE);}
 915  	YY_BREAK
 916  case 16:
 917  YY_RULE_SETUP
 918  {return(FW_CONFIG_UNPROVISIONED);}
 919  	YY_BREAK
 920  case 17:
 921  YY_RULE_SETUP
 922  {yylval.number=1; return(BOOL);}
 923  	YY_BREAK
 924  case 18:
 925  YY_RULE_SETUP
 926  {yylval.number=0; return(BOOL);}
 927  	YY_BREAK
 928  case 19:
 929  YY_RULE_SETUP
 930  {yylval.number=3; return(STATUS);}
 931  	YY_BREAK
 932  case 20:
 933  YY_RULE_SETUP
 934  {yylval.number=5; return(STATUS);}
 935  	YY_BREAK
 936  case 21:
 937  YY_RULE_SETUP
 938  {yylval.number=PCI; return(BUS);}
 939  	YY_BREAK
 940  case 22:
 941  YY_RULE_SETUP
 942  {yylval.number=PNP; return(BUS);}
 943  	YY_BREAK
 944  case 23:
 945  YY_RULE_SETUP
 946  {yylval.number=I2C; return(BUS);}
 947  	YY_BREAK
 948  case 24:
 949  YY_RULE_SETUP
 950  {yylval.number=CPU_CLUSTER; return(BUS);}
 951  	YY_BREAK
 952  case 25:
 953  YY_RULE_SETUP
 954  {yylval.number=CPU; return(BUS);}
 955  	YY_BREAK
 956  case 26:
 957  YY_RULE_SETUP
 958  {yylval.number=DOMAIN; return(BUS);}
 959  	YY_BREAK
 960  case 27:
 961  YY_RULE_SETUP
 962  {yylval.number=GENERIC; return(BUS);}
 963  	YY_BREAK
 964  case 28:
 965  YY_RULE_SETUP
 966  {yylval.number=MMIO; return(BUS);}
 967  	YY_BREAK
 968  case 29:
 969  YY_RULE_SETUP
 970  {yylval.number=SPI; return(BUS);}
 971  	YY_BREAK
 972  case 30:
 973  YY_RULE_SETUP
 974  {yylval.number=USB; return(BUS);}
 975  	YY_BREAK
 976  case 31:
 977  YY_RULE_SETUP
 978  {yylval.number=GPIO; return(BUS);}
 979  	YY_BREAK
 980  case 32:
 981  YY_RULE_SETUP
 982  {yylval.number=MDIO; return(BUS);}
 983  	YY_BREAK
 984  case 33:
 985  YY_RULE_SETUP
 986  {yylval.number=IRQ; return(RESOURCE);}
 987  	YY_BREAK
 988  case 34:
 989  YY_RULE_SETUP
 990  {yylval.number=DRQ; return(RESOURCE);}
 991  	YY_BREAK
 992  case 35:
 993  YY_RULE_SETUP
 994  {yylval.number=IO; return(RESOURCE);}
 995  	YY_BREAK
 996  case 36:
 997  YY_RULE_SETUP
 998  {return(INHERIT);}
 999  	YY_BREAK
1000  case 37:
1001  YY_RULE_SETUP
1002  {return(SUBSYSTEMID);}
1003  	YY_BREAK
1004  case 38:
1005  YY_RULE_SETUP
1006  {return(END);}
1007  	YY_BREAK
1008  case 39:
1009  YY_RULE_SETUP
1010  {return(SLOT_DESC);}
1011  	YY_BREAK
1012  case 40:
1013  YY_RULE_SETUP
1014  {return(SMBIOS_DEV_INFO);}
1015  	YY_BREAK
1016  case 41:
1017  YY_RULE_SETUP
1018  {return(EQUALS);}
1019  	YY_BREAK
1020  case 42:
1021  YY_RULE_SETUP
1022  {return(PIPE);}
1023  	YY_BREAK
1024  case 43:
1025  YY_RULE_SETUP
1026  {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
1027  	YY_BREAK
1028  case 44:
1029  YY_RULE_SETUP
1030  {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
1031  	YY_BREAK
1032  case 45:
1033  YY_RULE_SETUP
1034  {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
1035  	YY_BREAK
1036  case 46:
1037  /* rule 46 can match eol */
1038  YY_RULE_SETUP
1039  {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
1040  	YY_BREAK
1041  case 47:
1042  /* rule 47 can match eol */
1043  YY_RULE_SETUP
1044  {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
1045  	YY_BREAK
1046  case 48:
1047  YY_RULE_SETUP
1048  {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
1049  	YY_BREAK
1050  case 49:
1051  YY_RULE_SETUP
1052  ECHO;
1053  	YY_BREAK
1054  case YY_STATE_EOF(INITIAL):
1055  	yyterminate();
1056  
1057  	case YY_END_OF_BUFFER:
1058  		{
1059  		/* Amount of text matched not including the EOB char. */
1060  		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1061  
1062  		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1063  		*yy_cp = (yy_hold_char);
1064  		YY_RESTORE_YY_MORE_OFFSET
1065  
1066  		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1067  			{
1068  			/* We're scanning a new file or input source.  It's
1069  			 * possible that this happened because the user
1070  			 * just pointed yyin at a new source and called
1071  			 * yylex().  If so, then we have to assure
1072  			 * consistency between YY_CURRENT_BUFFER and our
1073  			 * globals.  Here is the right place to do so, because
1074  			 * this is the first action (other than possibly a
1075  			 * back-up) that will match for the new input source.
1076  			 */
1077  			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1078  			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1079  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1080  			}
1081  
1082  		/* Note that here we test for yy_c_buf_p "<=" to the position
1083  		 * of the first EOB in the buffer, since yy_c_buf_p will
1084  		 * already have been incremented past the NUL character
1085  		 * (since all states make transitions on EOB to the
1086  		 * end-of-buffer state).  Contrast this with the test
1087  		 * in input().
1088  		 */
1089  		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1090  			{ /* This was really a NUL. */
1091  			yy_state_type yy_next_state;
1092  
1093  			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1094  
1095  			yy_current_state = yy_get_previous_state(  );
1096  
1097  			/* Okay, we're now positioned to make the NUL
1098  			 * transition.  We couldn't have
1099  			 * yy_get_previous_state() go ahead and do it
1100  			 * for us because it doesn't know how to deal
1101  			 * with the possibility of jamming (and we don't
1102  			 * want to build jamming into it because then it
1103  			 * will run more slowly).
1104  			 */
1105  
1106  			yy_next_state = yy_try_NUL_trans( yy_current_state );
1107  
1108  			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1109  
1110  			if ( yy_next_state )
1111  				{
1112  				/* Consume the NUL. */
1113  				yy_cp = ++(yy_c_buf_p);
1114  				yy_current_state = yy_next_state;
1115  				goto yy_match;
1116  				}
1117  
1118  			else
1119  				{
1120  				yy_cp = (yy_c_buf_p);
1121  				goto yy_find_action;
1122  				}
1123  			}
1124  
1125  		else switch ( yy_get_next_buffer(  ) )
1126  			{
1127  			case EOB_ACT_END_OF_FILE:
1128  				{
1129  				(yy_did_buffer_switch_on_eof) = 0;
1130  
1131  				if ( yywrap(  ) )
1132  					{
1133  					/* Note: because we've taken care in
1134  					 * yy_get_next_buffer() to have set up
1135  					 * yytext, we can now set up
1136  					 * yy_c_buf_p so that if some total
1137  					 * hoser (like flex itself) wants to
1138  					 * call the scanner after we return the
1139  					 * YY_NULL, it'll still work - another
1140  					 * YY_NULL will get returned.
1141  					 */
1142  					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1143  
1144  					yy_act = YY_STATE_EOF(YY_START);
1145  					goto do_action;
1146  					}
1147  
1148  				else
1149  					{
1150  					if ( ! (yy_did_buffer_switch_on_eof) )
1151  						YY_NEW_FILE;
1152  					}
1153  				break;
1154  				}
1155  
1156  			case EOB_ACT_CONTINUE_SCAN:
1157  				(yy_c_buf_p) =
1158  					(yytext_ptr) + yy_amount_of_matched_text;
1159  
1160  				yy_current_state = yy_get_previous_state(  );
1161  
1162  				yy_cp = (yy_c_buf_p);
1163  				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1164  				goto yy_match;
1165  
1166  			case EOB_ACT_LAST_MATCH:
1167  				(yy_c_buf_p) =
1168  				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1169  
1170  				yy_current_state = yy_get_previous_state(  );
1171  
1172  				yy_cp = (yy_c_buf_p);
1173  				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1174  				goto yy_find_action;
1175  			}
1176  		break;
1177  		}
1178  
1179  	default:
1180  		YY_FATAL_ERROR(
1181  			"fatal flex scanner internal error--no action found" );
1182  	} /* end of action switch */
1183  		} /* end of scanning one token */
1184  	} /* end of user's declarations */
1185  } /* end of yylex */
1186  
1187  /* yy_get_next_buffer - try to read in a new buffer
1188   *
1189   * Returns a code representing an action:
1190   *	EOB_ACT_LAST_MATCH -
1191   *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1192   *	EOB_ACT_END_OF_FILE - end of file
1193   */
1194  static int yy_get_next_buffer (void)
1195  {
1196      	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1197  	char *source = (yytext_ptr);
1198  	int number_to_move, i;
1199  	int ret_val;
1200  
1201  	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1202  		YY_FATAL_ERROR(
1203  		"fatal flex scanner internal error--end of buffer missed" );
1204  
1205  	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1206  		{ /* Don't try to fill the buffer, so this is an EOF. */
1207  		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1208  			{
1209  			/* We matched a single character, the EOB, so
1210  			 * treat this as a final EOF.
1211  			 */
1212  			return EOB_ACT_END_OF_FILE;
1213  			}
1214  
1215  		else
1216  			{
1217  			/* We matched some text prior to the EOB, first
1218  			 * process it.
1219  			 */
1220  			return EOB_ACT_LAST_MATCH;
1221  			}
1222  		}
1223  
1224  	/* Try to read more data. */
1225  
1226  	/* First move last chars to start of buffer. */
1227  	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1228  
1229  	for ( i = 0; i < number_to_move; ++i )
1230  		*(dest++) = *(source++);
1231  
1232  	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1233  		/* don't do the read, it's not guaranteed to return an EOF,
1234  		 * just force an EOF
1235  		 */
1236  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1237  
1238  	else
1239  		{
1240  			int num_to_read =
1241  			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1242  
1243  		while ( num_to_read <= 0 )
1244  			{ /* Not enough room in the buffer - grow it. */
1245  
1246  			/* just a shorter name for the current buffer */
1247  			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1248  
1249  			int yy_c_buf_p_offset =
1250  				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1251  
1252  			if ( b->yy_is_our_buffer )
1253  				{
1254  				int new_size = b->yy_buf_size * 2;
1255  
1256  				if ( new_size <= 0 )
1257  					b->yy_buf_size += b->yy_buf_size / 8;
1258  				else
1259  					b->yy_buf_size *= 2;
1260  
1261  				b->yy_ch_buf = (char *)
1262  					/* Include room in for 2 EOB chars. */
1263  					yyrealloc( (void *) b->yy_ch_buf,
1264  							 (yy_size_t) (b->yy_buf_size + 2)  );
1265  				}
1266  			else
1267  				/* Can't grow it, we don't own it. */
1268  				b->yy_ch_buf = NULL;
1269  
1270  			if ( ! b->yy_ch_buf )
1271  				YY_FATAL_ERROR(
1272  				"fatal error - scanner input buffer overflow" );
1273  
1274  			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1275  
1276  			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1277  						number_to_move - 1;
1278  
1279  			}
1280  
1281  		if ( num_to_read > YY_READ_BUF_SIZE )
1282  			num_to_read = YY_READ_BUF_SIZE;
1283  
1284  		/* Read in more data. */
1285  		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1286  			(yy_n_chars), num_to_read );
1287  
1288  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1289  		}
1290  
1291  	if ( (yy_n_chars) == 0 )
1292  		{
1293  		if ( number_to_move == YY_MORE_ADJ )
1294  			{
1295  			ret_val = EOB_ACT_END_OF_FILE;
1296  			yyrestart( yyin  );
1297  			}
1298  
1299  		else
1300  			{
1301  			ret_val = EOB_ACT_LAST_MATCH;
1302  			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1303  				YY_BUFFER_EOF_PENDING;
1304  			}
1305  		}
1306  
1307  	else
1308  		ret_val = EOB_ACT_CONTINUE_SCAN;
1309  
1310  	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1311  		/* Extend the array by 50%, plus the number we really need. */
1312  		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1313  		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1314  			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
1315  		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1316  			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1317  		/* "- 2" to take care of EOB's */
1318  		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1319  	}
1320  
1321  	(yy_n_chars) += number_to_move;
1322  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1323  	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1324  
1325  	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1326  
1327  	return ret_val;
1328  }
1329  
1330  /* yy_get_previous_state - get the state just before the EOB char was reached */
1331  
1332      static yy_state_type yy_get_previous_state (void)
1333  {
1334  	yy_state_type yy_current_state;
1335  	char *yy_cp;
1336      
1337  	yy_current_state = (yy_start);
1338  
1339  	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1340  		{
1341  		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1342  		if ( yy_accept[yy_current_state] )
1343  			{
1344  			(yy_last_accepting_state) = yy_current_state;
1345  			(yy_last_accepting_cpos) = yy_cp;
1346  			}
1347  		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1348  			{
1349  			yy_current_state = (int) yy_def[yy_current_state];
1350  			if ( yy_current_state >= 209 )
1351  				yy_c = yy_meta[yy_c];
1352  			}
1353  		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1354  		}
1355  
1356  	return yy_current_state;
1357  }
1358  
1359  /* yy_try_NUL_trans - try to make a transition on the NUL character
1360   *
1361   * synopsis
1362   *	next_state = yy_try_NUL_trans( current_state );
1363   */
1364      static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1365  {
1366  	int yy_is_jam;
1367      	char *yy_cp = (yy_c_buf_p);
1368  
1369  	YY_CHAR yy_c = 1;
1370  	if ( yy_accept[yy_current_state] )
1371  		{
1372  		(yy_last_accepting_state) = yy_current_state;
1373  		(yy_last_accepting_cpos) = yy_cp;
1374  		}
1375  	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1376  		{
1377  		yy_current_state = (int) yy_def[yy_current_state];
1378  		if ( yy_current_state >= 209 )
1379  			yy_c = yy_meta[yy_c];
1380  		}
1381  	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1382  	yy_is_jam = (yy_current_state == 208);
1383  
1384  		return yy_is_jam ? 0 : yy_current_state;
1385  }
1386  
1387  #ifndef YY_NO_UNPUT
1388  
1389      static void yyunput (int c, char * yy_bp )
1390  {
1391  	char *yy_cp;
1392      
1393      yy_cp = (yy_c_buf_p);
1394  
1395  	/* undo effects of setting up yytext */
1396  	*yy_cp = (yy_hold_char);
1397  
1398  	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1399  		{ /* need to shift things up to make room */
1400  		/* +2 for EOB chars. */
1401  		int number_to_move = (yy_n_chars) + 2;
1402  		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1403  					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1404  		char *source =
1405  				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1406  
1407  		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1408  			*--dest = *--source;
1409  
1410  		yy_cp += (int) (dest - source);
1411  		yy_bp += (int) (dest - source);
1412  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1413  			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1414  
1415  		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1416  			YY_FATAL_ERROR( "flex scanner push-back overflow" );
1417  		}
1418  
1419  	*--yy_cp = (char) c;
1420  
1421  	(yytext_ptr) = yy_bp;
1422  	(yy_hold_char) = *yy_cp;
1423  	(yy_c_buf_p) = yy_cp;
1424  }
1425  
1426  #endif
1427  
1428  #ifndef YY_NO_INPUT
1429  #ifdef __cplusplus
1430      static int yyinput (void)
1431  #else
1432      static int input  (void)
1433  #endif
1434  
1435  {
1436  	int c;
1437      
1438  	*(yy_c_buf_p) = (yy_hold_char);
1439  
1440  	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1441  		{
1442  		/* yy_c_buf_p now points to the character we want to return.
1443  		 * If this occurs *before* the EOB characters, then it's a
1444  		 * valid NUL; if not, then we've hit the end of the buffer.
1445  		 */
1446  		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1447  			/* This was really a NUL. */
1448  			*(yy_c_buf_p) = '\0';
1449  
1450  		else
1451  			{ /* need more input */
1452  			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
1453  			++(yy_c_buf_p);
1454  
1455  			switch ( yy_get_next_buffer(  ) )
1456  				{
1457  				case EOB_ACT_LAST_MATCH:
1458  					/* This happens because yy_g_n_b()
1459  					 * sees that we've accumulated a
1460  					 * token and flags that we need to
1461  					 * try matching the token before
1462  					 * proceeding.  But for input(),
1463  					 * there's no matching to consider.
1464  					 * So convert the EOB_ACT_LAST_MATCH
1465  					 * to EOB_ACT_END_OF_FILE.
1466  					 */
1467  
1468  					/* Reset buffer status. */
1469  					yyrestart( yyin );
1470  
1471  					/*FALLTHROUGH*/
1472  
1473  				case EOB_ACT_END_OF_FILE:
1474  					{
1475  					if ( yywrap(  ) )
1476  						return 0;
1477  
1478  					if ( ! (yy_did_buffer_switch_on_eof) )
1479  						YY_NEW_FILE;
1480  #ifdef __cplusplus
1481  					return yyinput();
1482  #else
1483  					return input();
1484  #endif
1485  					}
1486  
1487  				case EOB_ACT_CONTINUE_SCAN:
1488  					(yy_c_buf_p) = (yytext_ptr) + offset;
1489  					break;
1490  				}
1491  			}
1492  		}
1493  
1494  	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
1495  	*(yy_c_buf_p) = '\0';	/* preserve yytext */
1496  	(yy_hold_char) = *++(yy_c_buf_p);
1497  
1498  	return c;
1499  }
1500  #endif	/* ifndef YY_NO_INPUT */
1501  
1502  /** Immediately switch to a different input stream.
1503   * @param input_file A readable stream.
1504   * 
1505   * @note This function does not reset the start condition to @c INITIAL .
1506   */
1507      void yyrestart  (FILE * input_file )
1508  {
1509      
1510  	if ( ! YY_CURRENT_BUFFER ){
1511          yyensure_buffer_stack ();
1512  		YY_CURRENT_BUFFER_LVALUE =
1513              yy_create_buffer( yyin, YY_BUF_SIZE );
1514  	}
1515  
1516  	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
1517  	yy_load_buffer_state(  );
1518  }
1519  
1520  /** Switch to a different input buffer.
1521   * @param new_buffer The new input buffer.
1522   * 
1523   */
1524      void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1525  {
1526      
1527  	/* TODO. We should be able to replace this entire function body
1528  	 * with
1529  	 *		yypop_buffer_state();
1530  	 *		yypush_buffer_state(new_buffer);
1531       */
1532  	yyensure_buffer_stack ();
1533  	if ( YY_CURRENT_BUFFER == new_buffer )
1534  		return;
1535  
1536  	if ( YY_CURRENT_BUFFER )
1537  		{
1538  		/* Flush out information for old buffer. */
1539  		*(yy_c_buf_p) = (yy_hold_char);
1540  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1541  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1542  		}
1543  
1544  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1545  	yy_load_buffer_state(  );
1546  
1547  	/* We don't actually know whether we did this switch during
1548  	 * EOF (yywrap()) processing, but the only time this flag
1549  	 * is looked at is after yywrap() is called, so it's safe
1550  	 * to go ahead and always set it.
1551  	 */
1552  	(yy_did_buffer_switch_on_eof) = 1;
1553  }
1554  
1555  static void yy_load_buffer_state  (void)
1556  {
1557      	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1558  	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1559  	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1560  	(yy_hold_char) = *(yy_c_buf_p);
1561  }
1562  
1563  /** Allocate and initialize an input buffer state.
1564   * @param file A readable stream.
1565   * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1566   * 
1567   * @return the allocated buffer state.
1568   */
1569      YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1570  {
1571  	YY_BUFFER_STATE b;
1572      
1573  	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
1574  	if ( ! b )
1575  		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1576  
1577  	b->yy_buf_size = size;
1578  
1579  	/* yy_ch_buf has to be 2 characters longer than the size given because
1580  	 * we need to put in 2 end-of-buffer characters.
1581  	 */
1582  	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
1583  	if ( ! b->yy_ch_buf )
1584  		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1585  
1586  	b->yy_is_our_buffer = 1;
1587  
1588  	yy_init_buffer( b, file );
1589  
1590  	return b;
1591  }
1592  
1593  /** Destroy the buffer.
1594   * @param b a buffer created with yy_create_buffer()
1595   * 
1596   */
1597      void yy_delete_buffer (YY_BUFFER_STATE  b )
1598  {
1599      
1600  	if ( ! b )
1601  		return;
1602  
1603  	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1604  		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1605  
1606  	if ( b->yy_is_our_buffer )
1607  		yyfree( (void *) b->yy_ch_buf  );
1608  
1609  	yyfree( (void *) b  );
1610  }
1611  
1612  /* Initializes or reinitializes a buffer.
1613   * This function is sometimes called more than once on the same buffer,
1614   * such as during a yyrestart() or at EOF.
1615   */
1616      static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1617  
1618  {
1619  	int oerrno = errno;
1620      
1621  	yy_flush_buffer( b );
1622  
1623  	b->yy_input_file = file;
1624  	b->yy_fill_buffer = 1;
1625  
1626      /* If b is the current buffer, then yy_init_buffer was _probably_
1627       * called from yyrestart() or through yy_get_next_buffer.
1628       * In that case, we don't want to reset the lineno or column.
1629       */
1630      if (b != YY_CURRENT_BUFFER){
1631          b->yy_bs_lineno = 1;
1632          b->yy_bs_column = 0;
1633      }
1634  
1635          b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1636      
1637  	errno = oerrno;
1638  }
1639  
1640  /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1641   * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1642   * 
1643   */
1644      void yy_flush_buffer (YY_BUFFER_STATE  b )
1645  {
1646      	if ( ! b )
1647  		return;
1648  
1649  	b->yy_n_chars = 0;
1650  
1651  	/* We always need two end-of-buffer characters.  The first causes
1652  	 * a transition to the end-of-buffer state.  The second causes
1653  	 * a jam in that state.
1654  	 */
1655  	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1656  	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1657  
1658  	b->yy_buf_pos = &b->yy_ch_buf[0];
1659  
1660  	b->yy_at_bol = 1;
1661  	b->yy_buffer_status = YY_BUFFER_NEW;
1662  
1663  	if ( b == YY_CURRENT_BUFFER )
1664  		yy_load_buffer_state(  );
1665  }
1666  
1667  /** Pushes the new state onto the stack. The new state becomes
1668   *  the current state. This function will allocate the stack
1669   *  if necessary.
1670   *  @param new_buffer The new state.
1671   *  
1672   */
1673  void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1674  {
1675      	if (new_buffer == NULL)
1676  		return;
1677  
1678  	yyensure_buffer_stack();
1679  
1680  	/* This block is copied from yy_switch_to_buffer. */
1681  	if ( YY_CURRENT_BUFFER )
1682  		{
1683  		/* Flush out information for old buffer. */
1684  		*(yy_c_buf_p) = (yy_hold_char);
1685  		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1686  		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1687  		}
1688  
1689  	/* Only push if top exists. Otherwise, replace top. */
1690  	if (YY_CURRENT_BUFFER)
1691  		(yy_buffer_stack_top)++;
1692  	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1693  
1694  	/* copied from yy_switch_to_buffer. */
1695  	yy_load_buffer_state(  );
1696  	(yy_did_buffer_switch_on_eof) = 1;
1697  }
1698  
1699  /** Removes and deletes the top of the stack, if present.
1700   *  The next element becomes the new top.
1701   *  
1702   */
1703  void yypop_buffer_state (void)
1704  {
1705      	if (!YY_CURRENT_BUFFER)
1706  		return;
1707  
1708  	yy_delete_buffer(YY_CURRENT_BUFFER );
1709  	YY_CURRENT_BUFFER_LVALUE = NULL;
1710  	if ((yy_buffer_stack_top) > 0)
1711  		--(yy_buffer_stack_top);
1712  
1713  	if (YY_CURRENT_BUFFER) {
1714  		yy_load_buffer_state(  );
1715  		(yy_did_buffer_switch_on_eof) = 1;
1716  	}
1717  }
1718  
1719  /* Allocates the stack if it does not exist.
1720   *  Guarantees space for at least one push.
1721   */
1722  static void yyensure_buffer_stack (void)
1723  {
1724  	yy_size_t num_to_alloc;
1725      
1726  	if (!(yy_buffer_stack)) {
1727  
1728  		/* First allocation is just for 2 elements, since we don't know if this
1729  		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1730  		 * immediate realloc on the next call.
1731           */
1732        num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
1733  		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1734  								(num_to_alloc * sizeof(struct yy_buffer_state*)
1735  								);
1736  		if ( ! (yy_buffer_stack) )
1737  			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1738  
1739  		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1740  
1741  		(yy_buffer_stack_max) = num_to_alloc;
1742  		(yy_buffer_stack_top) = 0;
1743  		return;
1744  	}
1745  
1746  	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1747  
1748  		/* Increase the buffer to prepare for a possible push. */
1749  		yy_size_t grow_size = 8 /* arbitrary grow size */;
1750  
1751  		num_to_alloc = (yy_buffer_stack_max) + grow_size;
1752  		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1753  								((yy_buffer_stack),
1754  								num_to_alloc * sizeof(struct yy_buffer_state*)
1755  								);
1756  		if ( ! (yy_buffer_stack) )
1757  			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1758  
1759  		/* zero only the new slots.*/
1760  		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1761  		(yy_buffer_stack_max) = num_to_alloc;
1762  	}
1763  }
1764  
1765  /** Setup the input buffer state to scan directly from a user-specified character buffer.
1766   * @param base the character buffer
1767   * @param size the size in bytes of the character buffer
1768   * 
1769   * @return the newly allocated buffer state object.
1770   */
1771  YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1772  {
1773  	YY_BUFFER_STATE b;
1774      
1775  	if ( size < 2 ||
1776  	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
1777  	     base[size-1] != YY_END_OF_BUFFER_CHAR )
1778  		/* They forgot to leave room for the EOB's. */
1779  		return NULL;
1780  
1781  	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
1782  	if ( ! b )
1783  		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1784  
1785  	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
1786  	b->yy_buf_pos = b->yy_ch_buf = base;
1787  	b->yy_is_our_buffer = 0;
1788  	b->yy_input_file = NULL;
1789  	b->yy_n_chars = b->yy_buf_size;
1790  	b->yy_is_interactive = 0;
1791  	b->yy_at_bol = 1;
1792  	b->yy_fill_buffer = 0;
1793  	b->yy_buffer_status = YY_BUFFER_NEW;
1794  
1795  	yy_switch_to_buffer( b  );
1796  
1797  	return b;
1798  }
1799  
1800  /** Setup the input buffer state to scan a string. The next call to yylex() will
1801   * scan from a @e copy of @a str.
1802   * @param yystr a NUL-terminated string to scan
1803   * 
1804   * @return the newly allocated buffer state object.
1805   * @note If you want to scan bytes that may contain NUL values, then use
1806   *       yy_scan_bytes() instead.
1807   */
1808  YY_BUFFER_STATE yy_scan_string (const char * yystr )
1809  {
1810      
1811  	return yy_scan_bytes( yystr, (int) strlen(yystr) );
1812  }
1813  
1814  /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1815   * scan from a @e copy of @a bytes.
1816   * @param yybytes the byte buffer to scan
1817   * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1818   * 
1819   * @return the newly allocated buffer state object.
1820   */
1821  YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
1822  {
1823  	YY_BUFFER_STATE b;
1824  	char *buf;
1825  	yy_size_t n;
1826  	int i;
1827      
1828  	/* Get memory for full buffer, including space for trailing EOB's. */
1829  	n = (yy_size_t) (_yybytes_len + 2);
1830  	buf = (char *) yyalloc( n  );
1831  	if ( ! buf )
1832  		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1833  
1834  	for ( i = 0; i < _yybytes_len; ++i )
1835  		buf[i] = yybytes[i];
1836  
1837  	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1838  
1839  	b = yy_scan_buffer( buf, n );
1840  	if ( ! b )
1841  		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1842  
1843  	/* It's okay to grow etc. this buffer, and we should throw it
1844  	 * away when we're done.
1845  	 */
1846  	b->yy_is_our_buffer = 1;
1847  
1848  	return b;
1849  }
1850  
1851  #ifndef YY_EXIT_FAILURE
1852  #define YY_EXIT_FAILURE 2
1853  #endif
1854  
1855  static void yynoreturn yy_fatal_error (const char* msg )
1856  {
1857  			fprintf( stderr, "%s\n", msg );
1858  	exit( YY_EXIT_FAILURE );
1859  }
1860  
1861  /* Redefine yyless() so it works in section 3 code. */
1862  
1863  #undef yyless
1864  #define yyless(n) \
1865  	do \
1866  		{ \
1867  		/* Undo effects of setting up yytext. */ \
1868          int yyless_macro_arg = (n); \
1869          YY_LESS_LINENO(yyless_macro_arg);\
1870  		yytext[yyleng] = (yy_hold_char); \
1871  		(yy_c_buf_p) = yytext + yyless_macro_arg; \
1872  		(yy_hold_char) = *(yy_c_buf_p); \
1873  		*(yy_c_buf_p) = '\0'; \
1874  		yyleng = yyless_macro_arg; \
1875  		} \
1876  	while ( 0 )
1877  
1878  /* Accessor  methods (get/set functions) to struct members. */
1879  
1880  /** Get the current line number.
1881   * 
1882   */
1883  int yyget_lineno  (void)
1884  {
1885      
1886      return yylineno;
1887  }
1888  
1889  /** Get the input stream.
1890   * 
1891   */
1892  FILE *yyget_in  (void)
1893  {
1894          return yyin;
1895  }
1896  
1897  /** Get the output stream.
1898   * 
1899   */
1900  FILE *yyget_out  (void)
1901  {
1902          return yyout;
1903  }
1904  
1905  /** Get the length of the current token.
1906   * 
1907   */
1908  int yyget_leng  (void)
1909  {
1910          return yyleng;
1911  }
1912  
1913  /** Get the current token.
1914   * 
1915   */
1916  
1917  char *yyget_text  (void)
1918  {
1919          return yytext;
1920  }
1921  
1922  /** Set the current line number.
1923   * @param _line_number line number
1924   * 
1925   */
1926  void yyset_lineno (int  _line_number )
1927  {
1928      
1929      yylineno = _line_number;
1930  }
1931  
1932  /** Set the input stream. This does not discard the current
1933   * input buffer.
1934   * @param _in_str A readable stream.
1935   * 
1936   * @see yy_switch_to_buffer
1937   */
1938  void yyset_in (FILE *  _in_str )
1939  {
1940          yyin = _in_str ;
1941  }
1942  
1943  void yyset_out (FILE *  _out_str )
1944  {
1945          yyout = _out_str ;
1946  }
1947  
1948  int yyget_debug  (void)
1949  {
1950          return yy_flex_debug;
1951  }
1952  
1953  void yyset_debug (int  _bdebug )
1954  {
1955          yy_flex_debug = _bdebug ;
1956  }
1957  
1958  static int yy_init_globals (void)
1959  {
1960          /* Initialization is the same as for the non-reentrant scanner.
1961       * This function is called from yylex_destroy(), so don't allocate here.
1962       */
1963  
1964      (yy_buffer_stack) = NULL;
1965      (yy_buffer_stack_top) = 0;
1966      (yy_buffer_stack_max) = 0;
1967      (yy_c_buf_p) = NULL;
1968      (yy_init) = 0;
1969      (yy_start) = 0;
1970  
1971  /* Defined in main.c */
1972  #ifdef YY_STDINIT
1973      yyin = stdin;
1974      yyout = stdout;
1975  #else
1976      yyin = NULL;
1977      yyout = NULL;
1978  #endif
1979  
1980      /* For future reference: Set errno on error, since we are called by
1981       * yylex_init()
1982       */
1983      return 0;
1984  }
1985  
1986  /* yylex_destroy is for both reentrant and non-reentrant scanners. */
1987  int yylex_destroy  (void)
1988  {
1989      
1990      /* Pop the buffer stack, destroying each element. */
1991  	while(YY_CURRENT_BUFFER){
1992  		yy_delete_buffer( YY_CURRENT_BUFFER  );
1993  		YY_CURRENT_BUFFER_LVALUE = NULL;
1994  		yypop_buffer_state();
1995  	}
1996  
1997  	/* Destroy the stack itself. */
1998  	yyfree((yy_buffer_stack) );
1999  	(yy_buffer_stack) = NULL;
2000  
2001      /* Reset the globals. This is important in a non-reentrant scanner so the next time
2002       * yylex() is called, initialization will occur. */
2003      yy_init_globals( );
2004  
2005      return 0;
2006  }
2007  
2008  /*
2009   * Internal utility routines.
2010   */
2011  
2012  #ifndef yytext_ptr
2013  static void yy_flex_strncpy (char* s1, const char * s2, int n )
2014  {
2015  		
2016  	int i;
2017  	for ( i = 0; i < n; ++i )
2018  		s1[i] = s2[i];
2019  }
2020  #endif
2021  
2022  #ifdef YY_NEED_STRLEN
2023  static int yy_flex_strlen (const char * s )
2024  {
2025  	int n;
2026  	for ( n = 0; s[n]; ++n )
2027  		;
2028  
2029  	return n;
2030  }
2031  #endif
2032  
2033  void *yyalloc (yy_size_t  size )
2034  {
2035  			return malloc(size);
2036  }
2037  
2038  void *yyrealloc  (void * ptr, yy_size_t  size )
2039  {
2040  		
2041  	/* The cast to (char *) in the following accommodates both
2042  	 * implementations that use char* generic pointers, and those
2043  	 * that use void* generic pointers.  It works with the latter
2044  	 * because both ANSI C and C++ allow castless assignment from
2045  	 * any pointer type to void*, and deal with argument conversions
2046  	 * as though doing an assignment.
2047  	 */
2048  	return realloc(ptr, size);
2049  }
2050  
2051  void yyfree (void * ptr )
2052  {
2053  			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2054  }
2055  
2056  #define YYTABLES_NAME "yytables"
2057