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