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