Create startup files from the GCC sources and drop our versions.
[dragonfly.git] / contrib / gcc-4.0 / gcc / gengtype-lex.c
1 #line 2 "gengtype-lex.c"
2
3 #line 4 "gengtype-lex.c"
4
5 #define  YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 31
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16
17 /* First, we deal with  platform-specific or compiler-specific issues. */
18
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24
25 /* end standard C headers. */
26
27 /* flex integer type definitions */
28
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33
34 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
35 #include <inttypes.h>
36 typedef int8_t flex_int8_t;
37 typedef uint8_t flex_uint8_t;
38 typedef int16_t flex_int16_t;
39 typedef uint16_t flex_uint16_t;
40 typedef int32_t flex_int32_t;
41 typedef uint32_t flex_uint32_t;
42 #else
43 typedef signed char flex_int8_t;
44 typedef short int flex_int16_t;
45 typedef int flex_int32_t;
46 typedef unsigned char flex_uint8_t; 
47 typedef unsigned short int flex_uint16_t;
48 typedef unsigned int flex_uint32_t;
49 #endif /* ! C99 */
50
51 /* Limits of integral types. */
52 #ifndef INT8_MIN
53 #define INT8_MIN               (-128)
54 #endif
55 #ifndef INT16_MIN
56 #define INT16_MIN              (-32767-1)
57 #endif
58 #ifndef INT32_MIN
59 #define INT32_MIN              (-2147483647-1)
60 #endif
61 #ifndef INT8_MAX
62 #define INT8_MAX               (127)
63 #endif
64 #ifndef INT16_MAX
65 #define INT16_MAX              (32767)
66 #endif
67 #ifndef INT32_MAX
68 #define INT32_MAX              (2147483647)
69 #endif
70 #ifndef UINT8_MAX
71 #define UINT8_MAX              (255U)
72 #endif
73 #ifndef UINT16_MAX
74 #define UINT16_MAX             (65535U)
75 #endif
76 #ifndef UINT32_MAX
77 #define UINT32_MAX             (4294967295U)
78 #endif
79
80 #endif /* ! FLEXINT_H */
81
82 #ifdef __cplusplus
83
84 /* The "const" storage-class-modifier is valid. */
85 #define YY_USE_CONST
86
87 #else   /* ! __cplusplus */
88
89 #if __STDC__
90
91 #define YY_USE_CONST
92
93 #endif  /* __STDC__ */
94 #endif  /* ! __cplusplus */
95
96 #ifdef YY_USE_CONST
97 #define yyconst const
98 #else
99 #define yyconst
100 #endif
101
102 /* Returned upon end-of-file. */
103 #define YY_NULL 0
104
105 /* Promotes a possibly negative, possibly signed char to an unsigned
106  * integer for use as an array index.  If the signed char is negative,
107  * we want to instead treat it as an 8-bit unsigned char, hence the
108  * double cast.
109  */
110 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
111
112 /* Enter a start condition.  This macro really ought to take a parameter,
113  * but we do it the disgusting crufty way forced on us by the ()-less
114  * definition of BEGIN.
115  */
116 #define BEGIN (yy_start) = 1 + 2 *
117
118 /* Translate the current start state into a value that can be later handed
119  * to BEGIN to return to the state.  The YYSTATE alias is for lex
120  * compatibility.
121  */
122 #define YY_START (((yy_start) - 1) / 2)
123 #define YYSTATE YY_START
124
125 /* Action number for EOF rule of a given start state. */
126 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
127
128 /* Special action meaning "start processing a new file". */
129 #define YY_NEW_FILE yyrestart(yyin  )
130
131 #define YY_END_OF_BUFFER_CHAR 0
132
133 /* Size of default input buffer. */
134 #ifndef YY_BUF_SIZE
135 #define YY_BUF_SIZE 16384
136 #endif
137
138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
139 #define YY_TYPEDEF_YY_BUFFER_STATE
140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
141 #endif
142
143 extern int yyleng;
144
145 extern FILE *yyin, *yyout;
146
147 #define EOB_ACT_CONTINUE_SCAN 0
148 #define EOB_ACT_END_OF_FILE 1
149 #define EOB_ACT_LAST_MATCH 2
150
151     #define YY_LESS_LINENO(n)
152     
153 /* Return all but the first "n" matched characters back to the input stream. */
154 #define yyless(n) \
155         do \
156                 { \
157                 /* Undo effects of setting up yytext. */ \
158         int yyless_macro_arg = (n); \
159         YY_LESS_LINENO(yyless_macro_arg);\
160                 *yy_cp = (yy_hold_char); \
161                 YY_RESTORE_YY_MORE_OFFSET \
162                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
163                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
164                 } \
165         while ( 0 )
166
167 #define unput(c) yyunput( c, (yytext_ptr)  )
168
169 /* The following is because we cannot portably get our hands on size_t
170  * (without autoconf's help, which isn't available because we want
171  * flex-generated scanners to compile on their own).
172  */
173
174 #ifndef YY_TYPEDEF_YY_SIZE_T
175 #define YY_TYPEDEF_YY_SIZE_T
176 typedef unsigned int yy_size_t;
177 #endif
178
179 #ifndef YY_STRUCT_YY_BUFFER_STATE
180 #define YY_STRUCT_YY_BUFFER_STATE
181 struct yy_buffer_state
182         {
183         FILE *yy_input_file;
184
185         char *yy_ch_buf;                /* input buffer */
186         char *yy_buf_pos;               /* current position in input buffer */
187
188         /* Size of input buffer in bytes, not including room for EOB
189          * characters.
190          */
191         yy_size_t yy_buf_size;
192
193         /* Number of characters read into yy_ch_buf, not including EOB
194          * characters.
195          */
196         int yy_n_chars;
197
198         /* Whether we "own" the buffer - i.e., we know we created it,
199          * and can realloc() it to grow it, and should free() it to
200          * delete it.
201          */
202         int yy_is_our_buffer;
203
204         /* Whether this is an "interactive" input source; if so, and
205          * if we're using stdio for input, then we want to use getc()
206          * instead of fread(), to make sure we stop fetching input after
207          * each newline.
208          */
209         int yy_is_interactive;
210
211         /* Whether we're considered to be at the beginning of a line.
212          * If so, '^' rules will be active on the next match, otherwise
213          * not.
214          */
215         int yy_at_bol;
216
217     int yy_bs_lineno; /**< The line count. */
218     int yy_bs_column; /**< The column count. */
219     
220         /* Whether to try to fill the input buffer when we reach the
221          * end of it.
222          */
223         int yy_fill_buffer;
224
225         int yy_buffer_status;
226
227 #define YY_BUFFER_NEW 0
228 #define YY_BUFFER_NORMAL 1
229         /* When an EOF's been seen but there's still some text to process
230          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
231          * shouldn't try reading from the input source any more.  We might
232          * still have a bunch of tokens to match, though, because of
233          * possible backing-up.
234          *
235          * When we actually see the EOF, we change the status to "new"
236          * (via yyrestart()), so that the user can continue scanning by
237          * just pointing yyin at a new input file.
238          */
239 #define YY_BUFFER_EOF_PENDING 2
240
241         };
242 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
243
244 /* Stack of input buffers. */
245 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
246 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
247 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
248
249 /* We provide macros for accessing buffer states in case in the
250  * future we want to put the buffer states in a more general
251  * "scanner state".
252  *
253  * Returns the top of the stack, or NULL.
254  */
255 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
256                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
257                           : NULL)
258
259 /* Same as previous macro, but useful when we know that the buffer stack is not
260  * NULL or when we need an lvalue. For internal use only.
261  */
262 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
263
264 /* yy_hold_char holds the character lost when yytext is formed. */
265 static char yy_hold_char;
266 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
267 int yyleng;
268
269 /* Points to current character in buffer. */
270 static char *yy_c_buf_p = (char *) 0;
271 static int yy_init = 1;         /* whether we need to initialize */
272 static int yy_start = 0;        /* start state number */
273
274 /* Flag which is used to allow yywrap()'s to do buffer switches
275  * instead of setting up a fresh yyin.  A bit of a hack ...
276  */
277 static int yy_did_buffer_switch_on_eof;
278
279 void yyrestart (FILE *input_file  );
280 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
281 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
282 void yy_delete_buffer (YY_BUFFER_STATE b  );
283 void yy_flush_buffer (YY_BUFFER_STATE b  );
284 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
285 void yypop_buffer_state (void );
286
287 static void yyensure_buffer_stack (void );
288 static void yy_load_buffer_state (void );
289 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
290
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 (yyconst char *yy_str  );
295 YY_BUFFER_STATE yy_scan_bytes (yyconst 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
303 #define yy_set_interactive(is_interactive) \
304         { \
305         if ( ! YY_CURRENT_BUFFER ){ \
306         yyensure_buffer_stack (); \
307                 YY_CURRENT_BUFFER_LVALUE =    \
308             yy_create_buffer(yyin,YY_BUF_SIZE ); \
309         } \
310         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
311         }
312
313 #define yy_set_bol(at_bol) \
314         { \
315         if ( ! YY_CURRENT_BUFFER ){\
316         yyensure_buffer_stack (); \
317                 YY_CURRENT_BUFFER_LVALUE =    \
318             yy_create_buffer(yyin,YY_BUF_SIZE ); \
319         } \
320         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
321         }
322
323 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
324
325 /* Begin user sect3 */
326
327 #define yywrap(n) 1
328 #define YY_SKIP_YYWRAP
329
330 typedef unsigned char YY_CHAR;
331
332 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
333
334 typedef int yy_state_type;
335
336 extern int yylineno;
337
338 int yylineno = 1;
339
340 extern char *yytext;
341 #define yytext_ptr yytext
342
343 static yy_state_type yy_get_previous_state (void );
344 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
345 static int yy_get_next_buffer (void );
346 static void yy_fatal_error (yyconst char msg[]  );
347
348 /* Done after the current pattern has been matched and before the
349  * corresponding action - sets up yytext.
350  */
351 #define YY_DO_BEFORE_ACTION \
352         (yytext_ptr) = yy_bp; \
353         yyleng = (size_t) (yy_cp - yy_bp); \
354         (yy_hold_char) = *yy_cp; \
355         *yy_cp = '\0'; \
356         (yy_c_buf_p) = yy_cp;
357
358 #define YY_NUM_RULES 60
359 #define YY_END_OF_BUFFER 61
360 /* This struct is not used in this scanner,
361    but its presence is necessary. */
362 struct yy_trans_info
363         {
364         flex_int32_t yy_verify;
365         flex_int32_t yy_nxt;
366         };
367 static yyconst flex_int16_t yy_accept[932] =
368     {   0,
369         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
370        61,   41,   41,   38,   56,   41,   56,   41,   39,   41,
371        41,   39,   36,   14,   14,   36,   36,   36,   32,   36,
372        22,   33,   36,   36,   36,   36,   36,   36,   36,   36,
373        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
374        46,   44,   57,   57,   52,   50,   55,    0,    0,    0,
375         0,    0,    0,    0,   42,    0,    0,    0,    0,    0,
376         0,    0,    0,    0,    0,    0,   43,   37,   43,   43,
377        43,   43,   39,    0,    0,   39,   14,    0,   28,    0,
378         0,    0,    0,   11,   22,   27,    0,    0,    0,    0,
379
380         0,    0,    0,   29,    0,    0,    0,    0,    0,    0,
381         0,    0,    0,    0,    0,    0,    0,   34,   30,   12,
382        13,    0,   47,   49,   48,    0,   53,   54,    0,    0,
383         0,    0,    0,    0,    0,    0,    0,   40,    0,    0,
384        39,    0,   31,    0,    0,    0,    0,    0,    0,    0,
385         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
386         0,    0,    0,   30,   13,    0,    0,    0,    0,    0,
387         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
388        39,    0,    0,    0,   16,    0,   27,   27,    0,    0,
389        24,   24,    0,    0,    0,    0,    0,    0,    0,    0,
390
391         0,    0,    0,    0,    0,    0,    0,    0,    0,   59,
392         0,    0,    0,    0,    0,    0,    0,   39,    0,    0,
393         0,    0,    0,    0,    0,    0,    0,   19,    0,    0,
394         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
395         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
396         0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
397         0,    0,    0,    0,   26,    0,   15,    0,    0,    0,
398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
399         0,   17,    0,    0,    0,    0,    0,    0,    0,    0,
400         0,    0,   39,    0,    0,    0,    0,    0,    0,    0,
401
402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403        18,    0,    0,    0,    0,    0,    0,    0,    0,    0,
404         0,   39,    0,   35,    0,    0,    0,    0,    0,   24,
405        24,    0,    0,    0,    0,    0,    0,    0,    0,    0,
406         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
407         0,    0,   39,    0,    0,    0,    0,    0,    0,    0,
408         0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411         0,    0,    0,    0,    0,    0,    0,    0,   20,    0,
412
413         0,    8,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    8,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,   10,    0,    0,    0,
417         0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    7,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         7,   58,    9,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    4,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    4,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,   27,   27,    0,    0,    0,    0,    0,
431         0,    0,    0,    6,    0,    0,    0,    0,    0,    2,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    6,    0,    0,    0,    0,    0,    2,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,   25,
440         0,    0,    0,    0,   45,   51,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
451         0,    0,    0,    1,    0,    0,    3,    0,    0,    0,
452         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
453         0,    0,    0,    0,    0,    0,    0,    1,    0,    0,
454         5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
455         0,    0,    0,    0,    0,    0,    0,    7,    0,    5,
456
457         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
458         0,    0,    0,    0,    0,    0,    7,    0,    0,    0,
459         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
460         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
461         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
462         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
463         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464         3,    3,    0,    0,    0,    0,    0,    0,    3,    3,
465         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
466         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
467
468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
469         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
470         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
471         0
472     } ;
473
474 static yyconst flex_int32_t yy_ec[256] =
475     {   0,
476         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
477         2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
478         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
479         1,    2,    1,    4,    5,    1,    6,    1,    7,    8,
480         9,   10,    1,   11,    1,    1,   12,   13,   13,   13,
481        13,   13,   13,   13,   13,   13,   13,   11,   14,   11,
482        15,   11,    1,   16,   17,   18,   19,   20,   21,   22,
483        23,   24,   25,   26,   26,   27,   28,   29,   30,   31,
484        26,   32,   33,   34,   35,   36,   37,   26,   38,   26,
485        39,   40,   41,    1,   42,    1,   43,   44,   45,   46,
486
487        47,   48,   49,   50,   51,   26,   26,   52,   53,   54,
488        55,   56,   26,   57,   58,   59,   60,   26,   26,   61,
489        62,   63,   64,    1,   65,    1,    1,    1,    1,    1,
490         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
491         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
492         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
493         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
495         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
497
498         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
499         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
500         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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
504     } ;
505
506 static yyconst flex_int32_t yy_meta[66] =
507     {   0,
508         1,    2,    3,    1,    1,    4,    1,    5,    6,    7,
509         1,    1,    8,    9,    1,    1,   10,   10,   10,   10,
510        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
511        10,   10,   10,   10,   10,   10,   10,   10,   11,    1,
512         1,   10,   10,   10,   10,   10,   10,   10,   10,   10,
513        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
514        10,   10,   10,   12,    1
515     } ;
516
517 static yyconst flex_int16_t yy_base[1016] =
518     {   0,
519         0,   65,  130,   11,   15,   16,   18,   19,   17,   27,
520      3555,    0,   40,  194,   49,   43,   35, 4014,    0,   64,
521        67, 3533, 4014,   29,   32,   44, 3497, 3494, 4014, 3520,
522      3513, 4014,  254,  319,    7,   16, 3494,   31, 3482,   58,
523        62,    8,   61,  168,  169,  170,  171,   67,  203, 3505,
524         0, 4014, 3493, 3491,    0,    0, 3437, 3440, 3441, 3427,
525      3426,  201, 3442,  198, 4014,    0,  210,  232,  211,  235,
526      3464, 3466,  213,  218,  219,  224, 4014, 4014, 3375, 3376,
527      3372, 3379,    0, 3385, 3377, 3398,   52,  202, 4014, 3408,
528      3360, 3389, 3384, 4014, 3370, 4014, 3349, 3347,   14,   90,
529
530        86,  188, 3334, 4014,  178,  189,  180,   26,  181,  246,
531       249,  252,  253,  182,  250,  254,  257, 4014,    0, 4014,
532         0,    0, 4014, 4014, 4014,    0, 4014, 4014, 3315,  192,
533      3307, 3303, 3312,  292,  297,  299,  301, 4014, 3298, 3294,
534      3302, 3295, 4014,  216,  217,  384,  214,  340,  175,  255,
535       256,  308,  449,  267,  258,  314,  260,  306,  315,  317,
536       316,  320,  323,    0,    0,    0,    0, 3295, 3282, 3270,
537      3274, 3262,  363,  363,  368,  369,  364,  373, 3255, 3242,
538      3257, 3230,  262,  372, 4014,  375,  404,  376,  367,  514,
539      4014,  578,  371,  385,  389,  386,  390,  391,  401,  326,
540
541       332,    0,    0, 3220, 3204, 3189, 3184, 3172,  432, 4014,
542       426,  435,  432,  438,  439, 3170, 3169, 3201, 3167,  444,
543       450,  439,  479,  468,  489,  492,  638, 4014,    0, 3190,
544      3187, 3114, 3044, 3039, 3037,  446, 3037,  481,  518,  392,
545       503,  443,  473,  703,    0,    0, 3036, 3044, 3029, 3040,
546       496,  496,  500,  502,  504,  535, 3039,  507, 3066, 3037,
547       482,  516,  522,  554, 4014,  556, 4014, 3053, 3049, 3026,
548      3036, 3019, 3022, 3019,  513, 3015,  540,  553,  513,  537,
549       768, 4014,    0,    0,  532, 3024,  566,  569,  570,  833,
550       582,  587, 3029, 3067,  557,  563,  574, 3042, 3034, 3013,
551
552      3004,  596, 3008, 2998, 3000, 3005, 2995,  411,  547,  570,
553      4014,    0,    0,  604,  609,  612,  653,  622,  898,  614,
554       617,  656, 3036, 4014,  276,  638,  571, 2995, 2991, 4014,
555         0, 2970, 2981, 2974, 2963,  573,  963,  603,    0,    0,
556      2959, 1027,  663,  632,  686, 1087,  693, 1152, 2955,  668,
557       672,  670,  679,  658,  659,  692, 2958, 2936, 2925, 2908,
558       637, 4014, 1217,    0,    0, 2924,  721,  751,  755,  737,
559       802,  811,  814,  868,  877, 2924,  697, 1282, 1347, 2923,
560       691,  455,  697,  700,  736,  698,  756, 2913, 2915,  696,
561       747,  711,  767,  759,  769, 2915, 2909, 1412, 4014,    0,
562
563         0, 4014,  848,  851,  798,  880,  913,  922,  926,  939,
564       942,  951,  981,  984, 1004, 1007, 2889,  696, 1477, 1016,
565       823, 2870, 2821,  598,  768,  578,  633,  708,  773,  832,
566       734,  838,  826, 2817, 2740, 1022, 4014, 1032,  788,  830,
567       825,  862, 2661, 2609, 4014,    0,    0,  891, 1036,  954,
568      1040, 1047, 1167, 1178, 1187, 1060, 1196, 1205, 1245, 1232,
569      1257, 1261, 1316, 4014, 1542, 1169, 1607, 1235,  890,  892,
570       881,  772,  993,  950,  829,  946, 1007,  928,  905,  960,
571       981, 4014, 4014,  978, 1002,  921,  963, 2601, 2578,    0,
572         0, 1270, 1050, 1057, 1064, 1300, 1303, 1671, 1325, 1328,
573
574      1362, 1387, 1371, 1390, 1427, 1731, 1796, 1861, 1034, 1039,
575      1926, 1135, 1153, 1154, 1157,  986, 1219, 1434, 1053, 2541,
576       778,    0,    0, 4014, 2541, 1399, 1312, 1431, 1447, 1458,
577      1366, 1380, 1442, 1445, 1460, 1501, 1505, 1511, 1509, 1518,
578      1527, 1530, 1563, 1040, 1237, 1565, 1593, 1991, 1277,  847,
579      2056, 2121, 2522, 1148, 1155, 1182, 1221, 1355, 1216,  639,
580      1152, 1250, 1467, 1576, 1337, 1180, 2505, 2467, 2451,    0,
581         0, 2430, 1596, 4014, 2354, 1626, 1629, 1647, 1573, 4014,
582      1638, 1642, 1588, 1655, 1662, 1690, 1694, 1699, 1697, 1680,
583      1367, 1748, 1356, 1663, 1236, 1304, 1811, 2298, 1469, 2275,
584
585      1311, 1270, 1348, 1307, 1220, 1416, 1656, 1274, 2186, 1704,
586      1496, 1499, 1591, 2221, 2107, 2053,    0,    0, 1987, 1892,
587      1751, 1755, 1764, 1814, 1766, 1824, 1779, 1829, 1827, 1820,
588      1842, 1844, 1660, 1875, 1817, 1497, 1476, 1411, 1558, 1573,
589      1346, 1657, 1445, 1596, 1612, 1475, 1529, 2251, 1682, 4014,
590      1715, 1819, 1739, 1693, 4014, 4014, 1610, 1437, 1883, 1896,
591      1880, 2006, 2315, 2010, 2026, 2008, 2031, 2013, 1784, 1774,
592      1883, 2034,  918, 1054, 1494, 1684, 2375, 1730, 1647, 1810,
593      1679, 2440, 2505, 2570, 1414, 1376, 1284, 2073, 2044, 1894,
594      2076, 1907, 2023, 2085, 2089, 2091, 2098, 2105, 2150, 2153,
595
596      2155, 2136, 2163, 2205, 2140, 2209, 2215, 2108, 2130, 2140,
597      1509, 2141, 1889, 1540, 2635, 2700, 1222, 1555, 1825, 1680,
598      1860, 1858, 1803, 1987, 1744, 1984, 2266, 2765, 2830, 1886,
599         0,  979, 4014,  842, 2275, 2236, 2239, 2270, 2279, 2170,
600      2217, 2284, 2297, 2299, 2306, 2322, 2463, 2470, 2472, 2231,
601      2480, 2324, 2338, 4014, 2455, 2340, 2045, 2315, 1056, 1790,
602      1605, 1695, 2059, 2485,  718,  556, 2009, 1144, 2151, 2074,
603      2117, 2186, 2180, 2258, 2245, 2488,  413, 2105, 2141, 1884,
604      4014, 2527, 2545, 2531, 2529, 2342, 2586, 2588, 2547, 2554,
605      2591, 2355, 2605, 2601, 2614, 2618, 2667, 2650, 2669, 2174,
606
607      2194, 2072, 1989, 2276, 1753, 2305, 2317, 2320, 2282, 2292,
608      2465, 2429, 2440, 2431, 2323, 2532,  348, 2506, 2653, 2688,
609      2623, 2675, 2717, 2719, 2721, 2723, 2894, 2740, 2742, 2744,
610      2746, 2780, 2344, 2338, 2430, 2005, 1829, 2582, 2588, 2468,
611      2726, 2506, 2512, 2637, 2565,   23, 2782, 2795, 2810, 2800,
612      2813, 2845, 2852, 2854, 2858, 2111, 2567, 2652, 2662, 2200,
613      2470, 2521, 2568, 2626, 2871, 2885, 2887, 2890, 2908, 2917,
614      2914, 2921, 2632, 2663, 2702, 2571, 2725, 2763,  198,   84,
615      2923, 2927, 2941, 2945, 2954, 2732, 2777, 2658, 2757, 2697,
616      2958, 2961, 2963, 2978, 2980, 2780, 2771, 2787, 2249, 2828,
617
618      2982, 2985, 2988, 2723, 2798, 2965, 3001, 3003, 3006, 3011,
619      2792, 2832, 2833, 2850, 3020, 3024, 3029, 2855, 2835, 2854,
620      3039, 3042, 3046, 2856, 2884, 2873, 3048, 2989, 3061, 2902,
621      4014, 3095, 3107, 3119, 3131, 3143, 3155, 3160, 3170, 3182,
622      3194, 3206, 3215, 3227, 3239, 3251, 3263, 3268, 3278, 3290,
623      3302, 3314, 3326, 3337, 3347, 3359, 3370, 3380, 3392, 3404,
624      3416, 3427, 3437, 3449, 3461, 3473, 3485, 3496, 3506, 3517,
625      3527, 3539, 3550, 3559, 3569, 3581, 3592, 3602, 3613, 3623,
626      3635, 3646, 3656, 3668, 3680, 3691, 3700, 3710, 3722, 3734,
627      3746, 3757, 3766, 3776, 3788, 3800, 3811, 3821, 3832, 3842,
628
629      3854, 3865, 3875, 3886, 3896, 3908, 3919, 3929, 3940, 3949,
630      3959, 3970, 3979, 3989, 4001
631     } ;
632
633 static yyconst flex_int16_t yy_def[1016] =
634     {   0,
635       932,  932,  931,    3,  933,  933,  933,  933,  934,  934,
636       931,  931,  931,  931,  935,  936,  937,  931,  938,  931,
637       931,  938,  931,  931,  931,  939,  931,  940,  931,  931,
638       931,  931,  941,  941,   34,   34,   34,   34,  942,   34,
639        34,   34,   34,   34,   34,   34,   34,   34,  943,  931,
640       944,  931,  945,  945,  946,  946,  947,  931,  931,  931,
641       931,  931,  931,  935,  931,  935,  935,  935,  935,  935,
642       931,  936,  931,  931,  931,  931,  931,  931,  931,  931,
643       931,  931,  938,  931,  931,  938,  931,  939,  931,  939,
644       931,  931,  940,  931,  931,  931,   34,   34,   34,   34,
645
646        34,   34,  942,  931,   34,   34,   34,   34,   34,   34,
647        34,   34,   34,   34,   34,   34,   34,  931,  948,  931,
648       949,  950,  931,  931,  931,  951,  931,  931,  931,  931,
649       931,  931,  931,  935,  935,  935,  935,  931,  931,  931,
650       938,  931,  931,   34,   34,  941,   34,   34,   34,   34,
651        34,   34,  941,   34,   34,   34,   34,   34,   34,   34,
652        34,   34,   34,  948,  949,  952,  953,  931,  931,  931,
653       931,  931,  931,  935,  935,  935,  935,  935,  931,  931,
654       938,  931,   34,   34,  931,   34,  931,  954,   34,  941,
655       931,  931,   34,   34,   34,   34,   34,   34,   34,   34,
656
657        34,  955,  956,  931,  931,  931,  931,  931,  931,  931,
658       935,  935,  935,  935,  935,  931,  931,  938,  931,   34,
659        34,   34,  931,  954,  954,  957,  941,  931,  192,  931,
660       931,  931,  931,  931,  931,  931,  931,   34,   34,   34,
661        34,   34,   34,  941,  958,  959,  931,  931,  931,  931,
662       931,  935,  935,  935,  935,  935,  931,  931,  938,  931,
663        34,   34,   34,  931,  931,  957,  931,  931,  931,  931,
664       931,  931,  931,  931,  931,  931,   34,   34,   34,   34,
665       941,  931,  960,  961,  931,  931,  962,  935,  935,  963,
666       931,  962,  938,  964,   34,   34,   34,  931,  931,  931,
667
668       931,  965,  931,  931,  931,  931,  931,   34,   34,   34,
669       931,  966,  967,  931,  931,  968,  935,  935,  969,  931,
670       931,  970,  964,  931,   34,   34,   34,  931,  931,  931,
671       192,  931,  931,  931,  931,   34,  941,   34,  971,  972,
672       931,  973,  931,  968,  935,  931,  935,  969,  931,  931,
673       931,  974,  970,   34,   34,   34,  931,  931,  931,  931,
674        34,  931,  941,  975,  976,  931,  977,  977,  977,  977,
675       977,  977,  977,  977,  977,  931,  935,  978,  978,  379,
676       379,  379,  379,  379,  379,  379,  935,  931,  931,  974,
677       979,   34,   34,   34,   34,  931,  931,  941,  931,  980,
678
679       981,  931,  982,  931,  931,  977,  977,  977,  977,  977,
680       977,  977,  977,  977,  977,  977,  931,  935,  983,  935,
681       935,  379,  379,  379,  379,  379,  379,  379,  379,  379,
682       379,  379,  935,  931,  931,  931,  931,  979,   34,   34,
683        34,   34,  931,  931,  931,  984,  985,  986,  931,  987,
684       931,  977,  977,  977,  977,  977,  977,  977,  977,  977,
685       977,  977,  977,  931,  988,  935,  989,  935,  379,  379,
686       379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
687       935,  931,  931,   34,   34,   34,   34,  931,  931,  990,
688       991,  931,  986,  987,  992,  977,  977,  993,  977,  977,
689
690       977,  977,  977,  977,  935,  988,  989,  994,  379,  379,
691       931,  379,  379,  379,  379,  379,  379,   34,   34,  931,
692       931,  995,  996,  931,  931,  931,  931,  992,  977,  977,
693       997,  997,  997,  997,  997,  997,  997,  997,  997,  977,
694       977,  977,  977,  935,  935,  935,  935,  994,  379,  379,
695       998,  998,  552,  552,  552,  552,  552,  552,  552,  379,
696       379,  379,  379,  931,  999,   34,  931,  931,  931, 1000,
697      1001,  931,  931,  931,  931,  977,  977,  931,  997,  931,
698       997,  997,  997,  997,  997,  997,  997,  997,  997, 1002,
699       935,  935,  935,  935,  379,  379,  935,  552,  935,  552,
700
701       552,  552,  552,  552,  552,  552,  552,  552, 1003,  931,
702       999,  999, 1004,  931,  931,  931, 1005, 1006,  931,  931,
703       977,  977,  997,  997,  997,  997,  997,  997,  997,  997,
704       997,  997, 1007,  935,  935,  379,  379,  552,  552,  552,
705       552,  552,  552,  552,  552,  552,  552, 1008,  931,  931,
706      1004,  931,  931,  931,  931,  931,  931,  931,  977,  977,
707       997,  997, 1009,  997,  997,  997,  997, 1010, 1010, 1007,
708       935,  935,  379,  379,  552,  552,  931,  552,  552,  552,
709       552, 1011, 1011, 1008,  931,  931,  931,  977,  977,  997,
710       997, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
711
712      1012,  997,  997, 1010, 1013, 1013, 1013, 1010,  935,  935,
713       379,  379,  552,  552, 1014, 1014,  716,  716,  716,  716,
714       716,  716,  716,  716,  552,  552,  683, 1015, 1015,  729,
715       683,  931,  931,  931,  977,  977,  977,  997,  997,  931,
716      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
717      1012,  931, 1013,  931, 1013, 1013,  935,  935,  379,  379,
718       379,  552,  552,  935,  716,  716,  716,  716,  716,  716,
719       716,  716,  716,  716,  716,  935,  729,  935,  729,  729,
720       931,  977,  977,  977,  997,  997, 1012, 1012, 1012, 1012,
721      1012, 1012, 1012, 1012, 1012, 1012, 1012, 1013, 1013,  935,
722
723       379,  379,  379,  552,  552,  716,  716,  716,  716,  716,
724       716,  716,  716,  716,  716,  716,  729,  729,  977,  977,
725       977,  997,  997, 1012, 1012, 1012, 1009, 1012, 1012, 1012,
726      1012, 1013,  379,  379,  379,  552,  552,  716,  716,  716,
727       677,  716,  716,  716,  716,  729,  977,  997,  997, 1012,
728      1012, 1012, 1012, 1012, 1013,  379,  552,  552,  716,  716,
729       716,  716,  716,  729,  977,  997,  997,  997, 1012, 1012,
730      1012, 1013,  379,  552,  552,  552,  716,  716,  716,  729,
731       997,  997,  997, 1012, 1012,  552,  552,  552,  716,  716,
732       997,  997,  997, 1012, 1012,  552,  552,  552,  716,  716,
733
734       997, 1012, 1012,  552,  716,  716,  997, 1012, 1012, 1012,
735       552,  716,  716,  716, 1012, 1012, 1012,  716,  716,  716,
736      1012, 1012, 1012,  716,  716,  716, 1012,  716, 1012,  716,
737         0,  931,  931,  931,  931,  931,  931,  931,  931,  931,
738       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
739       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
740       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
741       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
742       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
743       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
744
745       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
746       931,  931,  931,  931,  931
747     } ;
748
749 static yyconst flex_int16_t yy_nxt[4080] =
750     {   0,
751        12,   13,   14,   15,   12,   12,   16,   12,   12,   12,
752        12,   17,   18,   12,   12,   12,   49,   52,   52,   56,
753        52,   52,   57,  931,   53,   53,   50,   54,   54,   56,
754        87,   87,   57,   87,   87,   99,   97,   97,   12,   12,
755        12,   62,   62,   97,   78,   97,   58,   89,  145,  100,
756       864,  102,   65,   87,   87,   97,  777,   59,   60,   61,
757        97,  108,   63,   12,   12,   12,   13,   14,   15,   20,
758        21,   16,   12,   12,   12,   12,   17,   18,   12,   12,
759        12,   79,   72,   90,   22,  152,   58,   97,   66,   73,
760        97,   97,   80,   81,   82,   67,   97,   59,   60,   61,
761
762        74,   75,   76,   12,   12,   12,   68,   69,   70,   84,
763        58,  106,  105,   58,  109,   97,  107,  777,  147,   97,
764       117,   59,   60,   61,   59,   60,   85,  146,   12,   12,
765        23,   24,   25,   26,   27,   23,   28,   29,   29,   29,
766        29,   30,   31,   32,   32,   23,   33,   34,   33,   33,
767        35,   33,   36,   37,   33,   33,   33,   33,   33,   33,
768        33,   33,   33,   33,   33,   38,   33,   33,   39,   23,
769        23,   33,   33,   40,   41,   33,   42,   33,   33,   33,
770        43,   44,   33,   45,   33,   46,   33,   47,   33,   48,
771        33,   33,   33,   29,   29,   62,   62,   97,   97,   97,
772
773        97,   65,   62,   62,   97,   89,  148,   97,  118,   97,
774        97,   97,  112,   65,   65,  111,   63,   97,   97,  138,
775       114,  115,  110,   63,  138,  138,  153,  765,  113,  116,
776       138,  150,  149,  151,  169,   65,  158,   66,   65,  153,
777        58,   90,  183,   97,  184,   97,   97,  186,  170,   66,
778        66,   59,   60,   61,   96,   96,   96,   96,   96,   96,
779        96,   96,   96,   96,   96,   96,  120,   96,   96,   96,
780       134,   66,  136,  129,   66,   97,  130,  132,   97,   97,
781       131,   97,   97,   97,   97,   97,   97,   97,  137,   97,
782       135,   97,   96,   96,   96,   65,   97,  354,  159,  154,
783
784        65,  195,   65,  220,   65,   97,  155,  162,  156,  157,
785       161,  153,  160,  189,  163,  153,  193,   96,   96,   96,
786        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
787        96,   66,   96,   96,   96,   97,   66,   97,   66,  175,
788        66,  187,  187,   97,   97,   97,   97,  188,   98,   97,
789       174,  178,   97,  176,  177,   97,  194,   96,   96,   96,
790       190,   97,  196,  198,  209,  209,   65,   65,  197,   97,
791       210,   65,   65,  201,  200,  199,   65,  225,  225,  244,
792       159,  777,   96,   96,  185,  185,  185,  185,  185,  185,
793       185,  185,  185,  185,  185,  185,   97,  185,  185,  185,
794
795        97,   97,   66,   66,   97,  223,  223,   66,   66,  211,
796       214,  224,   66,  221,   97,   97,  222,  238,   97,   97,
797        97,   97,  185,  185,  185,  227,  212,  215,  213,   65,
798        97,  240,  242,  209,  209,   65,  241,  239,   65,  210,
799        97,   65,   65,  280,  153,  243,  777,  185,  185,  191,
800       192,  192,  191,  191,  191,  191,  191,  191,  191,  191,
801       191,  261,  191,  191,  191,   66,  336,  262,   97,  225,
802       225,   66,   97,   97,   66,  263,  254,   66,   66,   97,
803       223,  223,  252,  255,  422,  253,  224,  191,  191,  191,
804       225,  225,  256,  264,  264,  274,  275,  287,  287,   65,
805
806       265,  153,   97,   65,  426,   65,  295,   65,  292,  292,
807        97,   97,  191,  191,  228,  228,  228,  228,  228,  228,
808       228,  228,  228,  228,  228,  228,  277,  228,  228,  228,
809       278,  281,   97,  314,  314,   66,  290,  290,   65,   66,
810       296,   66,   97,   66,  288,   97,  297,   97,  153,  288,
811       289,   97,  228,  228,  228,  264,  264,  264,  264,  279,
812       256,  305,  265,  309,  265,  278,   97,  287,  287,   97,
813       317,  317,   65,   65,   66,  306,   97,  228,  228,  229,
814       229,  308,   97,  320,  320,  806,   97,  310,  292,  292,
815       325,  356,   97,  327,  279,  230,  326,  331,  331,   97,
816
817        97,  231,   97,   97,  337,  314,  314,  422,   66,   66,
818       342,  342,  338,  343,  343,  320,  320,  318,  350,  350,
819       472,  232,  233,  346,  346,   65,  341,  422,  234,  235,
820       470,  361,   97,  343,  343,  236,  349,  237,  267,  267,
821       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
822       321,  267,  267,  267,  317,  317,   65,  351,  351,  355,
823       363,   66,  422,  352,  343,  343,   97,   97,  422,  350,
824       350,  390,  390,  351,  351,  345,  267,  267,  267,  352,
825       351,  351,  392,  393,  473,  376,  352,   97,   97,   65,
826       389,  473,   66,  398,  347,  347,   65,  390,  390,   65,
827
828        65,  267,  267,  282,  282,  282,  282,  282,  282,  282,
829       282,  282,  282,  282,  282,  387,  282,  282,  282,  377,
830       422,   97,  403,  403,  394,   66,  422,  422,  404,  422,
831       405,  439,   66,  395,  418,   66,   66,  422,  403,  403,
832        97,  282,  282,  282,  404,  425,  405,  765,  436,  436,
833       427,  432,  403,  403,  428,  437,  403,  403,  404,   65,
834       405,  474,  404,  422,  405,  422,  282,  282,  311,  311,
835       311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
836       407,  311,  311,  311,  408,  429,  430,  440,   97,  433,
837       478,  409,  441,  442,  431,   66,   97,  422,   97,  451,
838
839       451,  422,  422,  403,  403,  404,  311,  311,  311,  404,
840       568,  405,  403,  403,  484,  403,  403,   97,  404,  569,
841       405,  404,  471,  405,  468,  468,   65,  475,  473,   65,
842       420,  311,  311,   64,  290,  290,   65,   64,   64,   64,
843        64,   64,   64,   64,   64,   64,   64,   64,   64,  403,
844       403,  410,  449,  449,   97,  404,  485,  405,  422,   97,
845       450,  422,   66,  481,  411,   66,  486,  422,  412,  403,
846       403,   64,   66,   64,  781,  404,  422,  405,  403,  403,
847       476,  403,  403,  596,  404,  512,  405,  404,  479,  405,
848       487,   97,  492,  492,  477,  480,   64,   64,   64,  347,
849
850       347,   65,   64,   64,   64,   64,   64,   64,   64,   64,
851       422,   64,   64,   64,  403,  403,  509,  413,  414,  422,
852       404,  422,  405,  403,  403,  510,  415,  403,  403,  404,
853       416,  405,  473,  404,  422,  405,   64,   66,   64,  711,
854       403,  403,  452,  403,  403,  519,  404,  422,  405,  404,
855        97,  405,  403,  403,  453,  494,  494,  422,  404,  516,
856       405,   64,   64,  362,  362,  362,  362,  362,  362,  362,
857       362,  362,  362,  362,  362,  422,  362,  362,  362,  422,
858       454,  455,  403,  403,   65,  403,  403,  515,  404,  422,
859       405,  404,   97,  405,  511,  511,  153,  153,  473,  513,
860
861       456,  362,  362,  362,  457,  403,  403,   97,  403,  403,
862       517,  404,  302,  405,  404,  422,  405,  466,  466,   65,
863        66,  518,  422,  436,  436,  467,  362,  362,  342,  342,
864       437,   97,  459,  436,  436,  458,  422,  449,  449,  563,
865       437,  451,  451,   65,  368,  450,  460,  404,  403,  403,
866       369,  492,  492,  514,  404,   66,  405,  462,  494,  494,
867       461,  498,  498,  422,  463,  526,  526,  404,  422,  405,
868       370,  371,  527,  496,  712,  549,  801,  372,  373,   66,
869       550,  566,   97,  422,  374,  422,  375,   64,  346,  346,
870        65,   64,   64,   64,   64,   64,   64,   64,   64,   64,
871
872        64,   64,   64,  378,  379,  378,  378,  378,  378,  378,
873       380,  378,  378,  378,  378,  378,  378,  378,  378,  378,
874       378,  378,  378,  378,  378,   64,   66,   64,  378,  378,
875       381,  382,  378,  378,  378,  378,  378,  383,  384,  378,
876       378,  378,  378,  378,  385,  378,  386,  378,  378,  378,
877        64,   64,   64,  347,  347,   65,   64,   64,   64,   64,
878        64,   64,   64,   64,  422,   64,   64,   64,  403,  403,
879       466,  466,   65,  765,  404,  808,  405,  598,  467,  403,
880       403,  422,  422,  422,  598,  404,  422,  405,  403,  403,
881        64,   66,   64,  473,  404,  561,  405,  403,  403,  560,
882
883       497,  562,  602,  404,  603,  405,  403,  403,   66,   97,
884       473,  598,  404,  153,  405,   64,   64,  399,  399,  399,
885       399,  399,  399,  399,  399,  399,  399,  399,  399,  456,
886       399,  399,  399,  403,  403,  604,  468,  468,   65,  404,
887        65,  405,  420,  456,  456,  598,  403,  403,  422,  598,
888       598,  767,  404,  591,  405,  399,  399,  399,  403,  403,
889       636,  499,  403,  403,  404,  422,  405,  476,  404,  608,
890       405,  492,  492,  643,   66,  605,   66,  524,  501,  422,
891       399,  399,   64,  419,  419,   65,   64,   64,   64,  420,
892        64,  421,   64,   64,  595,   64,   64,   64,  500,  598,
893
894       525,  403,  403,  598,  403,  403,  422,  404,  563,  405,
895       404,  734,  405,  573,  573,  503,  502,  403,  403,  574,
896        64,   66,   64,  404,  640,  405,  403,  403,  637,  403,
897       403,  647,  404,  422,  405,  404,  598,  405,  612,  612,
898       598,  529,  575,  639,  530,   64,   64,   64,  419,  419,
899        65,   64,   64,   64,  420,   64,  421,   64,   64,   65,
900        64,   64,   64,  403,  403,  642,  504,  578,  578,  404,
901        65,  405,  403,  403,  540,  598,  423,  598,  404,  580,
902       405,  578,  578,  456,  598,   64,   66,   64,  403,  403,
903       641,  403,  403,  580,  404,   66,  405,  404,  634,  405,
904
905       526,  526,  642,  541,  606,  607,   66,  527,  733,  581,
906        64,   64,  445,  445,  445,  445,  445,  445,  445,  445,
907       445,  445,  445,  445,  543,  445,  445,  445,  505,  505,
908        65,  542,  526,  526,  544,  564,  564,  675,  459,  527,
909       598,  565,  732,  578,  578,  598,  578,  578,  403,  403,
910       445,  445,  445,  687,  404,  580,  405,  545,  580,  403,
911       403,  578,  578,   97,  576,  404,   66,  405,  609,  609,
912       644,  582,   65,  580,  598,  445,  445,   64,  419,  419,
913        65,   64,   64,   64,  420,   64,  421,   64,   64,   64,
914        64,   64,   64,  642,  577,  674,  422,  612,  612,  583,
915
916       612,  612,  578,  578,  598,  422,  578,  578,   66,  584,
917       578,  578,  578,  578,  580,   64,   66,   64,  580,  403,
918       403,  680,  580,  598,  580,  404,  422,  405,  403,  403,
919       673,  403,  403,  759,  404,  713,  405,  404,  422,  405,
920        64,   64,   64,  505,  505,   65,   64,   64,   64,   64,
921        64,   64,   64,   64,  585,   64,   64,   64,  598,  586,
922       587,  588,  589,  456,  590,  590,  546,  546,   65,  598,
923       404,  768,  405,  547,  578,  578,  763,  610,  610,  681,
924        64,   66,   64,  611,  765,  456,  580,  598,  543,  578,
925       578,  676,  649,  649,  592,  592,   65,  573,  573,  650,
926
927       593,  580,  598,  574,   66,   64,   64,   64,  507,  507,
928        65,   64,   64,   64,   64,   64,   64,   64,   64,   64,
929        64,   64,   64,  594,  642,  598,  575,  403,  403,  803,
930       403,  403,   66,  404,  422,  405,  404,  686,  405,  578,
931       578,  598,  625,  578,  578,   64,   66,   64,  578,  578,
932       621,  580,  678,  622,  524,  580,  578,  578,  677,  677,
933       580,  668,  668,  578,  578,  679,   65,  623,  580,  669,
934        64,   64,  498,  498,  624,  580,  598,  525,  404,  635,
935       405,  590,  590,  649,  649,  598,  598,  404,  532,  405,
936       650,  578,  578,  725,  533,  578,  578,  626,  578,  578,
937
938       578,  578,   66,  580,  645,  610,  610,  580,  598,  765,
939       580,  611,  580,  598,  534,  535,  649,  649,  646,  804,
940       627,  536,  537,  650,  598,  714,  302,  645,  538,  770,
941       539,   64,  505,  505,   65,   64,   64,   64,   64,   64,
942        64,   64,   64,  628,   64,   64,   64,  630,  629,  592,
943       592,   65,  403,  403,  632,  593,  403,  403,  404,  598,
944       405,  631,  404,  685,  405,  578,  578,  578,  578,   64,
945        66,   64,  837,  598,  660,  668,  668,  580,  594,  580,
946       663,  663,  598,  669,  659,  708,  708,   66,  642,  642,
947       661,  931,  580,  931,   64,   64,   64,  507,  507,   65,
948
949        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
950        64,   64,  597,  597,   65,  578,  578,  627,  544,  422,
951        65,  578,  578,  802,  599,  578,  578,  580,  578,  578,
952       578,  578,  765,  580,   64,   66,   64,  580,  302,  598,
953       580,  545,  580,  578,  578,  578,  578,  662,  672,  858,
954        66,  726,  773,  774,  765,  580,   66,  580,  598,   64,
955        64,   64,  546,  546,   65,   64,   64,   64,   64,  547,
956        64,   64,   64,  665,   64,   64,   64,  627,   65,  769,
957       627,  578,  578,  664,  403,  403,   65,  765,  666,  765,
958       404,  671,  405,  580,  667,  578,  578,  403,  403,   64,
959
960        66,   64,  780,  404,  688,  405,  762,  580,  740,  740,
961       709,  738,  772,  771,   66,  818,  689,  777,  598,  777,
962       580,  690,   66,  658,   64,   64,   64,  511,  511,   65,
963        64,   64,   64,  420,   64,  421,   64,   64,   64,   64,
964        64,   64,  551,  552,  551,  551,  551,  551,  551,  553,
965       551,  551,  551,  551,  551,  551,  551,  551,  551,  551,
966       551,  551,  551,  551,   64,   66,   64,  551,  551,  554,
967       555,  551,  551,  551,  551,  551,  556,  557,  551,  551,
968       551,  551,  551,  558,  551,  559,  551,  551,  551,   64,
969        64,   64,  546,  546,   65,   64,   64,   64,   64,  547,
970
971        64,   64,   64,  657,   64,   64,   64,  578,  578,  578,
972       578,  578,  578,  598,  704,  704,  765,  835,  422,  580,
973       524,  580,  669,  580,  740,  740,  857,  578,  578,   64,
974        66,   64,  578,  578,  598,  706,  580,   65,  765,  580,
975       775,  807,  642,  707,  580,  403,  403,  691,   65,  703,
976       710,  404,  742,  405,   64,   64,   64,  597,  597,   65,
977        64,   64,   64,   64,   64,   64,   64,   64,  627,  599,
978        64,   64,  702,   66,  403,  403,  736,  578,  578,  630,
979       404,  654,  405,  805,   66,  737,  740,  740,  598,  580,
980       740,  740,  740,  740,   64,   66,   64,  735,  580,  740,
981
982       740,  422,  580,  765,  580,  744,  740,  740,   65,  708,
983       708,  580,  739,  834,  743,  931,  810,  931,  580,   64,
984        64,   64,  597,  597,   65,   64,   64,   64,   64,   64,
985        64,   64,   64,   65,  599,   64,   64,  578,  578,  873,
986       422,  752,  752,   65,   66,  745,  765,  746,  653,  580,
987       600,  740,  740,  754,  740,  740,  740,  740,  747,   64,
988        66,   64,  757,  580,  578,  578,  580,  758,  580,   66,
989       422,  740,  740,  760,  777,  811,  580,   65,  817,   66,
990       765,  627,  761,  580,   64,   64,   64,  609,  609,   65,
991        64,   64,   64,  420,   64,  421,   64,   64,   64,   64,
992
993        64,   64,  749,  750,  748,  809,  704,  704,  751,  765,
994       752,  752,  524,   66,  669,  765,  752,  752,  740,  740,
995       833,  627,  754,  422,   64,   66,   64,  706,  754,  765,
996       580,  756,  740,  740,  813,  707,  878,  403,  403,  812,
997       403,  403,  755,  404,  580,  405,  404,  652,  405,   64,
998        64,   64,  682,  682,   65,   64,   64,   64,   64,   64,
999       683,   64,   64,  784,   64,   64,   64,  727,  727,  783,
1000       905,  578,  578,  544,  765,  683,  403,  403,  765,  795,
1001       578,  578,  404,  580,  405,  740,  740,  765,  729,   64,
1002        66,   64,  580,  796,  785,  782,  730,  580,  740,  740,
1003
1004       740,  740,  816,  786,  638,  598,  814,  740,  740,  836,
1005       580,  765,  580,  787,   64,   64,  663,  663,   65,  580,
1006       815,  765,  524,  740,  740,  752,  752,  598,  580,  788,
1007       789,  838,  693,  811,  765,  580,  840,  754,  694,  752,
1008       752,  752,  752,  578,  578,  695,  765,  800,  811,  765,
1009       839,  754,  765,  754,   66,  580,  827,  827,  696,  697,
1010       790,  823,  856,  473,  791,  698,  699,  422,  580,  844,
1011       620,  799,  700,  422,  701,   64,  677,  677,   65,   64,
1012        64,   64,  544,   64,   64,   64,   64,   64,  599,   64,
1013        64,  715,  716,  715,  715,  715,  715,  715,  717,  715,
1014
1015       715,  715,  715,  715,  715,  718,  715,  715,  715,  715,
1016       715,  715,  715,   64,   66,   64,  715,  715,  719,  720,
1017       715,  715,  715,  715,  715,  721,  722,  715,  715,  715,
1018       715,  715,  723,  715,  724,  715,  715,  715,   64,   64,
1019        64,  727,  727,   65,   64,   64,   64,  544,   64,  683,
1020        64,   64,   64,   64,   64,   64,  752,  752,  765,  422,
1021       765,  619,  729,  473,  740,  740,  841,  841,  754,  765,
1022       730,  740,  740,  740,  740,  616,  580,  811,   64,   66,
1023        64,  740,  740,  580,  843,  580,  764,  764,   65,  776,
1024       776,   65,  798,  580,  765,  861,  842,  765,  599,  765,
1025
1026       615,  778,  879,   64,   64,   64,  731,  731,   65,   64,
1027        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
1028        64,  792,  846,  793,   66,  614,  794,   66,  403,  403,
1029       578,  578,  403,  403,  404,  765,  405,  797,  404,  777,
1030       405,  765,  580,   64,   66,   64,  403,  403,  740,  740,
1031       765,  601,  404,  819,  405,  740,  740,  572,  862,  821,
1032       580,  765,  822,  826,  811,  567,  811,  580,   64,   64,
1033        64,  682,  682,   65,   64,   64,   64,   64,   64,  683,
1034        64,   64,  845,   64,   64,   64,  820,  740,  740,  740,
1035       740,  874,  740,  740,  765,  888,  598,  765,  521,  580,
1036
1037       598,  580,  740,  740,  580,  792,  740,  740,   64,   66,
1038        64,  765,  824,  814,  580,  740,  740,  765,  580,  740,
1039       740,  825,  520,  859,  403,  403,  811,  580,  489,  860,
1040       404,  580,  405,   64,   64,   64,  764,  764,   65,   64,
1041        64,   64,   64,   64,   64,   64,   64,  792,  599,   64,
1042        64,  752,  752,  792,  403,  403,  456,  828,  880,  777,
1043       404,  422,  405,  754,  830,  473,  765,  829,  740,  740,
1044       752,  752,  456,   64,   66,   64,  578,  578,  863,  877,
1045       580,  598,  754,  886,  875,  832,  898,  598,  580,  403,
1046       403,  765,  598,  876,  488,  404,  848,  405,   64,   64,
1047
1048        64,  764,  764,   65,   64,   64,   64,   64,   64,   64,
1049        64,   64,  847,  599,   64,   64,  900,  831,  578,  578,
1050       740,  740,  740,  740,  740,  740,  765,  841,  841,  766,
1051       580,  598,  580,   64,  580,  887,  580,  849,   64,   66,
1052        64,  740,  740,  740,  740,  740,  740,  740,  740,  889,
1053       852,  911,  598,  580,  765,  580,  715,  580,  896,  580,
1054       850,  598,  851,   64,   64,   64,  776,  776,   65,   64,
1055        64,   64,   64,   64,   64,   64,   64,  483,  778,   64,
1056        64,  752,  752,  403,  403,  854,  765,  890,  853,  404,
1057       899,  405,  765,  754,  795,  904,  578,  578,  792,  642,
1058
1059       598,  740,  740,   64,   66,   64,  598,  855,  580,  598,
1060       865,  578,  578,  580,  740,  740,  598,  869,  897,  866,
1061       642,  598,  912,  580,  482,  642,  580,  765,   64,   64,
1062        64,  776,  776,   65,   64,   64,   64,   64,   64,   64,
1063        64,   64,  867,  778,   64,   64,  740,  740,  906,  870,
1064       469,  868,  918,  740,  740,  740,  740,  765,  580,  752,
1065       752,  765,  765,  779,  765,  580,  919,  580,   64,   66,
1066        64,  754,  403,  403,  920,  811,  925,  871,  404,  765,
1067       405,  924,  926,  765,  765,  765,  578,  578,  578,  578,
1068       872,  578,  578,   64,   64,  827,  827,  792,  580,  422,
1069
1070       580,  931,  765,  580,  456,  881,  811,  580,  928,  740,
1071       740,  693,  792,  765,  883,  740,  740,  694,  740,  740,
1072       882,  580,  752,  752,  578,  578,  464,  580,  578,  578,
1073       580,  765,  884,  444,  754,  811,  580,  696,  697,  443,
1074       580,  885,  578,  578,  698,  699,  740,  740,  435,  891,
1075       434,  700,  424,  701,  580,  740,  740,  417,  580,  578,
1076       578,  402,  578,  578,  578,  578,  302,  580,  892,  893,
1077       302,  580,  397,  895,  580,  396,  580,  627,  894,  740,
1078       740,  740,  740,  578,  578,  901,  740,  740,  388,  740,
1079       740,  580,  366,  580,  765,  580,  627,  913,  580,  902,
1080
1081       903,  580,  578,  578,  740,  740,  914,  740,  740,  908,
1082       907,  305,  740,  740,  580,  360,  580,  930,  765,  580,
1083       909,  740,  740,  915,  580,  740,  740,  359,  302,  910,
1084       740,  740,  358,  580,  627,  917,  357,  580,  324,  916,
1085       740,  740,  580,  740,  740,  335,  921,  740,  740,  740,
1086       740,  334,  580,  333,  332,  580,  302,  923,  792,  580,
1087       302,  580,  740,  740,  302,  922,  927,  329,  328,  324,
1088       322,  315,  307,  304,  580,  303,  929,  302,  301,  792,
1089       300,  299,  298,  294,  293,  291,  286,  251,  285,  285,
1090       276,  273,  272,  271,  792,   19,   19,   19,   19,   19,
1091
1092        19,   19,   19,   19,   19,   19,   19,   51,   51,   51,
1093        51,   51,   51,   51,   51,   51,   51,   51,   51,   55,
1094        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
1095        55,   64,   64,   64,   64,   64,   64,   64,   64,   64,
1096        64,   64,   64,   71,   71,   71,   71,   71,   71,   71,
1097        71,   71,   71,   71,   71,   77,   77,   77,   77,   77,
1098        77,   77,   77,   77,   77,   77,   77,   83,  270,   83,
1099        88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1100        88,   88,   92,   92,   92,   92,   92,   92,   92,   92,
1101        92,   92,   92,   92,   97,   97,   97,   97,   97,   97,
1102
1103        97,   97,   97,   97,   97,   97,  103,  103,  103,  103,
1104       103,  103,  103,  103,  103,  103,  269,  103,  119,  268,
1105       260,  259,  258,  257,  119,  251,  119,  122,  122,  250,
1106       122,  122,  122,  249,  122,  122,  122,  122,  122,  123,
1107       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
1108       123,  126,  126,  126,  248,  126,  126,  126,  126,  126,
1109       126,  126,  126,  127,  127,  127,  127,  127,  127,  127,
1110       127,  127,  127,  127,  127,  164,  247,  164,  165,  165,
1111       219,  165,  165,  165,  165,  165,  165,  165,  165,  165,
1112       166,  166,  218,  166,  166,  166,  217,  166,  166,  166,
1113
1114       166,  166,  167,  167,  167,  216,  167,  167,  167,  167,
1115       167,  167,  167,  167,  202,  202,  208,  202,  202,  202,
1116       207,  202,  202,  202,  202,  202,  203,  203,  203,  206,
1117       203,  203,  203,  203,  203,  203,  203,  203,  226,  226,
1118       205,  204,  182,  181,  180,  179,  226,  245,  245,  173,
1119       245,  245,  245,  172,  245,  245,  245,  245,  245,  246,
1120       246,  246,  171,  246,  246,  246,  246,  246,  246,  246,
1121       246,  266,  266,  168,  104,  266,  144,  266,   97,  266,
1122       283,  283,   95,  283,  283,  283,  931,  283,  283,  283,
1123       283,  283,  284,  284,  284,  143,  284,  284,  284,  284,
1124
1125       284,  284,  284,  284,  312,  312,  142,  312,  312,  312,
1126       931,  312,  312,  312,  312,  312,  313,  313,  313,  141,
1127       313,  313,  313,  313,  313,  313,  313,  313,  316,  316,
1128       140,  139,  132,  131,  130,  129,  316,  319,  319,  319,
1129       319,  319,  319,  319,  319,  319,  319,  319,  319,  323,
1130       323,  323,  323,  323,  323,  323,  323,  323,  323,  323,
1131       323,  330,  330,  330,  330,  330,  330,  330,  931,  330,
1132       138,  330,  330,  339,  339,  133,  339,  339,  339,  132,
1133       339,  339,  339,  339,  339,  340,  340,  340,  131,  340,
1134       340,  340,  340,  340,  340,  340,  340,  344,  344,  130,
1135
1136       129,  128,  125,  344,  124,  344,  348,  348,  348,  348,
1137       348,  348,  348,  348,  348,  348,  348,  348,  353,  353,
1138       121,  353,  104,  101,  353,   95,  353,  364,  364,   94,
1139       364,  364,  364,   93,  364,  364,  364,  364,  364,  365,
1140       365,  365,   91,  365,  365,  365,  365,  365,  365,  365,
1141       365,  367,  367,   86,  931,  931,  931,  931,  931,  367,
1142       391,  391,  931,  931,  931,  931,  931,  931,  391,  400,
1143       400,  931,  400,  400,  400,  931,  400,  400,  400,  400,
1144       400,  401,  401,  401,  931,  401,  401,  401,  401,  401,
1145       401,  401,  401,  406,  406,  931,  406,  931,  406,  406,
1146
1147       931,  406,  422,  422,  422,  422,  422,  422,  422,  422,
1148       422,  422,  422,  422,  438,  438,  931,  931,  438,  931,
1149       438,  931,  438,  446,  446,  931,  446,  446,  446,  931,
1150       446,  446,  446,  446,  446,  447,  447,  447,  931,  447,
1151       447,  447,  447,  447,  447,  447,  447,  448,  448,  931,
1152       448,  931,  448,  931,  931,  448,  465,  465,  465,  465,
1153       465,  465,  465,  465,  465,  465,  465,  465,  490,  490,
1154       931,  490,  490,  490,  931,  490,  490,  490,  490,  490,
1155       491,  491,  491,  931,  491,  491,  491,  491,  491,  491,
1156       491,  491,  493,  493,  931,  931,  931,  931,  493,  931,
1157
1158       493,  495,  495,  931,  931,  931,  931,  931,  931,  495,
1159       506,  506,  506,  506,  506,  506,  506,  506,  506,  506,
1160       506,  506,  508,  508,  508,  508,  508,  508,  508,  508,
1161       508,  508,  508,  508,  522,  522,  931,  522,  522,  522,
1162       931,  522,  522,  522,  522,  522,  523,  523,  523,  931,
1163       523,  523,  523,  523,  523,  523,  523,  523,  528,  528,
1164       931,  931,  528,  931,  528,  931,  528,  531,  531,  931,
1165       531,  931,  531,  931,  931,  531,  548,  548,  548,  548,
1166       548,  548,  548,  548,  548,  548,  548,  548,  570,  570,
1167       931,  570,  570,  570,  931,  570,  570,  570,  570,  570,
1168
1169       571,  571,  571,  931,  571,  571,  571,  571,  571,  571,
1170       571,  571,  579,  579,  931,  931,  931,  931,  579,  579,
1171       579,  598,  598,  598,  598,  598,  598,  598,  598,  598,
1172       598,  598,  598,  613,  613,  931,  931,  931,  931,  931,
1173       931,  613,  617,  617,  931,  617,  617,  617,  931,  617,
1174       617,  617,  617,  617,  618,  618,  618,  931,  618,  618,
1175       618,  618,  618,  618,  618,  618,  633,  633,  931,  633,
1176       931,  633,  931,  931,  633,  648,  648,  648,  648,  648,
1177       648,  648,  648,  648,  648,  648,  648,  651,  651,  931,
1178       931,  651,  931,  651,  931,  651,  655,  655,  931,  655,
1179
1180       655,  655,  931,  655,  655,  655,  655,  655,  656,  656,
1181       656,  931,  656,  656,  656,  656,  656,  656,  656,  656,
1182       670,  670,  931,  931,  931,  670,  670,  931,  670,  684,
1183       684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
1184       684,  692,  692,  931,  692,  931,  931,  931,  692,  692,
1185       705,  705,  931,  705,  931,  705,  931,  931,  705,  728,
1186       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
1187       728,  741,  741,  931,  931,  931,  931,  741,  741,  741,
1188       753,  753,  931,  931,  931,  931,  753,  753,  753,  765,
1189       765,  765,  765,  765,  765,  765,  765,  765,  765,  765,
1190
1191       765,  777,  777,  777,  777,  777,  777,  777,  777,  777,
1192       777,  777,  777,   11,  931,  931,  931,  931,  931,  931,
1193       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1194       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1195       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1196       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1197       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1198       931,  931,  931,  931,  931,  931,  931,  931,  931
1199     } ;
1200
1201 static yyconst flex_int16_t yy_chk[4080] =
1202     {   0,
1203         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1204         1,    1,    1,    1,    1,    1,    4,    5,    6,    9,
1205         7,    8,    9,    0,    5,    6,    4,    7,    8,   10,
1206        24,   24,   10,   25,   25,   35,   35,   42,    1,    1,
1207         1,   13,   13,   99,   17,   36,   12,   26,   99,   36,
1208       846,   38,   15,   87,   87,  108,  846,   12,   12,   12,
1209        38,   42,   13,    1,    1,    2,    2,    2,    2,    2,
1210         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1211         2,   17,   16,   26,    2,  108,   13,   40,   15,   16,
1212        43,   41,   17,   17,   17,   15,   48,   13,   13,   13,
1213
1214        16,   16,   16,    2,    2,    2,   15,   15,   15,   20,
1215        20,   41,   40,   21,   43,  101,   41,  880,  101,  100,
1216        48,   20,   20,   20,   21,   21,   21,  100,    2,    2,
1217         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1218         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1219         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1220         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1221         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1222         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1223         3,    3,    3,    3,    3,   14,   14,   44,   45,   46,
1224
1225        47,   64,   62,   62,  149,   88,  102,  105,   49,  107,
1226       109,  114,   46,   67,   69,   45,   14,  102,  106,   73,
1227        47,   47,   44,   62,   74,   75,  149,  879,   46,   47,
1228        76,  106,  105,  107,  130,   68,  114,   64,   70,  109,
1229        14,   88,  144,  147,  145,  144,  145,  147,  130,   67,
1230        69,   14,   14,   14,   33,   33,   33,   33,   33,   33,
1231        33,   33,   33,   33,   33,   33,   49,   33,   33,   33,
1232        67,   68,   69,   73,   70,  110,   74,   76,  111,  115,
1233        75,  112,  113,  116,  150,  151,  117,  155,   70,  157,
1234        68,  183,   33,   33,   33,  134,  154,  325,  115,  110,
1235
1236       135,  157,  136,  183,  137,  325,  111,  117,  112,  113,
1237       116,  150,  115,  151,  117,  154,  155,   33,   33,   34,
1238        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
1239        34,  134,   34,   34,   34,  158,  135,  152,  136,  135,
1240       137,  148,  148,  156,  159,  161,  160,  148,   34,  162,
1241       134,  137,  163,  135,  136,  200,  156,   34,   34,   34,
1242       152,  201,  158,  160,  173,  173,  174,  177,  159,  148,
1243       173,  175,  176,  163,  162,  161,  178,  188,  188,  200,
1244       201,  817,   34,   34,  146,  146,  146,  146,  146,  146,
1245       146,  146,  146,  146,  146,  146,  189,  146,  146,  146,
1246
1247       193,  184,  174,  177,  186,  187,  187,  175,  176,  174,
1248       177,  187,  178,  184,  194,  196,  186,  193,  195,  197,
1249       198,  240,  146,  146,  146,  189,  175,  178,  176,  211,
1250       199,  195,  198,  209,  209,  213,  197,  194,  212,  209,
1251       308,  214,  215,  240,  196,  199,  777,  146,  146,  153,
1252       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1253       153,  220,  153,  153,  153,  211,  308,  221,  222,  224,
1254       224,  213,  242,  220,  212,  222,  213,  214,  215,  221,
1255       223,  223,  211,  214,  382,  212,  223,  153,  153,  153,
1256       225,  225,  215,  226,  226,  236,  236,  251,  251,  252,
1257
1258       226,  242,  243,  253,  382,  254,  261,  255,  258,  258,
1259       238,  261,  153,  153,  190,  190,  190,  190,  190,  190,
1260       190,  190,  190,  190,  190,  190,  238,  190,  190,  190,
1261       239,  243,  241,  285,  285,  252,  256,  256,  256,  253,
1262       262,  254,  279,  255,  253,  262,  263,  239,  241,  252,
1263       255,  263,  190,  190,  190,  264,  264,  266,  266,  239,
1264       254,  275,  264,  279,  266,  278,  280,  287,  287,  277,
1265       288,  288,  288,  289,  256,  275,  309,  190,  190,  192,
1266       192,  277,  278,  291,  291,  766,  295,  280,  292,  292,
1267       295,  327,  296,  297,  278,  192,  296,  302,  302,  310,
1268
1269       327,  192,  336,  297,  309,  314,  314,  426,  288,  289,
1270       315,  315,  310,  316,  316,  320,  320,  289,  321,  321,
1271       426,  192,  192,  318,  318,  318,  314,  424,  192,  192,
1272       424,  336,  338,  344,  344,  192,  320,  192,  227,  227,
1273       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
1274       292,  227,  227,  227,  317,  317,  317,  322,  322,  326,
1275       338,  318,  427,  322,  343,  343,  361,  326,  560,  350,
1276       350,  352,  352,  351,  351,  317,  227,  227,  227,  351,
1277       353,  353,  354,  355,  560,  343,  353,  354,  355,  345,
1278       350,  427,  317,  361,  347,  347,  347,  390,  390,  418,
1279
1280       377,  227,  227,  244,  244,  244,  244,  244,  244,  244,
1281       244,  244,  244,  244,  244,  347,  244,  244,  244,  345,
1282       381,  356,  367,  367,  356,  345,  383,  386,  367,  384,
1283       367,  392,  347,  356,  377,  418,  377,  428,  370,  370,
1284       392,  244,  244,  244,  370,  381,  370,  765,  391,  391,
1285       383,  386,  368,  368,  384,  391,  369,  369,  368,  387,
1286       368,  428,  369,  431,  369,  385,  244,  244,  281,  281,
1287       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
1288       368,  281,  281,  281,  369,  385,  385,  393,  394,  387,
1289       431,  370,  394,  395,  385,  387,  393,  425,  395,  405,
1290
1291       405,  472,  429,  371,  371,  405,  281,  281,  281,  371,
1292       521,  371,  372,  372,  439,  373,  373,  439,  372,  521,
1293       372,  373,  425,  373,  421,  421,  421,  429,  472,  433,
1294       421,  281,  281,  290,  290,  290,  290,  290,  290,  290,
1295       290,  290,  290,  290,  290,  290,  290,  290,  290,  403,
1296       403,  371,  404,  404,  441,  403,  440,  403,  475,  440,
1297       404,  430,  421,  433,  372,  433,  441,  432,  373,  374,
1298       374,  290,  290,  290,  734,  374,  550,  374,  375,  375,
1299       430,  406,  406,  550,  375,  475,  375,  406,  432,  406,
1300       442,  442,  448,  448,  430,  432,  290,  290,  319,  319,
1301
1302       319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
1303       471,  319,  319,  319,  407,  407,  469,  374,  374,  469,
1304       407,  470,  407,  408,  408,  470,  374,  409,  409,  408,
1305       375,  408,  471,  409,  479,  409,  319,  319,  319,  673,
1306       410,  410,  407,  411,  411,  486,  410,  673,  410,  411,
1307       486,  411,  412,  412,  408,  450,  450,  478,  412,  479,
1308       412,  319,  319,  337,  337,  337,  337,  337,  337,  337,
1309       337,  337,  337,  337,  337,  476,  337,  337,  337,  474,
1310       409,  410,  413,  413,  481,  414,  414,  478,  413,  480,
1311       413,  414,  487,  414,  473,  473,  487,  484,  474,  476,
1312
1313       411,  337,  337,  337,  412,  415,  415,  484,  416,  416,
1314       480,  415,  732,  415,  416,  516,  416,  420,  420,  420,
1315       481,  485,  473,  436,  436,  420,  337,  337,  342,  342,
1316       436,  485,  414,  438,  438,  413,  477,  449,  449,  516,
1317       438,  451,  451,  544,  342,  449,  414,  451,  452,  452,
1318       342,  493,  493,  477,  452,  420,  452,  416,  494,  494,
1319       415,  456,  456,  509,  416,  495,  495,  456,  510,  456,
1320       342,  342,  495,  452,  674,  509,  759,  342,  342,  544,
1321       510,  519,  519,  674,  342,  759,  342,  346,  346,  346,
1322       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1323
1324       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1325       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1326       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1327       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1328       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
1329       346,  346,  348,  348,  348,  348,  348,  348,  348,  348,
1330       348,  348,  348,  348,  512,  348,  348,  348,  453,  453,
1331       466,  466,  466,  768,  453,  768,  453,  554,  466,  454,
1332       454,  561,  513,  514,  555,  454,  515,  454,  455,  455,
1333       348,  348,  348,  512,  455,  514,  455,  457,  457,  513,
1334
1335       453,  515,  554,  457,  555,  457,  458,  458,  466,  566,
1336       561,  556,  458,  566,  458,  348,  348,  363,  363,  363,
1337       363,  363,  363,  363,  363,  363,  363,  363,  363,  454,
1338       363,  363,  363,  460,  460,  556,  468,  468,  468,  460,
1339       545,  460,  468,  455,  457,  559,  459,  459,  517,  605,
1340       557,  717,  459,  545,  459,  363,  363,  363,  461,  461,
1341       595,  458,  462,  462,  461,  595,  461,  517,  462,  559,
1342       462,  492,  492,  605,  468,  557,  545,  492,  460,  562,
1343       363,  363,  378,  378,  378,  378,  378,  378,  378,  378,
1344       378,  378,  378,  378,  549,  378,  378,  378,  459,  602,
1345
1346       492,  496,  496,  608,  497,  497,  549,  496,  562,  496,
1347       497,  687,  497,  527,  527,  462,  461,  463,  463,  527,
1348       378,  378,  378,  463,  602,  463,  499,  499,  596,  500,
1349       500,  608,  499,  596,  499,  500,  604,  500,  565,  565,
1350       601,  496,  527,  601,  497,  378,  378,  379,  379,  379,
1351       379,  379,  379,  379,  379,  379,  379,  379,  379,  593,
1352       379,  379,  379,  501,  501,  604,  463,  531,  531,  501,
1353       591,  501,  503,  503,  500,  641,  379,  603,  503,  531,
1354       503,  532,  532,  499,  558,  379,  379,  379,  502,  502,
1355       603,  504,  504,  532,  502,  593,  502,  504,  591,  504,
1356
1357       526,  526,  641,  501,  558,  558,  591,  526,  686,  532,
1358       379,  379,  398,  398,  398,  398,  398,  398,  398,  398,
1359       398,  398,  398,  398,  503,  398,  398,  398,  505,  505,
1360       505,  502,  528,  528,  505,  518,  518,  638,  504,  528,
1361       638,  518,  685,  533,  533,  606,  534,  534,  529,  529,
1362       398,  398,  398,  658,  529,  533,  529,  505,  534,  530,
1363       530,  535,  535,  518,  529,  530,  505,  530,  563,  563,
1364       606,  533,  599,  535,  643,  398,  398,  419,  419,  419,
1365       419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
1366       419,  419,  419,  643,  530,  637,  563,  611,  611,  534,
1367
1368       612,  612,  536,  536,  646,  637,  537,  537,  599,  535,
1369       539,  539,  538,  538,  536,  419,  419,  419,  537,  540,
1370       540,  646,  539,  675,  538,  540,  636,  540,  541,  541,
1371       636,  542,  542,  711,  541,  675,  541,  542,  711,  542,
1372       419,  419,  465,  465,  465,  465,  465,  465,  465,  465,
1373       465,  465,  465,  465,  536,  465,  465,  465,  647,  537,
1374       538,  538,  539,  540,  543,  543,  546,  546,  546,  714,
1375       543,  718,  543,  546,  579,  579,  714,  564,  564,  647,
1376       465,  465,  465,  564,  718,  541,  579,  639,  542,  583,
1377       583,  639,  613,  613,  547,  547,  547,  573,  573,  613,
1378
1379       547,  583,  640,  573,  546,  465,  465,  467,  467,  467,
1380       467,  467,  467,  467,  467,  467,  467,  467,  467,  467,
1381       467,  467,  467,  547,  640,  644,  573,  576,  576,  761,
1382       577,  577,  547,  576,  761,  576,  577,  657,  577,  581,
1383       581,  645,  583,  582,  582,  467,  467,  467,  578,  578,
1384       576,  581,  644,  577,  578,  582,  584,  584,  642,  642,
1385       578,  633,  633,  585,  585,  645,  594,  581,  584,  633,
1386       467,  467,  498,  498,  582,  585,  679,  578,  498,  594,
1387       498,  590,  590,  649,  649,  607,  642,  590,  498,  590,
1388       649,  586,  586,  679,  498,  587,  587,  584,  589,  589,
1389
1390       588,  588,  594,  586,  607,  610,  610,  587,  681,  720,
1391       589,  610,  588,  676,  498,  498,  651,  651,  607,  762,
1392       585,  498,  498,  651,  762,  676,  654,  681,  498,  720,
1393       498,  506,  506,  506,  506,  506,  506,  506,  506,  506,
1394       506,  506,  506,  586,  506,  506,  506,  588,  587,  592,
1395       592,  592,  621,  621,  589,  592,  622,  622,  621,  678,
1396       621,  588,  622,  653,  622,  623,  623,  625,  625,  506,
1397       506,  506,  805,  725,  622,  670,  670,  623,  592,  625,
1398       627,  627,  805,  670,  621,  669,  669,  592,  678,  725,
1399       623,  669,  627,  669,  506,  506,  507,  507,  507,  507,
1400
1401       507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1402       507,  507,  597,  597,  597,  624,  624,  625,  597,  760,
1403       635,  630,  630,  760,  597,  626,  626,  624,  629,  629,
1404       628,  628,  723,  630,  507,  507,  507,  626,  652,  680,
1405       629,  597,  628,  631,  631,  632,  632,  624,  635,  837,
1406       597,  680,  723,  723,  719,  631,  635,  632,  837,  507,
1407       507,  508,  508,  508,  508,  508,  508,  508,  508,  508,
1408       508,  508,  508,  630,  508,  508,  508,  628,  634,  719,
1409       626,  661,  661,  629,  659,  659,  671,  722,  631,  721,
1410       659,  634,  659,  661,  632,  690,  690,  660,  660,  508,
1411
1412       508,  508,  730,  660,  659,  660,  713,  690,  692,  692,
1413       671,  690,  722,  721,  634,  780,  660,  780,  713,  730,
1414       692,  661,  671,  620,  508,  508,  511,  511,  511,  511,
1415       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1416       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1417       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1418       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1419       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1420       511,  511,  511,  511,  511,  511,  511,  511,  511,  511,
1421       511,  548,  548,  548,  548,  548,  548,  548,  548,  548,
1422
1423       548,  548,  548,  619,  548,  548,  548,  662,  662,  666,
1424       666,  664,  664,  726,  668,  668,  724,  803,  803,  662,
1425       668,  666,  668,  664,  693,  693,  836,  665,  665,  548,
1426       548,  548,  667,  667,  836,  668,  693,  672,  767,  665,
1427       724,  767,  726,  668,  667,  689,  689,  662,  757,  666,
1428       672,  689,  693,  689,  548,  548,  551,  551,  551,  551,
1429       551,  551,  551,  551,  551,  551,  551,  551,  664,  551,
1430       551,  551,  665,  672,  688,  688,  689,  691,  691,  667,
1431       688,  616,  688,  763,  757,  689,  694,  694,  763,  691,
1432       695,  695,  696,  696,  551,  551,  551,  688,  694,  697,
1433
1434       697,  802,  695,  770,  696,  695,  698,  698,  778,  708,
1435       708,  697,  691,  802,  694,  708,  770,  708,  698,  551,
1436       551,  552,  552,  552,  552,  552,  552,  552,  552,  552,
1437       552,  552,  552,  709,  552,  552,  552,  702,  702,  856,
1438       856,  705,  705,  710,  778,  696,  771,  697,  615,  702,
1439       552,  699,  699,  705,  700,  700,  701,  701,  698,  552,
1440       552,  552,  709,  699,  703,  703,  700,  710,  701,  709,
1441       712,  740,  740,  712,  779,  771,  703,  800,  779,  710,
1442       769,  702,  712,  740,  552,  552,  609,  609,  609,  609,
1443       609,  609,  609,  609,  609,  609,  609,  609,  609,  609,
1444
1445       609,  609,  700,  700,  699,  769,  704,  704,  701,  773,
1446       706,  706,  704,  800,  704,  772,  707,  707,  741,  741,
1447       801,  703,  706,  801,  609,  609,  609,  704,  707,  860,
1448       741,  707,  750,  750,  773,  704,  860,  736,  736,  772,
1449       737,  737,  706,  736,  750,  736,  737,  614,  737,  609,
1450       609,  648,  648,  648,  648,  648,  648,  648,  648,  648,
1451       648,  648,  648,  737,  648,  648,  648,  727,  727,  736,
1452       899,  738,  738,  727,  775,  727,  735,  735,  899,  750,
1453       739,  739,  735,  738,  735,  742,  742,  774,  727,  648,
1454       648,  648,  739,  750,  738,  735,  727,  742,  743,  743,
1455
1456       744,  744,  775,  739,  600,  804,  774,  745,  745,  804,
1457       743,  809,  744,  742,  648,  648,  663,  663,  758,  745,
1458       774,  810,  663,  746,  746,  752,  752,  598,  663,  743,
1459       744,  806,  663,  809,  806,  746,  808,  752,  663,  753,
1460       753,  756,  756,  786,  786,  663,  807,  758,  810,  808,
1461       807,  753,  815,  756,  758,  786,  792,  792,  663,  663,
1462       745,  786,  834,  833,  746,  663,  663,  834,  792,  815,
1463       575,  756,  663,  833,  663,  677,  677,  677,  677,  677,
1464       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1465       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1466
1467       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1468       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1469       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1470       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1471       682,  682,  682,  682,  682,  682,  682,  682,  682,  682,
1472       682,  682,  682,  682,  682,  682,  755,  755,  812,  835,
1473       814,  572,  682,  835,  747,  747,  811,  811,  755,  813,
1474       682,  748,  748,  749,  749,  569,  747,  812,  682,  682,
1475       682,  751,  751,  748,  814,  749,  764,  764,  764,  776,
1476       776,  776,  755,  751,  811,  840,  813,  840,  764,  861,
1477
1478       568,  776,  861,  682,  682,  683,  683,  683,  683,  683,
1479       683,  683,  683,  683,  683,  683,  683,  683,  683,  683,
1480       683,  747,  818,  748,  764,  567,  749,  776,  782,  782,
1481       785,  785,  784,  784,  782,  842,  782,  751,  784,  818,
1482       784,  843,  785,  683,  683,  683,  783,  783,  789,  789,
1483       862,  553,  783,  782,  783,  790,  790,  525,  843,  784,
1484       789,  816,  785,  789,  842,  520,  862,  790,  683,  683,
1485       684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
1486       684,  684,  816,  684,  684,  684,  783,  787,  787,  788,
1487       788,  857,  791,  791,  845,  876,  857,  863,  489,  787,
1488
1489       876,  788,  794,  794,  791,  790,  793,  793,  684,  684,
1490       684,  838,  787,  845,  794,  795,  795,  839,  793,  796,
1491       796,  788,  488,  838,  821,  821,  863,  795,  444,  839,
1492       821,  796,  821,  684,  684,  715,  715,  715,  715,  715,
1493       715,  715,  715,  715,  715,  715,  715,  791,  715,  715,
1494       715,  798,  798,  793,  819,  819,  821,  794,  864,  864,
1495       819,  873,  819,  798,  796,  873,  844,  795,  797,  797,
1496       799,  799,  819,  715,  715,  715,  822,  822,  844,  859,
1497       797,  858,  799,  874,  858,  799,  888,  888,  822,  820,
1498       820,  859,  874,  858,  443,  820,  822,  820,  715,  715,
1499
1500       716,  716,  716,  716,  716,  716,  716,  716,  716,  716,
1501       716,  716,  820,  716,  716,  716,  890,  797,  823,  823,
1502       824,  824,  825,  825,  826,  826,  890,  841,  841,  716,
1503       823,  875,  824,  841,  825,  875,  826,  823,  716,  716,
1504       716,  828,  828,  829,  829,  830,  830,  831,  831,  877,
1505       826,  904,  904,  828,  877,  829,  841,  830,  886,  831,
1506       824,  886,  825,  716,  716,  728,  728,  728,  728,  728,
1507       728,  728,  728,  728,  728,  728,  728,  435,  728,  728,
1508       728,  832,  832,  847,  847,  830,  889,  878,  829,  847,
1509       889,  847,  878,  832,  831,  897,  848,  848,  828,  896,
1510
1511       897,  850,  850,  728,  728,  728,  887,  832,  848,  896,
1512       847,  849,  849,  850,  851,  851,  898,  850,  887,  848,
1513       898,  911,  905,  849,  434,  911,  851,  905,  728,  728,
1514       729,  729,  729,  729,  729,  729,  729,  729,  729,  729,
1515       729,  729,  849,  729,  729,  729,  852,  852,  900,  851,
1516       423,  849,  912,  853,  853,  854,  854,  900,  852,  855,
1517       855,  912,  913,  729,  919,  853,  913,  854,  729,  729,
1518       729,  855,  865,  865,  914,  924,  919,  852,  865,  914,
1519       865,  918,  920,  920,  918,  924,  866,  866,  867,  867,
1520       855,  868,  868,  729,  729,  827,  827,  853,  866,  422,
1521
1522       867,  827,  926,  868,  865,  866,  926,  827,  925,  869,
1523       869,  827,  854,  925,  868,  871,  871,  827,  870,  870,
1524       867,  869,  872,  872,  881,  881,  417,  871,  882,  882,
1525       870,  930,  869,  397,  872,  930,  881,  827,  827,  396,
1526       882,  870,  883,  883,  827,  827,  884,  884,  389,  881,
1527       388,  827,  380,  827,  883,  885,  885,  376,  884,  891,
1528       891,  366,  892,  892,  893,  893,  360,  885,  882,  883,
1529       359,  891,  358,  885,  892,  357,  893,  891,  884,  894,
1530       894,  895,  895,  901,  901,  892,  902,  902,  349,  903,
1531       903,  894,  341,  895,  906,  901,  893,  906,  902,  894,
1532
1533       895,  903,  907,  907,  908,  908,  906,  909,  909,  902,
1534       901,  335,  910,  910,  907,  334,  908,  928,  928,  909,
1535       903,  915,  915,  908,  910,  916,  916,  333,  332,  903,
1536       917,  917,  329,  915,  907,  910,  328,  916,  323,  909,
1537       921,  921,  917,  922,  922,  307,  915,  923,  923,  927,
1538       927,  306,  921,  305,  304,  922,  303,  917,  921,  923,
1539       301,  927,  929,  929,  300,  916,  922,  299,  298,  294,
1540       293,  286,  276,  274,  929,  273,  927,  272,  271,  923,
1541       270,  269,  268,  260,  259,  257,  250,  249,  248,  247,
1542       237,  235,  234,  233,  929,  932,  932,  932,  932,  932,
1543
1544       932,  932,  932,  932,  932,  932,  932,  933,  933,  933,
1545       933,  933,  933,  933,  933,  933,  933,  933,  933,  934,
1546       934,  934,  934,  934,  934,  934,  934,  934,  934,  934,
1547       934,  935,  935,  935,  935,  935,  935,  935,  935,  935,
1548       935,  935,  935,  936,  936,  936,  936,  936,  936,  936,
1549       936,  936,  936,  936,  936,  937,  937,  937,  937,  937,
1550       937,  937,  937,  937,  937,  937,  937,  938,  232,  938,
1551       939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
1552       939,  939,  940,  940,  940,  940,  940,  940,  940,  940,
1553       940,  940,  940,  940,  941,  941,  941,  941,  941,  941,
1554
1555       941,  941,  941,  941,  941,  941,  942,  942,  942,  942,
1556       942,  942,  942,  942,  942,  942,  231,  942,  943,  230,
1557       219,  218,  217,  216,  943,  208,  943,  944,  944,  207,
1558       944,  944,  944,  206,  944,  944,  944,  944,  944,  945,
1559       945,  945,  945,  945,  945,  945,  945,  945,  945,  945,
1560       945,  946,  946,  946,  205,  946,  946,  946,  946,  946,
1561       946,  946,  946,  947,  947,  947,  947,  947,  947,  947,
1562       947,  947,  947,  947,  947,  948,  204,  948,  949,  949,
1563       182,  949,  949,  949,  949,  949,  949,  949,  949,  949,
1564       950,  950,  181,  950,  950,  950,  180,  950,  950,  950,
1565
1566       950,  950,  951,  951,  951,  179,  951,  951,  951,  951,
1567       951,  951,  951,  951,  952,  952,  172,  952,  952,  952,
1568       171,  952,  952,  952,  952,  952,  953,  953,  953,  170,
1569       953,  953,  953,  953,  953,  953,  953,  953,  954,  954,
1570       169,  168,  142,  141,  140,  139,  954,  955,  955,  133,
1571       955,  955,  955,  132,  955,  955,  955,  955,  955,  956,
1572       956,  956,  131,  956,  956,  956,  956,  956,  956,  956,
1573       956,  957,  957,  129,  103,  957,   98,  957,   97,  957,
1574       958,  958,   95,  958,  958,  958,   93,  958,  958,  958,
1575       958,  958,  959,  959,  959,   92,  959,  959,  959,  959,
1576
1577       959,  959,  959,  959,  960,  960,   91,  960,  960,  960,
1578        90,  960,  960,  960,  960,  960,  961,  961,  961,   86,
1579       961,  961,  961,  961,  961,  961,  961,  961,  962,  962,
1580        85,   84,   82,   81,   80,   79,  962,  963,  963,  963,
1581       963,  963,  963,  963,  963,  963,  963,  963,  963,  964,
1582       964,  964,  964,  964,  964,  964,  964,  964,  964,  964,
1583       964,  965,  965,  965,  965,  965,  965,  965,   72,  965,
1584        71,  965,  965,  966,  966,   63,  966,  966,  966,   61,
1585       966,  966,  966,  966,  966,  967,  967,  967,   60,  967,
1586       967,  967,  967,  967,  967,  967,  967,  968,  968,   59,
1587
1588        58,   57,   54,  968,   53,  968,  969,  969,  969,  969,
1589       969,  969,  969,  969,  969,  969,  969,  969,  970,  970,
1590        50,  970,   39,   37,  970,   31,  970,  971,  971,   30,
1591       971,  971,  971,   28,  971,  971,  971,  971,  971,  972,
1592       972,  972,   27,  972,  972,  972,  972,  972,  972,  972,
1593       972,  973,  973,   22,   11,    0,    0,    0,    0,  973,
1594       974,  974,    0,    0,    0,    0,    0,    0,  974,  975,
1595       975,    0,  975,  975,  975,    0,  975,  975,  975,  975,
1596       975,  976,  976,  976,    0,  976,  976,  976,  976,  976,
1597       976,  976,  976,  977,  977,    0,  977,    0,  977,  977,
1598
1599         0,  977,  978,  978,  978,  978,  978,  978,  978,  978,
1600       978,  978,  978,  978,  979,  979,    0,    0,  979,    0,
1601       979,    0,  979,  980,  980,    0,  980,  980,  980,    0,
1602       980,  980,  980,  980,  980,  981,  981,  981,    0,  981,
1603       981,  981,  981,  981,  981,  981,  981,  982,  982,    0,
1604       982,    0,  982,    0,    0,  982,  983,  983,  983,  983,
1605       983,  983,  983,  983,  983,  983,  983,  983,  984,  984,
1606         0,  984,  984,  984,    0,  984,  984,  984,  984,  984,
1607       985,  985,  985,    0,  985,  985,  985,  985,  985,  985,
1608       985,  985,  986,  986,    0,    0,    0,    0,  986,    0,
1609
1610       986,  987,  987,    0,    0,    0,    0,    0,    0,  987,
1611       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
1612       988,  988,  989,  989,  989,  989,  989,  989,  989,  989,
1613       989,  989,  989,  989,  990,  990,    0,  990,  990,  990,
1614         0,  990,  990,  990,  990,  990,  991,  991,  991,    0,
1615       991,  991,  991,  991,  991,  991,  991,  991,  992,  992,
1616         0,    0,  992,    0,  992,    0,  992,  993,  993,    0,
1617       993,    0,  993,    0,    0,  993,  994,  994,  994,  994,
1618       994,  994,  994,  994,  994,  994,  994,  994,  995,  995,
1619         0,  995,  995,  995,    0,  995,  995,  995,  995,  995,
1620
1621       996,  996,  996,    0,  996,  996,  996,  996,  996,  996,
1622       996,  996,  997,  997,    0,    0,    0,    0,  997,  997,
1623       997,  998,  998,  998,  998,  998,  998,  998,  998,  998,
1624       998,  998,  998,  999,  999,    0,    0,    0,    0,    0,
1625         0,  999, 1000, 1000,    0, 1000, 1000, 1000,    0, 1000,
1626      1000, 1000, 1000, 1000, 1001, 1001, 1001,    0, 1001, 1001,
1627      1001, 1001, 1001, 1001, 1001, 1001, 1002, 1002,    0, 1002,
1628         0, 1002,    0,    0, 1002, 1003, 1003, 1003, 1003, 1003,
1629      1003, 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004,    0,
1630         0, 1004,    0, 1004,    0, 1004, 1005, 1005,    0, 1005,
1631
1632      1005, 1005,    0, 1005, 1005, 1005, 1005, 1005, 1006, 1006,
1633      1006,    0, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
1634      1007, 1007,    0,    0,    0, 1007, 1007,    0, 1007, 1008,
1635      1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
1636      1008, 1009, 1009,    0, 1009,    0,    0,    0, 1009, 1009,
1637      1010, 1010,    0, 1010,    0, 1010,    0,    0, 1010, 1011,
1638      1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1639      1011, 1012, 1012,    0,    0,    0,    0, 1012, 1012, 1012,
1640      1013, 1013,    0,    0,    0,    0, 1013, 1013, 1013, 1014,
1641      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
1642
1643      1014, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
1644      1015, 1015, 1015,  931,  931,  931,  931,  931,  931,  931,
1645       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1646       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1647       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1648       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1649       931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
1650       931,  931,  931,  931,  931,  931,  931,  931,  931
1651     } ;
1652
1653 static yy_state_type yy_last_accepting_state;
1654 static char *yy_last_accepting_cpos;
1655
1656 extern int yy_flex_debug;
1657 int yy_flex_debug = 0;
1658
1659 /* The intent behind this definition is that it'll catch
1660  * any uses of REJECT which flex missed.
1661  */
1662 #define REJECT reject_used_but_not_detected
1663 #define yymore() yymore_used_but_not_detected
1664 #define YY_MORE_ADJ 0
1665 #define YY_RESTORE_YY_MORE_OFFSET
1666 char *yytext;
1667 #line 1 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
1668 /* -*- indented-text -*- */
1669 /* Process source files and output type information.
1670    Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
1671
1672 This file is part of GCC.
1673
1674 GCC is free software; you can redistribute it and/or modify it under
1675 the terms of the GNU General Public License as published by the Free
1676 Software Foundation; either version 2, or (at your option) any later
1677 version.
1678
1679 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
1680 WARRANTY; without even the implied warranty of MERCHANTABILITY or
1681 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1682 for more details.
1683
1684 You should have received a copy of the GNU General Public License
1685 along with GCC; see the file COPYING.  If not, write to the Free
1686 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1687 02111-1307, USA.  */
1688 #line 23 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
1689 #include "bconfig.h"
1690 #include "coretypes.h"
1691 #include "system.h"
1692
1693 #define malloc xmalloc
1694 #define realloc xrealloc
1695
1696 #include "gengtype.h"
1697 #include "gengtype-yacc.h"
1698
1699 #define YY_INPUT(BUF,RESULT,SIZE) ((RESULT) = macro_input (BUF,SIZE))
1700
1701 static unsigned macro_input (char *buffer, unsigned);
1702 static void push_macro_expansion (const char *, unsigned,
1703                                   const char *, unsigned);
1704 static void update_lineno (const char *l, size_t len);
1705
1706 struct fileloc lexer_line;
1707 int lexer_toplevel_done;
1708
1709 static void 
1710 update_lineno (const char *l, size_t len)
1711 {
1712   while (len-- > 0)
1713     if (*l++ == '\n')
1714       lexer_line.line++;
1715 }
1716
1717
1718 #line 1719 "gengtype-lex.c"
1719
1720 #define INITIAL 0
1721 #define in_struct 1
1722 #define in_struct_comment 2
1723 #define in_comment 3
1724 #define in_yacc_escape 4
1725
1726 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1727  * down here because we want the user's section 1 to have been scanned first.
1728  * The user has a chance to override it with an option.
1729  */
1730 #include <unistd.h>
1731
1732 #ifndef YY_EXTRA_TYPE
1733 #define YY_EXTRA_TYPE void *
1734 #endif
1735
1736 /* Macros after this point can all be overridden by user definitions in
1737  * section 1.
1738  */
1739
1740 #ifndef YY_SKIP_YYWRAP
1741 #ifdef __cplusplus
1742 extern "C" int yywrap (void );
1743 #else
1744 extern int yywrap (void );
1745 #endif
1746 #endif
1747
1748 #ifndef yytext_ptr
1749 static void yy_flex_strncpy (char *,yyconst char *,int );
1750 #endif
1751
1752 #ifdef YY_NEED_STRLEN
1753 static int yy_flex_strlen (yyconst char * );
1754 #endif
1755
1756 #ifndef YY_NO_INPUT
1757
1758 #ifdef __cplusplus
1759 static int yyinput (void );
1760 #else
1761 static int input (void );
1762 #endif
1763
1764 #endif
1765
1766 /* Amount of stuff to slurp up with each read. */
1767 #ifndef YY_READ_BUF_SIZE
1768 #define YY_READ_BUF_SIZE 8192
1769 #endif
1770
1771 /* Copy whatever the last rule matched to the standard output. */
1772 #ifndef ECHO
1773 /* This used to be an fputs(), but since the string might contain NUL's,
1774  * we now use fwrite().
1775  */
1776 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1777 #endif
1778
1779 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1780  * is returned in "result".
1781  */
1782 #ifndef YY_INPUT
1783 #define YY_INPUT(buf,result,max_size) \
1784         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1785                 { \
1786                 int c = '*'; \
1787                 size_t n; \
1788                 for ( n = 0; n < max_size && \
1789                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1790                         buf[n] = (char) c; \
1791                 if ( c == '\n' ) \
1792                         buf[n++] = (char) c; \
1793                 if ( c == EOF && ferror( yyin ) ) \
1794                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1795                 result = n; \
1796                 } \
1797         else \
1798                 { \
1799                 errno=0; \
1800                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1801                         { \
1802                         if( errno != EINTR) \
1803                                 { \
1804                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1805                                 break; \
1806                                 } \
1807                         errno=0; \
1808                         clearerr(yyin); \
1809                         } \
1810                 }\
1811 \
1812
1813 #endif
1814
1815 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1816  * we don't want an extra ';' after the "return" because that will cause
1817  * some compilers to complain about unreachable statements.
1818  */
1819 #ifndef yyterminate
1820 #define yyterminate() return YY_NULL
1821 #endif
1822
1823 /* Number of entries by which start-condition stack grows. */
1824 #ifndef YY_START_STACK_INCR
1825 #define YY_START_STACK_INCR 25
1826 #endif
1827
1828 /* Report a fatal error. */
1829 #ifndef YY_FATAL_ERROR
1830 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1831 #endif
1832
1833 /* end tables serialization structures and prototypes */
1834
1835 /* Default declaration of generated scanner - a define so the user can
1836  * easily add parameters.
1837  */
1838 #ifndef YY_DECL
1839 #define YY_DECL_IS_OURS 1
1840
1841 extern int yylex (void);
1842
1843 #define YY_DECL int yylex (void)
1844 #endif /* !YY_DECL */
1845
1846 /* Code executed at the beginning of each rule, after yytext and yyleng
1847  * have been set up.
1848  */
1849 #ifndef YY_USER_ACTION
1850 #define YY_USER_ACTION
1851 #endif
1852
1853 /* Code executed at the end of each rule. */
1854 #ifndef YY_BREAK
1855 #define YY_BREAK break;
1856 #endif
1857
1858 #define YY_RULE_SETUP \
1859         if ( yyleng > 0 ) \
1860                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1861                                 (yytext[yyleng - 1] == '\n'); \
1862         YY_USER_ACTION
1863
1864 /** The main scanner function which does all the work.
1865  */
1866 YY_DECL
1867 {
1868         register yy_state_type yy_current_state;
1869         register char *yy_cp, *yy_bp;
1870         register int yy_act;
1871     
1872 #line 61 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
1873
1874
1875 #line 1876 "gengtype-lex.c"
1876
1877         if ( (yy_init) )
1878                 {
1879                 (yy_init) = 0;
1880
1881 #ifdef YY_USER_INIT
1882                 YY_USER_INIT;
1883 #endif
1884
1885                 if ( ! (yy_start) )
1886                         (yy_start) = 1; /* first start state */
1887
1888                 if ( ! yyin )
1889                         yyin = stdin;
1890
1891                 if ( ! yyout )
1892                         yyout = stdout;
1893
1894                 if ( ! YY_CURRENT_BUFFER ) {
1895                         yyensure_buffer_stack ();
1896                         YY_CURRENT_BUFFER_LVALUE =
1897                                 yy_create_buffer(yyin,YY_BUF_SIZE );
1898                 }
1899
1900                 yy_load_buffer_state( );
1901                 }
1902
1903         while ( 1 )             /* loops until end-of-file is reached */
1904                 {
1905                 yy_cp = (yy_c_buf_p);
1906
1907                 /* Support of yytext. */
1908                 *yy_cp = (yy_hold_char);
1909
1910                 /* yy_bp points to the position in yy_ch_buf of the start of
1911                  * the current run.
1912                  */
1913                 yy_bp = yy_cp;
1914
1915                 yy_current_state = (yy_start);
1916                 yy_current_state += YY_AT_BOL();
1917 yy_match:
1918                 do
1919                         {
1920                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1921                         if ( yy_accept[yy_current_state] )
1922                                 {
1923                                 (yy_last_accepting_state) = yy_current_state;
1924                                 (yy_last_accepting_cpos) = yy_cp;
1925                                 }
1926                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1927                                 {
1928                                 yy_current_state = (int) yy_def[yy_current_state];
1929                                 if ( yy_current_state >= 932 )
1930                                         yy_c = yy_meta[(unsigned int) yy_c];
1931                                 }
1932                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1933                         ++yy_cp;
1934                         }
1935                 while ( yy_current_state != 931 );
1936                 yy_cp = (yy_last_accepting_cpos);
1937                 yy_current_state = (yy_last_accepting_state);
1938
1939 yy_find_action:
1940                 yy_act = yy_accept[yy_current_state];
1941
1942                 YY_DO_BEFORE_ACTION;
1943
1944 do_action:      /* This label is used only to access EOF actions. */
1945
1946                 switch ( yy_act )
1947         { /* beginning of action switch */
1948                         case 0: /* must back up */
1949                         /* undo the effects of YY_DO_BEFORE_ACTION */
1950                         *yy_cp = (yy_hold_char);
1951                         yy_cp = (yy_last_accepting_cpos);
1952                         yy_current_state = (yy_last_accepting_state);
1953                         goto yy_find_action;
1954
1955 case 1:
1956 /* rule 1 can match eol */
1957 YY_RULE_SETUP
1958 #line 63 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
1959 {
1960   char *tagstart;
1961   size_t taglen;
1962   char *namestart;
1963   size_t namelen;
1964   int is_pointer = 0;
1965   struct type *t;
1966   int union_p;
1967
1968   tagstart = yytext + strlen (" typedef ");
1969   while (ISSPACE (*tagstart))
1970     tagstart++;
1971   union_p = tagstart[0] == 'u';
1972   tagstart += strlen ("union ");
1973   while (ISSPACE (*tagstart))
1974     tagstart++;
1975   for (taglen = 1; ISIDNUM (tagstart[taglen]); taglen++)
1976     ;
1977   for (namestart = tagstart + taglen; 
1978        ! ISIDNUM (*namestart);
1979        namestart++)
1980     if (*namestart == '*')
1981       is_pointer = 1;
1982   for (namelen = 1; ISIDNUM (namestart[namelen]); namelen++)
1983     ;
1984   t = find_structure ((const char *) xmemdup (tagstart, taglen, taglen+1),
1985                       union_p);
1986   if (is_pointer)
1987     t = create_pointer (t);
1988   namestart = (char *) xmemdup (namestart, namelen, namelen+1);
1989 #ifdef USE_MAPPED_LOCATION
1990   /* temporary kludge - gentype doesn't handle cpp conditionals */
1991   if (strcmp (namestart, "location_t") != 0
1992       && strcmp (namestart, "expanded_location") != 0)
1993 #endif
1994   do_typedef (namestart, t, &lexer_line);
1995   update_lineno (yytext, yyleng);
1996 }
1997         YY_BREAK
1998 case 2:
1999 /* rule 2 can match eol */
2000 YY_RULE_SETUP
2001 #line 102 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2002 {
2003
2004   char *namestart;
2005   size_t namelen;
2006   struct type *t;
2007   char *typestart;
2008   size_t typelen;
2009
2010   for (namestart = yytext + yyleng - 2; ISSPACE (*namestart); namestart--)
2011     ;
2012   for (namelen = 1; !ISSPACE (namestart[-namelen]); namelen++)
2013     ;
2014   namestart -= namelen - 1;
2015   for (typestart = yytext + strlen (" typedef "); 
2016        ISSPACE(*typestart);
2017        typestart++)
2018     ;
2019   for (typelen = namestart - typestart;
2020        ISSPACE (typestart[typelen-1]);
2021        typelen--)
2022     ;
2023
2024   t = create_scalar_type (typestart, typelen);
2025   do_typedef ((const char *) xmemdup (namestart, namelen, namelen+1), t,
2026               &lexer_line);
2027   update_lineno (yytext, yyleng);
2028 }
2029         YY_BREAK
2030 case 3:
2031 /* rule 3 can match eol */
2032 YY_RULE_SETUP
2033 #line 130 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2034 {
2035   char *namestart;
2036   size_t namelen;
2037   struct type *t;
2038
2039   for (namestart = yytext + yyleng - 7; ISSPACE (*namestart); namestart--)
2040     ;
2041   for (namelen = 1; !ISSPACE (namestart[-namelen]); namelen++)
2042     ;
2043   namestart -= namelen - 1;
2044
2045   t = create_scalar_type ("function type", sizeof ("function type")-1);
2046   do_typedef ((const char *) xmemdup (namestart, namelen, namelen+1), t,
2047               &lexer_line);
2048   update_lineno (yytext, yyleng);
2049 }
2050         YY_BREAK
2051 case 4:
2052 /* rule 4 can match eol */
2053 YY_RULE_SETUP
2054 #line 147 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2055 {
2056   char *namestart;
2057   size_t namelen;
2058   struct type *t;
2059
2060   for (namestart = yytext + yyleng - 2; ISSPACE (*namestart); namestart--)
2061     ;
2062   for (namelen = 1; !ISSPACE (namestart[-namelen]); namelen++)
2063     ;
2064   namestart -= namelen - 1;
2065
2066   t = create_scalar_type ("function type", sizeof ("function type")-1);
2067   do_typedef ((const char *) xmemdup (namestart, namelen, namelen+1), t,
2068               &lexer_line);
2069   update_lineno (yytext, yyleng);
2070 }
2071         YY_BREAK
2072 case 5:
2073 /* rule 5 can match eol */
2074 YY_RULE_SETUP
2075 #line 164 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2076 {
2077   char *namestart;
2078   size_t namelen;
2079   struct type *t;
2080
2081   for (namestart = yytext + yyleng - 7; !ISIDNUM (*namestart); namestart--)
2082     ;
2083   for (namelen = 1; ISIDNUM (namestart[-namelen]); namelen++)
2084     ;
2085   namestart -= namelen - 1;
2086
2087   t = create_scalar_type ("function type", sizeof ("function type")-1);
2088   do_typedef ((const char *) xmemdup (namestart, namelen, namelen+1), t,
2089               &lexer_line);
2090   update_lineno (yytext, yyleng);
2091 }
2092         YY_BREAK
2093 case 6:
2094 /* rule 6 can match eol */
2095 YY_RULE_SETUP
2096 #line 181 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2097 {
2098   char *namestart;
2099   size_t namelen;
2100   struct type *t;
2101
2102   for (namestart = yytext + yyleng - 2; !ISIDNUM (*namestart); namestart--)
2103     ;
2104   for (namelen = 1; ISIDNUM (namestart[-namelen]); namelen++)
2105     ;
2106   namestart -= namelen - 1;
2107
2108   t = create_scalar_type ("function type", sizeof ("function type")-1);
2109   do_typedef ((const char *) xmemdup (namestart, namelen, namelen+1), t,
2110               &lexer_line);
2111   update_lineno (yytext, yyleng);
2112 }
2113         YY_BREAK
2114 case 7:
2115 /* rule 7 can match eol */
2116 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2117 (yy_c_buf_p) = yy_cp -= 3;
2118 YY_DO_BEFORE_ACTION; /* set up yytext again */
2119 YY_RULE_SETUP
2120 #line 198 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2121 {
2122   char *tagstart;
2123   size_t taglen;
2124   int typedef_p;
2125   int union_p;
2126
2127   typedef_p = yytext[1] == 't';
2128   if (typedef_p)
2129     for (tagstart = yytext + strlen (" typedef "); 
2130          ISSPACE(*tagstart);
2131          tagstart++)
2132       ;
2133   else
2134     tagstart = yytext + 1;
2135
2136   union_p = tagstart[0] == 'u';
2137   tagstart += strlen ("union ");
2138   while (ISSPACE (*tagstart))
2139     tagstart++;
2140   for (taglen = 1; ISIDNUM (tagstart[taglen]); taglen++)
2141     ;
2142
2143   yylval.t = find_structure ((const char *) xmemdup (tagstart, taglen,
2144                                                      taglen + 1),
2145                              union_p);
2146   BEGIN(in_struct);
2147   update_lineno (yytext, yyleng);
2148   return typedef_p ? ENT_TYPEDEF_STRUCT : ENT_STRUCT;
2149 }
2150         YY_BREAK
2151 case 8:
2152 /* rule 8 can match eol */
2153 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2154 (yy_c_buf_p) = yy_cp -= 3;
2155 YY_DO_BEFORE_ACTION; /* set up yytext again */
2156 YY_RULE_SETUP
2157 #line 228 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2158 {
2159   BEGIN(in_struct);
2160   update_lineno (yytext, yyleng);
2161   return ENT_EXTERNSTATIC;
2162 }
2163         YY_BREAK
2164 case 9:
2165 /* rule 9 can match eol */
2166 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2167 (yy_c_buf_p) = yy_cp -= 3;
2168 YY_DO_BEFORE_ACTION; /* set up yytext again */
2169 YY_RULE_SETUP
2170 #line 234 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2171 {
2172   BEGIN(in_struct);
2173   update_lineno (yytext, yyleng);
2174   return ENT_YACCUNION;
2175 }
2176         YY_BREAK
2177 case 10:
2178 /* rule 10 can match eol */
2179 YY_RULE_SETUP
2180 #line 240 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2181 {
2182   char *macro, *arg;
2183   unsigned macro_len, arg_len;
2184   char *ptr = yytext;
2185   type_p t;
2186
2187   /* Locate the macro and argument strings.  */
2188   macro = ptr;
2189   while (*ptr != '(' && !ISSPACE (*ptr))
2190     ptr++;
2191   macro_len = ptr - macro;
2192   while (*ptr == '(' || ISSPACE (*ptr))
2193     ptr++;
2194   arg = ptr;
2195   while (*ptr != ')' && !ISSPACE (*ptr))
2196     ptr++;
2197   arg_len = ptr - arg;
2198
2199   /* Push the macro for later expansion.  */
2200   push_macro_expansion (macro, macro_len, arg, arg_len);
2201
2202   /* Create the struct and typedef.  */
2203   ptr = (char *) xmemdup ("VEC_", 4, 4 + arg_len + 1);
2204   memcpy (&ptr[4], arg, arg_len);
2205   ptr[4 + arg_len] = 0;
2206   t = find_structure (ptr, 0);
2207   do_typedef (ptr, t, &lexer_line);
2208 }
2209         YY_BREAK
2210
2211 case 11:
2212 YY_RULE_SETUP
2213 #line 271 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2214 { BEGIN(in_struct_comment); }
2215         YY_BREAK
2216 case 12:
2217 YY_RULE_SETUP
2218 #line 273 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2219 { BEGIN(in_yacc_escape); } /* } */
2220         YY_BREAK
2221 case 13:
2222 YY_RULE_SETUP
2223 #line 275 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2224 /* Used for c-parse.in C/ObjC demarcation.  */
2225         YY_BREAK
2226 case 14:
2227 /* rule 14 can match eol */
2228 YY_RULE_SETUP
2229 #line 277 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2230 { update_lineno (yytext, yyleng); }
2231         YY_BREAK
2232 case 15:
2233 /* rule 15 can match eol */
2234 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2235 (yy_c_buf_p) = yy_cp = yy_bp + 5;
2236 YY_DO_BEFORE_ACTION; /* set up yytext again */
2237 YY_RULE_SETUP
2238 #line 279 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2239 /* don't care */
2240         YY_BREAK
2241 case 16:
2242 /* rule 16 can match eol */
2243 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2244 (yy_c_buf_p) = yy_cp = yy_bp + 3;
2245 YY_DO_BEFORE_ACTION; /* set up yytext again */
2246 YY_RULE_SETUP
2247 #line 280 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2248 { return GTY_TOKEN; }
2249         YY_BREAK
2250 case 17:
2251 /* rule 17 can match eol */
2252 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2253 (yy_c_buf_p) = yy_cp = yy_bp + 5;
2254 YY_DO_BEFORE_ACTION; /* set up yytext again */
2255 YY_RULE_SETUP
2256 #line 281 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2257 { return UNION; }
2258         YY_BREAK
2259 case 18:
2260 /* rule 18 can match eol */
2261 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2262 (yy_c_buf_p) = yy_cp = yy_bp + 6;
2263 YY_DO_BEFORE_ACTION; /* set up yytext again */
2264 YY_RULE_SETUP
2265 #line 282 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2266 { return STRUCT; }
2267         YY_BREAK
2268 case 19:
2269 /* rule 19 can match eol */
2270 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2271 (yy_c_buf_p) = yy_cp = yy_bp + 4;
2272 YY_DO_BEFORE_ACTION; /* set up yytext again */
2273 YY_RULE_SETUP
2274 #line 283 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2275 { return ENUM; }
2276         YY_BREAK
2277 case 20:
2278 /* rule 20 can match eol */
2279 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2280 (yy_c_buf_p) = yy_cp = yy_bp + 9;
2281 YY_DO_BEFORE_ACTION; /* set up yytext again */
2282 YY_RULE_SETUP
2283 #line 284 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2284 { return ALIAS; }
2285         YY_BREAK
2286 case 21:
2287 /* rule 21 can match eol */
2288 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2289 (yy_c_buf_p) = yy_cp = yy_bp + 10;
2290 YY_DO_BEFORE_ACTION; /* set up yytext again */
2291 YY_RULE_SETUP
2292 #line 285 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2293 { return NESTED_PTR; }
2294         YY_BREAK
2295 case 22:
2296 YY_RULE_SETUP
2297 #line 286 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2298 { return NUM; }
2299         YY_BREAK
2300 case 23:
2301 /* rule 23 can match eol */
2302 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2303 (yy_c_buf_p) = yy_cp -= 1;
2304 YY_DO_BEFORE_ACTION; /* set up yytext again */
2305 YY_RULE_SETUP
2306 #line 287 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2307 {
2308   yylval.s = (const char *) xmemdup (yytext, yyleng, yyleng+1);
2309   return PARAM_IS;
2310 }
2311         YY_BREAK
2312 case 24:
2313 /* rule 24 can match eol */
2314 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2315 (yy_c_buf_p) = yy_cp -= 1;
2316 YY_DO_BEFORE_ACTION; /* set up yytext again */
2317 #line 293 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2318 case 25:
2319 /* rule 25 can match eol */
2320 YY_RULE_SETUP
2321 #line 293 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2322 {
2323   size_t len;
2324
2325   for (len = yyleng; ISSPACE (yytext[len-1]); len--)
2326     ;
2327
2328   yylval.t = create_scalar_type (yytext, len);
2329   update_lineno (yytext, yyleng);
2330   return SCALAR;
2331 }
2332         YY_BREAK
2333 case 26:
2334 /* rule 26 can match eol */
2335 YY_RULE_SETUP
2336 #line 304 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2337 {
2338   char *macro, *arg;
2339   unsigned macro_len, arg_len;
2340   char *ptr = yytext;
2341
2342   macro = ptr;
2343   while (*ptr != '(' && !ISSPACE (*ptr)) /* )*/
2344     ptr++;
2345   macro_len = ptr - macro;
2346   while (*ptr == '(' || ISSPACE (*ptr))
2347     ptr++;
2348   arg = ptr;
2349   while (*ptr != ')' && !ISSPACE (*ptr))
2350     ptr++;
2351   arg_len = ptr - arg;
2352   ptr = (char *) xmemdup (macro, macro_len, macro_len + arg_len + 2);
2353   ptr[macro_len] = '_';
2354   memcpy (&ptr[macro_len+1], arg, arg_len);
2355   yylval.s = ptr;
2356   return ID;
2357 }
2358         YY_BREAK
2359 case 27:
2360 /* rule 27 can match eol */
2361 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2362 (yy_c_buf_p) = yy_cp -= 1;
2363 YY_DO_BEFORE_ACTION; /* set up yytext again */
2364 YY_RULE_SETUP
2365 #line 326 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2366 {
2367   yylval.s = (const char *) xmemdup (yytext, yyleng, yyleng+1);
2368   return ID;
2369 }
2370         YY_BREAK
2371 case 28:
2372 /* rule 28 can match eol */
2373 YY_RULE_SETUP
2374 #line 331 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2375 {
2376   yylval.s = (const char *) xmemdup (yytext+1, yyleng-2, yyleng-1);
2377   return STRING;
2378 }
2379         YY_BREAK
2380 case 29:
2381 /* rule 29 can match eol */
2382 YY_RULE_SETUP
2383 #line 335 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2384 {
2385   yylval.s = (const char *) xmemdup (yytext+1, yyleng-2, yyleng-1);
2386   return ARRAY;
2387 }
2388         YY_BREAK
2389 case 30:
2390 YY_RULE_SETUP
2391 #line 339 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2392 {
2393   yylval.s = (const char *) xmemdup (yytext+1, yyleng-1, yyleng);
2394   return PERCENT_ID;
2395 }
2396         YY_BREAK
2397 case 31:
2398 /* rule 31 can match eol */
2399 YY_RULE_SETUP
2400 #line 343 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2401 {
2402   yylval.s = (const char *) xmemdup (yytext+1, yyleng-2, yyleng);
2403   return CHAR;
2404 }
2405         YY_BREAK
2406 case 32:
2407 YY_RULE_SETUP
2408 #line 348 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2409 { return yytext[0]; }
2410         YY_BREAK
2411 case 33:
2412 YY_RULE_SETUP
2413 #line 350 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2414 {
2415   if (lexer_toplevel_done)
2416     {
2417       BEGIN(INITIAL);
2418       lexer_toplevel_done = 0;
2419     }
2420   return yytext[0];
2421 }
2422         YY_BREAK
2423 case 34:
2424 YY_RULE_SETUP
2425 #line 359 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2426 {
2427   BEGIN(INITIAL);
2428   return PERCENTPERCENT;
2429 }
2430         YY_BREAK
2431 case 35:
2432 /* rule 35 can match eol */
2433 YY_RULE_SETUP
2434 #line 364 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2435 {lexer_line.line++;}
2436         YY_BREAK
2437 case 36:
2438 YY_RULE_SETUP
2439 #line 366 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2440 {
2441   error_at_line (&lexer_line, "unexpected character `%s'", yytext);
2442 }
2443         YY_BREAK
2444
2445 case 37:
2446 YY_RULE_SETUP
2447 #line 371 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2448 { BEGIN(in_comment); }
2449         YY_BREAK
2450 case 38:
2451 /* rule 38 can match eol */
2452 YY_RULE_SETUP
2453 #line 372 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2454 { lexer_line.line++; }
2455         YY_BREAK
2456 case 39:
2457 #line 374 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2458 case 40:
2459 /* rule 40 can match eol */
2460 #line 375 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2461 case 41:
2462 /* rule 41 can match eol */
2463 YY_RULE_SETUP
2464 #line 375 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2465 /* do nothing */
2466         YY_BREAK
2467 case 42:
2468 /* rule 42 can match eol */
2469 YY_RULE_SETUP
2470 #line 376 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2471 { update_lineno (yytext, yyleng); }
2472         YY_BREAK
2473 case 43:
2474 /* rule 43 can match eol */
2475 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2476 (yy_c_buf_p) = yy_cp = yy_bp + 1;
2477 YY_DO_BEFORE_ACTION; /* set up yytext again */
2478 YY_RULE_SETUP
2479 #line 377 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2480 /* do nothing */
2481         YY_BREAK
2482
2483 case 44:
2484 /* rule 44 can match eol */
2485 YY_RULE_SETUP
2486 #line 380 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2487 { lexer_line.line++; }
2488         YY_BREAK
2489 case 45:
2490 #line 382 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2491 case 46:
2492 YY_RULE_SETUP
2493 #line 382 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2494 /* do nothing */
2495         YY_BREAK
2496 case 47:
2497 /* rule 47 can match eol */
2498 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2499 (yy_c_buf_p) = yy_cp = yy_bp + 1;
2500 YY_DO_BEFORE_ACTION; /* set up yytext again */
2501 YY_RULE_SETUP
2502 #line 383 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2503 /* do nothing */
2504         YY_BREAK
2505
2506 case 48:
2507 YY_RULE_SETUP
2508 #line 385 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2509 { BEGIN(INITIAL); } 
2510         YY_BREAK
2511 case 49:
2512 YY_RULE_SETUP
2513 #line 386 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2514 { BEGIN(in_struct); }
2515         YY_BREAK
2516
2517 case 50:
2518 /* rule 50 can match eol */
2519 YY_RULE_SETUP
2520 #line 389 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2521 { lexer_line.line++; }
2522         YY_BREAK
2523 case 51:
2524 /* rule 51 can match eol */
2525 #line 391 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2526 case 52:
2527 /* rule 52 can match eol */
2528 YY_RULE_SETUP
2529 #line 391 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2530 /* do nothing */
2531         YY_BREAK
2532 case 53:
2533 /* rule 53 can match eol */
2534 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2535 (yy_c_buf_p) = yy_cp = yy_bp + 1;
2536 YY_DO_BEFORE_ACTION; /* set up yytext again */
2537 YY_RULE_SETUP
2538 #line 392 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2539 /* do nothing */
2540         YY_BREAK
2541 case 54:
2542 YY_RULE_SETUP
2543 #line 393 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2544 { BEGIN(in_struct); }
2545         YY_BREAK
2546 case 55:
2547 YY_RULE_SETUP
2548 #line 394 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2549 {
2550   error_at_line (&lexer_line, 
2551                  "unterminated %%{; unexpected EOF");
2552 }
2553         YY_BREAK
2554
2555 case 56:
2556 #line 402 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2557 case 57:
2558 YY_RULE_SETUP
2559 #line 402 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2560 {
2561   error_at_line (&lexer_line, 
2562                  "unterminated comment or string; unexpected EOF");
2563 }
2564         YY_BREAK
2565 case 58:
2566 /* rule 58 can match eol */
2567 YY_RULE_SETUP
2568 #line 407 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2569 /* do nothing */
2570         YY_BREAK
2571 case 59:
2572 /* rule 59 can match eol */
2573 YY_RULE_SETUP
2574 #line 408 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2575 {
2576   error_at_line (&lexer_line, "stray GTY marker");
2577 }
2578         YY_BREAK
2579 case 60:
2580 YY_RULE_SETUP
2581 #line 412 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
2582 YY_FATAL_ERROR( "flex scanner jammed" );
2583         YY_BREAK
2584 #line 2585 "gengtype-lex.c"
2585 case YY_STATE_EOF(INITIAL):
2586 case YY_STATE_EOF(in_struct):
2587 case YY_STATE_EOF(in_struct_comment):
2588 case YY_STATE_EOF(in_comment):
2589 case YY_STATE_EOF(in_yacc_escape):
2590         yyterminate();
2591
2592         case YY_END_OF_BUFFER:
2593                 {
2594                 /* Amount of text matched not including the EOB char. */
2595                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2596
2597                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2598                 *yy_cp = (yy_hold_char);
2599                 YY_RESTORE_YY_MORE_OFFSET
2600
2601                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2602                         {
2603                         /* We're scanning a new file or input source.  It's
2604                          * possible that this happened because the user
2605                          * just pointed yyin at a new source and called
2606                          * yylex().  If so, then we have to assure
2607                          * consistency between YY_CURRENT_BUFFER and our
2608                          * globals.  Here is the right place to do so, because
2609                          * this is the first action (other than possibly a
2610                          * back-up) that will match for the new input source.
2611                          */
2612                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2613                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2614                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2615                         }
2616
2617                 /* Note that here we test for yy_c_buf_p "<=" to the position
2618                  * of the first EOB in the buffer, since yy_c_buf_p will
2619                  * already have been incremented past the NUL character
2620                  * (since all states make transitions on EOB to the
2621                  * end-of-buffer state).  Contrast this with the test
2622                  * in input().
2623                  */
2624                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2625                         { /* This was really a NUL. */
2626                         yy_state_type yy_next_state;
2627
2628                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2629
2630                         yy_current_state = yy_get_previous_state(  );
2631
2632                         /* Okay, we're now positioned to make the NUL
2633                          * transition.  We couldn't have
2634                          * yy_get_previous_state() go ahead and do it
2635                          * for us because it doesn't know how to deal
2636                          * with the possibility of jamming (and we don't
2637                          * want to build jamming into it because then it
2638                          * will run more slowly).
2639                          */
2640
2641                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2642
2643                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2644
2645                         if ( yy_next_state )
2646                                 {
2647                                 /* Consume the NUL. */
2648                                 yy_cp = ++(yy_c_buf_p);
2649                                 yy_current_state = yy_next_state;
2650                                 goto yy_match;
2651                                 }
2652
2653                         else
2654                                 {
2655                                 yy_cp = (yy_last_accepting_cpos);
2656                                 yy_current_state = (yy_last_accepting_state);
2657                                 goto yy_find_action;
2658                                 }
2659                         }
2660
2661                 else switch ( yy_get_next_buffer(  ) )
2662                         {
2663                         case EOB_ACT_END_OF_FILE:
2664                                 {
2665                                 (yy_did_buffer_switch_on_eof) = 0;
2666
2667                                 if ( yywrap( ) )
2668                                         {
2669                                         /* Note: because we've taken care in
2670                                          * yy_get_next_buffer() to have set up
2671                                          * yytext, we can now set up
2672                                          * yy_c_buf_p so that if some total
2673                                          * hoser (like flex itself) wants to
2674                                          * call the scanner after we return the
2675                                          * YY_NULL, it'll still work - another
2676                                          * YY_NULL will get returned.
2677                                          */
2678                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2679
2680                                         yy_act = YY_STATE_EOF(YY_START);
2681                                         goto do_action;
2682                                         }
2683
2684                                 else
2685                                         {
2686                                         if ( ! (yy_did_buffer_switch_on_eof) )
2687                                                 YY_NEW_FILE;
2688                                         }
2689                                 break;
2690                                 }
2691
2692                         case EOB_ACT_CONTINUE_SCAN:
2693                                 (yy_c_buf_p) =
2694                                         (yytext_ptr) + yy_amount_of_matched_text;
2695
2696                                 yy_current_state = yy_get_previous_state(  );
2697
2698                                 yy_cp = (yy_c_buf_p);
2699                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2700                                 goto yy_match;
2701
2702                         case EOB_ACT_LAST_MATCH:
2703                                 (yy_c_buf_p) =
2704                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2705
2706                                 yy_current_state = yy_get_previous_state(  );
2707
2708                                 yy_cp = (yy_c_buf_p);
2709                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2710                                 goto yy_find_action;
2711                         }
2712                 break;
2713                 }
2714
2715         default:
2716                 YY_FATAL_ERROR(
2717                         "fatal flex scanner internal error--no action found" );
2718         } /* end of action switch */
2719                 } /* end of scanning one token */
2720 } /* end of yylex */
2721
2722 /* yy_get_next_buffer - try to read in a new buffer
2723  *
2724  * Returns a code representing an action:
2725  *      EOB_ACT_LAST_MATCH -
2726  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2727  *      EOB_ACT_END_OF_FILE - end of file
2728  */
2729 static int yy_get_next_buffer (void)
2730 {
2731         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2732         register char *source = (yytext_ptr);
2733         register int number_to_move, i;
2734         int ret_val;
2735
2736         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2737                 YY_FATAL_ERROR(
2738                 "fatal flex scanner internal error--end of buffer missed" );
2739
2740         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2741                 { /* Don't try to fill the buffer, so this is an EOF. */
2742                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2743                         {
2744                         /* We matched a single character, the EOB, so
2745                          * treat this as a final EOF.
2746                          */
2747                         return EOB_ACT_END_OF_FILE;
2748                         }
2749
2750                 else
2751                         {
2752                         /* We matched some text prior to the EOB, first
2753                          * process it.
2754                          */
2755                         return EOB_ACT_LAST_MATCH;
2756                         }
2757                 }
2758
2759         /* Try to read more data. */
2760
2761         /* First move last chars to start of buffer. */
2762         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2763
2764         for ( i = 0; i < number_to_move; ++i )
2765                 *(dest++) = *(source++);
2766
2767         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2768                 /* don't do the read, it's not guaranteed to return an EOF,
2769                  * just force an EOF
2770                  */
2771                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2772
2773         else
2774                 {
2775                         size_t num_to_read =
2776                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2777
2778                 while ( num_to_read <= 0 )
2779                         { /* Not enough room in the buffer - grow it. */
2780
2781                         /* just a shorter name for the current buffer */
2782                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2783
2784                         int yy_c_buf_p_offset =
2785                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2786
2787                         if ( b->yy_is_our_buffer )
2788                                 {
2789                                 int new_size = b->yy_buf_size * 2;
2790
2791                                 if ( new_size <= 0 )
2792                                         b->yy_buf_size += b->yy_buf_size / 8;
2793                                 else
2794                                         b->yy_buf_size *= 2;
2795
2796                                 b->yy_ch_buf = (char *)
2797                                         /* Include room in for 2 EOB chars. */
2798                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
2799                                 }
2800                         else
2801                                 /* Can't grow it, we don't own it. */
2802                                 b->yy_ch_buf = 0;
2803
2804                         if ( ! b->yy_ch_buf )
2805                                 YY_FATAL_ERROR(
2806                                 "fatal error - scanner input buffer overflow" );
2807
2808                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2809
2810                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2811                                                 number_to_move - 1;
2812
2813                         }
2814
2815                 if ( num_to_read > YY_READ_BUF_SIZE )
2816                         num_to_read = YY_READ_BUF_SIZE;
2817
2818                 /* Read in more data. */
2819                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2820                         (yy_n_chars), num_to_read );
2821
2822                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2823                 }
2824
2825         if ( (yy_n_chars) == 0 )
2826                 {
2827                 if ( number_to_move == YY_MORE_ADJ )
2828                         {
2829                         ret_val = EOB_ACT_END_OF_FILE;
2830                         yyrestart(yyin  );
2831                         }
2832
2833                 else
2834                         {
2835                         ret_val = EOB_ACT_LAST_MATCH;
2836                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2837                                 YY_BUFFER_EOF_PENDING;
2838                         }
2839                 }
2840
2841         else
2842                 ret_val = EOB_ACT_CONTINUE_SCAN;
2843
2844         (yy_n_chars) += number_to_move;
2845         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2846         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2847
2848         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2849
2850         return ret_val;
2851 }
2852
2853 /* yy_get_previous_state - get the state just before the EOB char was reached */
2854
2855     static yy_state_type yy_get_previous_state (void)
2856 {
2857         register yy_state_type yy_current_state;
2858         register char *yy_cp;
2859     
2860         yy_current_state = (yy_start);
2861         yy_current_state += YY_AT_BOL();
2862
2863         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2864                 {
2865                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2866                 if ( yy_accept[yy_current_state] )
2867                         {
2868                         (yy_last_accepting_state) = yy_current_state;
2869                         (yy_last_accepting_cpos) = yy_cp;
2870                         }
2871                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2872                         {
2873                         yy_current_state = (int) yy_def[yy_current_state];
2874                         if ( yy_current_state >= 932 )
2875                                 yy_c = yy_meta[(unsigned int) yy_c];
2876                         }
2877                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2878                 }
2879
2880         return yy_current_state;
2881 }
2882
2883 /* yy_try_NUL_trans - try to make a transition on the NUL character
2884  *
2885  * synopsis
2886  *      next_state = yy_try_NUL_trans( current_state );
2887  */
2888     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2889 {
2890         register int yy_is_jam;
2891         register char *yy_cp = (yy_c_buf_p);
2892
2893         register YY_CHAR yy_c = 1;
2894         if ( yy_accept[yy_current_state] )
2895                 {
2896                 (yy_last_accepting_state) = yy_current_state;
2897                 (yy_last_accepting_cpos) = yy_cp;
2898                 }
2899         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2900                 {
2901                 yy_current_state = (int) yy_def[yy_current_state];
2902                 if ( yy_current_state >= 932 )
2903                         yy_c = yy_meta[(unsigned int) yy_c];
2904                 }
2905         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2906         yy_is_jam = (yy_current_state == 931);
2907
2908         return yy_is_jam ? 0 : yy_current_state;
2909 }
2910
2911 #ifndef YY_NO_INPUT
2912 #ifdef __cplusplus
2913     static int yyinput (void)
2914 #else
2915     static int input  (void)
2916 #endif
2917
2918 {
2919         int c;
2920     
2921         *(yy_c_buf_p) = (yy_hold_char);
2922
2923         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2924                 {
2925                 /* yy_c_buf_p now points to the character we want to return.
2926                  * If this occurs *before* the EOB characters, then it's a
2927                  * valid NUL; if not, then we've hit the end of the buffer.
2928                  */
2929                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2930                         /* This was really a NUL. */
2931                         *(yy_c_buf_p) = '\0';
2932
2933                 else
2934                         { /* need more input */
2935                         int offset = (yy_c_buf_p) - (yytext_ptr);
2936                         ++(yy_c_buf_p);
2937
2938                         switch ( yy_get_next_buffer(  ) )
2939                                 {
2940                                 case EOB_ACT_LAST_MATCH:
2941                                         /* This happens because yy_g_n_b()
2942                                          * sees that we've accumulated a
2943                                          * token and flags that we need to
2944                                          * try matching the token before
2945                                          * proceeding.  But for input(),
2946                                          * there's no matching to consider.
2947                                          * So convert the EOB_ACT_LAST_MATCH
2948                                          * to EOB_ACT_END_OF_FILE.
2949                                          */
2950
2951                                         /* Reset buffer status. */
2952                                         yyrestart(yyin );
2953
2954                                         /*FALLTHROUGH*/
2955
2956                                 case EOB_ACT_END_OF_FILE:
2957                                         {
2958                                         if ( yywrap( ) )
2959                                                 return EOF;
2960
2961                                         if ( ! (yy_did_buffer_switch_on_eof) )
2962                                                 YY_NEW_FILE;
2963 #ifdef __cplusplus
2964                                         return yyinput();
2965 #else
2966                                         return input();
2967 #endif
2968                                         }
2969
2970                                 case EOB_ACT_CONTINUE_SCAN:
2971                                         (yy_c_buf_p) = (yytext_ptr) + offset;
2972                                         break;
2973                                 }
2974                         }
2975                 }
2976
2977         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
2978         *(yy_c_buf_p) = '\0';   /* preserve yytext */
2979         (yy_hold_char) = *++(yy_c_buf_p);
2980
2981         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2982
2983         return c;
2984 }
2985 #endif  /* ifndef YY_NO_INPUT */
2986
2987 /** Immediately switch to a different input stream.
2988  * @param input_file A readable stream.
2989  * 
2990  * @note This function does not reset the start condition to @c INITIAL .
2991  */
2992     void yyrestart  (FILE * input_file )
2993 {
2994     
2995         if ( ! YY_CURRENT_BUFFER ){
2996         yyensure_buffer_stack ();
2997                 YY_CURRENT_BUFFER_LVALUE =
2998             yy_create_buffer(yyin,YY_BUF_SIZE );
2999         }
3000
3001         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
3002         yy_load_buffer_state( );
3003 }
3004
3005 /** Switch to a different input buffer.
3006  * @param new_buffer The new input buffer.
3007  * 
3008  */
3009     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3010 {
3011     
3012         /* TODO. We should be able to replace this entire function body
3013          * with
3014          *              yypop_buffer_state();
3015          *              yypush_buffer_state(new_buffer);
3016      */
3017         yyensure_buffer_stack ();
3018         if ( YY_CURRENT_BUFFER == new_buffer )
3019                 return;
3020
3021         if ( YY_CURRENT_BUFFER )
3022                 {
3023                 /* Flush out information for old buffer. */
3024                 *(yy_c_buf_p) = (yy_hold_char);
3025                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3026                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3027                 }
3028
3029         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3030         yy_load_buffer_state( );
3031
3032         /* We don't actually know whether we did this switch during
3033          * EOF (yywrap()) processing, but the only time this flag
3034          * is looked at is after yywrap() is called, so it's safe
3035          * to go ahead and always set it.
3036          */
3037         (yy_did_buffer_switch_on_eof) = 1;
3038 }
3039
3040 static void yy_load_buffer_state  (void)
3041 {
3042         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3043         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3044         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3045         (yy_hold_char) = *(yy_c_buf_p);
3046 }
3047
3048 /** Allocate and initialize an input buffer state.
3049  * @param file A readable stream.
3050  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3051  * 
3052  * @return the allocated buffer state.
3053  */
3054     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
3055 {
3056         YY_BUFFER_STATE b;
3057     
3058         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
3059         if ( ! b )
3060                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3061
3062         b->yy_buf_size = size;
3063
3064         /* yy_ch_buf has to be 2 characters longer than the size given because
3065          * we need to put in 2 end-of-buffer characters.
3066          */
3067         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
3068         if ( ! b->yy_ch_buf )
3069                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3070
3071         b->yy_is_our_buffer = 1;
3072
3073         yy_init_buffer(b,file );
3074
3075         return b;
3076 }
3077
3078 /** Destroy the buffer.
3079  * @param b a buffer created with yy_create_buffer()
3080  * 
3081  */
3082     void yy_delete_buffer (YY_BUFFER_STATE  b )
3083 {
3084     
3085         if ( ! b )
3086                 return;
3087
3088         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3089                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3090
3091         if ( b->yy_is_our_buffer )
3092                 yyfree((void *) b->yy_ch_buf  );
3093
3094         yyfree((void *) b  );
3095 }
3096
3097 /* Initializes or reinitializes a buffer.
3098  * This function is sometimes called more than once on the same buffer,
3099  * such as during a yyrestart() or at EOF.
3100  */
3101     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3102
3103 {
3104         int oerrno = errno;
3105     
3106         yy_flush_buffer(b );
3107
3108         b->yy_input_file = file;
3109         b->yy_fill_buffer = 1;
3110
3111     /* If b is the current buffer, then yy_init_buffer was _probably_
3112      * called from yyrestart() or through yy_get_next_buffer.
3113      * In that case, we don't want to reset the lineno or column.
3114      */
3115     if (b != YY_CURRENT_BUFFER){
3116         b->yy_bs_lineno = 1;
3117         b->yy_bs_column = 0;
3118     }
3119
3120         b->yy_is_interactive = 0;
3121     
3122         errno = oerrno;
3123 }
3124
3125 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3126  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3127  * 
3128  */
3129     void yy_flush_buffer (YY_BUFFER_STATE  b )
3130 {
3131         if ( ! b )
3132                 return;
3133
3134         b->yy_n_chars = 0;
3135
3136         /* We always need two end-of-buffer characters.  The first causes
3137          * a transition to the end-of-buffer state.  The second causes
3138          * a jam in that state.
3139          */
3140         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3141         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3142
3143         b->yy_buf_pos = &b->yy_ch_buf[0];
3144
3145         b->yy_at_bol = 1;
3146         b->yy_buffer_status = YY_BUFFER_NEW;
3147
3148         if ( b == YY_CURRENT_BUFFER )
3149                 yy_load_buffer_state( );
3150 }
3151
3152 /** Pushes the new state onto the stack. The new state becomes
3153  *  the current state. This function will allocate the stack
3154  *  if necessary.
3155  *  @param new_buffer The new state.
3156  *  
3157  */
3158 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3159 {
3160         if (new_buffer == NULL)
3161                 return;
3162
3163         yyensure_buffer_stack();
3164
3165         /* This block is copied from yy_switch_to_buffer. */
3166         if ( YY_CURRENT_BUFFER )
3167                 {
3168                 /* Flush out information for old buffer. */
3169                 *(yy_c_buf_p) = (yy_hold_char);
3170                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3171                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3172                 }
3173
3174         /* Only push if top exists. Otherwise, replace top. */
3175         if (YY_CURRENT_BUFFER)
3176                 (yy_buffer_stack_top)++;
3177         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3178
3179         /* copied from yy_switch_to_buffer. */
3180         yy_load_buffer_state( );
3181         (yy_did_buffer_switch_on_eof) = 1;
3182 }
3183
3184 /** Removes and deletes the top of the stack, if present.
3185  *  The next element becomes the new top.
3186  *  
3187  */
3188 void yypop_buffer_state (void)
3189 {
3190         if (!YY_CURRENT_BUFFER)
3191                 return;
3192
3193         yy_delete_buffer(YY_CURRENT_BUFFER );
3194         YY_CURRENT_BUFFER_LVALUE = NULL;
3195         if ((yy_buffer_stack_top) > 0)
3196                 --(yy_buffer_stack_top);
3197
3198         if (YY_CURRENT_BUFFER) {
3199                 yy_load_buffer_state( );
3200                 (yy_did_buffer_switch_on_eof) = 1;
3201         }
3202 }
3203
3204 /* Allocates the stack if it does not exist.
3205  *  Guarantees space for at least one push.
3206  */
3207 static void yyensure_buffer_stack (void)
3208 {
3209         int num_to_alloc;
3210     
3211         if (!(yy_buffer_stack)) {
3212
3213                 /* First allocation is just for 2 elements, since we don't know if this
3214                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3215                  * immediate realloc on the next call.
3216          */
3217                 num_to_alloc = 1;
3218                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3219                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
3220                                                                 );
3221                 
3222                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3223                                 
3224                 (yy_buffer_stack_max) = num_to_alloc;
3225                 (yy_buffer_stack_top) = 0;
3226                 return;
3227         }
3228
3229         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3230
3231                 /* Increase the buffer to prepare for a possible push. */
3232                 int grow_size = 8 /* arbitrary grow size */;
3233
3234                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3235                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3236                                                                 ((yy_buffer_stack),
3237                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
3238                                                                 );
3239
3240                 /* zero only the new slots.*/
3241                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3242                 (yy_buffer_stack_max) = num_to_alloc;
3243         }
3244 }
3245
3246 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3247  * @param base the character buffer
3248  * @param size the size in bytes of the character buffer
3249  * 
3250  * @return the newly allocated buffer state object. 
3251  */
3252 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
3253 {
3254         YY_BUFFER_STATE b;
3255     
3256         if ( size < 2 ||
3257              base[size-2] != YY_END_OF_BUFFER_CHAR ||
3258              base[size-1] != YY_END_OF_BUFFER_CHAR )
3259                 /* They forgot to leave room for the EOB's. */
3260                 return 0;
3261
3262         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
3263         if ( ! b )
3264                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3265
3266         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
3267         b->yy_buf_pos = b->yy_ch_buf = base;
3268         b->yy_is_our_buffer = 0;
3269         b->yy_input_file = 0;
3270         b->yy_n_chars = b->yy_buf_size;
3271         b->yy_is_interactive = 0;
3272         b->yy_at_bol = 1;
3273         b->yy_fill_buffer = 0;
3274         b->yy_buffer_status = YY_BUFFER_NEW;
3275
3276         yy_switch_to_buffer(b  );
3277
3278         return b;
3279 }
3280
3281 /** Setup the input buffer state to scan a string. The next call to yylex() will
3282  * scan from a @e copy of @a str.
3283  * @param str a NUL-terminated string to scan
3284  * 
3285  * @return the newly allocated buffer state object.
3286  * @note If you want to scan bytes that may contain NUL values, then use
3287  *       yy_scan_bytes() instead.
3288  */
3289 YY_BUFFER_STATE yy_scan_string (yyconst char * str )
3290 {
3291     
3292         return yy_scan_bytes(str,strlen(str) );
3293 }
3294
3295 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3296  * scan from a @e copy of @a bytes.
3297  * @param bytes the byte buffer to scan
3298  * @param len the number of bytes in the buffer pointed to by @a bytes.
3299  * 
3300  * @return the newly allocated buffer state object.
3301  */
3302 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * bytes, int  len )
3303 {
3304         YY_BUFFER_STATE b;
3305         char *buf;
3306         yy_size_t n;
3307         int i;
3308     
3309         /* Get memory for full buffer, including space for trailing EOB's. */
3310         n = len + 2;
3311         buf = (char *) yyalloc(n  );
3312         if ( ! buf )
3313                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3314
3315         for ( i = 0; i < len; ++i )
3316                 buf[i] = bytes[i];
3317
3318         buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3319
3320         b = yy_scan_buffer(buf,n );
3321         if ( ! b )
3322                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3323
3324         /* It's okay to grow etc. this buffer, and we should throw it
3325          * away when we're done.
3326          */
3327         b->yy_is_our_buffer = 1;
3328
3329         return b;
3330 }
3331
3332 #ifndef YY_EXIT_FAILURE
3333 #define YY_EXIT_FAILURE 2
3334 #endif
3335
3336 static void yy_fatal_error (yyconst char* msg )
3337 {
3338         (void) fprintf( stderr, "%s\n", msg );
3339         exit( YY_EXIT_FAILURE );
3340 }
3341
3342 /* Redefine yyless() so it works in section 3 code. */
3343
3344 #undef yyless
3345 #define yyless(n) \
3346         do \
3347                 { \
3348                 /* Undo effects of setting up yytext. */ \
3349         int yyless_macro_arg = (n); \
3350         YY_LESS_LINENO(yyless_macro_arg);\
3351                 yytext[yyleng] = (yy_hold_char); \
3352                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3353                 (yy_hold_char) = *(yy_c_buf_p); \
3354                 *(yy_c_buf_p) = '\0'; \
3355                 yyleng = yyless_macro_arg; \
3356                 } \
3357         while ( 0 )
3358
3359 /* Accessor  methods (get/set functions) to struct members. */
3360
3361 /** Get the current line number.
3362  * 
3363  */
3364 int yyget_lineno  (void)
3365 {
3366         
3367     return yylineno;
3368 }
3369
3370 /** Get the input stream.
3371  * 
3372  */
3373 FILE *yyget_in  (void)
3374 {
3375         return yyin;
3376 }
3377
3378 /** Get the output stream.
3379  * 
3380  */
3381 FILE *yyget_out  (void)
3382 {
3383         return yyout;
3384 }
3385
3386 /** Get the length of the current token.
3387  * 
3388  */
3389 int yyget_leng  (void)
3390 {
3391         return yyleng;
3392 }
3393
3394 /** Get the current token.
3395  * 
3396  */
3397
3398 char *yyget_text  (void)
3399 {
3400         return yytext;
3401 }
3402
3403 /** Set the current line number.
3404  * @param line_number
3405  * 
3406  */
3407 void yyset_lineno (int  line_number )
3408 {
3409     
3410     yylineno = line_number;
3411 }
3412
3413 /** Set the input stream. This does not discard the current
3414  * input buffer.
3415  * @param in_str A readable stream.
3416  * 
3417  * @see yy_switch_to_buffer
3418  */
3419 void yyset_in (FILE *  in_str )
3420 {
3421         yyin = in_str ;
3422 }
3423
3424 void yyset_out (FILE *  out_str )
3425 {
3426         yyout = out_str ;
3427 }
3428
3429 int yyget_debug  (void)
3430 {
3431         return yy_flex_debug;
3432 }
3433
3434 void yyset_debug (int  bdebug )
3435 {
3436         yy_flex_debug = bdebug ;
3437 }
3438
3439 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3440 int yylex_destroy  (void)
3441 {
3442     
3443     /* Pop the buffer stack, destroying each element. */
3444         while(YY_CURRENT_BUFFER){
3445                 yy_delete_buffer(YY_CURRENT_BUFFER  );
3446                 YY_CURRENT_BUFFER_LVALUE = NULL;
3447                 yypop_buffer_state();
3448         }
3449
3450         /* Destroy the stack itself. */
3451         yyfree((yy_buffer_stack) );
3452         (yy_buffer_stack) = NULL;
3453
3454     return 0;
3455 }
3456
3457 /*
3458  * Internal utility routines.
3459  */
3460
3461 #ifndef yytext_ptr
3462 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3463 {
3464         register int i;
3465         for ( i = 0; i < n; ++i )
3466                 s1[i] = s2[i];
3467 }
3468 #endif
3469
3470 #ifdef YY_NEED_STRLEN
3471 static int yy_flex_strlen (yyconst char * s )
3472 {
3473         register int n;
3474         for ( n = 0; s[n]; ++n )
3475                 ;
3476
3477         return n;
3478 }
3479 #endif
3480
3481 void *yyalloc (yy_size_t  size )
3482 {
3483         return (void *) malloc( size );
3484 }
3485
3486 void *yyrealloc  (void * ptr, yy_size_t  size )
3487 {
3488         /* The cast to (char *) in the following accommodates both
3489          * implementations that use char* generic pointers, and those
3490          * that use void* generic pointers.  It works with the latter
3491          * because both ANSI C and C++ allow castless assignment from
3492          * any pointer type to void*, and deal with argument conversions
3493          * as though doing an assignment.
3494          */
3495         return (void *) realloc( (char *) ptr, size );
3496 }
3497
3498 void yyfree (void * ptr )
3499 {
3500         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
3501 }
3502
3503 #define YYTABLES_NAME "yytables"
3504
3505 #undef YY_NEW_FILE
3506 #undef YY_FLUSH_BUFFER
3507 #undef yy_set_bol
3508 #undef yy_new_buffer
3509 #undef yy_set_interactive
3510 #undef yytext_ptr
3511 #undef YY_DO_BEFORE_ACTION
3512
3513 #ifdef YY_DECL_IS_OURS
3514 #undef YY_DECL_IS_OURS
3515 #undef YY_DECL
3516 #endif
3517 #line 412 "/scratch/mitchell/gcc-releases/gcc-4.0.1/gcc-4.0.1/gcc/gengtype-lex.l"
3518
3519
3520
3521 /* Deal with the expansion caused by the DEF_VEC_x macros.  */
3522
3523 typedef struct macro
3524 {
3525   const char *name;
3526   const char *expansion;
3527   struct macro *next;
3528 } macro_t;
3529
3530 static const macro_t macro_defs[] = 
3531 {
3532 #define IN_GENGTYPE 1
3533 #include "vec.h"
3534   {NULL, NULL, NULL}
3535 };
3536
3537 /* Chain of macro expansions to do at end of scanning.  */
3538 static macro_t *macro_expns;
3539
3540 /* Push macro NAME (NAME_LEN) with argument ARG (ARG_LEN) onto the
3541    expansion queue.  We ensure NAME is known at this point.  */
3542
3543 static void
3544 push_macro_expansion (const char *name, unsigned name_len,
3545                       const char *arg, unsigned arg_len)
3546 {
3547   unsigned ix;
3548
3549   for (ix = 0; macro_defs[ix].name; ix++)
3550     if (strlen (macro_defs[ix].name) == name_len
3551         && !memcmp (name, macro_defs[ix].name, name_len))
3552       {
3553         macro_t *expansion = XNEW (macro_t);
3554
3555         expansion->next = macro_expns;
3556         expansion->name = (char *) xmemdup (arg, arg_len, arg_len+1);
3557         expansion->expansion = macro_defs[ix].expansion;
3558         macro_expns = expansion;
3559         return;
3560       }
3561   error_at_line (&lexer_line, "unrecognized macro `%.*s(%.*s)'",
3562                  name_len, name, arg_len, arg);
3563 }
3564
3565 /* Attempt to read some input.  Use fread until we're at the end of
3566    file.  At end of file expand the next queued macro.  We presume the
3567    buffer is large enough for the entire expansion.  */
3568
3569 static unsigned
3570 macro_input (char *buffer, unsigned size)
3571 {
3572   unsigned result;
3573
3574   result = fread (buffer, 1, size, yyin);
3575   if (result)
3576     /*NOP*/;
3577   else if (ferror (yyin))
3578     YY_FATAL_ERROR ("read of source file failed");
3579   else if (macro_expns)
3580     {
3581       const char *expn;
3582       unsigned len;
3583
3584       for (expn = macro_expns->expansion; *expn; expn++)
3585         {
3586           if (*expn == '#')
3587             {
3588               if (buffer[result-1] == ' ' && buffer[result-2] == '_')
3589                 result--;
3590               len = strlen (macro_expns->name);
3591               memcpy (&buffer[result], macro_expns->name, len);
3592               result += len;
3593             }
3594           else
3595             {
3596               buffer[result++] = *expn;
3597               if (*expn == ';' || *expn == '{')
3598                 buffer[result++] = '\n';
3599             }
3600         }
3601       if (result > size)
3602         YY_FATAL_ERROR ("buffer too small to expand macro");
3603       macro_expns = macro_expns->next;
3604     }
3605   return result;
3606 }
3607
3608 void
3609 yyerror (const char *s)
3610 {
3611   error_at_line (&lexer_line, s);
3612 }
3613
3614 void
3615 parse_file (const char *fname)
3616 {
3617   yyin = fopen (fname, "r");
3618   lexer_line.file = fname;
3619   lexer_line.line = 1;
3620   if (yyin == NULL)
3621     {
3622       perror (fname);
3623       exit (1);
3624     }
3625   if (yyparse() != 0)
3626     exit (1);
3627   fclose (yyin);
3628 }
3629