Import stripped gcc-4.0.1 sources.
[dragonfly.git] / contrib / gcc-4.0 / gcc / c-parse.c
1 /* A Bison parser, made by GNU Bison 2.0.  */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35
36 /* Identify Bison output.  */
37 #define YYBISON 1
38
39 /* Skeleton name.  */
40 #define YYSKELETON_NAME "yacc.c"
41
42 /* Pure parsers.  */
43 #define YYPURE 0
44
45 /* Using locations.  */
46 #define YYLSP_NEEDED 0
47
48
49
50 /* Tokens.  */
51 #ifndef YYTOKENTYPE
52 # define YYTOKENTYPE
53    /* Put the tokens into the symbol table, so that GDB and other debuggers
54       know about them.  */
55    enum yytokentype {
56      IDENTIFIER = 258,
57      TYPENAME = 259,
58      SCSPEC = 260,
59      STATIC = 261,
60      TYPESPEC = 262,
61      TYPE_QUAL = 263,
62      OBJC_TYPE_QUAL = 264,
63      CONSTANT = 265,
64      STRING = 266,
65      ELLIPSIS = 267,
66      SIZEOF = 268,
67      ENUM = 269,
68      STRUCT = 270,
69      UNION = 271,
70      IF = 272,
71      ELSE = 273,
72      WHILE = 274,
73      DO = 275,
74      FOR = 276,
75      SWITCH = 277,
76      CASE = 278,
77      DEFAULT = 279,
78      BREAK = 280,
79      CONTINUE = 281,
80      RETURN = 282,
81      GOTO = 283,
82      ASM_KEYWORD = 284,
83      TYPEOF = 285,
84      ALIGNOF = 286,
85      ATTRIBUTE = 287,
86      EXTENSION = 288,
87      LABEL = 289,
88      REALPART = 290,
89      IMAGPART = 291,
90      VA_ARG = 292,
91      CHOOSE_EXPR = 293,
92      TYPES_COMPATIBLE_P = 294,
93      FUNC_NAME = 295,
94      OFFSETOF = 296,
95      ASSIGN = 297,
96      OROR = 298,
97      ANDAND = 299,
98      EQCOMPARE = 300,
99      ARITHCOMPARE = 301,
100      RSHIFT = 302,
101      LSHIFT = 303,
102      MINUSMINUS = 304,
103      PLUSPLUS = 305,
104      UNARY = 306,
105      HYPERUNARY = 307,
106      POINTSAT = 308,
107      AT_INTERFACE = 309,
108      AT_IMPLEMENTATION = 310,
109      AT_END = 311,
110      AT_SELECTOR = 312,
111      AT_DEFS = 313,
112      AT_ENCODE = 314,
113      CLASSNAME = 315,
114      AT_PUBLIC = 316,
115      AT_PRIVATE = 317,
116      AT_PROTECTED = 318,
117      AT_PROTOCOL = 319,
118      AT_CLASS = 320,
119      AT_ALIAS = 321,
120      AT_THROW = 322,
121      AT_TRY = 323,
122      AT_CATCH = 324,
123      AT_FINALLY = 325,
124      AT_SYNCHRONIZED = 326,
125      OBJC_STRING = 327
126    };
127 #endif
128 #define IDENTIFIER 258
129 #define TYPENAME 259
130 #define SCSPEC 260
131 #define STATIC 261
132 #define TYPESPEC 262
133 #define TYPE_QUAL 263
134 #define OBJC_TYPE_QUAL 264
135 #define CONSTANT 265
136 #define STRING 266
137 #define ELLIPSIS 267
138 #define SIZEOF 268
139 #define ENUM 269
140 #define STRUCT 270
141 #define UNION 271
142 #define IF 272
143 #define ELSE 273
144 #define WHILE 274
145 #define DO 275
146 #define FOR 276
147 #define SWITCH 277
148 #define CASE 278
149 #define DEFAULT 279
150 #define BREAK 280
151 #define CONTINUE 281
152 #define RETURN 282
153 #define GOTO 283
154 #define ASM_KEYWORD 284
155 #define TYPEOF 285
156 #define ALIGNOF 286
157 #define ATTRIBUTE 287
158 #define EXTENSION 288
159 #define LABEL 289
160 #define REALPART 290
161 #define IMAGPART 291
162 #define VA_ARG 292
163 #define CHOOSE_EXPR 293
164 #define TYPES_COMPATIBLE_P 294
165 #define FUNC_NAME 295
166 #define OFFSETOF 296
167 #define ASSIGN 297
168 #define OROR 298
169 #define ANDAND 299
170 #define EQCOMPARE 300
171 #define ARITHCOMPARE 301
172 #define RSHIFT 302
173 #define LSHIFT 303
174 #define MINUSMINUS 304
175 #define PLUSPLUS 305
176 #define UNARY 306
177 #define HYPERUNARY 307
178 #define POINTSAT 308
179 #define AT_INTERFACE 309
180 #define AT_IMPLEMENTATION 310
181 #define AT_END 311
182 #define AT_SELECTOR 312
183 #define AT_DEFS 313
184 #define AT_ENCODE 314
185 #define CLASSNAME 315
186 #define AT_PUBLIC 316
187 #define AT_PRIVATE 317
188 #define AT_PROTECTED 318
189 #define AT_PROTOCOL 319
190 #define AT_CLASS 320
191 #define AT_ALIAS 321
192 #define AT_THROW 322
193 #define AT_TRY 323
194 #define AT_CATCH 324
195 #define AT_FINALLY 325
196 #define AT_SYNCHRONIZED 326
197 #define OBJC_STRING 327
198
199
200
201
202 /* Copy the first part of user declarations.  */
203 #line 34 "c-parse.y"
204
205 #include "config.h"
206 #include "system.h"
207 #include "coretypes.h"
208 #include "tm.h"
209 #include "tree.h"
210 #include "langhooks.h"
211 #include "input.h"
212 #include "cpplib.h"
213 #include "intl.h"
214 #include "timevar.h"
215 #include "c-pragma.h"           /* For YYDEBUG definition, and parse_in.  */
216 #include "c-tree.h"
217 #include "flags.h"
218 #include "varray.h"
219 #include "output.h"
220 #include "toplev.h"
221 #include "ggc.h"
222 #include "c-common.h"
223
224 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
225
226 /* Like the default stack expander, except (1) use realloc when possible,
227    (2) impose no hard maxiumum on stack size, (3) REALLY do not use alloca.
228
229    Irritatingly, YYSTYPE is defined after this %{ %} block, so we cannot
230    give malloced_yyvs its proper type.  This is ok since all we need from
231    it is to be able to free it.  */
232
233 static short *malloced_yyss;
234 static void *malloced_yyvs;
235
236 #define yyoverflow(MSG, SS, SSSIZE, VS, VSSIZE, YYSSZ)                  \
237 do {                                                                    \
238   size_t newsize;                                                       \
239   short *newss;                                                         \
240   YYSTYPE *newvs;                                                       \
241   newsize = *(YYSSZ) *= 2;                                              \
242   if (malloced_yyss)                                                    \
243     {                                                                   \
244       newss = really_call_realloc (*(SS), newsize * sizeof (short));    \
245       newvs = really_call_realloc (*(VS), newsize * sizeof (YYSTYPE));  \
246     }                                                                   \
247   else                                                                  \
248     {                                                                   \
249       newss = really_call_malloc (newsize * sizeof (short));            \
250       newvs = really_call_malloc (newsize * sizeof (YYSTYPE));          \
251       if (newss)                                                        \
252         memcpy (newss, *(SS), (SSSIZE));                                \
253       if (newvs)                                                        \
254         memcpy (newvs, *(VS), (VSSIZE));                                \
255     }                                                                   \
256   if (!newss || !newvs)                                                 \
257     {                                                                   \
258       yyerror (MSG);                                                    \
259       return 2;                                                         \
260     }                                                                   \
261   *(SS) = newss;                                                        \
262   *(VS) = newvs;                                                        \
263   malloced_yyss = newss;                                                \
264   malloced_yyvs = (void *) newvs;                                       \
265 } while (0)
266
267
268 /* Enabling traces.  */
269 #ifndef YYDEBUG
270 # define YYDEBUG 0
271 #endif
272
273 /* Enabling verbose error messages.  */
274 #ifdef YYERROR_VERBOSE
275 # undef YYERROR_VERBOSE
276 # define YYERROR_VERBOSE 1
277 #else
278 # define YYERROR_VERBOSE 0
279 #endif
280
281 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
282 #line 100 "c-parse.y"
283 typedef union YYSTYPE {long itype; tree ttype; void *otype; struct c_expr exprtype;
284         struct c_arg_info *arginfotype; struct c_declarator *dtrtype;
285         struct c_type_name *typenametype; struct c_parm *parmtype;
286         struct c_declspecs *dsptype; struct c_typespec tstype;
287         enum tree_code code; location_t location; } YYSTYPE;
288 /* Line 190 of yacc.c.  */
289 #line 290 "c-parse.c"
290 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
291 # define YYSTYPE_IS_DECLARED 1
292 # define YYSTYPE_IS_TRIVIAL 1
293 #endif
294
295
296
297 /* Copy the second part of user declarations.  */
298 #line 251 "c-parse.y"
299
300 /* Declaration specifiers of the current declaration.  */
301 static struct c_declspecs *current_declspecs;
302 static GTY(()) tree prefix_attributes;
303
304 /* List of all the attributes applying to the identifier currently being
305    declared; includes prefix_attributes and possibly some more attributes
306    just after a comma.  */
307 static GTY(()) tree all_prefix_attributes;
308
309 /* Structure to save declaration specifiers.  */
310 struct c_declspec_stack {
311   /* Saved value of current_declspecs.  */
312   struct c_declspecs *current_declspecs;
313   /* Saved value of prefix_attributes.  */
314   tree prefix_attributes;
315   /* Saved value of all_prefix_attributes.  */
316   tree all_prefix_attributes;
317   /* Next level of stack.  */
318   struct c_declspec_stack *next;
319 };
320
321 /* Stack of saved values of current_declspecs, prefix_attributes and
322    all_prefix_attributes.  */
323 static struct c_declspec_stack *declspec_stack;
324
325 /* INDIRECT_REF with a TREE_TYPE of the type being queried for offsetof.  */
326 static tree offsetof_base;
327
328 /* PUSH_DECLSPEC_STACK is called from setspecs; POP_DECLSPEC_STACK
329    should be called from the productions making use of setspecs.  */
330 #define PUSH_DECLSPEC_STACK                                             \
331   do {                                                                  \
332     struct c_declspec_stack *t = XOBNEW (&parser_obstack,               \
333                                          struct c_declspec_stack);      \
334     t->current_declspecs = current_declspecs;                           \
335     t->prefix_attributes = prefix_attributes;                           \
336     t->all_prefix_attributes = all_prefix_attributes;                   \
337     t->next = declspec_stack;                                           \
338     declspec_stack = t;                                                 \
339   } while (0)
340
341 #define POP_DECLSPEC_STACK                                              \
342   do {                                                                  \
343     current_declspecs = declspec_stack->current_declspecs;              \
344     prefix_attributes = declspec_stack->prefix_attributes;              \
345     all_prefix_attributes = declspec_stack->all_prefix_attributes;      \
346     declspec_stack = declspec_stack->next;                              \
347   } while (0)
348
349 /* For __extension__, save/restore the warning flags which are
350    controlled by __extension__.  */
351 #define SAVE_EXT_FLAGS()                \
352         (pedantic                       \
353          | (warn_pointer_arith << 1)    \
354          | (warn_traditional << 2)      \
355          | (flag_iso << 3))
356
357 #define RESTORE_EXT_FLAGS(val)                  \
358   do {                                          \
359     pedantic = val & 1;                         \
360     warn_pointer_arith = (val >> 1) & 1;        \
361     warn_traditional = (val >> 2) & 1;          \
362     flag_iso = (val >> 3) & 1;                  \
363   } while (0)
364
365
366 #define OBJC_NEED_RAW_IDENTIFIER(VAL)   /* nothing */
367
368 /* Tell yyparse how to print a token's value, if yydebug is set.  */
369
370 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
371
372 static void yyprint (FILE *, int, YYSTYPE);
373 static void yyerror (const char *);
374 static int yylexname (void);
375 static inline int _yylex (void);
376 static int  yylex (void);
377 static void init_reswords (void);
378
379   /* Initialization routine for this file.  */
380 void
381 c_parse_init (void)
382 {
383   init_reswords ();
384 }
385
386
387
388 /* Line 213 of yacc.c.  */
389 #line 390 "c-parse.c"
390
391 #if ! defined (yyoverflow) || YYERROR_VERBOSE
392
393 # ifndef YYFREE
394 #  define YYFREE free
395 # endif
396 # ifndef YYMALLOC
397 #  define YYMALLOC malloc
398 # endif
399
400 /* The parser invokes alloca or malloc; define the necessary symbols.  */
401
402 # ifdef YYSTACK_USE_ALLOCA
403 #  if YYSTACK_USE_ALLOCA
404 #   ifdef __GNUC__
405 #    define YYSTACK_ALLOC __builtin_alloca
406 #   else
407 #    define YYSTACK_ALLOC alloca
408 #   endif
409 #  endif
410 # endif
411
412 # ifdef YYSTACK_ALLOC
413    /* Pacify GCC's `empty if-body' warning. */
414 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
415 # else
416 #  if defined (__STDC__) || defined (__cplusplus)
417 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
418 #   define YYSIZE_T size_t
419 #  endif
420 #  define YYSTACK_ALLOC YYMALLOC
421 #  define YYSTACK_FREE YYFREE
422 # endif
423 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
424
425
426 #if (! defined (yyoverflow) \
427      && (! defined (__cplusplus) \
428          || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
429
430 /* A type that is properly aligned for any stack member.  */
431 union yyalloc
432 {
433   short int yyss;
434   YYSTYPE yyvs;
435   };
436
437 /* The size of the maximum gap between one aligned stack and the next.  */
438 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
439
440 /* The size of an array large to enough to hold all stacks, each with
441    N elements.  */
442 # define YYSTACK_BYTES(N) \
443      ((N) * (sizeof (short int) + sizeof (YYSTYPE))                     \
444       + YYSTACK_GAP_MAXIMUM)
445
446 /* Copy COUNT objects from FROM to TO.  The source and destination do
447    not overlap.  */
448 # ifndef YYCOPY
449 #  if defined (__GNUC__) && 1 < __GNUC__
450 #   define YYCOPY(To, From, Count) \
451       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
452 #  else
453 #   define YYCOPY(To, From, Count)              \
454       do                                        \
455         {                                       \
456           register YYSIZE_T yyi;                \
457           for (yyi = 0; yyi < (Count); yyi++)   \
458             (To)[yyi] = (From)[yyi];            \
459         }                                       \
460       while (0)
461 #  endif
462 # endif
463
464 /* Relocate STACK from its old location to the new one.  The
465    local variables YYSIZE and YYSTACKSIZE give the old and new number of
466    elements in the stack, and YYPTR gives the new location of the
467    stack.  Advance YYPTR to a properly aligned location for the next
468    stack.  */
469 # define YYSTACK_RELOCATE(Stack)                                        \
470     do                                                                  \
471       {                                                                 \
472         YYSIZE_T yynewbytes;                                            \
473         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
474         Stack = &yyptr->Stack;                                          \
475         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
476         yyptr += yynewbytes / sizeof (*yyptr);                          \
477       }                                                                 \
478     while (0)
479
480 #endif
481
482 #if defined (__STDC__) || defined (__cplusplus)
483    typedef signed char yysigned_char;
484 #else
485    typedef short int yysigned_char;
486 #endif
487
488 /* YYFINAL -- State number of the termination state. */
489 #define YYFINAL  4
490 /* YYLAST -- Last index in YYTABLE.  */
491 #define YYLAST   3307
492
493 /* YYNTOKENS -- Number of terminals. */
494 #define YYNTOKENS  95
495 /* YYNNTS -- Number of nonterminals. */
496 #define YYNNTS  209
497 /* YYNRULES -- Number of rules. */
498 #define YYNRULES  574
499 /* YYNRULES -- Number of states. */
500 #define YYNSTATES  933
501
502 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
503 #define YYUNDEFTOK  2
504 #define YYMAXUTOK   327
505
506 #define YYTRANSLATE(YYX)                                                \
507   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
508
509 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
510 static const unsigned char yytranslate[] =
511 {
512        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
515        2,     2,     2,    90,     2,     2,     2,    59,    50,     2,
516       65,    92,    57,    55,    91,    56,    64,    58,     2,     2,
517        2,     2,     2,     2,     2,     2,     2,     2,    45,    87,
518        2,    42,     2,    44,     2,     2,     2,     2,     2,     2,
519        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
520        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
521        2,    66,     2,    94,    49,     2,     2,     2,     2,     2,
522        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
523        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
524        2,     2,     2,    93,    48,    88,    89,     2,     2,     2,
525        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
537        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
538        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
539       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
540       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
541       35,    36,    37,    38,    39,    40,    41,    43,    46,    47,
542       51,    52,    53,    54,    60,    61,    62,    63,    67,    68,
543       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
544       79,    80,    81,    82,    83,    84,    85,    86
545 };
546
547 #if YYDEBUG
548 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
549    YYRHS.  */
550 static const unsigned short int yyprhs[] =
551 {
552        0,     0,     3,     4,     6,     7,    11,    12,    17,    19,
553       21,    23,    26,    27,    31,    36,    41,    44,    47,    50,
554       52,    53,    54,    63,    68,    69,    70,    79,    84,    85,
555       86,    94,    98,   100,   102,   104,   106,   108,   110,   112,
556      114,   116,   118,   122,   123,   125,   127,   131,   133,   136,
557      139,   142,   145,   148,   153,   156,   161,   164,   167,   169,
558      171,   173,   175,   180,   182,   186,   190,   194,   198,   202,
559      206,   210,   214,   218,   222,   226,   230,   231,   236,   237,
560      242,   243,   244,   252,   253,   259,   263,   267,   269,   271,
561      273,   275,   276,   284,   288,   292,   296,   300,   305,   312,
562      313,   321,   326,   335,   340,   347,   352,   357,   361,   365,
563      368,   371,   373,   377,   382,   383,   385,   388,   390,   392,
564      395,   398,   403,   408,   411,   414,   417,   418,   420,   425,
565      430,   434,   438,   441,   444,   446,   449,   452,   455,   458,
566      461,   463,   466,   468,   471,   474,   477,   480,   483,   486,
567      488,   491,   494,   497,   500,   503,   506,   509,   512,   515,
568      518,   521,   524,   527,   530,   533,   536,   538,   541,   544,
569      547,   550,   553,   556,   559,   562,   565,   568,   571,   574,
570      577,   580,   583,   586,   589,   592,   595,   598,   601,   604,
571      607,   610,   613,   616,   619,   622,   625,   628,   631,   634,
572      637,   640,   643,   646,   649,   652,   655,   658,   661,   664,
573      667,   670,   672,   674,   676,   678,   680,   682,   684,   686,
574      688,   690,   692,   694,   696,   698,   700,   702,   704,   706,
575      708,   710,   712,   714,   716,   718,   720,   722,   724,   726,
576      728,   730,   732,   734,   736,   738,   740,   742,   744,   746,
577      748,   750,   752,   754,   756,   758,   760,   762,   764,   766,
578      768,   770,   772,   774,   776,   778,   780,   782,   783,   785,
579      787,   789,   791,   793,   795,   797,   799,   804,   809,   811,
580      816,   818,   823,   824,   831,   835,   836,   843,   847,   848,
581      850,   852,   855,   864,   868,   870,   874,   875,   877,   882,
582      889,   894,   896,   898,   900,   902,   904,   906,   908,   909,
583      914,   916,   917,   920,   922,   926,   930,   933,   934,   939,
584      941,   942,   947,   949,   951,   953,   956,   959,   961,   967,
585      971,   972,   973,   980,   981,   982,   989,   991,   993,   998,
586     1002,  1005,  1009,  1011,  1013,  1015,  1019,  1022,  1024,  1028,
587     1031,  1035,  1039,  1044,  1048,  1053,  1057,  1060,  1062,  1064,
588     1067,  1069,  1072,  1074,  1077,  1078,  1086,  1092,  1093,  1101,
589     1107,  1108,  1117,  1118,  1126,  1129,  1132,  1135,  1136,  1138,
590     1139,  1141,  1143,  1146,  1147,  1151,  1154,  1158,  1161,  1165,
591     1167,  1169,  1172,  1174,  1179,  1181,  1186,  1189,  1194,  1198,
592     1201,  1206,  1210,  1212,  1216,  1218,  1220,  1224,  1225,  1229,
593     1230,  1232,  1233,  1235,  1238,  1240,  1242,  1244,  1248,  1251,
594     1255,  1260,  1264,  1267,  1270,  1272,  1277,  1281,  1286,  1292,
595     1298,  1300,  1302,  1304,  1306,  1308,  1311,  1314,  1317,  1320,
596     1322,  1325,  1328,  1331,  1333,  1336,  1339,  1342,  1345,  1347,
597     1350,  1352,  1354,  1356,  1358,  1361,  1362,  1363,  1365,  1367,
598     1370,  1374,  1376,  1379,  1381,  1383,  1387,  1389,  1391,  1394,
599     1397,  1398,  1399,  1402,  1406,  1409,  1412,  1415,  1419,  1423,
600     1425,  1435,  1445,  1453,  1461,  1462,  1463,  1473,  1474,  1475,
601     1489,  1490,  1492,  1495,  1497,  1500,  1502,  1515,  1516,  1525,
602     1528,  1530,  1532,  1534,  1536,  1538,  1541,  1544,  1547,  1551,
603     1553,  1557,  1562,  1564,  1566,  1568,  1572,  1578,  1581,  1586,
604     1593,  1594,  1596,  1599,  1604,  1613,  1615,  1619,  1625,  1633,
605     1634,  1636,  1637,  1639,  1641,  1645,  1652,  1662,  1664,  1668,
606     1670,  1671,  1672,  1673,  1677,  1680,  1681,  1682,  1689,  1692,
607     1693,  1695,  1697,  1701,  1703,  1707,  1712,  1717,  1721,  1726,
608     1730,  1735,  1740,  1744,  1749,  1753,  1755,  1756,  1760,  1762,
609     1765,  1767,  1771,  1773,  1777
610 };
611
612 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
613 static const short int yyrhs[] =
614 {
615       96,     0,    -1,    -1,    97,    -1,    -1,   101,    98,   100,
616       -1,    -1,    97,   101,    99,   100,    -1,   103,    -1,   102,
617       -1,   277,    -1,   303,   100,    -1,    -1,   135,   169,    87,
618       -1,   155,   135,   169,    87,    -1,   154,   135,   168,    87,
619       -1,   161,    87,    -1,     1,    87,    -1,     1,    88,    -1,
620       87,    -1,    -1,    -1,   154,   135,   198,   104,   130,   250,
621      105,   244,    -1,   154,   135,   198,     1,    -1,    -1,    -1,
622      155,   135,   203,   106,   130,   250,   107,   244,    -1,   155,
623      135,   203,     1,    -1,    -1,    -1,   135,   203,   108,   130,
624      250,   109,   244,    -1,   135,   203,     1,    -1,     3,    -1,
625        4,    -1,    50,    -1,    56,    -1,    55,    -1,    61,    -1,
626       60,    -1,    89,    -1,    90,    -1,   120,    -1,   112,    91,
627      120,    -1,    -1,   114,    -1,   120,    -1,   114,    91,   120,
628       -1,   126,    -1,    57,   119,    -1,   303,   119,    -1,   111,
629      119,    -1,    47,   110,    -1,   116,   115,    -1,   116,    65,
630      224,    92,    -1,   117,   115,    -1,   117,    65,   224,    92,
631       -1,    35,   119,    -1,    36,   119,    -1,    13,    -1,    31,
632       -1,    30,    -1,   115,    -1,    65,   224,    92,   119,    -1,
633      119,    -1,   120,    55,   120,    -1,   120,    56,   120,    -1,
634      120,    57,   120,    -1,   120,    58,   120,    -1,   120,    59,
635      120,    -1,   120,    54,   120,    -1,   120,    53,   120,    -1,
636      120,    52,   120,    -1,   120,    51,   120,    -1,   120,    50,
637      120,    -1,   120,    48,   120,    -1,   120,    49,   120,    -1,
638       -1,   120,    47,   121,   120,    -1,    -1,   120,    46,   122,
639      120,    -1,    -1,    -1,   120,    44,   123,   112,    45,   124,
640      120,    -1,    -1,   120,    44,   125,    45,   120,    -1,   120,
641       42,   120,    -1,   120,    43,   120,    -1,     3,    -1,    10,
642       -1,    11,    -1,    40,    -1,    -1,    65,   224,    92,    93,
643      127,   183,    88,    -1,    65,   112,    92,    -1,    65,     1,
644       92,    -1,   248,   246,    92,    -1,   248,     1,    92,    -1,
645      126,    65,   113,    92,    -1,    37,    65,   120,    91,   224,
646       92,    -1,    -1,    41,    65,   224,    91,   128,   129,    92,
647       -1,    41,    65,     1,    92,    -1,    38,    65,   120,    91,
648      120,    91,   120,    92,    -1,    38,    65,     1,    92,    -1,
649       39,    65,   224,    91,   224,    92,    -1,    39,    65,     1,
650       92,    -1,   126,    66,   112,    94,    -1,   126,    64,   110,
651       -1,   126,    67,   110,    -1,   126,    61,    -1,   126,    60,
652       -1,   110,    -1,   129,    64,   110,    -1,   129,    66,   112,
653       94,    -1,    -1,   132,    -1,   250,   133,    -1,   131,    -1,
654      239,    -1,   132,   131,    -1,   131,   239,    -1,   156,   135,
655      168,    87,    -1,   157,   135,   169,    87,    -1,   156,    87,
656       -1,   157,    87,    -1,   250,   137,    -1,    -1,   174,    -1,
657      154,   135,   168,    87,    -1,   155,   135,   169,    87,    -1,
658      154,   135,   192,    -1,   155,   135,   195,    -1,   161,    87,
659       -1,   303,   137,    -1,     8,    -1,   138,     8,    -1,   139,
660        8,    -1,   138,   175,    -1,   140,     8,    -1,   141,     8,
661       -1,   175,    -1,   140,   175,    -1,   163,    -1,   142,     8,
662       -1,   143,     8,    -1,   142,   165,    -1,   143,   165,    -1,
663      138,   163,    -1,   139,   163,    -1,   164,    -1,   142,   175,
664       -1,   142,   166,    -1,   143,   166,    -1,   138,   164,    -1,
665      139,   164,    -1,   144,     8,    -1,   145,     8,    -1,   144,
666      165,    -1,   145,   165,    -1,   140,   163,    -1,   141,   163,
667       -1,   144,   175,    -1,   144,   166,    -1,   145,   166,    -1,
668      140,   164,    -1,   141,   164,    -1,   180,    -1,   146,     8,
669       -1,   147,     8,    -1,   138,   180,    -1,   139,   180,    -1,
670      146,   180,    -1,   147,   180,    -1,   146,   175,    -1,   148,
671        8,    -1,   149,     8,    -1,   140,   180,    -1,   141,   180,
672       -1,   148,   180,    -1,   149,   180,    -1,   148,   175,    -1,
673      150,     8,    -1,   151,     8,    -1,   150,   165,    -1,   151,
674      165,    -1,   146,   163,    -1,   147,   163,    -1,   142,   180,
675       -1,   143,   180,    -1,   150,   180,    -1,   151,   180,    -1,
676      150,   175,    -1,   150,   166,    -1,   151,   166,    -1,   146,
677      164,    -1,   147,   164,    -1,   152,     8,    -1,   153,     8,
678       -1,   152,   165,    -1,   153,   165,    -1,   148,   163,    -1,
679      149,   163,    -1,   144,   180,    -1,   145,   180,    -1,   152,
680      180,    -1,   153,   180,    -1,   152,   175,    -1,   152,   166,
681       -1,   153,   166,    -1,   148,   164,    -1,   149,   164,    -1,
682      142,    -1,   143,    -1,   144,    -1,   145,    -1,   150,    -1,
683      151,    -1,   152,    -1,   153,    -1,   138,    -1,   139,    -1,
684      140,    -1,   141,    -1,   146,    -1,   147,    -1,   148,    -1,
685      149,    -1,   142,    -1,   143,    -1,   150,    -1,   151,    -1,
686      138,    -1,   139,    -1,   146,    -1,   147,    -1,   142,    -1,
687      143,    -1,   144,    -1,   145,    -1,   138,    -1,   139,    -1,
688      140,    -1,   141,    -1,   142,    -1,   143,    -1,   144,    -1,
689      145,    -1,   138,    -1,   139,    -1,   140,    -1,   141,    -1,
690      138,    -1,   139,    -1,   140,    -1,   141,    -1,   142,    -1,
691      143,    -1,   144,    -1,   145,    -1,   146,    -1,   147,    -1,
692      148,    -1,   149,    -1,   150,    -1,   151,    -1,   152,    -1,
693      153,    -1,    -1,   159,    -1,   165,    -1,   167,    -1,   166,
694       -1,     7,    -1,   212,    -1,   207,    -1,     4,    -1,   118,
695       65,   112,    92,    -1,   118,    65,   224,    92,    -1,   170,
696       -1,   168,    91,   136,   170,    -1,   172,    -1,   169,    91,
697      136,   172,    -1,    -1,   198,   276,   174,    42,   171,   181,
698       -1,   198,   276,   174,    -1,    -1,   203,   276,   174,    42,
699      173,   181,    -1,   203,   276,   174,    -1,    -1,   175,    -1,
700      176,    -1,   175,   176,    -1,    32,   286,    65,    65,   177,
701       92,    92,   287,    -1,    32,     1,   287,    -1,   178,    -1,
702      177,    91,   178,    -1,    -1,   179,    -1,   179,    65,     3,
703       92,    -1,   179,    65,     3,    91,   114,    92,    -1,   179,
704       65,   113,    92,    -1,   110,    -1,   180,    -1,     7,    -1,
705        8,    -1,     6,    -1,     5,    -1,   120,    -1,    -1,    93,
706      182,   183,    88,    -1,     1,    -1,    -1,   184,   213,    -1,
707      185,    -1,   184,    91,   185,    -1,   189,    42,   187,    -1,
708      191,   187,    -1,    -1,   110,    45,   186,   187,    -1,   187,
709       -1,    -1,    93,   188,   183,    88,    -1,   120,    -1,     1,
710       -1,   190,    -1,   189,   190,    -1,    64,   110,    -1,   191,
711       -1,    66,   120,    12,   120,    94,    -1,    66,   120,    94,
712       -1,    -1,    -1,   198,   193,   130,   250,   194,   249,    -1,
713       -1,    -1,   203,   196,   130,   250,   197,   249,    -1,   199,
714       -1,   203,    -1,    65,   174,   199,    92,    -1,   199,    65,
715      298,    -1,   199,   232,    -1,    57,   162,   199,    -1,     4,
716       -1,   201,    -1,   202,    -1,   201,    65,   298,    -1,   201,
717      232,    -1,     4,    -1,   202,    65,   298,    -1,   202,   232,
718       -1,    57,   162,   201,    -1,    57,   162,   202,    -1,    65,
719      174,   202,    92,    -1,   203,    65,   298,    -1,    65,   174,
720      203,    92,    -1,    57,   162,   203,    -1,   203,   232,    -1,
721        3,    -1,    15,    -1,    15,   175,    -1,    16,    -1,    16,
722      175,    -1,    14,    -1,    14,   175,    -1,    -1,   204,   110,
723       93,   208,   215,    88,   174,    -1,   204,    93,   215,    88,
724      174,    -1,    -1,   205,   110,    93,   209,   215,    88,   174,
725       -1,   205,    93,   215,    88,   174,    -1,    -1,   206,   110,
726       93,   210,   222,   214,    88,   174,    -1,    -1,   206,    93,
727      211,   222,   214,    88,   174,    -1,   204,   110,    -1,   205,
728      110,    -1,   206,   110,    -1,    -1,    91,    -1,    -1,    91,
729       -1,   216,    -1,   216,   217,    -1,    -1,   216,   217,    87,
730       -1,   216,    87,    -1,   158,   135,   218,    -1,   158,   135,
731       -1,   159,   135,   219,    -1,   159,    -1,     1,    -1,   303,
732      217,    -1,   220,    -1,   218,    91,   136,   220,    -1,   221,
733       -1,   219,    91,   136,   221,    -1,   198,   174,    -1,   198,
734       45,   120,   174,    -1,    45,   120,   174,    -1,   203,   174,
735       -1,   203,    45,   120,   174,    -1,    45,   120,   174,    -1,
736      223,    -1,   222,    91,   223,    -1,     1,    -1,   110,    -1,
737      110,    42,   120,    -1,    -1,   160,   225,   226,    -1,    -1,
738      228,    -1,    -1,   228,    -1,   229,   175,    -1,   230,    -1,
739      229,    -1,   231,    -1,    57,   162,   229,    -1,    57,   162,
740       -1,    57,   162,   230,    -1,    65,   174,   228,    92,    -1,
741      231,    65,   288,    -1,   231,   232,    -1,    65,   288,    -1,
742      232,    -1,    66,   162,   120,    94,    -1,    66,   162,    94,
743       -1,    66,   162,    57,    94,    -1,    66,     6,   162,   120,
744       94,    -1,    66,   159,     6,   120,    94,    -1,   234,    -1,
745      235,    -1,   236,    -1,   237,    -1,   253,    -1,   234,   253,
746       -1,   235,   253,    -1,   236,   253,    -1,   237,   253,    -1,
747      134,    -1,   234,   134,    -1,   235,   134,    -1,   237,   134,
748       -1,   254,    -1,   234,   254,    -1,   235,   254,    -1,   236,
749      254,    -1,   237,   254,    -1,   239,    -1,   238,   239,    -1,
750      234,    -1,   235,    -1,   236,    -1,   237,    -1,     1,    87,
751       -1,    -1,    -1,   242,    -1,   243,    -1,   242,   243,    -1,
752       34,   302,    87,    -1,   249,    -1,     1,   249,    -1,    93,
753       -1,    88,    -1,   241,   247,    88,    -1,   233,    -1,     1,
754       -1,    65,    93,    -1,   245,   246,    -1,    -1,    -1,   251,
755      254,    -1,   240,   251,   253,    -1,   250,   273,    -1,   250,
756      274,    -1,   250,   112,    -1,   240,   251,   258,    -1,   240,
757      251,    87,    -1,   252,    -1,    17,   240,   250,    65,   255,
758       92,   256,    18,   257,    -1,    17,   240,   250,    65,   255,
759       92,   257,    18,   257,    -1,    17,   240,   250,    65,   255,
760       92,   256,    -1,    17,   240,   250,    65,   255,    92,   257,
761       -1,    -1,    -1,    19,   240,   250,    65,   255,    92,   259,
762      260,   252,    -1,    -1,    -1,    20,   240,   250,   259,   260,
763      252,    19,   263,   264,    65,   255,    92,    87,    -1,    -1,
764      112,    -1,   265,    87,    -1,   137,    -1,   250,   265,    -1,
765      265,    -1,    21,   240,    65,   266,   250,   267,    87,   268,
766       92,   259,   260,   252,    -1,    -1,    22,   240,    65,   112,
767       92,   271,   259,   252,    -1,   112,    87,    -1,   258,    -1,
768      261,    -1,   262,    -1,   269,    -1,   270,    -1,    25,    87,
769       -1,    26,    87,    -1,    27,    87,    -1,    27,   112,    87,
770       -1,   278,    -1,    28,   110,    87,    -1,    28,    57,   112,
771       87,    -1,    87,    -1,   249,    -1,   272,    -1,    23,   120,
772       45,    -1,    23,   120,    12,   120,    45,    -1,    24,    45,
773       -1,   110,   250,    45,   174,    -1,    29,   286,    65,   285,
774       92,   287,    -1,    -1,   275,    -1,   275,    87,    -1,    29,
775        1,   287,    87,    -1,    29,   280,   286,    65,   279,    92,
776      287,    87,    -1,   285,    -1,   285,    45,   281,    -1,   285,
777       45,   281,    45,   281,    -1,   285,    45,   281,    45,   281,
778       45,   284,    -1,    -1,     8,    -1,    -1,   282,    -1,   283,
779       -1,   282,    91,   283,    -1,   285,   287,    65,   112,    92,
780      286,    -1,    66,   110,    94,   285,   287,    65,   112,    92,
781      286,    -1,   285,    -1,   284,    91,   285,    -1,    11,    -1,
782       -1,    -1,    -1,   174,   289,   290,    -1,   293,    92,    -1,
783       -1,    -1,   294,    87,   291,   174,   292,   290,    -1,     1,
784       92,    -1,    -1,    12,    -1,   294,    -1,   294,    91,    12,
785       -1,   296,    -1,   294,    91,   295,    -1,   154,   135,   200,
786      174,    -1,   154,   135,   203,   174,    -1,   154,   135,   227,
787       -1,   155,   135,   203,   174,    -1,   155,   135,   227,    -1,
788      156,   297,   200,   174,    -1,   156,   297,   203,   174,    -1,
789      156,   297,   227,    -1,   157,   297,   203,   174,    -1,   157,
790      297,   227,    -1,   135,    -1,    -1,   174,   299,   300,    -1,
791      290,    -1,   301,    92,    -1,     3,    -1,   301,    91,     3,
792       -1,   110,    -1,   302,    91,   110,    -1,    33,    -1
793 };
794
795 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
796 static const unsigned short int yyrline[] =
797 {
798        0,   342,   342,   345,   353,   353,   356,   355,   361,   362,
799      363,   364,   371,   375,   378,   380,   382,   384,   385,   386,
800      393,   398,   392,   403,   406,   411,   405,   416,   419,   424,
801      418,   429,   434,   435,   438,   440,   442,   447,   449,   451,
802      453,   457,   458,   465,   466,   470,   472,   477,   478,   482,
803      485,   490,   493,   500,   504,   509,   514,   517,   523,   527,
804      531,   535,   536,   542,   543,   545,   547,   549,   551,   553,
805      555,   557,   559,   561,   563,   565,   568,   567,   575,   574,
806      582,   586,   581,   594,   593,   605,   609,   617,   624,   626,
807      628,   632,   631,   652,   657,   659,   665,   670,   673,   678,
808      677,   687,   689,   701,   703,   715,   717,   720,   723,   729,
809      732,   742,   744,   746,   750,   752,   759,   764,   765,   766,
810      767,   775,   777,   779,   782,   791,   800,   820,   825,   827,
811      829,   831,   833,   835,   881,   883,   885,   890,   895,   897,
812      902,   904,   909,   911,   913,   915,   917,   919,   921,   926,
813      928,   930,   932,   934,   936,   941,   943,   945,   947,   949,
814      951,   956,   958,   960,   962,   964,   969,   971,   973,   975,
815      977,   979,   981,   986,   991,   993,   995,   997,   999,  1001,
816     1006,  1011,  1013,  1015,  1017,  1019,  1021,  1023,  1025,  1027,
817     1029,  1034,  1036,  1038,  1040,  1042,  1047,  1049,  1051,  1053,
818     1055,  1057,  1059,  1061,  1063,  1065,  1070,  1072,  1074,  1076,
819     1078,  1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1095,
820     1096,  1097,  1098,  1099,  1100,  1101,  1102,  1106,  1107,  1108,
821     1109,  1113,  1114,  1115,  1116,  1120,  1121,  1122,  1123,  1127,
822     1128,  1129,  1130,  1134,  1135,  1136,  1137,  1138,  1139,  1140,
823     1141,  1145,  1146,  1147,  1148,  1149,  1150,  1151,  1152,  1153,
824     1154,  1155,  1156,  1157,  1158,  1159,  1160,  1166,  1167,  1193,
825     1194,  1198,  1202,  1206,  1210,  1214,  1219,  1229,  1241,  1242,
826     1246,  1247,  1252,  1251,  1266,  1276,  1275,  1290,  1300,  1301,
827     1306,  1308,  1313,  1316,  1321,  1323,  1329,  1330,  1332,  1334,
828     1336,  1344,  1345,  1346,  1347,  1351,  1352,  1358,  1361,  1360,
829     1364,  1371,  1373,  1377,  1378,  1384,  1387,  1391,  1390,  1396,
830     1401,  1400,  1404,  1406,  1410,  1411,  1415,  1417,  1421,  1425,
831     1431,  1443,  1430,  1461,  1473,  1460,  1493,  1494,  1500,  1502,
832     1504,  1506,  1508,  1517,  1518,  1522,  1524,  1526,  1531,  1533,
833     1535,  1537,  1539,  1547,  1549,  1551,  1553,  1555,  1560,  1562,
834     1567,  1569,  1574,  1576,  1588,  1587,  1595,  1602,  1601,  1607,
835     1614,  1613,  1620,  1619,  1628,  1630,  1632,  1640,  1642,  1645,
836     1647,  1665,  1667,  1673,  1674,  1676,  1682,  1685,  1693,  1696,
837     1701,  1703,  1709,  1710,  1715,  1716,  1721,  1725,  1729,  1737,
838     1741,  1745,  1756,  1757,  1762,  1768,  1770,  1776,  1775,  1786,
839     1787,  1792,  1794,  1797,  1804,  1805,  1809,  1810,  1815,  1818,
840     1823,  1825,  1827,  1829,  1832,  1840,  1842,  1844,  1846,  1849,
841     1860,  1861,  1862,  1866,  1870,  1871,  1872,  1873,  1874,  1878,
842     1879,  1885,  1886,  1890,  1891,  1892,  1893,  1894,  1898,  1899,
843     1903,  1904,  1905,  1906,  1909,  1914,  1919,  1921,  1927,  1928,
844     1932,  1946,  1948,  1951,  1954,  1955,  1959,  1960,  1964,  1975,
845     1984,  1989,  1991,  1996,  2001,  2019,  2023,  2036,  2041,  2045,
846     2049,  2053,  2057,  2061,  2068,  2072,  2076,  2087,  2088,  2085,
847     2097,  2098,  2103,  2105,  2109,  2121,  2126,  2137,  2136,  2149,
848     2151,  2153,  2155,  2157,  2159,  2161,  2163,  2165,  2167,  2169,
849     2170,  2172,  2174,  2180,  2182,  2189,  2191,  2193,  2195,  2212,
850     2220,  2221,  2226,  2228,  2235,  2242,  2245,  2248,  2251,  2259,
851     2260,  2274,  2275,  2279,  2280,  2285,  2289,  2297,  2299,  2305,
852     2317,  2321,  2332,  2331,  2340,  2342,  2344,  2341,  2348,  2359,
853     2364,  2373,  2375,  2380,  2382,  2389,  2393,  2397,  2400,  2405,
854     2413,  2417,  2421,  2424,  2429,  2435,  2445,  2444,  2453,  2454,
855     2469,  2471,  2477,  2479,  2484
856 };
857 #endif
858
859 #if YYDEBUG || YYERROR_VERBOSE
860 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
861    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
862 static const char *const yytname[] =
863 {
864   "$end", "error", "$undefined", "IDENTIFIER", "TYPENAME", "SCSPEC",
865   "STATIC", "TYPESPEC", "TYPE_QUAL", "OBJC_TYPE_QUAL", "CONSTANT",
866   "STRING", "ELLIPSIS", "SIZEOF", "ENUM", "STRUCT", "UNION", "IF", "ELSE",
867   "WHILE", "DO", "FOR", "SWITCH", "CASE", "DEFAULT", "BREAK", "CONTINUE",
868   "RETURN", "GOTO", "ASM_KEYWORD", "TYPEOF", "ALIGNOF", "ATTRIBUTE",
869   "EXTENSION", "LABEL", "REALPART", "IMAGPART", "VA_ARG", "CHOOSE_EXPR",
870   "TYPES_COMPATIBLE_P", "FUNC_NAME", "OFFSETOF", "'='", "ASSIGN", "'?'",
871   "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQCOMPARE",
872   "ARITHCOMPARE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'",
873   "MINUSMINUS", "PLUSPLUS", "UNARY", "HYPERUNARY", "'.'", "'('", "'['",
874   "POINTSAT", "AT_INTERFACE", "AT_IMPLEMENTATION", "AT_END", "AT_SELECTOR",
875   "AT_DEFS", "AT_ENCODE", "CLASSNAME", "AT_PUBLIC", "AT_PRIVATE",
876   "AT_PROTECTED", "AT_PROTOCOL", "AT_CLASS", "AT_ALIAS", "AT_THROW",
877   "AT_TRY", "AT_CATCH", "AT_FINALLY", "AT_SYNCHRONIZED", "OBJC_STRING",
878   "';'", "'}'", "'~'", "'!'", "','", "')'", "'{'", "']'", "$accept",
879   "program", "extdefs", "@1", "@2", "extdef", "save_obstack_position",
880   "datadef", "fndef", "@3", "@4", "@5", "@6", "@7", "@8", "identifier",
881   "unop", "expr", "exprlist", "nonnull_exprlist", "unary_expr", "sizeof",
882   "alignof", "typeof", "cast_expr", "expr_no_commas", "@9", "@10", "@11",
883   "@12", "@13", "primary", "@14", "@15", "offsetof_member_designator",
884   "old_style_parm_decls", "lineno_datadecl", "datadecls", "datadecl",
885   "lineno_decl", "setspecs", "maybe_resetattrs", "decl",
886   "declspecs_nosc_nots_nosa_noea", "declspecs_nosc_nots_nosa_ea",
887   "declspecs_nosc_nots_sa_noea", "declspecs_nosc_nots_sa_ea",
888   "declspecs_nosc_ts_nosa_noea", "declspecs_nosc_ts_nosa_ea",
889   "declspecs_nosc_ts_sa_noea", "declspecs_nosc_ts_sa_ea",
890   "declspecs_sc_nots_nosa_noea", "declspecs_sc_nots_nosa_ea",
891   "declspecs_sc_nots_sa_noea", "declspecs_sc_nots_sa_ea",
892   "declspecs_sc_ts_nosa_noea", "declspecs_sc_ts_nosa_ea",
893   "declspecs_sc_ts_sa_noea", "declspecs_sc_ts_sa_ea", "declspecs_ts",
894   "declspecs_nots", "declspecs_ts_nosa", "declspecs_nots_nosa",
895   "declspecs_nosc_ts", "declspecs_nosc_nots", "declspecs_nosc",
896   "declspecs", "maybe_type_quals_attrs", "typespec_nonattr",
897   "typespec_attr", "typespec_reserved_nonattr", "typespec_reserved_attr",
898   "typespec_nonreserved_nonattr", "initdecls", "notype_initdecls",
899   "initdcl", "@16", "notype_initdcl", "@17", "maybe_attribute",
900   "attributes", "attribute", "attribute_list", "attrib", "any_word",
901   "scspec", "init", "@18", "initlist_maybe_comma", "initlist1", "initelt",
902   "@19", "initval", "@20", "designator_list", "designator",
903   "array_designator", "nested_function", "@21", "@22",
904   "notype_nested_function", "@23", "@24", "declarator",
905   "after_type_declarator", "parm_declarator",
906   "parm_declarator_starttypename", "parm_declarator_nostarttypename",
907   "notype_declarator", "struct_head", "union_head", "enum_head",
908   "structsp_attr", "@25", "@26", "@27", "@28", "structsp_nonattr",
909   "maybecomma", "maybecomma_warn", "component_decl_list",
910   "component_decl_list2", "component_decl", "components",
911   "components_notype", "component_declarator",
912   "component_notype_declarator", "enumlist", "enumerator", "typename",
913   "@29", "absdcl", "absdcl_maybe_attribute", "absdcl1", "absdcl1_noea",
914   "absdcl1_ea", "direct_absdcl1", "array_declarator", "stmts_and_decls",
915   "lineno_stmt_decl_or_labels_ending_stmt",
916   "lineno_stmt_decl_or_labels_ending_decl",
917   "lineno_stmt_decl_or_labels_ending_label",
918   "lineno_stmt_decl_or_labels_ending_error", "lineno_stmt_decl_or_labels",
919   "errstmt", "c99_block_start", "maybe_label_decls", "label_decls",
920   "label_decl", "compstmt_or_error", "compstmt_start", "compstmt_nostart",
921   "compstmt_contents_nonempty", "compstmt_primary_start", "compstmt",
922   "save_location", "lineno_labels", "c99_block_lineno_labeled_stmt",
923   "lineno_stmt", "lineno_label", "condition", "if_statement_1",
924   "if_statement_2", "if_statement", "start_break", "start_continue",
925   "while_statement", "do_statement", "@30", "@31", "xexpr",
926   "for_init_stmt", "for_cond_expr", "for_incr_expr", "for_statement",
927   "switch_statement", "@32", "stmt_nocomp", "stmt", "label",
928   "simple_asm_expr", "maybeasm", "asmdef", "asm_stmt", "asm_argument",
929   "maybe_volatile", "asm_operands", "nonnull_asm_operands", "asm_operand",
930   "asm_clobbers", "asm_string", "stop_string_translation",
931   "start_string_translation", "parmlist", "@33", "parmlist_1", "@34",
932   "@35", "parmlist_2", "parms", "parm", "firstparm", "setspecs_fp",
933   "parmlist_or_identifiers", "@36", "parmlist_or_identifiers_1",
934   "identifiers", "identifiers_or_typenames", "extension", 0
935 };
936 #endif
937
938 # ifdef YYPRINT
939 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
940    token YYLEX-NUM.  */
941 static const unsigned short int yytoknum[] =
942 {
943        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
944      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
945      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
946      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
947      295,   296,    61,   297,    63,    58,   298,   299,   124,    94,
948       38,   300,   301,   302,   303,    43,    45,    42,    47,    37,
949      304,   305,   306,   307,    46,    40,    91,   308,   309,   310,
950      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
951      321,   322,   323,   324,   325,   326,   327,    59,   125,   126,
952       33,    44,    41,   123,    93
953 };
954 # endif
955
956 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
957 static const unsigned short int yyr1[] =
958 {
959        0,    95,    96,    96,    98,    97,    99,    97,   100,   100,
960      100,   100,   101,   102,   102,   102,   102,   102,   102,   102,
961      104,   105,   103,   103,   106,   107,   103,   103,   108,   109,
962      103,   103,   110,   110,   111,   111,   111,   111,   111,   111,
963      111,   112,   112,   113,   113,   114,   114,   115,   115,   115,
964      115,   115,   115,   115,   115,   115,   115,   115,   116,   117,
965      118,   119,   119,   120,   120,   120,   120,   120,   120,   120,
966      120,   120,   120,   120,   120,   120,   121,   120,   122,   120,
967      123,   124,   120,   125,   120,   120,   120,   126,   126,   126,
968      126,   127,   126,   126,   126,   126,   126,   126,   126,   128,
969      126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
970      126,   129,   129,   129,   130,   130,   131,   132,   132,   132,
971      132,   133,   133,   133,   133,   134,   135,   136,   137,   137,
972      137,   137,   137,   137,   138,   138,   138,   139,   140,   140,
973      141,   141,   142,   142,   142,   142,   142,   142,   142,   143,
974      143,   143,   143,   143,   143,   144,   144,   144,   144,   144,
975      144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
976      146,   146,   146,   147,   148,   148,   148,   148,   148,   148,
977      149,   150,   150,   150,   150,   150,   150,   150,   150,   150,
978      150,   151,   151,   151,   151,   151,   152,   152,   152,   152,
979      152,   152,   152,   152,   152,   152,   153,   153,   153,   153,
980      153,   154,   154,   154,   154,   154,   154,   154,   154,   155,
981      155,   155,   155,   155,   155,   155,   155,   156,   156,   156,
982      156,   157,   157,   157,   157,   158,   158,   158,   158,   159,
983      159,   159,   159,   160,   160,   160,   160,   160,   160,   160,
984      160,   161,   161,   161,   161,   161,   161,   161,   161,   161,
985      161,   161,   161,   161,   161,   161,   161,   162,   162,   163,
986      163,   164,   165,   165,   166,   167,   167,   167,   168,   168,
987      169,   169,   171,   170,   170,   173,   172,   172,   174,   174,
988      175,   175,   176,   176,   177,   177,   178,   178,   178,   178,
989      178,   179,   179,   179,   179,   180,   180,   181,   182,   181,
990      181,   183,   183,   184,   184,   185,   185,   186,   185,   185,
991      188,   187,   187,   187,   189,   189,   190,   190,   191,   191,
992      193,   194,   192,   196,   197,   195,   198,   198,   199,   199,
993      199,   199,   199,   200,   200,   201,   201,   201,   202,   202,
994      202,   202,   202,   203,   203,   203,   203,   203,   204,   204,
995      205,   205,   206,   206,   208,   207,   207,   209,   207,   207,
996      210,   207,   211,   207,   212,   212,   212,   213,   213,   214,
997      214,   215,   215,   216,   216,   216,   217,   217,   217,   217,
998      217,   217,   218,   218,   219,   219,   220,   220,   220,   221,
999      221,   221,   222,   222,   222,   223,   223,   225,   224,   226,
1000      226,   227,   227,   227,   228,   228,   229,   229,   230,   230,
1001      231,   231,   231,   231,   231,   232,   232,   232,   232,   232,
1002      233,   233,   233,   233,   234,   234,   234,   234,   234,   235,
1003      235,   235,   235,   236,   236,   236,   236,   236,   237,   237,
1004      238,   238,   238,   238,   239,   240,   241,   241,   242,   242,
1005      243,   244,   244,   245,   246,   246,   247,   247,   248,   249,
1006      250,   251,   251,   252,   253,   254,   255,   256,   257,   257,
1007      258,   258,   258,   258,   259,   260,   261,   263,   264,   262,
1008      265,   265,   266,   266,   267,   268,   269,   271,   270,   272,
1009      272,   272,   272,   272,   272,   272,   272,   272,   272,   272,
1010      272,   272,   272,   273,   273,   274,   274,   274,   274,   275,
1011      276,   276,   277,   277,   278,   279,   279,   279,   279,   280,
1012      280,   281,   281,   282,   282,   283,   283,   284,   284,   285,
1013      286,   287,   289,   288,   290,   291,   292,   290,   290,   293,
1014      293,   293,   293,   294,   294,   295,   295,   295,   295,   295,
1015      296,   296,   296,   296,   296,   297,   299,   298,   300,   300,
1016      301,   301,   302,   302,   303
1017 };
1018
1019 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1020 static const unsigned char yyr2[] =
1021 {
1022        0,     2,     0,     1,     0,     3,     0,     4,     1,     1,
1023        1,     2,     0,     3,     4,     4,     2,     2,     2,     1,
1024        0,     0,     8,     4,     0,     0,     8,     4,     0,     0,
1025        7,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1026        1,     1,     3,     0,     1,     1,     3,     1,     2,     2,
1027        2,     2,     2,     4,     2,     4,     2,     2,     1,     1,
1028        1,     1,     4,     1,     3,     3,     3,     3,     3,     3,
1029        3,     3,     3,     3,     3,     3,     0,     4,     0,     4,
1030        0,     0,     7,     0,     5,     3,     3,     1,     1,     1,
1031        1,     0,     7,     3,     3,     3,     3,     4,     6,     0,
1032        7,     4,     8,     4,     6,     4,     4,     3,     3,     2,
1033        2,     1,     3,     4,     0,     1,     2,     1,     1,     2,
1034        2,     4,     4,     2,     2,     2,     0,     1,     4,     4,
1035        3,     3,     2,     2,     1,     2,     2,     2,     2,     2,
1036        1,     2,     1,     2,     2,     2,     2,     2,     2,     1,
1037        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1038        2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
1039        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1040        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1041        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1042        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1043        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1044        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1045        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1046        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1047        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1048        1,     1,     1,     1,     1,     1,     1,     0,     1,     1,
1049        1,     1,     1,     1,     1,     1,     4,     4,     1,     4,
1050        1,     4,     0,     6,     3,     0,     6,     3,     0,     1,
1051        1,     2,     8,     3,     1,     3,     0,     1,     4,     6,
1052        4,     1,     1,     1,     1,     1,     1,     1,     0,     4,
1053        1,     0,     2,     1,     3,     3,     2,     0,     4,     1,
1054        0,     4,     1,     1,     1,     2,     2,     1,     5,     3,
1055        0,     0,     6,     0,     0,     6,     1,     1,     4,     3,
1056        2,     3,     1,     1,     1,     3,     2,     1,     3,     2,
1057        3,     3,     4,     3,     4,     3,     2,     1,     1,     2,
1058        1,     2,     1,     2,     0,     7,     5,     0,     7,     5,
1059        0,     8,     0,     7,     2,     2,     2,     0,     1,     0,
1060        1,     1,     2,     0,     3,     2,     3,     2,     3,     1,
1061        1,     2,     1,     4,     1,     4,     2,     4,     3,     2,
1062        4,     3,     1,     3,     1,     1,     3,     0,     3,     0,
1063        1,     0,     1,     2,     1,     1,     1,     3,     2,     3,
1064        4,     3,     2,     2,     1,     4,     3,     4,     5,     5,
1065        1,     1,     1,     1,     1,     2,     2,     2,     2,     1,
1066        2,     2,     2,     1,     2,     2,     2,     2,     1,     2,
1067        1,     1,     1,     1,     2,     0,     0,     1,     1,     2,
1068        3,     1,     2,     1,     1,     3,     1,     1,     2,     2,
1069        0,     0,     2,     3,     2,     2,     2,     3,     3,     1,
1070        9,     9,     7,     7,     0,     0,     9,     0,     0,    13,
1071        0,     1,     2,     1,     2,     1,    12,     0,     8,     2,
1072        1,     1,     1,     1,     1,     2,     2,     2,     3,     1,
1073        3,     4,     1,     1,     1,     3,     5,     2,     4,     6,
1074        0,     1,     2,     4,     8,     1,     3,     5,     7,     0,
1075        1,     0,     1,     1,     3,     6,     9,     1,     3,     1,
1076        0,     0,     0,     3,     2,     0,     0,     6,     2,     0,
1077        1,     1,     3,     1,     3,     4,     4,     3,     4,     3,
1078        4,     4,     3,     4,     3,     1,     0,     3,     1,     2,
1079        1,     3,     1,     3,     1
1080 };
1081
1082 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1083    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1084    means the default is an error.  */
1085 static const unsigned short int yydefact[] =
1086 {
1087       12,     0,    12,     4,     1,     6,     0,     0,     0,   275,
1088      306,   305,   272,   134,   362,   358,   360,     0,    60,     0,
1089      574,    19,     5,     9,     8,     0,     0,   219,   220,   221,
1090      222,   211,   212,   213,   214,   223,   224,   225,   226,   215,
1091      216,   217,   218,   126,   126,     0,   142,   149,   269,   271,
1092      270,   140,   290,   166,     0,     0,     0,   274,   273,     0,
1093       10,     0,     7,    17,    18,   363,   359,   361,   541,     0,
1094      541,     0,     0,   357,   267,   288,     0,   280,     0,   135,
1095      147,   153,   137,   169,   136,   148,   154,   170,   138,   159,
1096      164,   141,   176,   139,   160,   165,   177,   143,   145,   151,
1097      150,   187,   144,   146,   152,   188,   155,   157,   162,   161,
1098      202,   156,   158,   163,   203,   167,   185,   194,   173,   171,
1099      168,   186,   195,   172,   174,   200,   209,   180,   178,   175,
1100      201,   210,   179,   181,   183,   192,   191,   189,   182,   184,
1101      193,   190,   196,   198,   207,   206,   204,   197,   199,   208,
1102      205,     0,     0,    16,   291,    32,    33,   383,   374,   383,
1103      375,   372,   376,   522,    11,     0,     0,   293,     0,    87,
1104       88,    89,    58,    59,     0,     0,     0,     0,     0,    90,
1105        0,     0,    34,    36,    35,     0,    38,    37,     0,    39,
1106       40,     0,     0,    61,     0,     0,    63,    41,    47,   247,
1107      248,   249,   250,   243,   244,   245,   246,   407,     0,     0,
1108        0,   239,   240,   241,   242,   268,     0,     0,   289,    13,
1109      288,    31,   540,   288,   267,     0,   356,   521,   288,   342,
1110      267,   288,     0,   278,     0,   336,   337,     0,     0,     0,
1111        0,   364,     0,   367,     0,   370,   523,   539,     0,   296,
1112       56,    57,     0,     0,     0,     0,    51,    48,     0,   468,
1113        0,     0,    50,     0,   276,     0,    52,     0,    54,     0,
1114        0,    80,    78,    76,     0,     0,     0,     0,     0,     0,
1115        0,     0,     0,     0,     0,     0,   110,   109,     0,    43,
1116        0,     0,   409,   277,     0,     0,   464,     0,   457,   458,
1117        0,    49,   355,     0,     0,   127,   566,   353,   267,   268,
1118        0,     0,   470,     0,   470,   118,     0,   287,     0,     0,
1119       15,   288,    23,     0,   288,   288,   340,    14,    27,     0,
1120      288,   390,   385,   239,   240,   241,   242,   235,   236,   237,
1121      238,   126,   126,   382,     0,   383,   288,   383,   404,   405,
1122      379,   402,     0,   541,   303,   304,   301,     0,   294,   297,
1123      302,     0,     0,     0,     0,     0,     0,     0,    94,    93,
1124        0,    42,     0,     0,    85,    86,     0,     0,     0,     0,
1125       74,    75,    73,    72,    71,    70,    69,    64,    65,    66,
1126       67,    68,   107,     0,    44,    45,     0,   108,   267,   288,
1127      408,   410,   415,   414,   416,   424,    96,   572,     0,   467,
1128      439,   466,   470,   470,   470,   470,     0,   448,     0,     0,
1129      434,   443,   459,    95,   354,   281,   520,     0,     0,     0,
1130        0,   426,     0,   454,    29,   120,   119,   116,   231,   232,
1131      227,   228,   233,   234,   229,   230,   126,   126,   285,   341,
1132        0,     0,   470,   284,   339,   470,   366,   387,     0,   384,
1133      391,     0,   369,     0,     0,   380,     0,   379,   519,   296,
1134        0,    43,     0,   103,     0,   105,     0,   101,    99,    91,
1135       62,    53,    55,     0,     0,    79,    77,    97,     0,   106,
1136      418,   542,   423,   288,   422,   460,     0,   440,   435,   444,
1137      441,   436,   445,     0,   437,   446,   442,   438,   447,   449,
1138      465,    87,   275,   455,   455,   455,   455,   455,     0,     0,
1139        0,     0,     0,     0,   529,   512,   463,   470,     0,   125,
1140      126,   126,     0,   456,   513,   500,   501,   502,   503,   504,
1141      514,   474,   475,   509,     0,     0,   570,   550,   126,   126,
1142      568,     0,   551,   553,   567,     0,     0,     0,   427,   425,
1143        0,   123,     0,   124,     0,     0,   338,   279,   520,    21,
1144      282,    25,     0,   288,   386,   392,     0,   288,   388,   394,
1145      288,   288,   406,   403,   288,     0,   295,   541,    87,     0,
1146        0,     0,     0,     0,     0,    81,    84,    46,   417,   419,
1147        0,     0,   542,   421,   573,   470,   470,   470,     0,     0,
1148        0,   517,   505,   506,   507,     0,     0,     0,   530,   540,
1149        0,   499,     0,     0,   132,   469,   133,   548,   565,   411,
1150      411,   544,   545,     0,     0,   569,   428,   429,     0,    30,
1151      461,     0,     0,   310,   308,   307,   286,     0,     0,     0,
1152      288,     0,   396,   288,   288,     0,   399,   288,   365,   368,
1153      373,   288,   292,     0,   298,   300,    98,     0,   104,   111,
1154        0,   323,     0,     0,   320,     0,   322,     0,   377,   313,
1155      319,     0,   324,     0,     0,   420,   543,     0,     0,   484,
1156      490,     0,     0,   515,   508,     0,   510,     0,   288,     0,
1157      130,   330,     0,   131,   333,   347,   267,   288,   288,   343,
1158      344,   288,   562,   412,   415,   267,   288,   288,   564,   288,
1159      552,   219,   220,   221,   222,   211,   212,   213,   214,   223,
1160      224,   225,   226,   215,   216,   217,   218,   126,   126,   554,
1161      571,   462,   121,   122,     0,    22,   283,    26,   398,   288,
1162        0,   401,   288,     0,   371,     0,     0,     0,     0,   100,
1163      326,     0,     0,   317,    92,     0,   312,     0,   325,   327,
1164      316,    82,   470,   470,   485,   491,   493,     0,   470,     0,
1165        0,   511,     0,   518,   128,     0,   129,     0,   418,   542,
1166      560,   288,   346,   288,   349,   561,   413,   418,   542,   563,
1167      546,   411,   411,     0,   397,   393,   400,   395,   299,   102,
1168      112,     0,     0,   329,     0,     0,   314,   315,     0,     0,
1169        0,   455,   492,   470,   497,   516,     0,   525,   470,   470,
1170      350,   351,     0,   345,   348,     0,   288,   288,   557,   288,
1171      559,   309,   113,     0,   321,   318,   476,   455,   484,   471,
1172        0,   490,     0,   484,   541,   531,   331,   334,   352,   547,
1173      555,   556,   558,   328,   471,   479,   482,   483,   485,   470,
1174      487,   494,   490,   455,     0,     0,   526,   532,   533,   541,
1175        0,     0,   470,   455,   455,   455,   473,   472,   488,   495,
1176        0,   498,   524,     0,   531,     0,     0,   332,   335,   478,
1177      477,   471,   480,   481,   486,     0,   484,     0,   527,   534,
1178        0,   470,   470,   485,   541,     0,     0,     0,   455,     0,
1179      528,   537,   540,     0,   496,     0,     0,   535,   489,     0,
1180      538,   540,   536
1181 };
1182
1183 /* YYDEFGOTO[NTERM-NUM]. */
1184 static const short int yydefgoto[] =
1185 {
1186       -1,     1,     2,     6,     7,    22,     3,    23,    24,   323,
1187      647,   329,   649,   225,   560,   675,   191,   260,   393,   394,
1188      193,   194,   195,    25,   196,   197,   379,   378,   376,   684,
1189      377,   198,   594,   593,   670,   312,   313,   314,   437,   410,
1190       26,   304,   529,   199,   200,   201,   202,   203,   204,   205,
1191      206,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1192       44,   548,   549,   341,   215,   207,    45,   216,    46,    47,
1193       48,    49,    50,   232,    76,   233,   648,    77,   565,   305,
1194      218,    52,   357,   358,   359,    53,   646,   744,   677,   678,
1195      679,   815,   680,   762,   681,   682,   683,   700,   785,   880,
1196      703,   787,   881,   568,   235,   708,   709,   710,   236,    54,
1197       55,    56,    57,   345,   347,   352,   244,    58,   766,   466,
1198      239,   240,   343,   574,   578,   575,   579,   350,   351,   208,
1199      292,   400,   712,   713,   402,   403,   404,   226,   411,   412,
1200      413,   414,   415,   416,   315,   849,   297,   298,   299,   639,
1201      533,   300,   418,   209,   640,   316,   869,   865,   886,   887,
1202      819,   866,   867,   535,   774,   821,   536,   537,   888,   905,
1203      777,   778,   852,   890,   538,   539,   853,   540,   541,   542,
1204      227,   228,    60,   543,   826,   619,   876,   877,   878,   920,
1205      879,    69,   165,   492,   601,   550,   719,   835,   551,   552,
1206      739,   553,   629,   307,   427,   554,   555,   408,   210
1207 };
1208
1209 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1210    STATE-NUM.  */
1211 #define YYPACT_NINF -781
1212 static const short int yypact[] =
1213 {
1214      109,   117,   136,  -781,  -781,  -781,  2777,  2777,   215,  -781,
1215     -781,  -781,  -781,  -781,   106,   106,   106,    84,  -781,    94,
1216     -781,  -781,  -781,  -781,  -781,    61,   131,  1169,   663,  1640,
1217     1064,   913,   450,   970,  1431,  1809,  1361,  1887,  1541,  1980,
1218     2238,  2116,  2242,  -781,  -781,   108,  -781,  -781,  -781,  -781,
1219     -781,   106,  -781,  -781,   104,   110,   116,  -781,  -781,   111,
1220     -781,  2777,  -781,  -781,  -781,   106,   106,   106,  -781,   139,
1221     -781,   148,  2509,  -781,    89,   106,   179,  -781,  1293,  -781,
1222     -781,  -781,   106,  -781,  -781,  -781,  -781,  -781,  -781,  -781,
1223     -781,   106,  -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,
1224      106,  -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,   106,
1225     -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,   106,  -781,
1226     -781,  -781,  -781,  -781,  -781,  -781,  -781,   106,  -781,  -781,
1227     -781,  -781,  -781,  -781,  -781,  -781,   106,  -781,  -781,  -781,
1228     -781,  -781,  -781,  -781,  -781,   106,  -781,  -781,  -781,  -781,
1229     -781,   197,   131,  -781,  -781,  -781,  -781,  -781,   125,  -781,
1230      130,  -781,   159,  -781,  -781,   147,   266,  -781,   230,  -781,
1231     -781,  -781,  -781,  -781,  2591,  2591,   248,   256,   268,  -781,
1232      278,   495,  -781,  -781,  -781,  2591,  -781,  -781,  1089,  -781,
1233     -781,  2591,   425,  -781,  2632,  2673,  -781,  3209,   718,   957,
1234      525,  1839,  1288,   506,   780,   597,  1148,  -781,   272,  1771,
1235     2591,   347,   382,   352,   395,  -781,   131,   131,   106,  -781,
1236      106,  -781,  -781,   106,   361,   400,  -781,  -781,   106,  -781,
1237       89,   106,   213,  -781,  1219,   482,   487,   283,  2111,   330,
1238      875,  -781,   340,  -781,   432,  -781,  -781,  -781,   353,   473,
1239     -781,  -781,  2591,  2383,  1323,  3052,  -781,  -781,   360,  -781,
1240      475,   377,  -781,  2591,  -781,  1089,  -781,  1089,  -781,  2591,
1241     2591,   441,  -781,  -781,  2591,  2591,  2591,  2591,  2591,  2591,
1242     2591,  2591,  2591,  2591,  2591,  2591,  -781,  -781,   495,  2591,
1243     2591,   495,   226,  -781,   402,   495,  -781,  1575,   466,  -781,
1244      416,  -781,   487,    38,   131,  -781,  -781,  -781,    89,   512,
1245     2134,   436,  -781,   936,    49,  -781,  2484,   493,   197,   197,
1246     -781,   106,  -781,   400,   106,   106,  -781,  -781,  -781,   400,
1247      106,  -781,  -781,   957,   525,  1839,  1288,   506,   780,   597,
1248     1148,  -781,   474,   463,  1214,  -781,   106,  -781,  -781,   514,
1249      485,  -781,   432,  -781,  -781,  -781,  -781,   477,  -781,   489,
1250     -781,  2921,   472,  2942,   510,   488,   524,   539,  -781,  -781,
1251     1473,  3209,   540,   542,  3209,  3209,  2591,   596,  2591,  2591,
1252     2105,  3248,  1030,  1626,  1969,   354,   354,   403,   403,  -781,
1253     -781,  -781,  -781,   567,   581,  3209,   289,  -781,    89,   106,
1254     -781,  -781,  -781,  -781,   505,  -781,  -781,  -781,   286,   436,
1255     -781,  -781,    63,    70,    81,    90,   685,  -781,   601,  2267,
1256     -781,  -781,  -781,  -781,  -781,  -781,   222,  1003,  2591,  2591,
1257     2175,  -781,  2797,  -781,  -781,  -781,  -781,  -781,  2305,  3167,
1258     1487,   730,  3086,  3172,  1545,   857,   607,   609,  -781,   482,
1259      261,   197,  -781,   656,  -781,  -781,  -781,   254,   337,  -781,
1260     -781,   613,  -781,   615,  2591,   495,   617,   485,  -781,   473,
1261      618,  2714,  2728,  -781,  2591,  -781,  2728,  -781,  -781,  -781,
1262     -781,   619,   619,    36,  2591,  3238,  3171,  -781,  2591,  -781,
1263      226,   226,  -781,   106,  -781,  -781,   495,  -781,  -781,  -781,
1264     -781,  -781,  -781,  2342,  -781,  -781,  -781,  -781,  -781,  -781,
1265     -781,   666,   669,  -781,  -781,  -781,  -781,  -781,  2591,   671,
1266      630,   632,  2550,   275,   715,  -781,  -781,  -781,   298,  -781,
1267     -781,  -781,   638,   126,  -781,  -781,  -781,  -781,  -781,  -781,
1268     -781,  -781,  -781,  -781,  2446,   635,  -781,  -781,  -781,  -781,
1269     -781,   639,   301,  -781,  -781,   515,  2823,  2846,  -781,  -781,
1270       64,  -781,   197,  -781,   131,  2008,  -781,  -781,   704,  -781,
1271     -781,  -781,  2591,    80,   650,  -781,  2591,   216,   651,  -781,
1272      106,   106,  3209,  -781,   106,   667,  -781,  -781,   518,   664,
1273      672,  2967,   676,   495,  1874,  -781,  3225,  3209,  -781,  -781,
1274      680,  1389,  -781,  -781,  -781,  -781,  -781,  -781,   696,   708,
1275     2992,  -781,  -781,  -781,  -781,   308,  2591,   688,  -781,  -781,
1276      736,  -781,   197,   131,  -781,  -781,  -781,  -781,  -781,    97,
1277      178,  -781,  -781,  3057,   786,  -781,  -781,  -781,   698,  -781,
1278     -781,   333,   351,  -781,  -781,  3209,  -781,    64,  2008,    64,
1279     3111,  2591,  -781,   106,  3111,  2591,  -781,   106,  -781,  -781,
1280     -781,   106,  -781,  2591,  -781,  -781,  -781,  2591,  -781,  -781,
1281      220,  -781,   495,  2591,  -781,   747,  3209,   709,   721,  -781,
1282     -781,   189,  -781,  1656,  2591,  -781,  -781,   734,   735,  -781,
1283     2446,  2591,  2591,  -781,  -781,   357,  -781,   741,   106,   376,
1284     -781,   207,   401,  -781,   711,  -781,    89,   106,   106,   532,
1285      558,   224,  -781,  -781,   106,    89,   106,   224,  -781,   106,
1286     -781,  2305,  3167,  3091,  3185,  1487,   730,  1694,  1038,  3086,
1287     3172,  3120,  3202,  1545,   857,  1723,  1257,  -781,  -781,  -781,
1288     -781,  -781,  -781,  -781,  1874,  -781,  -781,  -781,  -781,  3111,
1289      254,  -781,  3111,   337,  -781,   536,  2895,   495,  2591,  -781,
1290     -781,  2774,  1874,  -781,  -781,  1942,  -781,  2049,  -781,  -781,
1291     -781,  3225,  -781,  -781,  -781,   724,  -781,   729,  -781,   545,
1292     3191,  -781,   266,  -781,  -781,   400,  -781,   400,    97,   180,
1293     -781,   106,  -781,   106,  -781,  -781,   106,   178,   178,  -781,
1294     -781,    97,   178,   737,  -781,  -781,  -781,  -781,  -781,  -781,
1295     -781,   306,  2591,  -781,   738,  2049,  -781,  -781,  2591,   732,
1296      744,  -781,  -781,  -781,  -781,  -781,   746,   782,  -781,  -781,
1297      532,   558,   284,  -781,  -781,  1389,   106,   224,  -781,   224,
1298     -781,  -781,  -781,  2872,  -781,  -781,   724,  -781,  -781,  -781,
1299      810,  2591,   743,  -781,  -781,    66,  -781,  -781,  -781,  -781,
1300     -781,  -781,  -781,  -781,  -781,  -781,   822,   823,  -781,  -781,
1301     -781,  -781,  2591,  -781,   756,   495,   800,   757,  -781,  -781,
1302      698,   698,    93,  -781,  -781,  -781,  -781,  -781,  -781,  -781,
1303      759,  -781,  -781,   761,    66,    66,   791,  -781,  -781,  -781,
1304     -781,  -781,  -781,  -781,  -781,   792,  -781,   266,   825,  -781,
1305     2591,   787,  -781,  -781,  -781,   266,   560,   783,  -781,   819,
1306      794,  -781,  -781,   799,  -781,  2591,   266,  -781,  -781,   562,
1307     -781,  -781,  -781
1308 };
1309
1310 /* YYPGOTO[NTERM-NUM].  */
1311 static const short int yypgoto[] =
1312 {
1313     -781,  -781,  -781,  -781,  -781,    76,   885,  -781,  -781,  -781,
1314     -781,  -781,  -781,  -781,  -781,   -28,  -781,   -71,   417,   232,
1315      468,  -781,  -781,  -781,  -105,  1189,  -781,  -781,  -781,  -781,
1316     -781,  -781,  -781,  -781,  -781,  -280,   579,  -781,  -781,   113,
1317      112,  -301,  -500,    -2,     0,   138,   219,     2,     7,    31,
1318      141,  -305,  -304,   264,   267,  -292,  -286,   280,   291,  -383,
1319     -359,   583,   585,  -781,  -162,  -781,  -373,  -209,   620,  1012,
1320      133,   470,  -781,  -504,  -133,   451,  -781,   612,  -781,    41,
1321      693,   -34,  -781,   453,  -781,   554,   282,  -781,  -616,  -781,
1322      161,  -781,  -638,  -781,  -781,   250,   251,  -781,  -781,  -781,
1323     -781,  -781,  -781,  -135,   362,   135,   150,  -123,    16,  -781,
1324     -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,   479,
1325     -118,  -781,   595,  -781,  -781,   199,   204,   616,   502,  -115,
1326     -781,  -781,  -591,  -274,  -443,  -487,  -781,   531,  -781,  -781,
1327     -781,  -781,  -781,  -781,  -246,  -461,  -781,  -781,   681,  -551,
1328     -781,   437,  -781,  -781,  -397,   662,  -777,  -742,  -221,  -207,
1329     -733,  -781,  -200,    87,  -633,  -780,  -781,  -781,  -781,  -781,
1330     -757,  -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,  -781,
1331      269,  -205,  -781,  -781,  -781,  -781,    88,  -781,    95,  -781,
1332     -156,   -19,   -68,   490,  -781,  -576,  -781,  -781,  -781,  -781,
1333     -781,  -781,   439,  -302,  -781,  -781,  -781,  -781,    28
1334 };
1335
1336 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1337    positive, shift that token.  If negative, reduce the rule which
1338    number is the opposite.  If zero, do what YYDEFACT says.
1339    If YYTABLE_NINF, syntax error.  */
1340 #define YYTABLE_NINF -550
1341 static const short int yytable[] =
1342 {
1343       71,   192,   167,   599,    27,    27,    28,    28,    31,    31,
1344      248,   442,   443,    32,    32,   310,   234,   154,   401,   237,
1345      451,   318,   534,   454,   444,   686,   158,   160,   162,   324,
1346      445,   154,   154,   154,    61,    61,   530,    33,    33,   718,
1347      820,   242,    78,   452,   626,   770,   532,   598,   154,   455,
1348     -115,   417,   605,   606,   607,   608,   609,   154,   641,    27,
1349      531,    28,   309,    31,  -450,   638,   154,   435,    32,   250,
1350      251,  -451,   211,   261,   212,   154,   420,   247,   342,   850,
1351      257,   595,  -452,    62,   154,    68,   262,   882,   885,    61,
1352      421,  -453,    33,   154,   871,    70,   745,    13,   747,   428,
1353       73,   705,   154,   223,   224,   301,   534,   155,   156,    -2,
1354      513,   154,    19,   155,   156,   889,   217,     4,   699,   155,
1355      156,    19,   442,   443,   911,   651,    72,   263,   803,   817,
1356      424,   891,   875,   918,    73,   444,    -3,   164,    19,   365,
1357      367,   445,  -115,   904,    29,    29,   814,    34,    34,  -540,
1358      372,  -430,   373,   256,   706,   151,   152,   526,  -431,  -540,
1359      295,   530,   707,   224,    98,   103,   107,   112,   238,  -432,
1360      509,   532,   134,   139,   143,   148,   924,   845,  -433,   917,
1361      899,    73,   342,    73,   154,   531,   714,   714,    74,   490,
1362      776,   498,   501,   504,   507,   153,    75,   157,   163,    29,
1363       73,   229,    34,   159,   166,   499,   502,   505,   508,   161,
1364      838,   840,   213,   168,   296,   868,   349,   600,   241,   396,
1365      873,   356,   211,   243,   212,    30,    30,   461,   211,   463,
1366      212,   767,   302,   303,   246,   715,   222,   706,   333,  -520,
1367      334,   741,   337,   716,   224,   707,   224,   338,    19,  -520,
1368      737,   222,   245,   672,   230,   673,    19,    73,   229,   859,
1369      392,   655,   231,   397,   306,   480,   219,   407,   344,   317,
1370      220,   339,   319,   913,   738,    59,    59,   247,   155,   156,
1371       30,   223,   224,   398,   757,   468,   758,   223,   224,   223,
1372      224,   399,   224,   214,  -520,   249,   442,   443,  -520,   572,
1373      320,   599,    63,    64,   321,   483,   211,   530,   212,   444,
1374      599,   230,   759,   252,   438,   445,   439,   532,   440,   231,
1375      426,   253,   573,   441,   349,   257,   325,   224,   729,   730,
1376       59,   531,   616,   254,   302,   303,    98,   103,   107,   112,
1377       73,   733,   333,   255,   334,   598,   337,   734,   528,   793,
1378      224,   338,   750,   566,   598,    79,   753,   590,   714,   714,
1379       88,   592,   213,   324,   293,   453,   306,   308,   213,    13,
1380      327,   456,   344,   495,   220,   339,   858,   496,   335,    19,
1381      263,   340,   576,   489,    19,   621,   864,   462,   632,   263,
1382       84,   527,   633,    19,    74,   694,   211,   263,   212,   263,
1383      842,   311,    75,    93,  -470,  -470,  -470,  -470,  -470,   281,
1384      282,   283,   284,   285,  -470,  -470,  -470,    27,   330,    28,
1385      742,    31,   901,   901,   321,   438,    32,   439,   346,   440,
1386     -470,   642,   528,   348,   441,   155,   156,   349,   743,   301,
1387      491,   356,   220,   214,   781,   353,   213,   544,   263,   214,
1388       33,   615,   368,   457,   458,    10,    11,    12,   102,   336,
1389      283,   284,   285,   784,    14,    15,    16,   321,   604,   370,
1390       98,   103,   107,   112,   577,   527,   155,   156,    10,    11,
1391      354,   355,   335,   897,   898,   340,   -83,   701,   786,   833,
1392      702,   834,   220,  -114,   406,   617,   324,   788,   155,   156,
1393      295,    99,   104,   108,   113,   828,   797,   829,   423,   135,
1394      140,   144,   149,    12,    97,   600,   263,   264,   429,   662,
1395       14,    15,    16,   433,   600,   497,   500,   214,   506,     9,
1396      442,   443,    12,    84,   602,   448,   213,  -256,    19,    14,
1397       15,    16,    27,   444,    28,   695,    31,   325,   224,   445,
1398      459,    32,   223,   224,   471,    18,   464,    29,   562,   564,
1399       34,  -389,  -389,   336,   473,   669,   263,   369,   469,   470,
1400      493,   224,   544,    98,   103,    33,   465,   134,   139,   476,
1401      426,    83,    87,    92,    96,   101,   105,   110,   114,   119,
1402      123,   128,   132,   137,   141,   146,   150,   791,   224,   438,
1403      697,   439,   475,   440,    12,   106,   634,   635,   441,   663,
1404      664,    14,    15,    16,   652,   573,   477,   214,   656,   775,
1405      779,   658,   659,   793,   224,   660,   827,   488,   808,    19,
1406      478,   721,   481,   722,   482,   725,   263,   824,    30,   704,
1407      726,   484,   622,   623,   760,   711,   717,    80,    85,    89,
1408       94,   263,   922,   263,   931,   116,   121,   125,   130,   487,
1409      628,   628,   266,   268,   727,   831,   832,     9,    10,    11,
1410       12,    84,   488,    99,   104,   108,   113,    14,    15,    16,
1411      449,   450,    29,   902,   903,    34,   311,   811,    27,   510,
1412       28,   748,    31,    18,   561,   751,   563,    32,   570,    51,
1413       51,   580,   754,   581,   211,   584,   212,    65,    66,    67,
1414      587,   -32,   479,   211,   -33,   212,   611,   612,   544,   613,
1415       82,    33,    91,   618,   100,   624,   109,   627,   118,   810,
1416      127,   631,   136,   222,   145,    10,    11,    12,   102,   783,
1417      222,   653,   657,  -520,    14,    15,    16,   846,   789,   790,
1418     -252,   914,   795,  -520,    51,   661,   665,   798,   799,   921,
1419      800,   690,   154,    30,   666,    51,   326,    51,   668,   577,
1420      930,   723,   685,   691,   728,   696,   223,   224,   286,   287,
1421      775,   698,   288,   289,   290,   291,   874,    12,   102,   740,
1422      804,   526,   763,   806,    14,    15,    16,   764,  -520,   772,
1423      773,   775,  -520,   360,   302,   303,   782,    99,   104,   108,
1424      113,   896,   765,   302,   303,   263,   822,   837,   839,    80,
1425       85,    89,    94,   405,   847,   841,   844,   855,    29,   870,
1426      872,    34,   306,   438,   306,   439,   848,   440,   854,   916,
1427      883,   884,   441,   892,   213,   894,   919,   893,   895,   801,
1428      802,   906,   724,   213,   929,   907,   910,   912,    98,   103,
1429      107,   112,    10,    11,    12,   138,   134,   139,   143,   148,
1430      915,    14,    15,    16,   899,   923,   331,   860,   861,     9,
1431      862,    51,    12,    13,   925,   926,   928,     5,   589,    14,
1432       15,    16,    82,   436,    91,   755,   100,   731,   109,   446,
1433      732,   447,   567,   927,    82,    18,    91,    19,    20,    30,
1434       99,   104,   932,   735,   135,   140,   425,    51,    10,    11,
1435       12,    97,   586,    51,   736,   214,   816,    14,    15,    16,
1436      746,   768,   769,    51,   214,   494,   836,   311,   830,   460,
1437     -117,  -117,  -117,  -117,  -117,    19,   585,    51,    51,   805,
1438     -117,  -117,  -117,    80,    85,    89,    94,   807,    51,   419,
1439       51,     9,   332,  -381,    12,    79,  -117,   583,   467,   900,
1440      625,    14,    15,    16,   434,    10,    11,    12,   106,   422,
1441      326,   326,   908,   603,    14,    15,    16,    18,   630,    19,
1442      909,     0,    83,    87,   101,   105,   119,   123,   137,   141,
1443     -255,    51,    19,     0,   545,     0,   546,     9,    10,    11,
1444       12,    13,     0,     0,     0,   547,     0,    14,    15,    16,
1445        0,   405,   405,   360,     0,     0,    82,     0,    91,  -117,
1446      100,     0,   109,    18,     0,     0,     0,    51,     0,    81,
1447       86,    90,    95,    10,    11,    12,   111,   117,   122,   126,
1448      131,     0,    14,    15,    16,     0,     0,  -257,    80,    85,
1449        0,     0,   116,   121,     0,     0,     0,     0,     9,    10,
1450       11,    12,    93,     0,   419,   419,   503,   419,    14,    15,
1451       16,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1452      258,    51,   169,     9,    18,  -549,    12,    13,     0,   170,
1453      171,     0,   172,    14,    15,    16,     0,     0,     0,     0,
1454        0,     0,    51,     0,   569,     0,     0,   571,     0,    18,
1455      173,    19,    20,     0,   174,   175,   176,   177,   178,   179,
1456      180,    82,     0,   100,     0,   118,   181,   136,     0,   182,
1457        0,     0,     0,     0,   183,   184,   185,     0,     0,   186,
1458      187,  -254,     0,     0,   188,    12,   111,     0,     0,     0,
1459      405,   405,    14,    15,    16,    51,     0,     0,     0,    51,
1460        0,     0,     0,     9,    10,    11,    12,    79,   189,   190,
1461        0,     0,   259,    14,    15,    16,     0,     0,     0,   620,
1462        0,     0,     0,     0,     0,    99,   104,   108,   113,    18,
1463        0,    19,     0,   135,   140,   144,   149,     0,     0,     0,
1464        0,    81,    86,    90,    95,   331,     0,     0,     9,     0,
1465      322,    12,    13,   -20,   -20,   -20,   -20,   -20,    14,    15,
1466       16,     0,     0,   -20,   -20,   -20,     0,    51,     0,     0,
1467      792,   794,     0,     0,    18,     0,    19,    20,   222,   -20,
1468        0,  -520,     0,     0,     0,     0,  -251,     0,     0,     0,
1469        0,  -520,    10,    11,    12,   147,     0,   687,   688,   689,
1470        0,    14,    15,    16,     0,    83,    87,    92,    96,   101,
1471      105,   110,   114,   119,   123,   128,   132,   137,   141,   146,
1472      150,     0,     9,     0,   221,    12,    93,   -28,   -28,   -28,
1473      -28,   -28,    14,    15,    16,     0,  -520,   -28,   -28,   -28,
1474     -520,     0,   -20,     0,     0,     0,     0,     0,    18,   405,
1475      405,     0,   222,   -28,   364,  -520,    51,     9,   405,   405,
1476       12,    13,   405,   405,     0,  -520,     0,    14,    15,    16,
1477        0,    80,    85,    89,    94,    81,    86,    90,    95,   116,
1478      121,   125,   130,    18,     0,    19,     0,     0,   223,   224,
1479        0,   792,   794,   794,     0,     9,    10,    11,    12,   120,
1480        0,     0,     0,     0,     0,    14,    15,    16,     0,     0,
1481     -520,     0,     0,    51,  -520,     0,   -28,     0,     0,     0,
1482      545,    18,     0,     9,    10,    11,    12,    13,     0,    51,
1483        0,   547,     0,    14,    15,    16,     0,   796,    51,     0,
1484        0,     0,     0,     0,    82,     0,    91,     0,   100,    18,
1485      109,     0,   118,     0,   127,     0,   136,     0,   145,     0,
1486        0,     0,     0,     0,   818,   818,    10,    11,    12,   111,
1487      823,   361,   363,     0,     0,    14,    15,    16,  -260,     0,
1488       81,    86,   371,     0,   117,   122,     0,     0,   374,   375,
1489        0,     0,     0,   380,   381,   382,   383,   384,   385,   386,
1490      387,   388,   389,   390,   391,     0,   169,     0,   395,     0,
1491        0,  -549,     0,   170,   171,   851,   172,     0,     0,     0,
1492      856,   857,    10,    11,    12,    97,     0,     0,     0,   432,
1493        0,    14,    15,    16,   173,     0,    20,     0,   174,   175,
1494      176,   177,   178,   179,   180,     0,     0,     0,  -258,    19,
1495      181,     0,     0,   182,     0,     0,     0,     0,   183,   184,
1496      185,   503,     0,   186,   187,     0,     0,     0,   188,     0,
1497        0,     0,     0,     0,   503,     9,    10,    11,    12,   129,
1498       10,    11,    12,   133,     0,    14,    15,    16,     0,    14,
1499       15,    16,   189,   190,     0,     0,   479,   485,   486,     0,
1500        0,    18,     0,   503,   818,     0,   409,    19,  -470,  -470,
1501     -470,  -470,  -470,  -470,     0,  -470,  -470,     0,  -470,  -470,
1502     -470,  -470,  -470,     0,  -470,  -470,  -470,  -470,  -470,  -470,
1503     -470,  -470,  -470,  -470,  -470,  -470,  -470,  -470,  -470,     0,
1504     -470,  -470,  -470,  -470,  -470,  -470,  -470,   556,   557,     0,
1505        0,     0,  -470,     0,     0,  -470,     0,     0,  -262,     0,
1506     -470,  -470,  -470,     0,     0,  -470,  -470,     0,     0,     0,
1507     -470,     0,     0,     0,     9,    10,    11,    12,    88,     0,
1508        0,     0,     0,   582,    14,    15,    16,   671,     0,   169,
1509      395,     0,  -470,   591,  -470,  -470,   170,   171,  -470,   172,
1510       18,     0,    19,   596,     0,     0,     0,   597,   278,   279,
1511      280,   281,   282,   283,   284,   285,     0,   173,     0,    20,
1512        0,   174,   175,   176,   177,   178,   179,   180,  -327,    10,
1513       11,    12,   106,   181,     0,     0,   182,   610,    14,    15,
1514       16,   183,   184,   185,     0,     0,   186,   187,     0,     0,
1515     -327,   188,  -327,     0,     0,     0,    19,  -253,    10,    11,
1516       12,   142,     0,    81,    86,    90,    95,    14,    15,    16,
1517        0,   117,   122,   126,   131,   189,   190,     0,     0,   674,
1518        0,     0,     0,     0,   645,    19,     0,     0,     0,     0,
1519        0,   650,     0,     0,     0,   654,     0,     0,     0,     0,
1520        0,     0,   294,     0,  -456,  -456,  -456,  -456,  -456,  -456,
1521        0,  -456,  -456,   676,  -456,  -456,  -456,  -456,  -456,     0,
1522     -456,  -456,  -456,  -456,  -456,  -456,  -456,  -456,  -456,  -456,
1523     -456,  -456,  -456,  -456,  -456,   295,  -456,  -456,  -456,  -456,
1524     -456,  -456,  -456,     9,    10,    11,    12,   115,  -456,     0,
1525        0,  -456,     0,    14,    15,    16,  -456,  -456,  -456,     0,
1526        0,  -456,  -456,     0,     0,     0,  -456,   645,     0,    18,
1527      749,    19,     0,     9,   752,     0,    12,    88,     0,     0,
1528        0,     0,   395,    14,    15,    16,   756,     0,  -456,   296,
1529     -456,  -456,   761,     0,  -456,     0,     0,     0,     0,    18,
1530        0,    19,   676,   771,     0,   671,     0,   511,   156,     0,
1531        0,   780,     0,     0,   170,   171,     0,   172,     0,     0,
1532        0,     9,    10,    11,    12,   124,  -259,     0,     0,     0,
1533        0,    14,    15,    16,     0,   173,     0,    20,     0,   174,
1534      175,   176,   177,   178,   179,   180,     0,    18,     0,    19,
1535        0,   181,     0,     0,   182,     0,     0,     0,     0,   183,
1536      184,   185,     0,   676,   186,   187,     0,     0,   672,   188,
1537      673,     0,     0,   671,     0,   511,   156,     0,     0,     0,
1538        0,   676,   170,   171,   676,   172,   676,     0,     0,     0,
1539        0,     0,  -311,   189,   190,     0,     0,   674,     0,     0,
1540        0,     0,     0,   173,  -261,    20,     0,   174,   175,   176,
1541      177,   178,   179,   180,     0,    10,    11,    12,   133,   181,
1542        0,     0,   182,     0,    14,    15,    16,   183,   184,   185,
1543        0,   843,   186,   187,   676,     0,   672,   188,   673,   643,
1544        0,   169,    19,     0,     0,     0,     0,     0,   170,   171,
1545        0,   172,   279,   280,   281,   282,   283,   284,   285,     0,
1546     -378,   189,   190,     0,     0,   674,     0,     0,     0,   173,
1547        0,    20,     0,   174,   175,   176,   177,   178,   179,   180,
1548      671,     0,   169,     0,     0,   181,     0,     0,   182,   170,
1549      171,     0,   172,   183,   184,   185,     0,  -263,   186,   187,
1550        0,     0,     0,   188,     0,     0,     0,     0,     0,     0,
1551      173,     0,    20,     0,   174,   175,   176,   177,   178,   179,
1552      180,     0,     0,     0,     0,     0,   181,   189,   190,   182,
1553        0,   644,     0,     0,   183,   184,   185,     0,     0,   186,
1554      187,     0,   328,     0,   188,   -24,   -24,   -24,   -24,   -24,
1555        0,    10,    11,    12,   142,   -24,   -24,   -24,     0,     0,
1556       14,    15,    16,     0,     0,     0,     0,   169,   189,   190,
1557      222,   -24,   674,  -520,   170,   171,     0,   172,    19,     0,
1558        0,     0,     0,  -520,   275,   276,   277,   278,   279,   280,
1559      281,   282,   283,   284,   285,   173,     0,    20,     0,   174,
1560      175,   176,   177,   178,   179,   180,   223,   224,   169,     0,
1561        0,   181,     0,     0,   182,   170,   171,     0,   172,   183,
1562      184,   430,     0,     0,   186,   187,     0,     0,  -520,   188,
1563        0,     0,  -520,  -265,   -24,     0,   173,     0,    20,     0,
1564      174,   175,   176,   177,   178,   179,   180,     0,     0,     0,
1565        0,     0,   181,   189,   190,   182,     0,     0,   431,     0,
1566      183,   184,   185,     0,     0,   186,   187,     0,     0,     0,
1567      188,     0,     0,    10,    11,    12,   138,    10,    11,    12,
1568      147,     0,    14,    15,    16,     0,    14,    15,    16,     0,
1569        0,     0,     0,     0,   189,   190,     0,     0,     0,   558,
1570      511,   512,    10,    11,    12,    13,     0,   170,   171,     0,
1571      172,    14,    15,    16,   513,     0,   514,   515,   516,   517,
1572      518,   519,   520,   521,   522,   523,   524,    18,   173,    19,
1573       20,     0,   174,   175,   176,   177,   178,   179,   180,     9,
1574       10,    11,    12,    79,   181,     0,     0,   182,     0,    14,
1575       15,    16,   183,   184,   185,  -264,     0,   186,   187,  -266,
1576        0,     0,   188,     0,     0,    18,     0,    19,     0,     0,
1577        0,     0,     0,     0,     0,   511,   156,     0,     0,     0,
1578        0,     0,   170,   171,   525,   172,   189,   190,     0,   513,
1579      526,   514,   515,   516,   517,   518,   519,   520,   521,   522,
1580      523,   524,     0,   173,     0,    20,     0,   174,   175,   176,
1581      177,   178,   179,   180,   362,     0,   169,     0,     0,   181,
1582        0,     0,   182,   170,   171,     0,   172,   183,   184,   185,
1583        0,     0,   186,   187,     0,     0,     0,   188,     0,     0,
1584        0,     0,     0,     0,   173,     0,    20,     0,   174,   175,
1585      176,   177,   178,   179,   180,     0,     0,     0,     0,   525,
1586      181,   189,   190,   182,     0,   526,     0,     0,   183,   184,
1587      185,     0,     0,   186,   187,     0,     0,     0,   188,   169,
1588        9,    10,    11,    12,    13,     0,   170,   171,     0,   172,
1589       14,    15,    16,     0,     0,     0,     0,     0,     0,     0,
1590        0,     0,   189,   190,     0,     0,    18,   173,    19,    20,
1591        0,   174,   175,   176,   177,   178,   179,   180,     9,    10,
1592       11,    12,    13,   181,     0,     0,   182,     0,    14,    15,
1593       16,   183,   184,   185,     0,     0,   186,   187,     0,     0,
1594        0,   188,   169,     9,    18,     0,    12,    13,     0,   170,
1595      171,     0,   172,    14,    15,    16,     0,     0,     0,     0,
1596        0,     0,     0,     0,     0,   189,   190,     0,     0,    18,
1597      173,    19,    20,     0,   174,   175,   176,   177,   178,   179,
1598      180,     0,     0,   169,     0,     0,   181,     0,     0,   182,
1599      170,   171,     0,   172,   183,   184,   185,     0,     0,   186,
1600      187,     0,     0,     0,   188,     0,     0,     0,     0,     0,
1601        0,   173,     0,    20,     0,   174,   175,   176,   177,   178,
1602      179,   180,     0,     0,   169,     0,     0,   181,   189,   190,
1603      182,   170,   171,     0,   172,   183,   184,   185,     0,     0,
1604      186,   187,     0,     0,     0,   188,     0,     0,     0,     0,
1605        0,     0,   173,     0,    20,     0,   174,   175,   176,   177,
1606      178,   179,   180,     0,     0,   169,     0,   614,   181,   189,
1607      190,   182,   170,   171,     0,   172,   183,   184,   185,     0,
1608        0,   186,   187,     0,     0,     0,   188,     0,     0,     0,
1609        0,     0,     0,   173,     0,    20,     0,   174,   175,   176,
1610      177,   178,   179,   180,     0,     0,   169,     0,     0,   181,
1611      189,   190,   182,   170,   171,     0,   172,   183,   184,   185,
1612        0,     0,   186,   187,     0,     0,     0,   265,     0,     0,
1613        0,     0,     0,     0,   173,     0,    20,     0,   174,   175,
1614      176,   177,   178,   179,   180,     0,     0,   588,     0,     0,
1615      181,   189,   190,   182,   170,   171,     0,   172,   183,   184,
1616      185,     0,     9,   186,   187,    12,    13,     0,   267,     0,
1617        0,     0,    14,    15,    16,   173,     0,    20,     0,   174,
1618      175,   176,   177,   178,   179,   180,     0,     0,    18,     0,
1619       19,   181,   189,   190,   182,     0,     0,     0,     0,   183,
1620      184,   185,     0,     0,   186,   187,     0,     0,     8,   188,
1621     -126,     9,    10,    11,    12,    13,   812,     0,     0,     0,
1622        0,    14,    15,    16,     0,     0,     0,     0,     0,     0,
1623        0,     0,     0,   189,   190,     0,    17,    18,     0,    19,
1624       20,     0,     0,     0,     0,     0,   269,   270,   271,     0,
1625      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1626      282,   283,   284,   285,  -126,     0,     0,     0,     0,   269,
1627      270,   271,  -126,   272,   273,   274,   275,   276,   277,   278,
1628      279,   280,   281,   282,   283,   284,   285,     0,     0,     0,
1629        0,     0,     0,     0,    21,   269,   270,   271,   813,   272,
1630      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1631      283,   284,   285,     0,     0,     0,     0,     0,   269,   270,
1632      271,   559,   272,   273,   274,   275,   276,   277,   278,   279,
1633      280,   281,   282,   283,   284,   285,     0,     0,     0,     0,
1634        0,     0,     0,     0,   269,   270,   271,   636,   272,   273,
1635      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1636      284,   285,     0,     0,     0,     0,     0,   269,   270,   271,
1637      637,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1638      281,   282,   283,   284,   285,     0,     0,     0,     0,     0,
1639        0,     0,     0,   269,   270,   271,   863,   272,   273,   274,
1640      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1641      285,     0,     0,     0,   269,   270,   271,   809,   272,   273,
1642      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1643      284,   285,     0,     0,   692,     0,     0,     0,     0,   269,
1644      270,   271,   472,   272,   273,   274,   275,   276,   277,   278,
1645      279,   280,   281,   282,   283,   284,   285,     0,     0,     0,
1646        0,     0,     0,   474,   269,   270,   271,   693,   272,   273,
1647      274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
1648      284,   285,     0,   366,     0,     0,     9,     0,   667,    12,
1649       13,     9,    10,    11,    12,    13,    14,    15,    16,   720,
1650        0,    14,    15,    16,     0,     0,     0,     0,     0,     0,
1651        0,     0,    18,     0,    19,     0,     0,    18,     0,    19,
1652        9,    10,    11,    12,   115,     9,    10,    11,    12,    88,
1653       14,    15,    16,     0,     0,    14,    15,    16,     0,     0,
1654        0,     0,     0,     0,     0,     0,    18,     0,    19,     0,
1655        0,    18,     0,    19,     9,    10,    11,    12,   124,     0,
1656        0,     0,     0,     0,    14,    15,    16,     0,     0,     0,
1657        0,     0,     0,    19,     0,     0,     0,     0,     0,     0,
1658       18,     0,    19,   269,   270,   271,     0,   272,   273,   274,
1659      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1660      285,     9,    10,    11,    12,    84,     9,    10,    11,    12,
1661      120,    14,    15,    16,     0,     0,    14,    15,    16,     9,
1662       10,    11,    12,    93,     0,     0,     0,    18,     0,    14,
1663       15,    16,    18,     0,     0,     0,     9,    10,    11,    12,
1664      129,     0,     0,     0,     0,    18,    14,    15,    16,   274,
1665      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1666      285,     0,    18,   269,   270,   271,   825,   272,   273,   274,
1667      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1668      285,   269,   270,   271,     0,   272,   273,   274,   275,   276,
1669      277,   278,   279,   280,   281,   282,   283,   284,   285,   271,
1670        0,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1671      281,   282,   283,   284,   285,   273,   274,   275,   276,   277,
1672      278,   279,   280,   281,   282,   283,   284,   285,   276,   277,
1673      278,   279,   280,   281,   282,   283,   284,   285
1674 };
1675
1676 static const short int yycheck[] =
1677 {
1678       19,    72,    70,   490,     6,     7,     6,     7,     6,     7,
1679      166,   316,   316,     6,     7,   224,   151,    51,   292,   152,
1680      321,   230,   419,   325,   316,   601,    54,    55,    56,   234,
1681      316,    65,    66,    67,     6,     7,   419,     6,     7,   630,
1682      773,   159,    26,   323,   544,   683,   419,   490,    82,   329,
1683        1,   297,   513,   514,   515,   516,   517,    91,   562,    61,
1684      419,    61,   224,    61,     1,     1,   100,   313,    61,   174,
1685      175,     1,    74,   188,    74,   109,   297,    11,   240,   821,
1686      185,    45,     1,     7,   118,     1,   191,   864,   868,    61,
1687      297,     1,    61,   127,   851,     1,   647,     8,   649,   308,
1688        3,     4,   136,    65,    66,   210,   503,     3,     4,     0,
1689       17,   145,    32,     3,     4,   872,    75,     0,   622,     3,
1690        4,    32,   427,   427,   901,    45,    65,    91,   744,   767,
1691       92,   873,    66,   913,     3,   427,     0,    61,    32,   254,
1692      255,   427,    93,   885,     6,     7,   762,     6,     7,    65,
1693      265,    88,   267,   181,    57,    43,    44,    93,    88,    65,
1694       34,   544,    65,    66,    31,    32,    33,    34,   152,    88,
1695      416,   544,    39,    40,    41,    42,   918,   815,    88,   912,
1696       87,     3,   344,     3,   218,   544,   629,   630,    57,   398,
1697      690,   412,   413,   414,   415,    87,    65,    93,    87,    61,
1698        3,     4,    61,    93,    65,   412,   413,   414,   415,    93,
1699      801,   802,    74,    65,    88,   848,   244,   491,    93,   290,
1700      853,   249,   224,    93,   224,     6,     7,   345,   230,   347,
1701      230,    42,   216,   217,    87,    57,    29,    57,   240,    32,
1702      240,   638,   240,    65,    66,    65,    66,   240,    32,    42,
1703      633,    29,    93,    64,    57,    66,    32,     3,     4,   835,
1704      288,    45,    65,   291,   223,   370,    87,   295,   240,   228,
1705       91,   240,   231,   906,   633,     6,     7,    11,     3,     4,
1706       61,    65,    66,    57,    64,   353,    66,    65,    66,    65,
1707       66,    65,    66,    74,    87,    65,   601,   601,    91,    45,
1708       87,   788,    87,    88,    91,   376,   308,   690,   308,   601,
1709      797,    57,    92,    65,   316,   601,   316,   690,   316,    65,
1710      304,    65,   457,   316,   352,   430,    65,    66,   633,   633,
1711       61,   690,    57,    65,   318,   319,   203,   204,   205,   206,
1712        3,   633,   344,    65,   344,   788,   344,   633,   419,    65,
1713       66,   344,   653,    92,   797,     8,   657,   472,   801,   802,
1714        8,   476,   224,   568,    92,   324,   325,     6,   230,     8,
1715       87,   330,   344,    87,    91,   344,    92,    91,   240,    32,
1716       91,   240,    45,    94,    32,    87,   847,   346,    87,    91,
1717        8,   419,    91,    32,    57,    87,   398,    91,   398,    91,
1718       94,     1,    65,     8,     4,     5,     6,     7,     8,    55,
1719       56,    57,    58,    59,    14,    15,    16,   419,    88,   419,
1720       87,   419,   883,   884,    91,   427,   419,   427,    88,   427,
1721       30,   564,   503,     1,   427,     3,     4,   465,    87,   544,
1722      399,   469,    91,   224,    87,    92,   308,   419,    91,   230,
1723      419,   522,    92,   341,   342,     5,     6,     7,     8,   240,
1724       57,    58,    59,    87,    14,    15,    16,    91,   496,    92,
1725      337,   338,   339,   340,   458,   503,     3,     4,     5,     6,
1726        7,     8,   344,   880,   881,   344,    45,   622,    87,   791,
1727      623,   793,    91,    93,    92,   523,   701,   706,     3,     4,
1728       34,    31,    32,    33,    34,   785,   715,   787,    92,    39,
1729       40,    41,    42,     7,     8,   789,    91,    92,     6,   587,
1730       14,    15,    16,    87,   798,   412,   413,   308,   415,     4,
1731      835,   835,     7,     8,   493,    42,   398,    87,    32,    14,
1732       15,    16,   544,   835,   544,   616,   544,    65,    66,   835,
1733       87,   544,    65,    66,    65,    30,    42,   419,   446,   447,
1734      419,    87,    88,   344,    92,   593,    91,    92,    91,    92,
1735       65,    66,   544,   440,   441,   544,    91,   444,   445,    91,
1736      564,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1737       36,    37,    38,    39,    40,    41,    42,    65,    66,   601,
1738      619,   601,    92,   601,     7,     8,    91,    92,   601,    91,
1739       92,    14,    15,    16,   573,   750,    92,   398,   577,   690,
1740      691,   580,   581,    65,    66,   584,   782,    91,    92,    32,
1741       91,   633,    92,   633,    92,   633,    91,    92,   419,   623,
1742      633,    45,   530,   531,   672,   629,   630,    27,    28,    29,
1743       30,    91,    92,    91,    92,    35,    36,    37,    38,    92,
1744      548,   549,   194,   195,   633,   788,   789,     4,     5,     6,
1745        7,     8,    91,   203,   204,   205,   206,    14,    15,    16,
1746      318,   319,   544,   883,   884,   544,     1,   758,   690,    88,
1747      690,   650,   690,    30,    87,   654,    87,   690,    42,     6,
1748        7,    88,   661,    88,   706,    88,   706,    14,    15,    16,
1749       92,    45,    93,   715,    45,   715,    45,    87,   690,    87,
1750       27,   690,    29,     8,    31,    87,    33,    92,    35,   757,
1751       37,    92,    39,    29,    41,     5,     6,     7,     8,   698,
1752       29,    91,    91,    32,    14,    15,    16,   818,   707,   708,
1753       87,   907,   711,    42,    61,    88,    92,   716,   717,   915,
1754      719,    65,   796,   544,    92,    72,   235,    74,    92,   753,
1755      926,   633,    92,    65,   633,    87,    65,    66,    60,    61,
1756      851,    45,    64,    65,    66,    67,   854,     7,     8,     3,
1757      749,    93,    45,   752,    14,    15,    16,    88,    87,    65,
1758       65,   872,    91,   249,   788,   789,    65,   337,   338,   339,
1759      340,   879,    91,   797,   798,    91,    87,   801,   802,   199,
1760      200,   201,   202,   292,    92,    88,    88,    45,   690,    19,
1761       87,   690,   791,   835,   793,   835,    92,   835,    92,   910,
1762       18,    18,   835,    87,   706,    45,   914,   875,    91,   737,
1763      738,    92,   633,   715,   925,    94,    65,    65,   725,   726,
1764      727,   728,     5,     6,     7,     8,   733,   734,   735,   736,
1765       45,    14,    15,    16,    87,    92,     1,   836,   837,     4,
1766      839,   188,     7,     8,    65,    91,    87,     2,   471,    14,
1767       15,    16,   199,   314,   201,   663,   203,   633,   205,   316,
1768      633,   316,   451,   922,   211,    30,   213,    32,    33,   690,
1769      440,   441,   931,   633,   444,   445,   304,   224,     5,     6,
1770        7,     8,   469,   230,   633,   706,   765,    14,    15,    16,
1771      648,   681,   681,   240,   715,   404,   801,     1,   788,   344,
1772        4,     5,     6,     7,     8,    32,   467,   254,   255,   750,
1773       14,    15,    16,   333,   334,   335,   336,   753,   265,   297,
1774      267,     4,    87,    88,     7,     8,    30,   465,   352,   882,
1775      533,    14,    15,    16,   312,     5,     6,     7,     8,   298,
1776      449,   450,   894,   493,    14,    15,    16,    30,   549,    32,
1777      895,    -1,   438,   439,   440,   441,   442,   443,   444,   445,
1778       87,   308,    32,    -1,     1,    -1,     3,     4,     5,     6,
1779        7,     8,    -1,    -1,    -1,    12,    -1,    14,    15,    16,
1780       -1,   490,   491,   469,    -1,    -1,   333,    -1,   335,    93,
1781      337,    -1,   339,    30,    -1,    -1,    -1,   344,    -1,    27,
1782       28,    29,    30,     5,     6,     7,     8,    35,    36,    37,
1783       38,    -1,    14,    15,    16,    -1,    -1,    87,   438,   439,
1784       -1,    -1,   442,   443,    -1,    -1,    -1,    -1,     4,     5,
1785        6,     7,     8,    -1,   412,   413,   414,   415,    14,    15,
1786       16,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1787        1,   398,     3,     4,    30,    92,     7,     8,    -1,    10,
1788       11,    -1,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
1789       -1,    -1,   419,    -1,   452,    -1,    -1,   455,    -1,    30,
1790       31,    32,    33,    -1,    35,    36,    37,    38,    39,    40,
1791       41,   438,    -1,   440,    -1,   442,    47,   444,    -1,    50,
1792       -1,    -1,    -1,    -1,    55,    56,    57,    -1,    -1,    60,
1793       61,    87,    -1,    -1,    65,     7,     8,    -1,    -1,    -1,
1794      629,   630,    14,    15,    16,   472,    -1,    -1,    -1,   476,
1795       -1,    -1,    -1,     4,     5,     6,     7,     8,    89,    90,
1796       -1,    -1,    93,    14,    15,    16,    -1,    -1,    -1,   527,
1797       -1,    -1,    -1,    -1,    -1,   725,   726,   727,   728,    30,
1798       -1,    32,    -1,   733,   734,   735,   736,    -1,    -1,    -1,
1799       -1,   199,   200,   201,   202,     1,    -1,    -1,     4,    -1,
1800        1,     7,     8,     4,     5,     6,     7,     8,    14,    15,
1801       16,    -1,    -1,    14,    15,    16,    -1,   544,    -1,    -1,
1802      709,   710,    -1,    -1,    30,    -1,    32,    33,    29,    30,
1803       -1,    32,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
1804       -1,    42,     5,     6,     7,     8,    -1,   605,   606,   607,
1805       -1,    14,    15,    16,    -1,   721,   722,   723,   724,   725,
1806      726,   727,   728,   729,   730,   731,   732,   733,   734,   735,
1807      736,    -1,     4,    -1,     1,     7,     8,     4,     5,     6,
1808        7,     8,    14,    15,    16,    -1,    87,    14,    15,    16,
1809       91,    -1,    93,    -1,    -1,    -1,    -1,    -1,    30,   788,
1810      789,    -1,    29,    30,     1,    32,   633,     4,   797,   798,
1811        7,     8,   801,   802,    -1,    42,    -1,    14,    15,    16,
1812       -1,   721,   722,   723,   724,   333,   334,   335,   336,   729,
1813      730,   731,   732,    30,    -1,    32,    -1,    -1,    65,    66,
1814       -1,   830,   831,   832,    -1,     4,     5,     6,     7,     8,
1815       -1,    -1,    -1,    -1,    -1,    14,    15,    16,    -1,    -1,
1816       87,    -1,    -1,   690,    91,    -1,    93,    -1,    -1,    -1,
1817        1,    30,    -1,     4,     5,     6,     7,     8,    -1,   706,
1818       -1,    12,    -1,    14,    15,    16,    -1,   714,   715,    -1,
1819       -1,    -1,    -1,    -1,   721,    -1,   723,    -1,   725,    30,
1820      727,    -1,   729,    -1,   731,    -1,   733,    -1,   735,    -1,
1821       -1,    -1,    -1,    -1,   772,   773,     5,     6,     7,     8,
1822      778,   252,   253,    -1,    -1,    14,    15,    16,    87,    -1,
1823      438,   439,   263,    -1,   442,   443,    -1,    -1,   269,   270,
1824       -1,    -1,    -1,   274,   275,   276,   277,   278,   279,   280,
1825      281,   282,   283,   284,   285,    -1,     3,    -1,   289,    -1,
1826       -1,    92,    -1,    10,    11,   823,    13,    -1,    -1,    -1,
1827      828,   829,     5,     6,     7,     8,    -1,    -1,    -1,   310,
1828       -1,    14,    15,    16,    31,    -1,    33,    -1,    35,    36,
1829       37,    38,    39,    40,    41,    -1,    -1,    -1,    87,    32,
1830       47,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,    56,
1831       57,   869,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,
1832       -1,    -1,    -1,    -1,   882,     4,     5,     6,     7,     8,
1833        5,     6,     7,     8,    -1,    14,    15,    16,    -1,    14,
1834       15,    16,    89,    90,    -1,    -1,    93,   378,   379,    -1,
1835       -1,    30,    -1,   911,   912,    -1,     1,    32,     3,     4,
1836        5,     6,     7,     8,    -1,    10,    11,    -1,    13,    14,
1837       15,    16,    17,    -1,    19,    20,    21,    22,    23,    24,
1838       25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
1839       35,    36,    37,    38,    39,    40,    41,   428,   429,    -1,
1840       -1,    -1,    47,    -1,    -1,    50,    -1,    -1,    87,    -1,
1841       55,    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,
1842       65,    -1,    -1,    -1,     4,     5,     6,     7,     8,    -1,
1843       -1,    -1,    -1,   464,    14,    15,    16,     1,    -1,     3,
1844      471,    -1,    87,   474,    89,    90,    10,    11,    93,    13,
1845       30,    -1,    32,   484,    -1,    -1,    -1,   488,    52,    53,
1846       54,    55,    56,    57,    58,    59,    -1,    31,    -1,    33,
1847       -1,    35,    36,    37,    38,    39,    40,    41,    42,     5,
1848        6,     7,     8,    47,    -1,    -1,    50,   518,    14,    15,
1849       16,    55,    56,    57,    -1,    -1,    60,    61,    -1,    -1,
1850       64,    65,    66,    -1,    -1,    -1,    32,    87,     5,     6,
1851        7,     8,    -1,   721,   722,   723,   724,    14,    15,    16,
1852       -1,   729,   730,   731,   732,    89,    90,    -1,    -1,    93,
1853       -1,    -1,    -1,    -1,   565,    32,    -1,    -1,    -1,    -1,
1854       -1,   572,    -1,    -1,    -1,   576,    -1,    -1,    -1,    -1,
1855       -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
1856       -1,    10,    11,   594,    13,    14,    15,    16,    17,    -1,
1857       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1858       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1859       39,    40,    41,     4,     5,     6,     7,     8,    47,    -1,
1860       -1,    50,    -1,    14,    15,    16,    55,    56,    57,    -1,
1861       -1,    60,    61,    -1,    -1,    -1,    65,   648,    -1,    30,
1862      651,    32,    -1,     4,   655,    -1,     7,     8,    -1,    -1,
1863       -1,    -1,   663,    14,    15,    16,   667,    -1,    87,    88,
1864       89,    90,   673,    -1,    93,    -1,    -1,    -1,    -1,    30,
1865       -1,    32,   683,   684,    -1,     1,    -1,     3,     4,    -1,
1866       -1,   692,    -1,    -1,    10,    11,    -1,    13,    -1,    -1,
1867       -1,     4,     5,     6,     7,     8,    87,    -1,    -1,    -1,
1868       -1,    14,    15,    16,    -1,    31,    -1,    33,    -1,    35,
1869       36,    37,    38,    39,    40,    41,    -1,    30,    -1,    32,
1870       -1,    47,    -1,    -1,    50,    -1,    -1,    -1,    -1,    55,
1871       56,    57,    -1,   744,    60,    61,    -1,    -1,    64,    65,
1872       66,    -1,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,
1873       -1,   762,    10,    11,   765,    13,   767,    -1,    -1,    -1,
1874       -1,    -1,    88,    89,    90,    -1,    -1,    93,    -1,    -1,
1875       -1,    -1,    -1,    31,    87,    33,    -1,    35,    36,    37,
1876       38,    39,    40,    41,    -1,     5,     6,     7,     8,    47,
1877       -1,    -1,    50,    -1,    14,    15,    16,    55,    56,    57,
1878       -1,   812,    60,    61,   815,    -1,    64,    65,    66,     1,
1879       -1,     3,    32,    -1,    -1,    -1,    -1,    -1,    10,    11,
1880       -1,    13,    53,    54,    55,    56,    57,    58,    59,    -1,
1881       88,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,    31,
1882       -1,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
1883        1,    -1,     3,    -1,    -1,    47,    -1,    -1,    50,    10,
1884       11,    -1,    13,    55,    56,    57,    -1,    87,    60,    61,
1885       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,
1886       31,    -1,    33,    -1,    35,    36,    37,    38,    39,    40,
1887       41,    -1,    -1,    -1,    -1,    -1,    47,    89,    90,    50,
1888       -1,    93,    -1,    -1,    55,    56,    57,    -1,    -1,    60,
1889       61,    -1,     1,    -1,    65,     4,     5,     6,     7,     8,
1890       -1,     5,     6,     7,     8,    14,    15,    16,    -1,    -1,
1891       14,    15,    16,    -1,    -1,    -1,    -1,     3,    89,    90,
1892       29,    30,    93,    32,    10,    11,    -1,    13,    32,    -1,
1893       -1,    -1,    -1,    42,    49,    50,    51,    52,    53,    54,
1894       55,    56,    57,    58,    59,    31,    -1,    33,    -1,    35,
1895       36,    37,    38,    39,    40,    41,    65,    66,     3,    -1,
1896       -1,    47,    -1,    -1,    50,    10,    11,    -1,    13,    55,
1897       56,    57,    -1,    -1,    60,    61,    -1,    -1,    87,    65,
1898       -1,    -1,    91,    87,    93,    -1,    31,    -1,    33,    -1,
1899       35,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
1900       -1,    -1,    47,    89,    90,    50,    -1,    -1,    94,    -1,
1901       55,    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,
1902       65,    -1,    -1,     5,     6,     7,     8,     5,     6,     7,
1903        8,    -1,    14,    15,    16,    -1,    14,    15,    16,    -1,
1904       -1,    -1,    -1,    -1,    89,    90,    -1,    -1,    -1,    94,
1905        3,     4,     5,     6,     7,     8,    -1,    10,    11,    -1,
1906       13,    14,    15,    16,    17,    -1,    19,    20,    21,    22,
1907       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1908       33,    -1,    35,    36,    37,    38,    39,    40,    41,     4,
1909        5,     6,     7,     8,    47,    -1,    -1,    50,    -1,    14,
1910       15,    16,    55,    56,    57,    87,    -1,    60,    61,    87,
1911       -1,    -1,    65,    -1,    -1,    30,    -1,    32,    -1,    -1,
1912       -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,
1913       -1,    -1,    10,    11,    87,    13,    89,    90,    -1,    17,
1914       93,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1915       28,    29,    -1,    31,    -1,    33,    -1,    35,    36,    37,
1916       38,    39,    40,    41,     1,    -1,     3,    -1,    -1,    47,
1917       -1,    -1,    50,    10,    11,    -1,    13,    55,    56,    57,
1918       -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    -1,
1919       -1,    -1,    -1,    -1,    31,    -1,    33,    -1,    35,    36,
1920       37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    87,
1921       47,    89,    90,    50,    -1,    93,    -1,    -1,    55,    56,
1922       57,    -1,    -1,    60,    61,    -1,    -1,    -1,    65,     3,
1923        4,     5,     6,     7,     8,    -1,    10,    11,    -1,    13,
1924       14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925       -1,    -1,    89,    90,    -1,    -1,    30,    31,    32,    33,
1926       -1,    35,    36,    37,    38,    39,    40,    41,     4,     5,
1927        6,     7,     8,    47,    -1,    -1,    50,    -1,    14,    15,
1928       16,    55,    56,    57,    -1,    -1,    60,    61,    -1,    -1,
1929       -1,    65,     3,     4,    30,    -1,     7,     8,    -1,    10,
1930       11,    -1,    13,    14,    15,    16,    -1,    -1,    -1,    -1,
1931       -1,    -1,    -1,    -1,    -1,    89,    90,    -1,    -1,    30,
1932       31,    32,    33,    -1,    35,    36,    37,    38,    39,    40,
1933       41,    -1,    -1,     3,    -1,    -1,    47,    -1,    -1,    50,
1934       10,    11,    -1,    13,    55,    56,    57,    -1,    -1,    60,
1935       61,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
1936       -1,    31,    -1,    33,    -1,    35,    36,    37,    38,    39,
1937       40,    41,    -1,    -1,     3,    -1,    -1,    47,    89,    90,
1938       50,    10,    11,    -1,    13,    55,    56,    57,    -1,    -1,
1939       60,    61,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
1940       -1,    -1,    31,    -1,    33,    -1,    35,    36,    37,    38,
1941       39,    40,    41,    -1,    -1,     3,    -1,    87,    47,    89,
1942       90,    50,    10,    11,    -1,    13,    55,    56,    57,    -1,
1943       -1,    60,    61,    -1,    -1,    -1,    65,    -1,    -1,    -1,
1944       -1,    -1,    -1,    31,    -1,    33,    -1,    35,    36,    37,
1945       38,    39,    40,    41,    -1,    -1,     3,    -1,    -1,    47,
1946       89,    90,    50,    10,    11,    -1,    13,    55,    56,    57,
1947       -1,    -1,    60,    61,    -1,    -1,    -1,    65,    -1,    -1,
1948       -1,    -1,    -1,    -1,    31,    -1,    33,    -1,    35,    36,
1949       37,    38,    39,    40,    41,    -1,    -1,     3,    -1,    -1,
1950       47,    89,    90,    50,    10,    11,    -1,    13,    55,    56,
1951       57,    -1,     4,    60,    61,     7,     8,    -1,    65,    -1,
1952       -1,    -1,    14,    15,    16,    31,    -1,    33,    -1,    35,
1953       36,    37,    38,    39,    40,    41,    -1,    -1,    30,    -1,
1954       32,    47,    89,    90,    50,    -1,    -1,    -1,    -1,    55,
1955       56,    57,    -1,    -1,    60,    61,    -1,    -1,     1,    65,
1956        3,     4,     5,     6,     7,     8,    12,    -1,    -1,    -1,
1957       -1,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
1958       -1,    -1,    -1,    89,    90,    -1,    29,    30,    -1,    32,
1959       33,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,
1960       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1961       56,    57,    58,    59,    57,    -1,    -1,    -1,    -1,    42,
1962       43,    44,    65,    46,    47,    48,    49,    50,    51,    52,
1963       53,    54,    55,    56,    57,    58,    59,    -1,    -1,    -1,
1964       -1,    -1,    -1,    -1,    87,    42,    43,    44,    94,    46,
1965       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1966       57,    58,    59,    -1,    -1,    -1,    -1,    -1,    42,    43,
1967       44,    94,    46,    47,    48,    49,    50,    51,    52,    53,
1968       54,    55,    56,    57,    58,    59,    -1,    -1,    -1,    -1,
1969       -1,    -1,    -1,    -1,    42,    43,    44,    94,    46,    47,
1970       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1971       58,    59,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
1972       94,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1973       55,    56,    57,    58,    59,    -1,    -1,    -1,    -1,    -1,
1974       -1,    -1,    -1,    42,    43,    44,    94,    46,    47,    48,
1975       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1976       59,    -1,    -1,    -1,    42,    43,    44,    92,    46,    47,
1977       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1978       58,    59,    -1,    -1,    12,    -1,    -1,    -1,    -1,    42,
1979       43,    44,    91,    46,    47,    48,    49,    50,    51,    52,
1980       53,    54,    55,    56,    57,    58,    59,    -1,    -1,    -1,
1981       -1,    -1,    -1,    91,    42,    43,    44,    45,    46,    47,
1982       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1983       58,    59,    -1,     1,    -1,    -1,     4,    -1,    91,     7,
1984        8,     4,     5,     6,     7,     8,    14,    15,    16,    12,
1985       -1,    14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
1986       -1,    -1,    30,    -1,    32,    -1,    -1,    30,    -1,    32,
1987        4,     5,     6,     7,     8,     4,     5,     6,     7,     8,
1988       14,    15,    16,    -1,    -1,    14,    15,    16,    -1,    -1,
1989       -1,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    -1,
1990       -1,    30,    -1,    32,     4,     5,     6,     7,     8,    -1,
1991       -1,    -1,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,
1992       -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,    -1,    -1,
1993       30,    -1,    32,    42,    43,    44,    -1,    46,    47,    48,
1994       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1995       59,     4,     5,     6,     7,     8,     4,     5,     6,     7,
1996        8,    14,    15,    16,    -1,    -1,    14,    15,    16,     4,
1997        5,     6,     7,     8,    -1,    -1,    -1,    30,    -1,    14,
1998       15,    16,    30,    -1,    -1,    -1,     4,     5,     6,     7,
1999        8,    -1,    -1,    -1,    -1,    30,    14,    15,    16,    48,
2000       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2001       59,    -1,    30,    42,    43,    44,    45,    46,    47,    48,
2002       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2003       59,    42,    43,    44,    -1,    46,    47,    48,    49,    50,
2004       51,    52,    53,    54,    55,    56,    57,    58,    59,    44,
2005       -1,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2006       55,    56,    57,    58,    59,    47,    48,    49,    50,    51,
2007       52,    53,    54,    55,    56,    57,    58,    59,    50,    51,
2008       52,    53,    54,    55,    56,    57,    58,    59
2009 };
2010
2011 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2012    symbol of state STATE-NUM.  */
2013 static const unsigned short int yystos[] =
2014 {
2015        0,    96,    97,   101,     0,   101,    98,    99,     1,     4,
2016        5,     6,     7,     8,    14,    15,    16,    29,    30,    32,
2017       33,    87,   100,   102,   103,   118,   135,   138,   139,   140,
2018      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2019      151,   152,   153,   154,   155,   161,   163,   164,   165,   166,
2020      167,   175,   176,   180,   204,   205,   206,   207,   212,   275,
2021      277,   303,   100,    87,    88,   175,   175,   175,     1,   286,
2022        1,   286,    65,     3,    57,    65,   169,   172,   203,     8,
2023      163,   164,   175,   180,     8,   163,   164,   180,     8,   163,
2024      164,   175,   180,     8,   163,   164,   180,     8,   165,   166,
2025      175,   180,     8,   165,   166,   180,     8,   165,   166,   175,
2026      180,     8,   165,   166,   180,     8,   163,   164,   175,   180,
2027        8,   163,   164,   180,     8,   163,   164,   175,   180,     8,
2028      163,   164,   180,     8,   165,   166,   175,   180,     8,   165,
2029      166,   180,     8,   165,   166,   175,   180,     8,   165,   166,
2030      180,   135,   135,    87,   176,     3,     4,    93,   110,    93,
2031      110,    93,   110,    87,   100,   287,    65,   287,    65,     3,
2032       10,    11,    13,    31,    35,    36,    37,    38,    39,    40,
2033       41,    47,    50,    55,    56,    57,    60,    61,    65,    89,
2034       90,   111,   112,   115,   116,   117,   119,   120,   126,   138,
2035      139,   140,   141,   142,   143,   144,   145,   160,   224,   248,
2036      303,   138,   139,   140,   141,   159,   162,   174,   175,    87,
2037       91,     1,    29,    65,    66,   108,   232,   275,   276,     4,
2038       57,    65,   168,   170,   198,   199,   203,   169,   203,   215,
2039      216,    93,   215,    93,   211,    93,    87,    11,   285,    65,
2040      119,   119,    65,    65,    65,    65,   110,   119,     1,    93,
2041      112,   224,   119,    91,    92,    65,   115,    65,   115,    42,
2042       43,    44,    46,    47,    48,    49,    50,    51,    52,    53,
2043       54,    55,    56,    57,    58,    59,    60,    61,    64,    65,
2044       66,    67,   225,    92,     1,    34,    88,   241,   242,   243,
2045      246,   119,   203,   203,   136,   174,   174,   298,     6,   159,
2046      162,     1,   130,   131,   132,   239,   250,   174,   162,   174,
2047       87,    91,     1,   104,   276,    65,   232,    87,     1,   106,
2048       88,     1,    87,   138,   139,   140,   141,   142,   143,   144,
2049      145,   158,   159,   217,   303,   208,    88,   209,     1,   110,
2050      222,   223,   210,    92,     7,     8,   110,   177,   178,   179,
2051      180,   120,     1,   120,     1,   224,     1,   224,    92,    92,
2052       92,   120,   224,   224,   120,   120,   123,   125,   122,   121,
2053      120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
2054      120,   120,   110,   113,   114,   120,   112,   110,    57,    65,
2055      226,   228,   229,   230,   231,   232,    92,   110,   302,     1,
2056      134,   233,   234,   235,   236,   237,   238,   239,   247,   250,
2057      253,   254,   243,    92,    92,   172,   203,   299,   162,     6,
2058       57,    94,   120,    87,   250,   239,   131,   133,   138,   139,
2059      142,   143,   146,   147,   150,   151,   156,   157,    42,   199,
2060      199,   136,   130,   174,   298,   130,   174,   135,   135,    87,
2061      217,   215,   174,   215,    42,    91,   214,   222,   287,    91,
2062       92,    65,    91,    92,    91,    92,    91,    92,    91,    93,
2063      119,    92,    92,   112,    45,   120,   120,    92,    91,    94,
2064      162,   174,   288,    65,   232,    87,    91,   134,   253,   254,
2065      134,   253,   254,   250,   253,   254,   134,   253,   254,   239,
2066       88,     3,     4,    17,    19,    20,    21,    22,    23,    24,
2067       25,    26,    27,    28,    29,    87,    93,   110,   112,   137,
2068      154,   155,   161,   245,   249,   258,   261,   262,   269,   270,
2069      272,   273,   274,   278,   303,     1,     3,    12,   156,   157,
2070      290,   293,   294,   296,   300,   301,   120,   120,    94,    94,
2071      109,    87,   135,    87,   135,   173,    92,   170,   198,   250,
2072       42,   250,    45,   198,   218,   220,    45,   203,   219,   221,
2073       88,    88,   120,   223,    88,   214,   178,    92,     3,   113,
2074      224,   120,   224,   128,   127,    45,   120,   120,   229,   230,
2075      228,   289,   174,   288,   110,   240,   240,   240,   240,   240,
2076      120,    45,    87,    87,    87,   112,    57,   110,     8,   280,
2077      250,    87,   135,   135,    87,   246,   137,    92,   135,   297,
2078      297,    92,    87,    91,    91,    92,    94,    94,     1,   244,
2079      249,   168,   169,     1,    93,   120,   181,   105,   171,   107,
2080      120,    45,   174,    91,   120,    45,   174,    91,   174,   174,
2081      174,    88,   287,    91,    92,    92,    92,    91,    92,   110,
2082      129,     1,    64,    66,    93,   110,   120,   183,   184,   185,
2083      187,   189,   190,   191,   124,    92,   290,   250,   250,   250,
2084       65,    65,    12,    45,    87,   112,    87,   286,    45,   168,
2085      192,   198,   169,   195,   203,     4,    57,    65,   200,   201,
2086      202,   203,   227,   228,   229,    57,    65,   203,   227,   291,
2087       12,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2088      147,   148,   149,   150,   151,   152,   153,   154,   155,   295,
2089        3,   249,    87,    87,   182,   244,   181,   244,   174,   120,
2090      136,   174,   120,   136,   174,   114,   120,    64,    66,    92,
2091      110,   120,   188,    45,    88,    91,   213,    42,   190,   191,
2092      187,   120,    65,    65,   259,   112,   137,   265,   266,   112,
2093      120,    87,    65,   174,    87,   193,    87,   196,   162,   174,
2094      174,    65,   232,    65,   232,   174,   175,   162,   174,   174,
2095      174,   135,   135,   183,   174,   220,   174,   221,    92,    92,
2096      110,   112,    12,    94,   183,   186,   185,   187,   250,   255,
2097      255,   260,    87,   250,    92,    45,   279,   285,   130,   130,
2098      201,   202,   202,   298,   298,   292,   200,   203,   227,   203,
2099      227,    88,    94,   120,    88,   187,   112,    92,    92,   240,
2100      252,   250,   267,   271,    92,    45,   250,   250,    92,   290,
2101      174,   174,   174,    94,   240,   252,   256,   257,   259,   251,
2102       19,   265,    87,   259,   287,    66,   281,   282,   283,   285,
2103      194,   197,   251,    18,    18,   260,   253,   254,   263,   265,
2104      268,   252,    87,   110,    45,    91,   287,   249,   249,    87,
2105      258,   240,   257,   257,   252,   264,    92,    94,   281,   283,
2106       65,   251,    65,   259,   285,    45,   112,   255,   260,   287,
2107      284,   285,    92,    92,   252,    65,    91,   286,    87,   112,
2108      285,    92,   286
2109 };
2110
2111 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2112 # define YYSIZE_T __SIZE_TYPE__
2113 #endif
2114 #if ! defined (YYSIZE_T) && defined (size_t)
2115 # define YYSIZE_T size_t
2116 #endif
2117 #if ! defined (YYSIZE_T)
2118 # if defined (__STDC__) || defined (__cplusplus)
2119 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2120 #  define YYSIZE_T size_t
2121 # endif
2122 #endif
2123 #if ! defined (YYSIZE_T)
2124 # define YYSIZE_T unsigned int
2125 #endif
2126
2127 #define yyerrok         (yyerrstatus = 0)
2128 #define yyclearin       (yychar = YYEMPTY)
2129 #define YYEMPTY         (-2)
2130 #define YYEOF           0
2131
2132 #define YYACCEPT        goto yyacceptlab
2133 #define YYABORT         goto yyabortlab
2134 #define YYERROR         goto yyerrorlab
2135
2136
2137 /* Like YYERROR except do call yyerror.  This remains here temporarily
2138    to ease the transition to the new meaning of YYERROR, for GCC.
2139    Once GCC version 2 has supplanted version 1, this can go.  */
2140
2141 #define YYFAIL          goto yyerrlab
2142
2143 #define YYRECOVERING()  (!!yyerrstatus)
2144
2145 #define YYBACKUP(Token, Value)                                  \
2146 do                                                              \
2147   if (yychar == YYEMPTY && yylen == 1)                          \
2148     {                                                           \
2149       yychar = (Token);                                         \
2150       yylval = (Value);                                         \
2151       yytoken = YYTRANSLATE (yychar);                           \
2152       YYPOPSTACK;                                               \
2153       goto yybackup;                                            \
2154     }                                                           \
2155   else                                                          \
2156     {                                                           \
2157       yyerror ("syntax error: cannot back up");\
2158       YYERROR;                                                  \
2159     }                                                           \
2160 while (0)
2161
2162
2163 #define YYTERROR        1
2164 #define YYERRCODE       256
2165
2166
2167 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2168    If N is 0, then set CURRENT to the empty location which ends
2169    the previous symbol: RHS[0] (always defined).  */
2170
2171 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2172 #ifndef YYLLOC_DEFAULT
2173 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2174     do                                                                  \
2175       if (N)                                                            \
2176         {                                                               \
2177           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2178           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2179           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2180           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2181         }                                                               \
2182       else                                                              \
2183         {                                                               \
2184           (Current).first_line   = (Current).last_line   =              \
2185             YYRHSLOC (Rhs, 0).last_line;                                \
2186           (Current).first_column = (Current).last_column =              \
2187             YYRHSLOC (Rhs, 0).last_column;                              \
2188         }                                                               \
2189     while (0)
2190 #endif
2191
2192
2193 /* YY_LOCATION_PRINT -- Print the location on the stream.
2194    This macro was not mandated originally: define only if we know
2195    we won't break user code: when these are the locations we know.  */
2196
2197 #ifndef YY_LOCATION_PRINT
2198 # if YYLTYPE_IS_TRIVIAL
2199 #  define YY_LOCATION_PRINT(File, Loc)                  \
2200      fprintf (File, "%d.%d-%d.%d",                      \
2201               (Loc).first_line, (Loc).first_column,     \
2202               (Loc).last_line,  (Loc).last_column)
2203 # else
2204 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2205 # endif
2206 #endif
2207
2208
2209 /* YYLEX -- calling `yylex' with the right arguments.  */
2210
2211 #ifdef YYLEX_PARAM
2212 # define YYLEX yylex (YYLEX_PARAM)
2213 #else
2214 # define YYLEX yylex ()
2215 #endif
2216
2217 /* Enable debugging if requested.  */
2218 #if YYDEBUG
2219
2220 # ifndef YYFPRINTF
2221 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2222 #  define YYFPRINTF fprintf
2223 # endif
2224
2225 # define YYDPRINTF(Args)                        \
2226 do {                                            \
2227   if (yydebug)                                  \
2228     YYFPRINTF Args;                             \
2229 } while (0)
2230
2231 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)          \
2232 do {                                                            \
2233   if (yydebug)                                                  \
2234     {                                                           \
2235       YYFPRINTF (stderr, "%s ", Title);                         \
2236       yysymprint (stderr,                                       \
2237                   Type, Value); \
2238       YYFPRINTF (stderr, "\n");                                 \
2239     }                                                           \
2240 } while (0)
2241
2242 /*------------------------------------------------------------------.
2243 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2244 | TOP (included).                                                   |
2245 `------------------------------------------------------------------*/
2246
2247 #if defined (__STDC__) || defined (__cplusplus)
2248 static void
2249 yy_stack_print (short int *bottom, short int *top)
2250 #else
2251 static void
2252 yy_stack_print (bottom, top)
2253     short int *bottom;
2254     short int *top;
2255 #endif
2256 {
2257   YYFPRINTF (stderr, "Stack now");
2258   for (/* Nothing. */; bottom <= top; ++bottom)
2259     YYFPRINTF (stderr, " %d", *bottom);
2260   YYFPRINTF (stderr, "\n");
2261 }
2262
2263 # define YY_STACK_PRINT(Bottom, Top)                            \
2264 do {                                                            \
2265   if (yydebug)                                                  \
2266     yy_stack_print ((Bottom), (Top));                           \
2267 } while (0)
2268
2269
2270 /*------------------------------------------------.
2271 | Report that the YYRULE is going to be reduced.  |
2272 `------------------------------------------------*/
2273
2274 #if defined (__STDC__) || defined (__cplusplus)
2275 static void
2276 yy_reduce_print (int yyrule)
2277 #else
2278 static void
2279 yy_reduce_print (yyrule)
2280     int yyrule;
2281 #endif
2282 {
2283   int yyi;
2284   unsigned int yylno = yyrline[yyrule];
2285   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
2286              yyrule - 1, yylno);
2287   /* Print the symbols being reduced, and their result.  */
2288   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
2289     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
2290   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
2291 }
2292
2293 # define YY_REDUCE_PRINT(Rule)          \
2294 do {                                    \
2295   if (yydebug)                          \
2296     yy_reduce_print (Rule);             \
2297 } while (0)
2298
2299 /* Nonzero means print parse trace.  It is left uninitialized so that
2300    multiple parsers can coexist.  */
2301 int yydebug;
2302 #else /* !YYDEBUG */
2303 # define YYDPRINTF(Args)
2304 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2305 # define YY_STACK_PRINT(Bottom, Top)
2306 # define YY_REDUCE_PRINT(Rule)
2307 #endif /* !YYDEBUG */
2308
2309
2310 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2311 #ifndef YYINITDEPTH
2312 # define YYINITDEPTH 200
2313 #endif
2314
2315 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2316    if the built-in stack extension method is used).
2317
2318    Do not make this value too large; the results are undefined if
2319    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2320    evaluated with infinite-precision integer arithmetic.  */
2321
2322 #ifndef YYMAXDEPTH
2323 # define YYMAXDEPTH 10000
2324 #endif
2325
2326 \f
2327
2328 #if YYERROR_VERBOSE
2329
2330 # ifndef yystrlen
2331 #  if defined (__GLIBC__) && defined (_STRING_H)
2332 #   define yystrlen strlen
2333 #  else
2334 /* Return the length of YYSTR.  */
2335 static YYSIZE_T
2336 #   if defined (__STDC__) || defined (__cplusplus)
2337 yystrlen (const char *yystr)
2338 #   else
2339 yystrlen (yystr)
2340      const char *yystr;
2341 #   endif
2342 {
2343   register const char *yys = yystr;
2344
2345   while (*yys++ != '\0')
2346     continue;
2347
2348   return yys - yystr - 1;
2349 }
2350 #  endif
2351 # endif
2352
2353 # ifndef yystpcpy
2354 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2355 #   define yystpcpy stpcpy
2356 #  else
2357 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2358    YYDEST.  */
2359 static char *
2360 #   if defined (__STDC__) || defined (__cplusplus)
2361 yystpcpy (char *yydest, const char *yysrc)
2362 #   else
2363 yystpcpy (yydest, yysrc)
2364      char *yydest;
2365      const char *yysrc;
2366 #   endif
2367 {
2368   register char *yyd = yydest;
2369   register const char *yys = yysrc;
2370
2371   while ((*yyd++ = *yys++) != '\0')
2372     continue;
2373
2374   return yyd - 1;
2375 }
2376 #  endif
2377 # endif
2378
2379 #endif /* !YYERROR_VERBOSE */
2380
2381 \f
2382
2383 #if YYDEBUG
2384 /*--------------------------------.
2385 | Print this symbol on YYOUTPUT.  |
2386 `--------------------------------*/
2387
2388 #if defined (__STDC__) || defined (__cplusplus)
2389 static void
2390 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
2391 #else
2392 static void
2393 yysymprint (yyoutput, yytype, yyvaluep)
2394     FILE *yyoutput;
2395     int yytype;
2396     YYSTYPE *yyvaluep;
2397 #endif
2398 {
2399   /* Pacify ``unused variable'' warnings.  */
2400   (void) yyvaluep;
2401
2402   if (yytype < YYNTOKENS)
2403     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2404   else
2405     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2406
2407
2408 # ifdef YYPRINT
2409   if (yytype < YYNTOKENS)
2410     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2411 # endif
2412   switch (yytype)
2413     {
2414       default:
2415         break;
2416     }
2417   YYFPRINTF (yyoutput, ")");
2418 }
2419
2420 #endif /* ! YYDEBUG */
2421 /*-----------------------------------------------.
2422 | Release the memory associated to this symbol.  |
2423 `-----------------------------------------------*/
2424
2425 #if defined (__STDC__) || defined (__cplusplus)
2426 static void
2427 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2428 #else
2429 static void
2430 yydestruct (yymsg, yytype, yyvaluep)
2431     const char *yymsg;
2432     int yytype;
2433     YYSTYPE *yyvaluep;
2434 #endif
2435 {
2436   /* Pacify ``unused variable'' warnings.  */
2437   (void) yyvaluep;
2438
2439   if (!yymsg)
2440     yymsg = "Deleting";
2441   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2442
2443   switch (yytype)
2444     {
2445
2446       default:
2447         break;
2448     }
2449 }
2450 \f
2451
2452 /* Prevent warnings from -Wmissing-prototypes.  */
2453
2454 #ifdef YYPARSE_PARAM
2455 # if defined (__STDC__) || defined (__cplusplus)
2456 int yyparse (void *YYPARSE_PARAM);
2457 # else
2458 int yyparse ();
2459 # endif
2460 #else /* ! YYPARSE_PARAM */
2461 #if defined (__STDC__) || defined (__cplusplus)
2462 int yyparse (void);
2463 #else
2464 int yyparse ();
2465 #endif
2466 #endif /* ! YYPARSE_PARAM */
2467
2468
2469
2470 /* The look-ahead symbol.  */
2471 int yychar;
2472
2473 /* The semantic value of the look-ahead symbol.  */
2474 YYSTYPE yylval;
2475
2476 /* Number of syntax errors so far.  */
2477 int yynerrs;
2478
2479
2480
2481 /*----------.
2482 | yyparse.  |
2483 `----------*/
2484
2485 #ifdef YYPARSE_PARAM
2486 # if defined (__STDC__) || defined (__cplusplus)
2487 int yyparse (void *YYPARSE_PARAM)
2488 # else
2489 int yyparse (YYPARSE_PARAM)
2490   void *YYPARSE_PARAM;
2491 # endif
2492 #else /* ! YYPARSE_PARAM */
2493 #if defined (__STDC__) || defined (__cplusplus)
2494 int
2495 yyparse (void)
2496 #else
2497 int
2498 yyparse ()
2499
2500 #endif
2501 #endif
2502 {
2503   
2504   register int yystate;
2505   register int yyn;
2506   int yyresult;
2507   /* Number of tokens to shift before error messages enabled.  */
2508   int yyerrstatus;
2509   /* Look-ahead token as an internal (translated) token number.  */
2510   int yytoken = 0;
2511
2512   /* Three stacks and their tools:
2513      `yyss': related to states,
2514      `yyvs': related to semantic values,
2515      `yyls': related to locations.
2516
2517      Refer to the stacks thru separate pointers, to allow yyoverflow
2518      to reallocate them elsewhere.  */
2519
2520   /* The state stack.  */
2521   short int yyssa[YYINITDEPTH];
2522   short int *yyss = yyssa;
2523   register short int *yyssp;
2524
2525   /* The semantic value stack.  */
2526   YYSTYPE yyvsa[YYINITDEPTH];
2527   YYSTYPE *yyvs = yyvsa;
2528   register YYSTYPE *yyvsp;
2529
2530
2531
2532 #define YYPOPSTACK   (yyvsp--, yyssp--)
2533
2534   YYSIZE_T yystacksize = YYINITDEPTH;
2535
2536   /* The variables used to return semantic value and location from the
2537      action routines.  */
2538   YYSTYPE yyval;
2539
2540
2541   /* When reducing, the number of symbols on the RHS of the reduced
2542      rule.  */
2543   int yylen;
2544
2545   YYDPRINTF ((stderr, "Starting parse\n"));
2546
2547   yystate = 0;
2548   yyerrstatus = 0;
2549   yynerrs = 0;
2550   yychar = YYEMPTY;             /* Cause a token to be read.  */
2551
2552   /* Initialize stack pointers.
2553      Waste one element of value and location stack
2554      so that they stay on the same level as the state stack.
2555      The wasted elements are never initialized.  */
2556
2557   yyssp = yyss;
2558   yyvsp = yyvs;
2559
2560
2561   yyvsp[0] = yylval;
2562
2563   goto yysetstate;
2564
2565 /*------------------------------------------------------------.
2566 | yynewstate -- Push a new state, which is found in yystate.  |
2567 `------------------------------------------------------------*/
2568  yynewstate:
2569   /* In all cases, when you get here, the value and location stacks
2570      have just been pushed. so pushing a state here evens the stacks.
2571      */
2572   yyssp++;
2573
2574  yysetstate:
2575   *yyssp = yystate;
2576
2577   if (yyss + yystacksize - 1 <= yyssp)
2578     {
2579       /* Get the current used size of the three stacks, in elements.  */
2580       YYSIZE_T yysize = yyssp - yyss + 1;
2581
2582 #ifdef yyoverflow
2583       {
2584         /* Give user a chance to reallocate the stack. Use copies of
2585            these so that the &'s don't force the real ones into
2586            memory.  */
2587         YYSTYPE *yyvs1 = yyvs;
2588         short int *yyss1 = yyss;
2589
2590
2591         /* Each stack pointer address is followed by the size of the
2592            data in use in that stack, in bytes.  This used to be a
2593            conditional around just the two extra args, but that might
2594            be undefined if yyoverflow is a macro.  */
2595         yyoverflow ("parser stack overflow",
2596                     &yyss1, yysize * sizeof (*yyssp),
2597                     &yyvs1, yysize * sizeof (*yyvsp),
2598
2599                     &yystacksize);
2600
2601         yyss = yyss1;
2602         yyvs = yyvs1;
2603       }
2604 #else /* no yyoverflow */
2605 # ifndef YYSTACK_RELOCATE
2606       goto yyoverflowlab;
2607 # else
2608       /* Extend the stack our own way.  */
2609       if (YYMAXDEPTH <= yystacksize)
2610         goto yyoverflowlab;
2611       yystacksize *= 2;
2612       if (YYMAXDEPTH < yystacksize)
2613         yystacksize = YYMAXDEPTH;
2614
2615       {
2616         short int *yyss1 = yyss;
2617         union yyalloc *yyptr =
2618           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2619         if (! yyptr)
2620           goto yyoverflowlab;
2621         YYSTACK_RELOCATE (yyss);
2622         YYSTACK_RELOCATE (yyvs);
2623
2624 #  undef YYSTACK_RELOCATE
2625         if (yyss1 != yyssa)
2626           YYSTACK_FREE (yyss1);
2627       }
2628 # endif
2629 #endif /* no yyoverflow */
2630
2631       yyssp = yyss + yysize - 1;
2632       yyvsp = yyvs + yysize - 1;
2633
2634
2635       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2636                   (unsigned long int) yystacksize));
2637
2638       if (yyss + yystacksize - 1 <= yyssp)
2639         YYABORT;
2640     }
2641
2642   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2643
2644   goto yybackup;
2645
2646 /*-----------.
2647 | yybackup.  |
2648 `-----------*/
2649 yybackup:
2650
2651 /* Do appropriate processing given the current state.  */
2652 /* Read a look-ahead token if we need one and don't already have one.  */
2653 /* yyresume: */
2654
2655   /* First try to decide what to do without reference to look-ahead token.  */
2656
2657   yyn = yypact[yystate];
2658   if (yyn == YYPACT_NINF)
2659     goto yydefault;
2660
2661   /* Not known => get a look-ahead token if don't already have one.  */
2662
2663   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
2664   if (yychar == YYEMPTY)
2665     {
2666       YYDPRINTF ((stderr, "Reading a token: "));
2667       yychar = YYLEX;
2668     }
2669
2670   if (yychar <= YYEOF)
2671     {
2672       yychar = yytoken = YYEOF;
2673       YYDPRINTF ((stderr, "Now at end of input.\n"));
2674     }
2675   else
2676     {
2677       yytoken = YYTRANSLATE (yychar);
2678       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2679     }
2680
2681   /* If the proper action on seeing token YYTOKEN is to reduce or to
2682      detect an error, take that action.  */
2683   yyn += yytoken;
2684   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2685     goto yydefault;
2686   yyn = yytable[yyn];
2687   if (yyn <= 0)
2688     {
2689       if (yyn == 0 || yyn == YYTABLE_NINF)
2690         goto yyerrlab;
2691       yyn = -yyn;
2692       goto yyreduce;
2693     }
2694
2695   if (yyn == YYFINAL)
2696     YYACCEPT;
2697
2698   /* Shift the look-ahead token.  */
2699   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2700
2701   /* Discard the token being shifted unless it is eof.  */
2702   if (yychar != YYEOF)
2703     yychar = YYEMPTY;
2704
2705   *++yyvsp = yylval;
2706
2707
2708   /* Count tokens shifted since error; after three, turn off error
2709      status.  */
2710   if (yyerrstatus)
2711     yyerrstatus--;
2712
2713   yystate = yyn;
2714   goto yynewstate;
2715
2716
2717 /*-----------------------------------------------------------.
2718 | yydefault -- do the default action for the current state.  |
2719 `-----------------------------------------------------------*/
2720 yydefault:
2721   yyn = yydefact[yystate];
2722   if (yyn == 0)
2723     goto yyerrlab;
2724   goto yyreduce;
2725
2726
2727 /*-----------------------------.
2728 | yyreduce -- Do a reduction.  |
2729 `-----------------------------*/
2730 yyreduce:
2731   /* yyn is the number of a rule to reduce with.  */
2732   yylen = yyr2[yyn];
2733
2734   /* If YYLEN is nonzero, implement the default value of the action:
2735      `$$ = $1'.
2736
2737      Otherwise, the following line sets YYVAL to garbage.
2738      This behavior is undocumented and Bison
2739      users should not rely upon it.  Assigning to YYVAL
2740      unconditionally makes the parser a bit smaller, and it avoids a
2741      GCC warning that YYVAL may be used uninitialized.  */
2742   yyval = yyvsp[1-yylen];
2743
2744
2745   YY_REDUCE_PRINT (yyn);
2746   switch (yyn)
2747     {
2748         case 2:
2749 #line 342 "c-parse.y"
2750     { if (pedantic)
2751                     pedwarn ("ISO C forbids an empty source file");
2752                 ;}
2753     break;
2754
2755   case 4:
2756 #line 353 "c-parse.y"
2757     { (yyval.dsptype) = NULL; ;}
2758     break;
2759
2760   case 5:
2761 #line 354 "c-parse.y"
2762     { obstack_free (&parser_obstack, (yyvsp[-2].otype)); ;}
2763     break;
2764
2765   case 6:
2766 #line 356 "c-parse.y"
2767     { (yyval.dsptype) = NULL; ggc_collect (); ;}
2768     break;
2769
2770   case 7:
2771 #line 357 "c-parse.y"
2772     { obstack_free (&parser_obstack, (yyvsp[-2].otype)); ;}
2773     break;
2774
2775   case 11:
2776 #line 365 "c-parse.y"
2777     { RESTORE_EXT_FLAGS ((yyvsp[-1].itype)); ;}
2778     break;
2779
2780   case 12:
2781 #line 371 "c-parse.y"
2782     { (yyval.otype) = obstack_alloc (&parser_obstack, 0); ;}
2783     break;
2784
2785   case 13:
2786 #line 376 "c-parse.y"
2787     { pedwarn ("data definition has no type or storage class");
2788                   POP_DECLSPEC_STACK; ;}
2789     break;
2790
2791   case 14:
2792 #line 379 "c-parse.y"
2793     { POP_DECLSPEC_STACK; ;}
2794     break;
2795
2796   case 15:
2797 #line 381 "c-parse.y"
2798     { POP_DECLSPEC_STACK; ;}
2799     break;
2800
2801   case 16:
2802 #line 383 "c-parse.y"
2803     { shadow_tag (finish_declspecs ((yyvsp[-1].dsptype))); ;}
2804     break;
2805
2806   case 19:
2807 #line 387 "c-parse.y"
2808     { if (pedantic)
2809                     pedwarn ("ISO C does not allow extra %<;%> outside of a function"); ;}
2810     break;
2811
2812   case 20:
2813 #line 393 "c-parse.y"
2814     { if (!start_function (current_declspecs, (yyvsp[0].dtrtype),
2815                                        all_prefix_attributes))
2816                     YYERROR1;
2817                 ;}
2818     break;
2819
2820   case 21:
2821 #line 398 "c-parse.y"
2822     { DECL_SOURCE_LOCATION (current_function_decl) = (yyvsp[0].location);
2823                   store_parm_decls (); ;}
2824     break;
2825
2826   case 22:
2827 #line 401 "c-parse.y"
2828     { finish_function ();
2829                   POP_DECLSPEC_STACK; ;}
2830     break;
2831
2832   case 23:
2833 #line 404 "c-parse.y"
2834     { POP_DECLSPEC_STACK; ;}
2835     break;
2836
2837   case 24:
2838 #line 406 "c-parse.y"
2839     { if (!start_function (current_declspecs, (yyvsp[0].dtrtype),
2840                                        all_prefix_attributes))
2841                     YYERROR1;
2842                 ;}
2843     break;
2844
2845   case 25:
2846 #line 411 "c-parse.y"
2847     { DECL_SOURCE_LOCATION (current_function_decl) = (yyvsp[0].location);
2848                   store_parm_decls (); ;}
2849     break;
2850
2851   case 26:
2852 #line 414 "c-parse.y"
2853     { finish_function ();
2854                   POP_DECLSPEC_STACK; ;}
2855     break;
2856
2857   case 27:
2858 #line 417 "c-parse.y"
2859     { POP_DECLSPEC_STACK; ;}
2860     break;
2861
2862   case 28:
2863 #line 419 "c-parse.y"
2864     { if (!start_function (current_declspecs, (yyvsp[0].dtrtype),
2865                                        all_prefix_attributes))
2866                     YYERROR1;
2867                 ;}
2868     break;
2869
2870   case 29:
2871 #line 424 "c-parse.y"
2872     { DECL_SOURCE_LOCATION (current_function_decl) = (yyvsp[0].location);
2873                   store_parm_decls (); ;}
2874     break;
2875
2876   case 30:
2877 #line 427 "c-parse.y"
2878     { finish_function ();
2879                   POP_DECLSPEC_STACK; ;}
2880     break;
2881
2882   case 31:
2883 #line 430 "c-parse.y"
2884     { POP_DECLSPEC_STACK; ;}
2885     break;
2886
2887   case 34:
2888 #line 439 "c-parse.y"
2889     { (yyval.code) = ADDR_EXPR; ;}
2890     break;
2891
2892   case 35:
2893 #line 441 "c-parse.y"
2894     { (yyval.code) = NEGATE_EXPR; ;}
2895     break;
2896
2897   case 36:
2898 #line 443 "c-parse.y"
2899     { (yyval.code) = CONVERT_EXPR;
2900   if (warn_traditional && !in_system_header)
2901     warning ("traditional C rejects the unary plus operator");
2902                 ;}
2903     break;
2904
2905   case 37:
2906 #line 448 "c-parse.y"
2907     { (yyval.code) = PREINCREMENT_EXPR; ;}
2908     break;
2909
2910   case 38:
2911 #line 450 "c-parse.y"
2912     { (yyval.code) = PREDECREMENT_EXPR; ;}
2913     break;
2914
2915   case 39:
2916 #line 452 "c-parse.y"
2917     { (yyval.code) = BIT_NOT_EXPR; ;}
2918     break;
2919
2920   case 40:
2921 #line 454 "c-parse.y"
2922     { (yyval.code) = TRUTH_NOT_EXPR; ;}
2923     break;
2924
2925   case 42:
2926 #line 459 "c-parse.y"
2927     { (yyval.exprtype).value = build_compound_expr ((yyvsp[-2].exprtype).value, (yyvsp[0].exprtype).value);
2928                   (yyval.exprtype).original_code = COMPOUND_EXPR; ;}
2929     break;
2930
2931   case 43:
2932 #line 465 "c-parse.y"
2933     { (yyval.ttype) = NULL_TREE; ;}
2934     break;
2935
2936   case 45:
2937 #line 471 "c-parse.y"
2938     { (yyval.ttype) = build_tree_list (NULL_TREE, (yyvsp[0].exprtype).value); ;}
2939     break;
2940
2941   case 46:
2942 #line 473 "c-parse.y"
2943     { chainon ((yyvsp[-2].ttype), build_tree_list (NULL_TREE, (yyvsp[0].exprtype).value)); ;}
2944     break;
2945
2946   case 48:
2947 #line 479 "c-parse.y"
2948     { (yyval.exprtype).value = build_indirect_ref ((yyvsp[0].exprtype).value, "unary *");
2949                   (yyval.exprtype).original_code = ERROR_MARK; ;}
2950     break;
2951
2952   case 49:
2953 #line 483 "c-parse.y"
2954     { (yyval.exprtype) = (yyvsp[0].exprtype);
2955                   RESTORE_EXT_FLAGS ((yyvsp[-1].itype)); ;}
2956     break;
2957
2958   case 50:
2959 #line 486 "c-parse.y"
2960     { (yyval.exprtype).value = build_unary_op ((yyvsp[-1].code), (yyvsp[0].exprtype).value, 0);
2961                   overflow_warning ((yyval.exprtype).value);
2962                   (yyval.exprtype).original_code = ERROR_MARK; ;}
2963     break;
2964
2965   case 51:
2966 #line 491 "c-parse.y"
2967     { (yyval.exprtype).value = finish_label_address_expr ((yyvsp[0].ttype));
2968                   (yyval.exprtype).original_code = ERROR_MARK; ;}
2969     break;
2970
2971   case 52:
2972 #line 494 "c-parse.y"
2973     { skip_evaluation--;
2974                   in_sizeof--;
2975                   if (TREE_CODE ((yyvsp[0].exprtype).value) == COMPONENT_REF
2976                       && DECL_C_BIT_FIELD (TREE_OPERAND ((yyvsp[0].exprtype).value, 1)))
2977                     error ("%<sizeof%> applied to a bit-field");
2978                   (yyval.exprtype) = c_expr_sizeof_expr ((yyvsp[0].exprtype)); ;}
2979     break;
2980
2981   case 53:
2982 #line 501 "c-parse.y"
2983     { skip_evaluation--;
2984                   in_sizeof--;
2985                   (yyval.exprtype) = c_expr_sizeof_type ((yyvsp[-1].typenametype)); ;}
2986     break;
2987
2988   case 54:
2989 #line 505 "c-parse.y"
2990     { skip_evaluation--;
2991                   in_alignof--;
2992                   (yyval.exprtype).value = c_alignof_expr ((yyvsp[0].exprtype).value);
2993                   (yyval.exprtype).original_code = ERROR_MARK; ;}
2994     break;
2995
2996   case 55:
2997 #line 510 "c-parse.y"
2998     { skip_evaluation--;
2999                   in_alignof--;
3000                   (yyval.exprtype).value = c_alignof (groktypename ((yyvsp[-1].typenametype)));
3001                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3002     break;
3003
3004   case 56:
3005 #line 515 "c-parse.y"
3006     { (yyval.exprtype).value = build_unary_op (REALPART_EXPR, (yyvsp[0].exprtype).value, 0);
3007                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3008     break;
3009
3010   case 57:
3011 #line 518 "c-parse.y"
3012     { (yyval.exprtype).value = build_unary_op (IMAGPART_EXPR, (yyvsp[0].exprtype).value, 0);
3013                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3014     break;
3015
3016   case 58:
3017 #line 523 "c-parse.y"
3018     { skip_evaluation++; in_sizeof++; ;}
3019     break;
3020
3021   case 59:
3022 #line 527 "c-parse.y"
3023     { skip_evaluation++; in_alignof++; ;}
3024     break;
3025
3026   case 60:
3027 #line 531 "c-parse.y"
3028     { skip_evaluation++; in_typeof++; ;}
3029     break;
3030
3031   case 62:
3032 #line 537 "c-parse.y"
3033     { (yyval.exprtype).value = c_cast_expr ((yyvsp[-2].typenametype), (yyvsp[0].exprtype).value);
3034                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3035     break;
3036
3037   case 64:
3038 #line 544 "c-parse.y"
3039     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3040     break;
3041
3042   case 65:
3043 #line 546 "c-parse.y"
3044     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3045     break;
3046
3047   case 66:
3048 #line 548 "c-parse.y"
3049     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3050     break;
3051
3052   case 67:
3053 #line 550 "c-parse.y"
3054     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3055     break;
3056
3057   case 68:
3058 #line 552 "c-parse.y"
3059     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3060     break;
3061
3062   case 69:
3063 #line 554 "c-parse.y"
3064     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3065     break;
3066
3067   case 70:
3068 #line 556 "c-parse.y"
3069     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3070     break;
3071
3072   case 71:
3073 #line 558 "c-parse.y"
3074     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3075     break;
3076
3077   case 72:
3078 #line 560 "c-parse.y"
3079     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3080     break;
3081
3082   case 73:
3083 #line 562 "c-parse.y"
3084     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3085     break;
3086
3087   case 74:
3088 #line 564 "c-parse.y"
3089     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3090     break;
3091
3092   case 75:
3093 #line 566 "c-parse.y"
3094     { (yyval.exprtype) = parser_build_binary_op ((yyvsp[-1].code), (yyvsp[-2].exprtype), (yyvsp[0].exprtype)); ;}
3095     break;
3096
3097   case 76:
3098 #line 568 "c-parse.y"
3099     { (yyvsp[-1].exprtype).value = lang_hooks.truthvalue_conversion
3100                     (default_conversion ((yyvsp[-1].exprtype).value));
3101                   skip_evaluation += (yyvsp[-1].exprtype).value == truthvalue_false_node; ;}
3102     break;
3103
3104   case 77:
3105 #line 572 "c-parse.y"
3106     { skip_evaluation -= (yyvsp[-3].exprtype).value == truthvalue_false_node;
3107                   (yyval.exprtype) = parser_build_binary_op (TRUTH_ANDIF_EXPR, (yyvsp[-3].exprtype), (yyvsp[0].exprtype)); ;}
3108     break;
3109
3110   case 78:
3111 #line 575 "c-parse.y"
3112     { (yyvsp[-1].exprtype).value = lang_hooks.truthvalue_conversion
3113                     (default_conversion ((yyvsp[-1].exprtype).value));
3114                   skip_evaluation += (yyvsp[-1].exprtype).value == truthvalue_true_node; ;}
3115     break;
3116
3117   case 79:
3118 #line 579 "c-parse.y"
3119     { skip_evaluation -= (yyvsp[-3].exprtype).value == truthvalue_true_node;
3120                   (yyval.exprtype) = parser_build_binary_op (TRUTH_ORIF_EXPR, (yyvsp[-3].exprtype), (yyvsp[0].exprtype)); ;}
3121     break;
3122
3123   case 80:
3124 #line 582 "c-parse.y"
3125     { (yyvsp[-1].exprtype).value = lang_hooks.truthvalue_conversion
3126                     (default_conversion ((yyvsp[-1].exprtype).value));
3127                   skip_evaluation += (yyvsp[-1].exprtype).value == truthvalue_false_node; ;}
3128     break;
3129
3130   case 81:
3131 #line 586 "c-parse.y"
3132     { skip_evaluation += (((yyvsp[-4].exprtype).value == truthvalue_true_node)
3133                                       - ((yyvsp[-4].exprtype).value == truthvalue_false_node)); ;}
3134     break;
3135
3136   case 82:
3137 #line 589 "c-parse.y"
3138     { skip_evaluation -= (yyvsp[-6].exprtype).value == truthvalue_true_node;
3139                   (yyval.exprtype).value = build_conditional_expr ((yyvsp[-6].exprtype).value, (yyvsp[-3].exprtype).value,
3140                                                      (yyvsp[0].exprtype).value);
3141                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3142     break;
3143
3144   case 83:
3145 #line 594 "c-parse.y"
3146     { if (pedantic)
3147                     pedwarn ("ISO C forbids omitting the middle term of a ?: expression");
3148                   /* Make sure first operand is calculated only once.  */
3149                   (yyvsp[0].ttype) = save_expr (default_conversion ((yyvsp[-1].exprtype).value));
3150                   (yyvsp[-1].exprtype).value = lang_hooks.truthvalue_conversion ((yyvsp[0].ttype));
3151                   skip_evaluation += (yyvsp[-1].exprtype).value == truthvalue_true_node; ;}
3152     break;
3153
3154   case 84:
3155 #line 601 "c-parse.y"
3156     { skip_evaluation -= (yyvsp[-4].exprtype).value == truthvalue_true_node;
3157                   (yyval.exprtype).value = build_conditional_expr ((yyvsp[-4].exprtype).value, (yyvsp[-3].ttype),
3158                                                      (yyvsp[0].exprtype).value);
3159                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3160     break;
3161
3162   case 85:
3163 #line 606 "c-parse.y"
3164     { (yyval.exprtype).value = build_modify_expr ((yyvsp[-2].exprtype).value, NOP_EXPR, (yyvsp[0].exprtype).value);
3165                   (yyval.exprtype).original_code = MODIFY_EXPR;
3166                 ;}
3167     break;
3168
3169   case 86:
3170 #line 610 "c-parse.y"
3171     { (yyval.exprtype).value = build_modify_expr ((yyvsp[-2].exprtype).value, (yyvsp[-1].code), (yyvsp[0].exprtype).value);
3172                   TREE_NO_WARNING ((yyval.exprtype).value) = 1;
3173                   (yyval.exprtype).original_code = ERROR_MARK;
3174                 ;}
3175     break;
3176
3177   case 87:
3178 #line 618 "c-parse.y"
3179     {
3180                   if (yychar == YYEMPTY)
3181                     yychar = YYLEX;
3182                   (yyval.exprtype).value = build_external_ref ((yyvsp[0].ttype), yychar == '(');
3183                   (yyval.exprtype).original_code = ERROR_MARK;
3184                 ;}
3185     break;
3186
3187   case 88:
3188 #line 625 "c-parse.y"
3189     { (yyval.exprtype).value = (yyvsp[0].ttype); (yyval.exprtype).original_code = ERROR_MARK; ;}
3190     break;
3191
3192   case 89:
3193 #line 627 "c-parse.y"
3194     { (yyval.exprtype).value = (yyvsp[0].ttype); (yyval.exprtype).original_code = STRING_CST; ;}
3195     break;
3196
3197   case 90:
3198 #line 629 "c-parse.y"
3199     { (yyval.exprtype).value = fname_decl (C_RID_CODE ((yyvsp[0].ttype)), (yyvsp[0].ttype));
3200                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3201     break;
3202
3203   case 91:
3204 #line 632 "c-parse.y"
3205     { start_init (NULL_TREE, NULL, 0);
3206                   (yyval.ttype) = groktypename ((yyvsp[-2].typenametype));
3207                   if (C_TYPE_VARIABLE_SIZE ((yyval.ttype)))
3208                     {
3209                       error ("compound literal has variable size");
3210                       (yyval.ttype) = error_mark_node;
3211                     }
3212                   really_start_incremental_init ((yyval.ttype)); ;}
3213     break;
3214
3215   case 92:
3216 #line 641 "c-parse.y"
3217     { struct c_expr init = pop_init_level (0);
3218                   tree constructor = init.value;
3219                   tree type = (yyvsp[-2].ttype);
3220                   finish_init ();
3221                   maybe_warn_string_init (type, init);
3222
3223                   if (pedantic && !flag_isoc99)
3224                     pedwarn ("ISO C90 forbids compound literals");
3225                   (yyval.exprtype).value = build_compound_literal (type, constructor);
3226                   (yyval.exprtype).original_code = ERROR_MARK;
3227                 ;}
3228     break;
3229
3230   case 93:
3231 #line 653 "c-parse.y"
3232     { (yyval.exprtype).value = (yyvsp[-1].exprtype).value;
3233                   if (TREE_CODE ((yyval.exprtype).value) == MODIFY_EXPR)
3234                     TREE_NO_WARNING ((yyval.exprtype).value) = 1;
3235                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3236     break;
3237
3238   case 94:
3239 #line 658 "c-parse.y"
3240     { (yyval.exprtype).value = error_mark_node; (yyval.exprtype).original_code = ERROR_MARK; ;}
3241     break;
3242
3243   case 95:
3244 #line 660 "c-parse.y"
3245     { if (pedantic)
3246                     pedwarn ("ISO C forbids braced-groups within expressions");
3247                   (yyval.exprtype).value = c_finish_stmt_expr ((yyvsp[-2].ttype));
3248                   (yyval.exprtype).original_code = ERROR_MARK;
3249                 ;}
3250     break;
3251
3252   case 96:
3253 #line 666 "c-parse.y"
3254     { c_finish_stmt_expr ((yyvsp[-2].ttype));
3255                   (yyval.exprtype).value = error_mark_node;
3256                   (yyval.exprtype).original_code = ERROR_MARK;
3257                 ;}
3258     break;
3259
3260   case 97:
3261 #line 671 "c-parse.y"
3262     { (yyval.exprtype).value = build_function_call ((yyvsp[-3].exprtype).value, (yyvsp[-1].ttype));
3263                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3264     break;
3265
3266   case 98:
3267 #line 674 "c-parse.y"
3268     { (yyval.exprtype).value = build_va_arg ((yyvsp[-3].exprtype).value, groktypename ((yyvsp[-1].typenametype)));
3269                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3270     break;
3271
3272   case 99:
3273 #line 678 "c-parse.y"
3274     { tree type = groktypename ((yyvsp[-1].typenametype));
3275                   if (type == error_mark_node)
3276                     offsetof_base = error_mark_node;
3277                   else
3278                     offsetof_base = build1 (INDIRECT_REF, type, NULL);
3279                 ;}
3280     break;
3281
3282   case 100:
3283 #line 685 "c-parse.y"
3284     { (yyval.exprtype).value = fold_offsetof ((yyvsp[-1].ttype));
3285                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3286     break;
3287
3288   case 101:
3289 #line 688 "c-parse.y"
3290     { (yyval.exprtype).value = error_mark_node; (yyval.exprtype).original_code = ERROR_MARK; ;}
3291     break;
3292
3293   case 102:
3294 #line 691 "c-parse.y"
3295     {
3296                   tree c;
3297
3298                   c = fold ((yyvsp[-5].exprtype).value);
3299                   STRIP_NOPS (c);
3300                   if (TREE_CODE (c) != INTEGER_CST)
3301                     error ("first argument to %<__builtin_choose_expr%> not"
3302                            " a constant");
3303                   (yyval.exprtype) = integer_zerop (c) ? (yyvsp[-1].exprtype) : (yyvsp[-3].exprtype);
3304                 ;}
3305     break;
3306
3307   case 103:
3308 #line 702 "c-parse.y"
3309     { (yyval.exprtype).value = error_mark_node; (yyval.exprtype).original_code = ERROR_MARK; ;}
3310     break;
3311
3312   case 104:
3313 #line 704 "c-parse.y"
3314     {
3315                   tree e1, e2;
3316
3317                   e1 = TYPE_MAIN_VARIANT (groktypename ((yyvsp[-3].typenametype)));
3318                   e2 = TYPE_MAIN_VARIANT (groktypename ((yyvsp[-1].typenametype)));
3319
3320                   (yyval.exprtype).value = comptypes (e1, e2)
3321                     ? build_int_cst (NULL_TREE, 1)
3322                     : build_int_cst (NULL_TREE, 0);
3323                   (yyval.exprtype).original_code = ERROR_MARK;
3324                 ;}
3325     break;
3326
3327   case 105:
3328 #line 716 "c-parse.y"
3329     { (yyval.exprtype).value = error_mark_node; (yyval.exprtype).original_code = ERROR_MARK; ;}
3330     break;
3331
3332   case 106:
3333 #line 718 "c-parse.y"
3334     { (yyval.exprtype).value = build_array_ref ((yyvsp[-3].exprtype).value, (yyvsp[-1].exprtype).value);
3335                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3336     break;
3337
3338   case 107:
3339 #line 721 "c-parse.y"
3340     { (yyval.exprtype).value = build_component_ref ((yyvsp[-2].exprtype).value, (yyvsp[0].ttype));
3341                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3342     break;
3343
3344   case 108:
3345 #line 724 "c-parse.y"
3346     {
3347                   tree expr = build_indirect_ref ((yyvsp[-2].exprtype).value, "->");
3348                   (yyval.exprtype).value = build_component_ref (expr, (yyvsp[0].ttype));
3349                   (yyval.exprtype).original_code = ERROR_MARK;
3350                 ;}
3351     break;
3352
3353   case 109:
3354 #line 730 "c-parse.y"
3355     { (yyval.exprtype).value = build_unary_op (POSTINCREMENT_EXPR, (yyvsp[-1].exprtype).value, 0);
3356                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3357     break;
3358
3359   case 110:
3360 #line 733 "c-parse.y"
3361     { (yyval.exprtype).value = build_unary_op (POSTDECREMENT_EXPR, (yyvsp[-1].exprtype).value, 0);
3362                   (yyval.exprtype).original_code = ERROR_MARK; ;}
3363     break;
3364
3365   case 111:
3366 #line 743 "c-parse.y"
3367     { (yyval.ttype) = build_component_ref (offsetof_base, (yyvsp[0].ttype)); ;}
3368     break;
3369
3370   case 112:
3371 #line 745 "c-parse.y"
3372     { (yyval.ttype) = build_component_ref ((yyvsp[-2].ttype), (yyvsp[0].ttype)); ;}
3373     break;
3374
3375   case 113:
3376 #line 747 "c-parse.y"
3377     { (yyval.ttype) = build_array_ref ((yyvsp[-3].ttype), (yyvsp[-1].exprtype).value); ;}
3378     break;
3379
3380   case 116:
3381 #line 760 "c-parse.y"
3382     { ;}
3383     break;
3384
3385   case 121:
3386 #line 776 "c-parse.y"
3387     { POP_DECLSPEC_STACK; ;}
3388     break;
3389
3390   case 122:
3391 #line 778 "c-parse.y"
3392     { POP_DECLSPEC_STACK; ;}
3393     break;
3394
3395   case 123:
3396 #line 780 "c-parse.y"
3397     { shadow_tag_warned (finish_declspecs ((yyvsp[-1].dsptype)), 1);
3398                   pedwarn ("empty declaration"); ;}
3399     break;
3400
3401   case 124:
3402 #line 783 "c-parse.y"
3403     { pedwarn ("empty declaration"); ;}
3404     break;
3405
3406   case 125:
3407 #line 792 "c-parse.y"
3408     { ;}
3409     break;
3410
3411   case 126:
3412 #line 800 "c-parse.y"
3413     { pending_xref_error ();
3414                   PUSH_DECLSPEC_STACK;
3415                   if ((yyvsp[0].dsptype))
3416                     {
3417                       prefix_attributes = (yyvsp[0].dsptype)->attrs;
3418                       (yyvsp[0].dsptype)->attrs = NULL_TREE;
3419                       current_declspecs = (yyvsp[0].dsptype);
3420                     }
3421                   else
3422                     {
3423                       prefix_attributes = NULL_TREE;
3424                       current_declspecs = build_null_declspecs ();
3425                     }
3426                   current_declspecs = finish_declspecs (current_declspecs);
3427                   all_prefix_attributes = prefix_attributes; ;}
3428     break;
3429
3430   case 127:
3431 #line 821 "c-parse.y"
3432     { all_prefix_attributes = chainon ((yyvsp[0].ttype), prefix_attributes); ;}
3433     break;
3434
3435   case 128:
3436 #line 826 "c-parse.y"
3437     { POP_DECLSPEC_STACK; ;}
3438     break;
3439
3440   case 129:
3441 #line 828 "c-parse.y"
3442     { POP_DECLSPEC_STACK; ;}
3443     break;
3444
3445   case 130:
3446 #line 830 "c-parse.y"
3447     { POP_DECLSPEC_STACK; ;}
3448     break;
3449
3450   case 131:
3451 #line 832 "c-parse.y"
3452     { POP_DECLSPEC_STACK; ;}
3453     break;
3454
3455   case 132:
3456 #line 834 "c-parse.y"
3457     { shadow_tag (finish_declspecs ((yyvsp[-1].dsptype))); ;}
3458     break;
3459
3460   case 133:
3461 #line 836 "c-parse.y"
3462     { RESTORE_EXT_FLAGS ((yyvsp[-1].itype)); ;}
3463     break;
3464
3465   case 134:
3466 #line 882 "c-parse.y"
3467     { (yyval.dsptype) = declspecs_add_qual (build_null_declspecs (), (yyvsp[0].ttype)); ;}
3468     break;
3469
3470   case 135:
3471 #line 884 "c-parse.y"
3472     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3473     break;
3474
3475   case 136:
3476 #line 886 "c-parse.y"
3477     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3478     break;
3479
3480   case 137:
3481 #line 891 "c-parse.y"
3482     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3483     break;
3484
3485   case 138:
3486 #line 896 "c-parse.y"
3487     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3488     break;
3489
3490   case 139:
3491 #line 898 "c-parse.y"
3492     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3493     break;
3494
3495   case 140:
3496 #line 903 "c-parse.y"
3497     { (yyval.dsptype) = declspecs_add_attrs (build_null_declspecs (), (yyvsp[0].ttype)); ;}
3498     break;
3499
3500   case 141:
3501 #line 905 "c-parse.y"
3502     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3503     break;
3504
3505   case 142:
3506 #line 910 "c-parse.y"
3507     { (yyval.dsptype) = declspecs_add_type (build_null_declspecs (), (yyvsp[0].tstype)); ;}
3508     break;
3509
3510   case 143:
3511 #line 912 "c-parse.y"
3512     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3513     break;
3514
3515   case 144:
3516 #line 914 "c-parse.y"
3517     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3518     break;
3519
3520   case 145:
3521 #line 916 "c-parse.y"
3522     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3523     break;
3524
3525   case 146:
3526 #line 918 "c-parse.y"
3527     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3528     break;
3529
3530   case 147:
3531 #line 920 "c-parse.y"
3532     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3533     break;
3534
3535   case 148:
3536 #line 922 "c-parse.y"
3537     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3538     break;
3539
3540   case 149:
3541 #line 927 "c-parse.y"
3542     { (yyval.dsptype) = declspecs_add_type (build_null_declspecs (), (yyvsp[0].tstype)); ;}
3543     break;
3544
3545   case 150:
3546 #line 929 "c-parse.y"
3547     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3548     break;
3549
3550   case 151:
3551 #line 931 "c-parse.y"
3552     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3553     break;
3554
3555   case 152:
3556 #line 933 "c-parse.y"
3557     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3558     break;
3559
3560   case 153:
3561 #line 935 "c-parse.y"
3562     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3563     break;
3564
3565   case 154:
3566 #line 937 "c-parse.y"
3567     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3568     break;
3569
3570   case 155:
3571 #line 942 "c-parse.y"
3572     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3573     break;
3574
3575   case 156:
3576 #line 944 "c-parse.y"
3577     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3578     break;
3579
3580   case 157:
3581 #line 946 "c-parse.y"
3582     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3583     break;
3584
3585   case 158:
3586 #line 948 "c-parse.y"
3587     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3588     break;
3589
3590   case 159:
3591 #line 950 "c-parse.y"
3592     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3593     break;
3594
3595   case 160:
3596 #line 952 "c-parse.y"
3597     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3598     break;
3599
3600   case 161:
3601 #line 957 "c-parse.y"
3602     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3603     break;
3604
3605   case 162:
3606 #line 959 "c-parse.y"
3607     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3608     break;
3609
3610   case 163:
3611 #line 961 "c-parse.y"
3612     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3613     break;
3614
3615   case 164:
3616 #line 963 "c-parse.y"
3617     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3618     break;
3619
3620   case 165:
3621 #line 965 "c-parse.y"
3622     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3623     break;
3624
3625   case 166:
3626 #line 970 "c-parse.y"
3627     { (yyval.dsptype) = declspecs_add_scspec (build_null_declspecs (), (yyvsp[0].ttype)); ;}
3628     break;
3629
3630   case 167:
3631 #line 972 "c-parse.y"
3632     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3633     break;
3634
3635   case 168:
3636 #line 974 "c-parse.y"
3637     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3638     break;
3639
3640   case 169:
3641 #line 976 "c-parse.y"
3642     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3643     break;
3644
3645   case 170:
3646 #line 978 "c-parse.y"
3647     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3648     break;
3649
3650   case 171:
3651 #line 980 "c-parse.y"
3652     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3653     break;
3654
3655   case 172:
3656 #line 982 "c-parse.y"
3657     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3658     break;
3659
3660   case 173:
3661 #line 987 "c-parse.y"
3662     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3663     break;
3664
3665   case 174:
3666 #line 992 "c-parse.y"
3667     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3668     break;
3669
3670   case 175:
3671 #line 994 "c-parse.y"
3672     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3673     break;
3674
3675   case 176:
3676 #line 996 "c-parse.y"
3677     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3678     break;
3679
3680   case 177:
3681 #line 998 "c-parse.y"
3682     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3683     break;
3684
3685   case 178:
3686 #line 1000 "c-parse.y"
3687     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3688     break;
3689
3690   case 179:
3691 #line 1002 "c-parse.y"
3692     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3693     break;
3694
3695   case 180:
3696 #line 1007 "c-parse.y"
3697     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3698     break;
3699
3700   case 181:
3701 #line 1012 "c-parse.y"
3702     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3703     break;
3704
3705   case 182:
3706 #line 1014 "c-parse.y"
3707     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3708     break;
3709
3710   case 183:
3711 #line 1016 "c-parse.y"
3712     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3713     break;
3714
3715   case 184:
3716 #line 1018 "c-parse.y"
3717     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3718     break;
3719
3720   case 185:
3721 #line 1020 "c-parse.y"
3722     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3723     break;
3724
3725   case 186:
3726 #line 1022 "c-parse.y"
3727     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3728     break;
3729
3730   case 187:
3731 #line 1024 "c-parse.y"
3732     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3733     break;
3734
3735   case 188:
3736 #line 1026 "c-parse.y"
3737     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3738     break;
3739
3740   case 189:
3741 #line 1028 "c-parse.y"
3742     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3743     break;
3744
3745   case 190:
3746 #line 1030 "c-parse.y"
3747     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3748     break;
3749
3750   case 191:
3751 #line 1035 "c-parse.y"
3752     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3753     break;
3754
3755   case 192:
3756 #line 1037 "c-parse.y"
3757     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3758     break;
3759
3760   case 193:
3761 #line 1039 "c-parse.y"
3762     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3763     break;
3764
3765   case 194:
3766 #line 1041 "c-parse.y"
3767     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3768     break;
3769
3770   case 195:
3771 #line 1043 "c-parse.y"
3772     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3773     break;
3774
3775   case 196:
3776 #line 1048 "c-parse.y"
3777     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3778     break;
3779
3780   case 197:
3781 #line 1050 "c-parse.y"
3782     { (yyval.dsptype) = declspecs_add_qual ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3783     break;
3784
3785   case 198:
3786 #line 1052 "c-parse.y"
3787     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3788     break;
3789
3790   case 199:
3791 #line 1054 "c-parse.y"
3792     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3793     break;
3794
3795   case 200:
3796 #line 1056 "c-parse.y"
3797     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3798     break;
3799
3800   case 201:
3801 #line 1058 "c-parse.y"
3802     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3803     break;
3804
3805   case 202:
3806 #line 1060 "c-parse.y"
3807     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3808     break;
3809
3810   case 203:
3811 #line 1062 "c-parse.y"
3812     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3813     break;
3814
3815   case 204:
3816 #line 1064 "c-parse.y"
3817     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3818     break;
3819
3820   case 205:
3821 #line 1066 "c-parse.y"
3822     { (yyval.dsptype) = declspecs_add_scspec ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3823     break;
3824
3825   case 206:
3826 #line 1071 "c-parse.y"
3827     { (yyval.dsptype) = declspecs_add_attrs ((yyvsp[-1].dsptype), (yyvsp[0].ttype)); ;}
3828     break;
3829
3830   case 207:
3831 #line 1073 "c-parse.y"
3832     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3833     break;
3834
3835   case 208:
3836 #line 1075 "c-parse.y"
3837     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3838     break;
3839
3840   case 209:
3841 #line 1077 "c-parse.y"
3842     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3843     break;
3844
3845   case 210:
3846 #line 1079 "c-parse.y"
3847     { (yyval.dsptype) = declspecs_add_type ((yyvsp[-1].dsptype), (yyvsp[0].tstype)); ;}
3848     break;
3849
3850   case 267:
3851 #line 1166 "c-parse.y"
3852     { (yyval.dsptype) = NULL; ;}
3853     break;
3854
3855   case 268:
3856 #line 1168 "c-parse.y"
3857     { (yyval.dsptype) = (yyvsp[0].dsptype); ;}
3858     break;
3859
3860   case 272:
3861 #line 1203 "c-parse.y"
3862     { OBJC_NEED_RAW_IDENTIFIER (1);
3863                   (yyval.tstype).kind = ctsk_resword;
3864                   (yyval.tstype).spec = (yyvsp[0].ttype); ;}
3865     break;
3866
3867   case 275:
3868 #line 1215 "c-parse.y"
3869     { /* For a typedef name, record the meaning, not the name.
3870                      In case of `foo foo, bar;'.  */
3871                   (yyval.tstype).kind = ctsk_typedef;
3872                   (yyval.tstype).spec = lookup_name ((yyvsp[0].ttype)); ;}
3873     break;
3874
3875   case 276:
3876 #line 1220 "c-parse.y"
3877     { skip_evaluation--;
3878                   in_typeof--;
3879                   if (TREE_CODE ((yyvsp[-1].exprtype).value) == COMPONENT_REF
3880                       && DECL_C_BIT_FIELD (TREE_OPERAND ((yyvsp[-1].exprtype).value, 1)))
3881                     error ("%<typeof%> applied to a bit-field");
3882                   (yyval.tstype).kind = ctsk_typeof;
3883                   (yyval.tstype).spec = TREE_TYPE ((yyvsp[-1].exprtype).value);
3884                   pop_maybe_used (variably_modified_type_p ((yyval.tstype).spec,
3885                                                             NULL_TREE)); ;}
3886     break;
3887
3888   case 277:
3889 #line 1230 "c-parse.y"
3890     { skip_evaluation--;
3891                   in_typeof--;
3892                   (yyval.tstype).kind = ctsk_typeof;
3893                   (yyval.tstype).spec = groktypename ((yyvsp[-1].typenametype));
3894                   pop_maybe_used (variably_modified_type_p ((yyval.tstype).spec,
3895                                                             NULL_TREE)); ;}
3896     break;
3897
3898   case 282:
3899 #line 1252 "c-parse.y"
3900     { (yyval.ttype) = start_decl ((yyvsp[-3].dtrtype), current_declspecs, true,
3901                                           chainon ((yyvsp[-1].ttype), all_prefix_attributes));
3902                   if (!(yyval.ttype))
3903                     (yyval.ttype) = error_mark_node;
3904                   start_init ((yyval.ttype), (yyvsp[-2].ttype), global_bindings_p ()); ;}
3905     break;
3906
3907   case 283:
3908 #line 1259 "c-parse.y"
3909     { finish_init ();
3910                   if ((yyvsp[-1].ttype) != error_mark_node)
3911                     {
3912                       maybe_warn_string_init (TREE_TYPE ((yyvsp[-1].ttype)), (yyvsp[0].exprtype));
3913                       finish_decl ((yyvsp[-1].ttype), (yyvsp[0].exprtype).value, (yyvsp[-4].ttype));
3914                     }
3915                 ;}
3916     break;
3917
3918   case 284:
3919 #line 1267 "c-parse.y"
3920     { tree d = start_decl ((yyvsp[-2].dtrtype), current_declspecs, false,
3921                                        chainon ((yyvsp[0].ttype), all_prefix_attributes));
3922                   if (d)
3923                     finish_decl (d, NULL_TREE, (yyvsp[-1].ttype));
3924                 ;}
3925     break;
3926
3927   case 285:
3928 #line 1276 "c-parse.y"
3929     { (yyval.ttype) = start_decl ((yyvsp[-3].dtrtype), current_declspecs, true,
3930                                           chainon ((yyvsp[-1].ttype), all_prefix_attributes));
3931                   if (!(yyval.ttype))
3932                     (yyval.ttype) = error_mark_node;
3933                   start_init ((yyval.ttype), (yyvsp[-2].ttype), global_bindings_p ()); ;}
3934     break;
3935
3936   case 286:
3937 #line 1283 "c-parse.y"
3938     { finish_init ();
3939                   if ((yyvsp[-1].ttype) != error_mark_node)
3940                     {
3941                       maybe_warn_string_init (TREE_TYPE ((yyvsp[-1].ttype)), (yyvsp[0].exprtype));
3942                       finish_decl ((yyvsp[-1].ttype), (yyvsp[0].exprtype).value, (yyvsp[-4].ttype));
3943                     }
3944                 ;}
3945     break;
3946
3947   case 287:
3948 #line 1291 "c-parse.y"
3949     { tree d = start_decl ((yyvsp[-2].dtrtype), current_declspecs, false,
3950                                        chainon ((yyvsp[0].ttype), all_prefix_attributes));
3951                   if (d)
3952                     finish_decl (d, NULL_TREE, (yyvsp[-1].ttype)); ;}
3953     break;
3954
3955   case 288:
3956 #line 1300 "c-parse.y"
3957     { (yyval.ttype) = NULL_TREE; ;}
3958     break;
3959
3960   case 289:
3961 #line 1302 "c-parse.y"
3962     { (yyval.ttype) = (yyvsp[0].ttype); ;}
3963     break;
3964
3965   case 290:
3966 #line 1307 "c-parse.y"
3967     { (yyval.ttype) = (yyvsp[0].ttype); ;}
3968     break;
3969
3970   case 291:
3971 #line 1309 "c-parse.y"
3972     { (yyval.ttype) = chainon ((yyvsp[-1].ttype), (yyvsp[0].ttype)); ;}
3973     break;
3974
3975   case 292:
3976 #line 1315 "c-parse.y"
3977     { (yyval.ttype) = (yyvsp[-3].ttype); ;}
3978     break;
3979
3980   case 293:
3981 #line 1317 "c-parse.y"
3982     { (yyval.ttype) = NULL_TREE; ;}
3983     break;
3984
3985   case 294:
3986 #line 1322 "c-parse.y"
3987     { (yyval.ttype) = (yyvsp[0].ttype); ;}
3988     break;
3989
3990   case 295:
3991 #line 1324 "c-parse.y"
3992     { (yyval.ttype) = chainon ((yyvsp[-2].ttype), (yyvsp[0].ttype)); ;}
3993     break;
3994
3995   case 296:
3996 #line 1329 "c-parse.y"
3997     { (yyval.ttype) = NULL_TREE; ;}
3998     break;
3999
4000   case 297:
4001 #line 1331 "c-parse.y"
4002     { (yyval.ttype) = build_tree_list ((yyvsp[0].ttype), NULL_TREE); ;}
4003     break;
4004
4005   case 298:
4006 #line 1333 "c-parse.y"
4007     { (yyval.ttype) = build_tree_list ((yyvsp[-3].ttype), build_tree_list (NULL_TREE, (yyvsp[-1].ttype))); ;}
4008     break;
4009
4010   case 299:
4011 #line 1335 "c-parse.y"
4012     { (yyval.ttype) = build_tree_list ((yyvsp[-5].ttype), tree_cons (NULL_TREE, (yyvsp[-3].ttype), (yyvsp[-1].ttype))); ;}
4013     break;
4014
4015   case 300:
4016 #line 1337 "c-parse.y"
4017     { (yyval.ttype) = build_tree_list ((yyvsp[-3].ttype), (yyvsp[-1].ttype)); ;}
4018     break;
4019
4020   case 307:
4021 #line 1359 "c-parse.y"
4022     { (yyval.exprtype) = (yyvsp[0].exprtype); ;}
4023     break;
4024
4025   case 308:
4026 #line 1361 "c-parse.y"
4027     { really_start_incremental_init (NULL_TREE); ;}
4028     break;
4029
4030   case 309:
4031 #line 1363 "c-parse.y"
4032     { (yyval.exprtype) = pop_init_level (0); ;}
4033     break;
4034
4035   case 310:
4036 #line 1365 "c-parse.y"
4037     { (yyval.exprtype).value = error_mark_node; (yyval.exprtype).original_code = ERROR_MARK; ;}
4038     break;
4039
4040   case 311:
4041 #line 1371 "c-parse.y"
4042     { if (pedantic)
4043                     pedwarn ("ISO C forbids empty initializer braces"); ;}
4044     break;
4045
4046   case 315:
4047 #line 1385 "c-parse.y"
4048     { if (pedantic && !flag_isoc99)
4049                     pedwarn ("ISO C90 forbids specifying subobject to initialize"); ;}
4050     break;
4051
4052   case 316:
4053 #line 1388 "c-parse.y"
4054     { if (pedantic)
4055                     pedwarn ("obsolete use of designated initializer without %<=%>"); ;}
4056     break;
4057
4058   case 317:
4059 #line 1391 "c-parse.y"
4060     { set_init_label ((yyvsp[-1].ttype));
4061                   if (pedantic)
4062                     pedwarn ("obsolete use of designated initializer with %<:%>"); ;}
4063     break;
4064
4065   case 318:
4066 #line 1395 "c-parse.y"
4067     {;}
4068     break;
4069
4070   case 320:
4071 #line 1401 "c-parse.y"
4072     { push_init_level (0); ;}
4073     break;
4074
4075   case 321:
4076 #line 1403 "c-parse.y"
4077     { process_init_element (pop_init_level (0)); ;}
4078     break;
4079
4080   case 322:
4081 #line 1405 "c-parse.y"
4082     { process_init_element ((yyvsp[0].exprtype)); ;}
4083     break;
4084
4085   case 326:
4086 #line 1416 "c-parse.y"
4087     { set_init_label ((yyvsp[0].ttype)); ;}
4088     break;
4089
4090   case 328:
4091 #line 1422 "c-parse.y"
4092     { set_init_index ((yyvsp[-3].exprtype).value, (yyvsp[-1].exprtype).value);
4093                   if (pedantic)
4094                     pedwarn ("ISO C forbids specifying range of elements to initialize"); ;}
4095     break;
4096
4097   case 329:
4098 #line 1426 "c-parse.y"
4099     { set_init_index ((yyvsp[-1].exprtype).value, NULL_TREE); ;}
4100     break;
4101
4102   case 330:
4103 #line 1431 "c-parse.y"
4104     { if (pedantic)
4105                     pedwarn ("ISO C forbids nested functions");
4106
4107                   push_function_context ();
4108                   if (!start_function (current_declspecs, (yyvsp[0].dtrtype),
4109                                        all_prefix_attributes))
4110                     {
4111                       pop_function_context ();
4112                       YYERROR1;
4113                     }
4114                 ;}
4115     break;
4116
4117   case 331:
4118 #line 1443 "c-parse.y"
4119     { tree decl = current_function_decl;
4120                   DECL_SOURCE_LOCATION (decl) = (yyvsp[0].location);
4121                   store_parm_decls (); ;}
4122     break;
4123
4124   case 332:
4125 #line 1452 "c-parse.y"
4126     { tree decl = current_function_decl;
4127                   add_stmt ((yyvsp[0].ttype));
4128                   finish_function ();
4129                   pop_function_context ();
4130                   add_stmt (build_stmt (DECL_EXPR, decl)); ;}
4131     break;
4132
4133   case 333:
4134 #line 1461 "c-parse.y"
4135     { if (pedantic)
4136                     pedwarn ("ISO C forbids nested functions");
4137
4138                   push_function_context ();
4139                   if (!start_function (current_declspecs, (yyvsp[0].dtrtype),
4140                                        all_prefix_attributes))
4141                     {
4142                       pop_function_context ();
4143                       YYERROR1;
4144                     }
4145                 ;}
4146     break;
4147
4148   case 334:
4149 #line 1473 "c-parse.y"
4150     { tree decl = current_function_decl;
4151                   DECL_SOURCE_LOCATION (decl) = (yyvsp[0].location);
4152                   store_parm_decls (); ;}
4153     break;
4154
4155   case 335:
4156 #line 1482 "c-parse.y"
4157     { tree decl = current_function_decl;
4158                   add_stmt ((yyvsp[0].ttype));
4159                   finish_function ();
4160                   pop_function_context ();
4161                   add_stmt (build_stmt (DECL_EXPR, decl)); ;}
4162     break;
4163
4164   case 338:
4165 #line 1501 "c-parse.y"
4166     { (yyval.dtrtype) = (yyvsp[-2].ttype) ? build_attrs_declarator ((yyvsp[-2].ttype), (yyvsp[-1].dtrtype)) : (yyvsp[-1].dtrtype); ;}
4167     break;
4168
4169   case 339:
4170 #line 1503 "c-parse.y"
4171     { (yyval.dtrtype) = build_function_declarator ((yyvsp[0].arginfotype), (yyvsp[-2].dtrtype)); ;}
4172     break;
4173
4174   case 340:
4175 #line 1505 "c-parse.y"
4176     { (yyval.dtrtype) = set_array_declarator_inner ((yyvsp[0].dtrtype), (yyvsp[-1].dtrtype), false); ;}
4177     break;
4178
4179   case 341:
4180 #line 1507 "c-parse.y"
4181     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4182     break;
4183
4184   case 342:
4185 #line 1509 "c-parse.y"
4186     { (yyval.dtrtype) = build_id_declarator ((yyvsp[0].ttype)); ;}
4187     break;
4188
4189   case 345:
4190 #line 1523 "c-parse.y"
4191     { (yyval.dtrtype) = build_function_declarator ((yyvsp[0].arginfotype), (yyvsp[-2].dtrtype)); ;}
4192     break;
4193
4194   case 346:
4195 #line 1525 "c-parse.y"
4196     { (yyval.dtrtype) = set_array_declarator_inner ((yyvsp[0].dtrtype), (yyvsp[-1].dtrtype), false); ;}
4197     break;
4198
4199   case 347:
4200 #line 1527 "c-parse.y"
4201     { (yyval.dtrtype) = build_id_declarator ((yyvsp[0].ttype)); ;}
4202     break;
4203
4204   case 348:
4205 #line 1532 "c-parse.y"
4206     { (yyval.dtrtype) = build_function_declarator ((yyvsp[0].arginfotype), (yyvsp[-2].dtrtype)); ;}
4207     break;
4208
4209   case 349:
4210 #line 1534 "c-parse.y"
4211     { (yyval.dtrtype) = set_array_declarator_inner ((yyvsp[0].dtrtype), (yyvsp[-1].dtrtype), false); ;}
4212     break;
4213
4214   case 350:
4215 #line 1536 "c-parse.y"
4216     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4217     break;
4218
4219   case 351:
4220 #line 1538 "c-parse.y"
4221     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4222     break;
4223
4224   case 352:
4225 #line 1540 "c-parse.y"
4226     { (yyval.dtrtype) = (yyvsp[-2].ttype) ? build_attrs_declarator ((yyvsp[-2].ttype), (yyvsp[-1].dtrtype)) : (yyvsp[-1].dtrtype); ;}
4227     break;
4228
4229   case 353:
4230 #line 1548 "c-parse.y"
4231     { (yyval.dtrtype) = build_function_declarator ((yyvsp[0].arginfotype), (yyvsp[-2].dtrtype)); ;}
4232     break;
4233
4234   case 354:
4235 #line 1550 "c-parse.y"
4236     { (yyval.dtrtype) = (yyvsp[-2].ttype) ? build_attrs_declarator ((yyvsp[-2].ttype), (yyvsp[-1].dtrtype)) : (yyvsp[-1].dtrtype); ;}
4237     break;
4238
4239   case 355:
4240 #line 1552 "c-parse.y"
4241     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4242     break;
4243
4244   case 356:
4245 #line 1554 "c-parse.y"
4246     { (yyval.dtrtype) = set_array_declarator_inner ((yyvsp[0].dtrtype), (yyvsp[-1].dtrtype), false); ;}
4247     break;
4248
4249   case 357:
4250 #line 1556 "c-parse.y"
4251     { (yyval.dtrtype) = build_id_declarator ((yyvsp[0].ttype)); ;}
4252     break;
4253
4254   case 358:
4255 #line 1561 "c-parse.y"
4256     { (yyval.ttype) = NULL_TREE; ;}
4257     break;
4258
4259   case 359:
4260 #line 1563 "c-parse.y"
4261     { (yyval.ttype) = (yyvsp[0].ttype); ;}
4262     break;
4263
4264   case 360:
4265 #line 1568 "c-parse.y"
4266     { (yyval.ttype) = NULL_TREE; ;}
4267     break;
4268
4269   case 361:
4270 #line 1570 "c-parse.y"
4271     { (yyval.ttype) = (yyvsp[0].ttype); ;}
4272     break;
4273
4274   case 362:
4275 #line 1575 "c-parse.y"
4276     { (yyval.ttype) = NULL_TREE; ;}
4277     break;
4278
4279   case 363:
4280 #line 1577 "c-parse.y"
4281     { (yyval.ttype) = (yyvsp[0].ttype); ;}
4282     break;
4283
4284   case 364:
4285 #line 1588 "c-parse.y"
4286     { (yyval.ttype) = start_struct (RECORD_TYPE, (yyvsp[-1].ttype));
4287                   /* Start scope of tag before parsing components.  */
4288                 ;}
4289     break;
4290
4291   case 365:
4292 #line 1592 "c-parse.y"
4293     { (yyval.tstype).spec = finish_struct ((yyvsp[-3].ttype), nreverse ((yyvsp[-2].ttype)),
4294                                            chainon ((yyvsp[-6].ttype), (yyvsp[0].ttype)));
4295                   (yyval.tstype).kind = ctsk_tagdef; ;}
4296     break;
4297
4298   case 366:
4299 #line 1596 "c-parse.y"
4300     { (yyval.tstype).spec = finish_struct (start_struct (RECORD_TYPE,
4301                                                          NULL_TREE),
4302                                            nreverse ((yyvsp[-2].ttype)), chainon ((yyvsp[-4].ttype), (yyvsp[0].ttype)));
4303                   (yyval.tstype).kind = ctsk_tagdef;
4304                 ;}
4305     break;
4306
4307   case 367:
4308 #line 1602 "c-parse.y"
4309     { (yyval.ttype) = start_struct (UNION_TYPE, (yyvsp[-1].ttype)); ;}
4310     break;
4311
4312   case 368:
4313 #line 1604 "c-parse.y"
4314     { (yyval.tstype).spec = finish_struct ((yyvsp[-3].ttype), nreverse ((yyvsp[-2].ttype)),
4315                                            chainon ((yyvsp[-6].ttype), (yyvsp[0].ttype)));
4316                   (yyval.tstype).kind = ctsk_tagdef; ;}
4317     break;
4318
4319   case 369:
4320 #line 1608 "c-parse.y"
4321     { (yyval.tstype).spec = finish_struct (start_struct (UNION_TYPE,
4322                                                          NULL_TREE),
4323                                            nreverse ((yyvsp[-2].ttype)), chainon ((yyvsp[-4].ttype), (yyvsp[0].ttype)));
4324                   (yyval.tstype).kind = ctsk_tagdef;
4325                 ;}
4326     break;
4327
4328   case 370:
4329 #line 1614 "c-parse.y"
4330     { (yyval.ttype) = start_enum ((yyvsp[-1].ttype)); ;}
4331     break;
4332
4333   case 371:
4334 #line 1616 "c-parse.y"
4335     { (yyval.tstype).spec = finish_enum ((yyvsp[-4].ttype), nreverse ((yyvsp[-3].ttype)),
4336                                          chainon ((yyvsp[-7].ttype), (yyvsp[0].ttype)));
4337                   (yyval.tstype).kind = ctsk_tagdef; ;}
4338     break;
4339
4340   case 372:
4341 #line 1620 "c-parse.y"
4342     { (yyval.ttype) = start_enum (NULL_TREE); ;}
4343     break;
4344
4345   case 373:
4346 #line 1622 "c-parse.y"
4347     { (yyval.tstype).spec = finish_enum ((yyvsp[-4].ttype), nreverse ((yyvsp[-3].ttype)),
4348                                          chainon ((yyvsp[-6].ttype), (yyvsp[0].ttype)));
4349                   (yyval.tstype).kind = ctsk_tagdef; ;}
4350     break;
4351
4352   case 374:
4353 #line 1629 "c-parse.y"
4354     { (yyval.tstype) = parser_xref_tag (RECORD_TYPE, (yyvsp[0].ttype)); ;}
4355     break;
4356
4357   case 375:
4358 #line 1631 "c-parse.y"
4359     { (yyval.tstype) = parser_xref_tag (UNION_TYPE, (yyvsp[0].ttype)); ;}
4360     break;
4361
4362   case 376:
4363 #line 1633 "c-parse.y"
4364     { (yyval.tstype) = parser_xref_tag (ENUMERAL_TYPE, (yyvsp[0].ttype));
4365                   /* In ISO C, enumerated types can be referred to
4366                      only if already defined.  */
4367                   if (pedantic && !COMPLETE_TYPE_P ((yyval.tstype).spec))
4368                     pedwarn ("ISO C forbids forward references to %<enum%> types"); ;}
4369     break;
4370
4371   case 380:
4372 #line 1648 "c-parse.y"
4373     { if (pedantic && !flag_isoc99)
4374                     pedwarn ("comma at end of enumerator list"); ;}
4375     break;
4376
4377   case 381:
4378 #line 1666 "c-parse.y"
4379     { (yyval.ttype) = (yyvsp[0].ttype); ;}
4380     break;
4381
4382   case 382:
4383 #line 1668 "c-parse.y"
4384     { (yyval.ttype) = chainon ((yyvsp[0].ttype), (yyvsp[-1].ttype));
4385                   pedwarn ("no semicolon at end of struct or union"); ;}
4386     break;
4387
4388   case 383:
4389 #line 1673 "c-parse.y"
4390     { (yyval.ttype) = NULL_TREE; ;}
4391     break;
4392
4393   case 384:
4394 #line 1675 "c-parse.y"
4395     { (yyval.ttype) = chainon ((yyvsp[-1].ttype), (yyvsp[-2].ttype)); ;}
4396     break;
4397
4398   case 385:
4399 #line 1677 "c-parse.y"
4400     { if (pedantic)
4401                     pedwarn ("extra semicolon in struct or union specified"); ;}
4402     break;
4403
4404   case 386:
4405 #line 1683 "c-parse.y"
4406     { (yyval.ttype) = (yyvsp[0].ttype);
4407                   POP_DECLSPEC_STACK; ;}
4408     break;
4409
4410   case 387:
4411 #line 1686 "c-parse.y"
4412     {
4413                   /* Support for unnamed structs or unions as members of
4414                      structs or unions (which is [a] useful and [b] supports
4415                      MS P-SDK).  */
4416                   (yyval.ttype) = grokfield (build_id_declarator (NULL_TREE),
4417                                   current_declspecs, NULL_TREE);
4418                   POP_DECLSPEC_STACK; ;}
4419     break;
4420
4421   case 388:
4422 #line 1694 "c-parse.y"
4423     { (yyval.ttype) = (yyvsp[0].ttype);
4424                   POP_DECLSPEC_STACK; ;}
4425     break;
4426
4427   case 389:
4428 #line 1697 "c-parse.y"
4429     { if (pedantic)
4430                     pedwarn ("ISO C forbids member declarations with no members");
4431                   shadow_tag_warned (finish_declspecs ((yyvsp[0].dsptype)), pedantic);
4432                   (yyval.ttype) = NULL_TREE; ;}
4433     break;
4434
4435   case 390:
4436 #line 1702 "c-parse.y"
4437     { (yyval.ttype) = NULL_TREE; ;}
4438     break;
4439
4440   case 391:
4441 #line 1704 "c-parse.y"
4442     { (yyval.ttype) = (yyvsp[0].ttype);
4443                   RESTORE_EXT_FLAGS ((yyvsp[-1].itype)); ;}
4444     break;
4445
4446   case 393:
4447 #line 1711 "c-parse.y"
4448     { TREE_CHAIN ((yyvsp[0].ttype)) = (yyvsp[-3].ttype); (yyval.ttype) = (yyvsp[0].ttype); ;}
4449     break;
4450
4451   case 395:
4452 #line 1717 "c-parse.y"
4453     { TREE_CHAIN ((yyvsp[0].ttype)) = (yyvsp[-3].ttype); (yyval.ttype) = (yyvsp[0].ttype); ;}
4454     break;
4455
4456   case 396:
4457 #line 1722 "c-parse.y"
4458     { (yyval.ttype) = grokfield ((yyvsp[-1].dtrtype), current_declspecs, NULL_TREE);
4459                   decl_attributes (&(yyval.ttype),
4460                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4461     break;
4462
4463   case 397:
4464 #line 1726 "c-parse.y"
4465     { (yyval.ttype) = grokfield ((yyvsp[-3].dtrtype), current_declspecs, (yyvsp[-1].exprtype).value);
4466                   decl_attributes (&(yyval.ttype),
4467                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4468     break;
4469
4470   case 398:
4471 #line 1730 "c-parse.y"
4472     { (yyval.ttype) = grokfield (build_id_declarator (NULL_TREE),
4473                                   current_declspecs, (yyvsp[-1].exprtype).value);
4474                   decl_attributes (&(yyval.ttype),
4475                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4476     break;
4477
4478   case 399:
4479 #line 1738 "c-parse.y"
4480     { (yyval.ttype) = grokfield ((yyvsp[-1].dtrtype), current_declspecs, NULL_TREE);
4481                   decl_attributes (&(yyval.ttype),
4482                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4483     break;
4484
4485   case 400:
4486 #line 1742 "c-parse.y"
4487     { (yyval.ttype) = grokfield ((yyvsp[-3].dtrtype), current_declspecs, (yyvsp[-1].exprtype).value);
4488                   decl_attributes (&(yyval.ttype),
4489                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4490     break;
4491
4492   case 401:
4493 #line 1746 "c-parse.y"
4494     { (yyval.ttype) = grokfield (build_id_declarator (NULL_TREE),
4495                                   current_declspecs, (yyvsp[-1].exprtype).value);
4496                   decl_attributes (&(yyval.ttype),
4497                                    chainon ((yyvsp[0].ttype), all_prefix_attributes), 0); ;}
4498     break;
4499
4500   case 403:
4501 #line 1758 "c-parse.y"
4502     { if ((yyvsp[-2].ttype) == error_mark_node)
4503                     (yyval.ttype) = (yyvsp[-2].ttype);
4504                   else
4505                     TREE_CHAIN ((yyvsp[0].ttype)) = (yyvsp[-2].ttype), (yyval.ttype) = (yyvsp[0].ttype); ;}
4506     break;
4507
4508   case 404:
4509 #line 1763 "c-parse.y"
4510     { (yyval.ttype) = error_mark_node; ;}
4511     break;
4512
4513   case 405:
4514 #line 1769 "c-parse.y"
4515     { (yyval.ttype) = build_enumerator ((yyvsp[0].ttype), NULL_TREE); ;}
4516     break;
4517
4518   case 406:
4519 #line 1771 "c-parse.y"
4520     { (yyval.ttype) = build_enumerator ((yyvsp[-2].ttype), (yyvsp[0].exprtype).value); ;}
4521     break;
4522
4523   case 407:
4524 #line 1776 "c-parse.y"
4525     { pending_xref_error ();
4526                   (yyval.dsptype) = finish_declspecs ((yyvsp[0].dsptype)); ;}
4527     break;
4528
4529   case 408:
4530 #line 1779 "c-parse.y"
4531     { (yyval.typenametype) = XOBNEW (&parser_obstack, struct c_type_name);
4532                   (yyval.typenametype)->specs = (yyvsp[-1].dsptype);
4533                   (yyval.typenametype)->declarator = (yyvsp[0].dtrtype); ;}
4534     break;
4535
4536   case 409:
4537 #line 1786 "c-parse.y"
4538     { (yyval.dtrtype) = build_id_declarator (NULL_TREE); ;}
4539     break;
4540
4541   case 411:
4542 #line 1792 "c-parse.y"
4543     { (yyval.parmtype) = build_c_parm (current_declspecs, all_prefix_attributes,
4544                                      build_id_declarator (NULL_TREE)); ;}
4545     break;
4546
4547   case 412:
4548 #line 1795 "c-parse.y"
4549     { (yyval.parmtype) = build_c_parm (current_declspecs, all_prefix_attributes,
4550                                      (yyvsp[0].dtrtype)); ;}
4551     break;
4552
4553   case 413:
4554 #line 1798 "c-parse.y"
4555     { (yyval.parmtype) = build_c_parm (current_declspecs,
4556                                      chainon ((yyvsp[0].ttype), all_prefix_attributes),
4557                                      (yyvsp[-1].dtrtype)); ;}
4558     break;
4559
4560   case 417:
4561 #line 1811 "c-parse.y"
4562     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4563     break;
4564
4565   case 418:
4566 #line 1816 "c-parse.y"
4567     { (yyval.dtrtype) = make_pointer_declarator
4568                     ((yyvsp[0].dsptype), build_id_declarator (NULL_TREE)); ;}
4569     break;
4570
4571   case 419:
4572 #line 1819 "c-parse.y"
4573     { (yyval.dtrtype) = make_pointer_declarator ((yyvsp[-1].dsptype), (yyvsp[0].dtrtype)); ;}
4574     break;
4575
4576   case 420:
4577 #line 1824 "c-parse.y"
4578     { (yyval.dtrtype) = (yyvsp[-2].ttype) ? build_attrs_declarator ((yyvsp[-2].ttype), (yyvsp[-1].dtrtype)) : (yyvsp[-1].dtrtype); ;}
4579     break;
4580
4581   case 421:
4582 #line 1826 "c-parse.y"
4583     { (yyval.dtrtype) = build_function_declarator ((yyvsp[0].arginfotype), (yyvsp[-2].dtrtype)); ;}
4584     break;
4585
4586   case 422:
4587 #line 1828 "c-parse.y"
4588     { (yyval.dtrtype) = set_array_declarator_inner ((yyvsp[0].dtrtype), (yyvsp[-1].dtrtype), true); ;}
4589     break;
4590
4591   case 423:
4592 #line 1830 "c-parse.y"
4593     { (yyval.dtrtype) = build_function_declarator
4594                     ((yyvsp[0].arginfotype), build_id_declarator (NULL_TREE)); ;}
4595     break;
4596
4597   case 424:
4598 #line 1833 "c-parse.y"
4599     { (yyval.dtrtype) = set_array_declarator_inner
4600                     ((yyvsp[0].dtrtype), build_id_declarator (NULL_TREE), true); ;}
4601     break;
4602
4603   case 425:
4604 #line 1841 "c-parse.y"
4605     { (yyval.dtrtype) = build_array_declarator ((yyvsp[-1].exprtype).value, (yyvsp[-2].dsptype), false, false); ;}
4606     break;
4607
4608   case 426:
4609 #line 1843 "c-parse.y"
4610     { (yyval.dtrtype) = build_array_declarator (NULL_TREE, (yyvsp[-1].dsptype), false, false); ;}
4611     break;
4612
4613   case 427:
4614 #line 1845 "c-parse.y"
4615     { (yyval.dtrtype) = build_array_declarator (NULL_TREE, (yyvsp[-2].dsptype), false, true); ;}
4616     break;
4617
4618   case 428:
4619 #line 1847 "c-parse.y"
4620     { (yyval.dtrtype) = build_array_declarator ((yyvsp[-1].exprtype).value, (yyvsp[-2].dsptype), true, false); ;}
4621     break;
4622
4623   case 429:
4624 #line 1850 "c-parse.y"
4625     { (yyval.dtrtype) = build_array_declarator ((yyvsp[-1].exprtype).value, (yyvsp[-3].dsptype), true, false); ;}
4626     break;
4627
4628   case 432:
4629 #line 1863 "c-parse.y"
4630     {
4631                   error ("label at end of compound statement");
4632                 ;}
4633     break;
4634
4635   case 440:
4636 #line 1880 "c-parse.y"
4637     {
4638                   if ((pedantic && !flag_isoc99)
4639                       || warn_declaration_after_statement)
4640                     pedwarn_c90 ("ISO C90 forbids mixed declarations and code");
4641                 ;}
4642     break;
4643
4644   case 455:
4645 #line 1914 "c-parse.y"
4646     { (yyval.ttype) = c_begin_compound_stmt (flag_isoc99); ;}
4647     break;
4648
4649   case 457:
4650 #line 1922 "c-parse.y"
4651     { if (pedantic)
4652                     pedwarn ("ISO C forbids label declarations"); ;}
4653     break;
4654
4655   case 460:
4656 #line 1933 "c-parse.y"
4657     { tree link;
4658                   for (link = (yyvsp[-1].ttype); link; link = TREE_CHAIN (link))
4659                     {
4660                       tree label = declare_label (TREE_VALUE (link));
4661                       C_DECLARED_LABEL_FLAG (label) = 1;
4662                       add_stmt (build_stmt (DECL_EXPR, label));
4663                     }
4664                 ;}
4665     break;
4666
4667   case 461:
4668 #line 1947 "c-parse.y"
4669     { add_stmt ((yyvsp[0].ttype)); ;}
4670     break;
4671
4672   case 463:
4673 #line 1951 "c-parse.y"
4674     { (yyval.ttype) = c_begin_compound_stmt (true); ;}
4675     break;
4676
4677   case 468:
4678 #line 1965 "c-parse.y"
4679     { if (cur_stmt_list == NULL)
4680                     {
4681                       error ("braced-group within expression allowed "
4682                              "only inside a function");
4683                       YYERROR;
4684                     }
4685                   (yyval.ttype) = c_begin_stmt_expr ();
4686                 ;}
4687     break;
4688
4689   case 469:
4690 #line 1976 "c-parse.y"
4691     { (yyval.ttype) = c_end_compound_stmt ((yyvsp[-1].ttype), true); ;}
4692     break;
4693
4694   case 470:
4695 #line 1984 "c-parse.y"
4696     { if (yychar == YYEMPTY)
4697                     yychar = YYLEX;
4698                   (yyval.location) = input_location; ;}
4699     break;
4700
4701   case 473:
4702 #line 1997 "c-parse.y"
4703     { (yyval.ttype) = c_end_compound_stmt ((yyvsp[-2].ttype), flag_isoc99); ;}
4704     break;
4705
4706   case 474:
4707 #line 2002 "c-parse.y"
4708     {
4709                   /* Two cases cannot and do not have line numbers associated:
4710                      If stmt is degenerate, such as "2;", then stmt is an
4711                      INTEGER_CST, which cannot hold line numbers.  But that's
4712                      ok because the statement will either be changed to a
4713                      MODIFY_EXPR during gimplification of the statement expr,
4714                      or discarded.  If stmt was compound, but without new
4715                      variables, we will have skipped the creation of a BIND
4716                      and will have a bare STATEMENT_LIST.  But that's ok
4717                      because (recursively) all of the component statments
4718                      should already have line numbers assigned.  */
4719                   if ((yyvsp[0].ttype) && EXPR_P ((yyvsp[0].ttype)))
4720                     SET_EXPR_LOCATION ((yyvsp[0].ttype), (yyvsp[-1].location));
4721                 ;}
4722     break;
4723
4724   case 475:
4725 #line 2020 "c-parse.y"
4726     { if ((yyvsp[0].ttype)) SET_EXPR_LOCATION ((yyvsp[0].ttype), (yyvsp[-1].location)); ;}
4727     break;
4728
4729   case 476:
4730 #line 2024 "c-parse.y"
4731     { (yyval.ttype) = lang_hooks.truthvalue_conversion ((yyvsp[0].exprtype).value);
4732                   if (EXPR_P ((yyval.ttype)))
4733                     SET_EXPR_LOCATION ((yyval.ttype), (yyvsp[-1].location)); ;}
4734     break;
4735
4736   case 477:
4737 #line 2037 "c-parse.y"
4738     { (yyval.ttype) = c_end_compound_stmt ((yyvsp[-2].ttype), flag_isoc99); ;}
4739     break;
4740
4741   case 478:
4742 #line 2042 "c-parse.y"
4743     { if (extra_warnings)
4744                     add_stmt (build (NOP_EXPR, NULL_TREE, NULL_TREE));
4745                   (yyval.ttype) = c_end_compound_stmt ((yyvsp[-2].ttype), flag_isoc99); ;}
4746     break;
4747
4748   case 480:
4749 #line 2051 "c-parse.y"
4750     { c_finish_if_stmt ((yyvsp[-6].location), (yyvsp[-4].ttype), (yyvsp[-2].ttype), (yyvsp[0].ttype), true);
4751                   add_stmt (c_end_compound_stmt ((yyvsp[-7].ttype), flag_isoc99)); ;}
4752     break;
4753
4754   case 481:
4755 #line 2055 "c-parse.y"
4756     { c_finish_if_stmt ((yyvsp[-6].location), (yyvsp[-4].ttype), (yyvsp[-2].ttype), (yyvsp[0].ttype), false);
4757                   add_stmt (c_end_compound_stmt ((yyvsp[-7].ttype), flag_isoc99)); ;}
4758     break;
4759
4760   case 482:
4761 #line 2059 "c-parse.y"
4762     { c_finish_if_stmt ((yyvsp[-4].location), (yyvsp[-2].ttype), (yyvsp[0].ttype), NULL, true);
4763                   add_stmt (c_end_compound_stmt ((yyvsp[-5].ttype), flag_isoc99)); ;}
4764     break;
4765
4766   case 483:
4767 #line 2063 "c-parse.y"
4768     { c_finish_if_stmt ((yyvsp[-4].location), (yyvsp[-2].ttype), (yyvsp[0].ttype), NULL, false);
4769                   add_stmt (c_end_compound_stmt ((yyvsp[-5].ttype), flag_isoc99)); ;}
4770     break;
4771
4772   case 484:
4773 #line 2068 "c-parse.y"
4774     { (yyval.ttype) = c_break_label; c_break_label = NULL; ;}
4775     break;
4776
4777   case 485:
4778 #line 2072 "c-parse.y"
4779     { (yyval.ttype) = c_cont_label; c_cont_label = NULL; ;}
4780     break;
4781
4782   case 486:
4783 #line 2078 "c-parse.y"
4784     { c_finish_loop ((yyvsp[-6].location), (yyvsp[-4].ttype), NULL, (yyvsp[0].ttype), c_break_label,
4785                                  c_cont_label, true);
4786                   add_stmt (c_end_compound_stmt ((yyvsp[-7].ttype), flag_isoc99));
4787                   c_break_label = (yyvsp[-2].ttype); c_cont_label = (yyvsp[-1].ttype); ;}
4788     break;
4789
4790   case 487:
4791 #line 2087 "c-parse.y"
4792     { (yyval.ttype) = c_break_label; c_break_label = (yyvsp[-3].ttype); ;}
4793     break;
4794
4795   case 488:
4796 #line 2088 "c-parse.y"
4797     { (yyval.ttype) = c_cont_label; c_cont_label = (yyvsp[-3].ttype); ;}
4798     break;
4799
4800   case 489:
4801 #line 2090 "c-parse.y"
4802     { c_finish_loop ((yyvsp[-10].location), (yyvsp[-2].ttype), NULL, (yyvsp[-7].ttype), (yyvsp[-5].ttype),
4803                                  (yyvsp[-4].ttype), false);
4804                   add_stmt (c_end_compound_stmt ((yyvsp[-11].ttype), flag_isoc99)); ;}
4805     break;
4806
4807   case 490:
4808 #line 2097 "c-parse.y"
4809     { (yyval.ttype) = NULL_TREE; ;}
4810     break;
4811
4812   case 491:
4813 #line 2099 "c-parse.y"
4814     { (yyval.ttype) = (yyvsp[0].exprtype).value; ;}
4815     break;
4816
4817   case 492:
4818 #line 2104 "c-parse.y"
4819     { c_finish_expr_stmt ((yyvsp[-1].ttype)); ;}
4820     break;
4821
4822   case 493:
4823 #line 2106 "c-parse.y"
4824     { check_for_loop_decls (); ;}
4825     break;
4826
4827   case 494:
4828 #line 2110 "c-parse.y"
4829     { if ((yyvsp[0].ttype))
4830                     {
4831                       (yyval.ttype) = lang_hooks.truthvalue_conversion ((yyvsp[0].ttype));
4832                       if (EXPR_P ((yyval.ttype)))
4833                         SET_EXPR_LOCATION ((yyval.ttype), (yyvsp[-1].location));
4834                     }
4835                   else
4836                     (yyval.ttype) = NULL;
4837                 ;}
4838     break;
4839
4840   case 495:
4841 #line 2122 "c-parse.y"
4842     { (yyval.ttype) = c_process_expr_stmt ((yyvsp[0].ttype)); ;}
4843     break;
4844
4845   case 496:
4846 #line 2129 "c-parse.y"
4847     { c_finish_loop ((yyvsp[-7].location), (yyvsp[-6].ttype), (yyvsp[-4].ttype), (yyvsp[0].ttype), c_break_label,
4848                                  c_cont_label, true);
4849                   add_stmt (c_end_compound_stmt ((yyvsp[-10].ttype), flag_isoc99));
4850                   c_break_label = (yyvsp[-2].ttype); c_cont_label = (yyvsp[-1].ttype); ;}
4851     break;
4852
4853   case 497:
4854 #line 2137 "c-parse.y"
4855     { (yyval.ttype) = c_start_case ((yyvsp[-1].exprtype).value); ;}
4856     break;
4857
4858   case 498:
4859 #line 2139 "c-parse.y"
4860     { c_finish_case ((yyvsp[0].ttype));
4861                   if (c_break_label)
4862                     add_stmt (build (LABEL_EXPR, void_type_node,
4863                                      c_break_label));
4864                   c_break_label = (yyvsp[-1].ttype);
4865                   add_stmt (c_end_compound_stmt ((yyvsp[-6].ttype), flag_isoc99)); ;}
4866     break;
4867
4868   case 499:
4869 #line 2150 "c-parse.y"
4870     { (yyval.ttype) = c_finish_expr_stmt ((yyvsp[-1].exprtype).value); ;}
4871     break;
4872
4873   case 500:
4874 #line 2152 "c-parse.y"
4875     { (yyval.ttype) = NULL_TREE; ;}
4876     break;
4877
4878   case 501:
4879 #line 2154 "c-parse.y"
4880     { (yyval.ttype) = NULL_TREE; ;}
4881     break;
4882
4883   case 502:
4884 #line 2156 "c-parse.y"
4885     { (yyval.ttype) = NULL_TREE; ;}
4886     break;
4887
4888   case 503:
4889 #line 2158 "c-parse.y"
4890     { (yyval.ttype) = NULL_TREE; ;}
4891     break;
4892
4893   case 504:
4894 #line 2160 "c-parse.y"
4895     { (yyval.ttype) = NULL_TREE; ;}
4896     break;
4897
4898   case 505:
4899 #line 2162 "c-parse.y"
4900     { (yyval.ttype) = c_finish_bc_stmt (&c_break_label, true); ;}
4901     break;
4902
4903   case 506:
4904 #line 2164 "c-parse.y"
4905     { (yyval.ttype) = c_finish_bc_stmt (&c_cont_label, false); ;}
4906     break;
4907
4908   case 507:
4909 #line 2166 "c-parse.y"
4910     { (yyval.ttype) = c_finish_return (NULL_TREE); ;}
4911     break;
4912
4913   case 508:
4914 #line 2168 "c-parse.y"
4915     { (yyval.ttype) = c_finish_return ((yyvsp[-1].exprtype).value); ;}
4916     break;
4917
4918   case 510:
4919 #line 2171 "c-parse.y"
4920     { (yyval.ttype) = c_finish_goto_label ((yyvsp[-1].ttype)); ;}
4921     break;
4922
4923   case 511:
4924 #line 2173 "c-parse.y"
4925     { (yyval.ttype) = c_finish_goto_ptr ((yyvsp[-1].exprtype).value); ;}
4926     break;
4927
4928   case 512:
4929 #line 2175 "c-parse.y"
4930     { (yyval.ttype) = NULL_TREE; ;}
4931     break;
4932
4933   case 513:
4934 #line 2181 "c-parse.y"
4935     { add_stmt ((yyvsp[0].ttype)); (yyval.ttype) = NULL_TREE; ;}
4936     break;
4937
4938   case 515:
4939 #line 2190 "c-parse.y"
4940     { (yyval.ttype) = do_case ((yyvsp[-1].exprtype).value, NULL_TREE); ;}
4941     break;
4942
4943   case 516:
4944 #line 2192 "c-parse.y"
4945     { (yyval.ttype) = do_case ((yyvsp[-3].exprtype).value, (yyvsp[-1].exprtype).value); ;}
4946     break;
4947
4948   case 517:
4949 #line 2194 "c-parse.y"
4950     { (yyval.ttype) = do_case (NULL_TREE, NULL_TREE); ;}
4951     break;
4952
4953   case 518:
4954 #line 2196 "c-parse.y"
4955     { tree label = define_label ((yyvsp[-2].location), (yyvsp[-3].ttype));
4956                   if (label)
4957                     {
4958                       decl_attributes (&label, (yyvsp[0].ttype), 0);
4959                       (yyval.ttype) = add_stmt (build_stmt (LABEL_EXPR, label));
4960                     }
4961                   else
4962                     (yyval.ttype) = NULL_TREE;
4963                 ;}
4964     break;
4965
4966   case 519:
4967 #line 2214 "c-parse.y"
4968     { (yyval.ttype) = (yyvsp[-2].ttype); ;}
4969     break;
4970
4971   case 520:
4972 #line 2220 "c-parse.y"
4973     { (yyval.ttype) = NULL_TREE; ;}
4974     break;
4975
4976   case 522:
4977 #line 2227 "c-parse.y"
4978     { assemble_asm ((yyvsp[-1].ttype)); ;}
4979     break;
4980
4981   case 523:
4982 #line 2229 "c-parse.y"
4983     {;}
4984     break;
4985
4986   case 524:
4987 #line 2237 "c-parse.y"
4988     { (yyval.ttype) = build_asm_stmt ((yyvsp[-6].ttype), (yyvsp[-3].ttype)); ;}
4989     break;
4990
4991   case 525:
4992 #line 2243 "c-parse.y"
4993     { (yyval.ttype) = build_asm_expr ((yyvsp[0].ttype), 0, 0, 0, true); ;}
4994     break;
4995
4996   case 526:
4997 #line 2246 "c-parse.y"
4998     { (yyval.ttype) = build_asm_expr ((yyvsp[-2].ttype), (yyvsp[0].ttype), 0, 0, false); ;}
4999     break;
5000
5001   case 527:
5002 #line 2249 "c-parse.y"
5003     { (yyval.ttype) = build_asm_expr ((yyvsp[-4].ttype), (yyvsp[-2].ttype), (yyvsp[0].ttype), 0, false); ;}
5004     break;
5005
5006   case 528:
5007 #line 2252 "c-parse.y"
5008     { (yyval.ttype) = build_asm_expr ((yyvsp[-6].ttype), (yyvsp[-4].ttype), (yyvsp[-2].ttype), (yyvsp[0].ttype), false); ;}
5009     break;
5010
5011   case 529:
5012 #line 2259 "c-parse.y"
5013     { (yyval.ttype) = 0; ;}
5014     break;
5015
5016   case 530:
5017 #line 2261 "c-parse.y"
5018     { if ((yyvsp[0].ttype) != ridpointers[RID_VOLATILE])
5019                     {
5020                       warning ("%E qualifier ignored on asm", (yyvsp[0].ttype));
5021                       (yyval.ttype) = 0;
5022                     }
5023                   else
5024                     (yyval.ttype) = (yyvsp[0].ttype);
5025                 ;}
5026     break;
5027
5028   case 531:
5029 #line 2274 "c-parse.y"
5030     { (yyval.ttype) = NULL_TREE; ;}
5031     break;
5032
5033   case 534:
5034 #line 2281 "c-parse.y"
5035     { (yyval.ttype) = chainon ((yyvsp[-2].ttype), (yyvsp[0].ttype)); ;}
5036     break;
5037
5038   case 535:
5039 #line 2287 "c-parse.y"
5040     { (yyval.ttype) = build_tree_list (build_tree_list (NULL_TREE, (yyvsp[-5].ttype)),
5041                                         (yyvsp[-2].exprtype).value); ;}
5042     break;
5043
5044   case 536:
5045 #line 2291 "c-parse.y"
5046     { (yyvsp[-7].ttype) = build_string (IDENTIFIER_LENGTH ((yyvsp[-7].ttype)),
5047                                      IDENTIFIER_POINTER ((yyvsp[-7].ttype)));
5048                   (yyval.ttype) = build_tree_list (build_tree_list ((yyvsp[-7].ttype), (yyvsp[-5].ttype)), (yyvsp[-2].exprtype).value); ;}
5049     break;
5050
5051   case 537:
5052 #line 2298 "c-parse.y"
5053     { (yyval.ttype) = tree_cons (NULL_TREE, (yyvsp[0].ttype), NULL_TREE); ;}
5054     break;
5055
5056   case 538:
5057 #line 2300 "c-parse.y"
5058     { (yyval.ttype) = tree_cons (NULL_TREE, (yyvsp[0].ttype), (yyvsp[-2].ttype)); ;}
5059     break;
5060
5061   case 539:
5062 #line 2306 "c-parse.y"
5063     { if (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE ((yyvsp[0].ttype))))
5064                       != char_type_node)
5065                     {
5066                       error ("wide string literal in %<asm%>");
5067                       (yyval.ttype) = build_string (1, "");
5068                     }
5069                   else
5070                     (yyval.ttype) = (yyvsp[0].ttype); ;}
5071     break;
5072
5073   case 540:
5074 #line 2317 "c-parse.y"
5075     { c_lex_string_translate = 0; ;}
5076     break;
5077
5078   case 541:
5079 #line 2321 "c-parse.y"
5080     { c_lex_string_translate = 1; ;}
5081     break;
5082
5083   case 542:
5084 #line 2332 "c-parse.y"
5085     { push_scope ();
5086                   declare_parm_level (); ;}
5087     break;
5088
5089   case 543:
5090 #line 2335 "c-parse.y"
5091     { (yyval.arginfotype) = (yyvsp[0].arginfotype);
5092                   pop_scope (); ;}
5093     break;
5094
5095   case 545:
5096 #line 2342 "c-parse.y"
5097     { mark_forward_parm_decls (); ;}
5098     break;
5099
5100   case 546:
5101 #line 2344 "c-parse.y"
5102     { /* Dummy action so attributes are in known place
5103                      on parser stack.  */ ;}
5104     break;
5105
5106   case 547:
5107 #line 2347 "c-parse.y"
5108     { (yyval.arginfotype) = (yyvsp[0].arginfotype); ;}
5109     break;
5110
5111   case 548:
5112 #line 2349 "c-parse.y"
5113     { (yyval.arginfotype) = XOBNEW (&parser_obstack, struct c_arg_info);
5114                   (yyval.arginfotype)->parms = 0;
5115                   (yyval.arginfotype)->tags = 0;
5116                   (yyval.arginfotype)->types = 0;
5117                   (yyval.arginfotype)->others = 0; ;}
5118     break;
5119
5120   case 549:
5121 #line 2359 "c-parse.y"
5122     { (yyval.arginfotype) = XOBNEW (&parser_obstack, struct c_arg_info);
5123                   (yyval.arginfotype)->parms = 0;
5124                   (yyval.arginfotype)->tags = 0;
5125                   (yyval.arginfotype)->types = 0;
5126                   (yyval.arginfotype)->others = 0; ;}
5127     break;
5128
5129   case 550:
5130 #line 2365 "c-parse.y"
5131     { (yyval.arginfotype) = XOBNEW (&parser_obstack, struct c_arg_info);
5132                   (yyval.arginfotype)->parms = 0;
5133                   (yyval.arginfotype)->tags = 0;
5134                   (yyval.arginfotype)->others = 0;
5135                   /* Suppress -Wold-style-definition for this case.  */
5136                   (yyval.arginfotype)->types = error_mark_node;
5137                   error ("ISO C requires a named argument before %<...%>");
5138                 ;}
5139     break;
5140
5141   case 551:
5142 #line 2374 "c-parse.y"
5143     { (yyval.arginfotype) = get_parm_info (/*ellipsis=*/false); ;}
5144     break;
5145
5146   case 552:
5147 #line 2376 "c-parse.y"
5148     { (yyval.arginfotype) = get_parm_info (/*ellipsis=*/true); ;}
5149     break;
5150
5151   case 553:
5152 #line 2381 "c-parse.y"
5153     { push_parm_decl ((yyvsp[0].parmtype)); ;}
5154     break;
5155
5156   case 554:
5157 #line 2383 "c-parse.y"
5158     { push_parm_decl ((yyvsp[0].parmtype)); ;}
5159     break;
5160
5161   case 555:
5162 #line 2390 "c-parse.y"
5163     { (yyval.parmtype) = build_c_parm (current_declspecs,
5164                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5165                   POP_DECLSPEC_STACK; ;}
5166     break;
5167
5168   case 556:
5169 #line 2394 "c-parse.y"
5170     { (yyval.parmtype) = build_c_parm (current_declspecs,
5171                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5172                   POP_DECLSPEC_STACK; ;}
5173     break;
5174
5175   case 557:
5176 #line 2398 "c-parse.y"
5177     { (yyval.parmtype) = (yyvsp[0].parmtype);
5178                   POP_DECLSPEC_STACK; ;}
5179     break;
5180
5181   case 558:
5182 #line 2401 "c-parse.y"
5183     { (yyval.parmtype) = build_c_parm (current_declspecs,
5184                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5185                   POP_DECLSPEC_STACK; ;}
5186     break;
5187
5188   case 559:
5189 #line 2406 "c-parse.y"
5190     { (yyval.parmtype) = (yyvsp[0].parmtype);
5191                   POP_DECLSPEC_STACK; ;}
5192     break;
5193
5194   case 560:
5195 #line 2414 "c-parse.y"
5196     { (yyval.parmtype) = build_c_parm (current_declspecs,
5197                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5198                   POP_DECLSPEC_STACK; ;}
5199     break;
5200
5201   case 561:
5202 #line 2418 "c-parse.y"
5203     { (yyval.parmtype) = build_c_parm (current_declspecs,
5204                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5205                   POP_DECLSPEC_STACK; ;}
5206     break;
5207
5208   case 562:
5209 #line 2422 "c-parse.y"
5210     { (yyval.parmtype) = (yyvsp[0].parmtype);
5211                   POP_DECLSPEC_STACK; ;}
5212     break;
5213
5214   case 563:
5215 #line 2425 "c-parse.y"
5216     { (yyval.parmtype) = build_c_parm (current_declspecs,
5217                                      chainon ((yyvsp[0].ttype), all_prefix_attributes), (yyvsp[-1].dtrtype));
5218                   POP_DECLSPEC_STACK; ;}
5219     break;
5220
5221   case 564:
5222 #line 2430 "c-parse.y"
5223     { (yyval.parmtype) = (yyvsp[0].parmtype);
5224                   POP_DECLSPEC_STACK; ;}
5225     break;
5226
5227   case 565:
5228 #line 2436 "c-parse.y"
5229     { prefix_attributes = chainon (prefix_attributes, (yyvsp[-3].ttype));
5230                   all_prefix_attributes = prefix_attributes; ;}
5231     break;
5232
5233   case 566:
5234 #line 2445 "c-parse.y"
5235     { push_scope ();
5236                   declare_parm_level (); ;}
5237     break;
5238
5239   case 567:
5240 #line 2448 "c-parse.y"
5241     { (yyval.arginfotype) = (yyvsp[0].arginfotype);
5242                   pop_scope (); ;}
5243     break;
5244
5245   case 569:
5246 #line 2455 "c-parse.y"
5247     { (yyval.arginfotype) = XOBNEW (&parser_obstack, struct c_arg_info);
5248                   (yyval.arginfotype)->parms = 0;
5249                   (yyval.arginfotype)->tags = 0;
5250                   (yyval.arginfotype)->types = (yyvsp[-1].ttype);
5251                   (yyval.arginfotype)->others = 0;
5252
5253                   /* Make sure we have a parmlist after attributes.  */
5254                   if ((yyvsp[-3].ttype) != 0)
5255                     YYERROR1;
5256                 ;}
5257     break;
5258
5259   case 570:
5260 #line 2470 "c-parse.y"
5261     { (yyval.ttype) = build_tree_list (NULL_TREE, (yyvsp[0].ttype)); ;}
5262     break;
5263
5264   case 571:
5265 #line 2472 "c-parse.y"
5266     { (yyval.ttype) = chainon ((yyvsp[-2].ttype), build_tree_list (NULL_TREE, (yyvsp[0].ttype))); ;}
5267     break;
5268
5269   case 572:
5270 #line 2478 "c-parse.y"
5271     { (yyval.ttype) = build_tree_list (NULL_TREE, (yyvsp[0].ttype)); ;}
5272     break;
5273
5274   case 573:
5275 #line 2480 "c-parse.y"
5276     { (yyval.ttype) = chainon ((yyvsp[-2].ttype), build_tree_list (NULL_TREE, (yyvsp[0].ttype))); ;}
5277     break;
5278
5279   case 574:
5280 #line 2485 "c-parse.y"
5281     { (yyval.itype) = SAVE_EXT_FLAGS ();
5282                   pedantic = 0;
5283                   warn_pointer_arith = 0;
5284                   warn_traditional = 0;
5285                   flag_iso = 0; ;}
5286     break;
5287
5288
5289     }
5290
5291 /* Line 1037 of yacc.c.  */
5292 #line 5293 "c-parse.c"
5293 \f
5294   yyvsp -= yylen;
5295   yyssp -= yylen;
5296
5297
5298   YY_STACK_PRINT (yyss, yyssp);
5299
5300   *++yyvsp = yyval;
5301
5302
5303   /* Now `shift' the result of the reduction.  Determine what state
5304      that goes to, based on the state we popped back to and the rule
5305      number reduced by.  */
5306
5307   yyn = yyr1[yyn];
5308
5309   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5310   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5311     yystate = yytable[yystate];
5312   else
5313     yystate = yydefgoto[yyn - YYNTOKENS];
5314
5315   goto yynewstate;
5316
5317
5318 /*------------------------------------.
5319 | yyerrlab -- here on detecting error |
5320 `------------------------------------*/
5321 yyerrlab:
5322   /* If not already recovering from an error, report this error.  */
5323   if (!yyerrstatus)
5324     {
5325       ++yynerrs;
5326 #if YYERROR_VERBOSE
5327       yyn = yypact[yystate];
5328
5329       if (YYPACT_NINF < yyn && yyn < YYLAST)
5330         {
5331           YYSIZE_T yysize = 0;
5332           int yytype = YYTRANSLATE (yychar);
5333           const char* yyprefix;
5334           char *yymsg;
5335           int yyx;
5336
5337           /* Start YYX at -YYN if negative to avoid negative indexes in
5338              YYCHECK.  */
5339           int yyxbegin = yyn < 0 ? -yyn : 0;
5340
5341           /* Stay within bounds of both yycheck and yytname.  */
5342           int yychecklim = YYLAST - yyn;
5343           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
5344           int yycount = 0;
5345
5346           yyprefix = ", expecting ";
5347           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5348             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
5349               {
5350                 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
5351                 yycount += 1;
5352                 if (yycount == 5)
5353                   {
5354                     yysize = 0;
5355                     break;
5356                   }
5357               }
5358           yysize += (sizeof ("syntax error, unexpected ")
5359                      + yystrlen (yytname[yytype]));
5360           yymsg = (char *) YYSTACK_ALLOC (yysize);
5361           if (yymsg != 0)
5362             {
5363               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
5364               yyp = yystpcpy (yyp, yytname[yytype]);
5365
5366               if (yycount < 5)
5367                 {
5368                   yyprefix = ", expecting ";
5369                   for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5370                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
5371                       {
5372                         yyp = yystpcpy (yyp, yyprefix);
5373                         yyp = yystpcpy (yyp, yytname[yyx]);
5374                         yyprefix = " or ";
5375                       }
5376                 }
5377               yyerror (yymsg);
5378               YYSTACK_FREE (yymsg);
5379             }
5380           else
5381             yyerror ("syntax error; also virtual memory exhausted");
5382         }
5383       else
5384 #endif /* YYERROR_VERBOSE */
5385         yyerror ("syntax error");
5386     }
5387
5388
5389
5390   if (yyerrstatus == 3)
5391     {
5392       /* If just tried and failed to reuse look-ahead token after an
5393          error, discard it.  */
5394
5395       if (yychar <= YYEOF)
5396         {
5397           /* If at end of input, pop the error token,
5398              then the rest of the stack, then return failure.  */
5399           if (yychar == YYEOF)
5400              for (;;)
5401                {
5402
5403                  YYPOPSTACK;
5404                  if (yyssp == yyss)
5405                    YYABORT;
5406                  yydestruct ("Error: popping",
5407                              yystos[*yyssp], yyvsp);
5408                }
5409         }
5410       else
5411         {
5412           yydestruct ("Error: discarding", yytoken, &yylval);
5413           yychar = YYEMPTY;
5414         }
5415     }
5416
5417   /* Else will try to reuse look-ahead token after shifting the error
5418      token.  */
5419   goto yyerrlab1;
5420
5421
5422 /*---------------------------------------------------.
5423 | yyerrorlab -- error raised explicitly by YYERROR.  |
5424 `---------------------------------------------------*/
5425 yyerrorlab:
5426
5427 #ifdef __GNUC__
5428   /* Pacify GCC when the user code never invokes YYERROR and the label
5429      yyerrorlab therefore never appears in user code.  */
5430   if (0)
5431      goto yyerrorlab;
5432 #endif
5433
5434 yyvsp -= yylen;
5435   yyssp -= yylen;
5436   yystate = *yyssp;
5437   goto yyerrlab1;
5438
5439
5440 /*-------------------------------------------------------------.
5441 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
5442 `-------------------------------------------------------------*/
5443 yyerrlab1:
5444   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5445
5446   for (;;)
5447     {
5448       yyn = yypact[yystate];
5449       if (yyn != YYPACT_NINF)
5450         {
5451           yyn += YYTERROR;
5452           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5453             {
5454               yyn = yytable[yyn];
5455               if (0 < yyn)
5456                 break;
5457             }
5458         }
5459
5460       /* Pop the current state because it cannot handle the error token.  */
5461       if (yyssp == yyss)
5462         YYABORT;
5463
5464
5465       yydestruct ("Error: popping", yystos[yystate], yyvsp);
5466       YYPOPSTACK;
5467       yystate = *yyssp;
5468       YY_STACK_PRINT (yyss, yyssp);
5469     }
5470
5471   if (yyn == YYFINAL)
5472     YYACCEPT;
5473
5474   *++yyvsp = yylval;
5475
5476
5477   /* Shift the error token. */
5478   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5479
5480   yystate = yyn;
5481   goto yynewstate;
5482
5483
5484 /*-------------------------------------.
5485 | yyacceptlab -- YYACCEPT comes here.  |
5486 `-------------------------------------*/
5487 yyacceptlab:
5488   yyresult = 0;
5489   goto yyreturn;
5490
5491 /*-----------------------------------.
5492 | yyabortlab -- YYABORT comes here.  |
5493 `-----------------------------------*/
5494 yyabortlab:
5495   yydestruct ("Error: discarding lookahead",
5496               yytoken, &yylval);
5497   yychar = YYEMPTY;
5498   yyresult = 1;
5499   goto yyreturn;
5500
5501 #ifndef yyoverflow
5502 /*----------------------------------------------.
5503 | yyoverflowlab -- parser overflow comes here.  |
5504 `----------------------------------------------*/
5505 yyoverflowlab:
5506   yyerror ("parser stack overflow");
5507   yyresult = 2;
5508   /* Fall through.  */
5509 #endif
5510
5511 yyreturn:
5512 #ifndef yyoverflow
5513   if (yyss != yyssa)
5514     YYSTACK_FREE (yyss);
5515 #endif
5516   return yyresult;
5517 }
5518
5519
5520 #line 2492 "c-parse.y"
5521
5522
5523 /* yylex() is a thin wrapper around c_lex(), all it does is translate
5524    cpplib.h's token codes into yacc's token codes.  */
5525
5526 static enum cpp_ttype last_token;
5527
5528 /* The reserved keyword table.  */
5529 struct resword
5530 {
5531   const char *word;
5532   ENUM_BITFIELD(rid) rid : 16;
5533   unsigned int disable   : 16;
5534 };
5535
5536 /* Disable mask.  Keywords are disabled if (reswords[i].disable & mask) is
5537    _true_.  */
5538 #define D_C89   0x01    /* not in C89 */
5539 #define D_EXT   0x02    /* GCC extension */
5540 #define D_EXT89 0x04    /* GCC extension incorporated in C99 */
5541 #define D_OBJC  0x08    /* Objective C only */
5542
5543 static const struct resword reswords[] =
5544 {
5545   { "_Bool",            RID_BOOL,       0 },
5546   { "_Complex",         RID_COMPLEX,    0 },
5547   { "__FUNCTION__",     RID_FUNCTION_NAME, 0 },
5548   { "__PRETTY_FUNCTION__", RID_PRETTY_FUNCTION_NAME, 0 },
5549   { "__alignof",        RID_ALIGNOF,    0 },
5550   { "__alignof__",      RID_ALIGNOF,    0 },
5551   { "__asm",            RID_ASM,        0 },
5552   { "__asm__",          RID_ASM,        0 },
5553   { "__attribute",      RID_ATTRIBUTE,  0 },
5554   { "__attribute__",    RID_ATTRIBUTE,  0 },
5555   { "__builtin_choose_expr", RID_CHOOSE_EXPR, 0 },
5556   { "__builtin_offsetof", RID_OFFSETOF, 0 },
5557   { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, 0 },
5558   { "__builtin_va_arg", RID_VA_ARG,     0 },
5559   { "__complex",        RID_COMPLEX,    0 },
5560   { "__complex__",      RID_COMPLEX,    0 },
5561   { "__const",          RID_CONST,      0 },
5562   { "__const__",        RID_CONST,      0 },
5563   { "__extension__",    RID_EXTENSION,  0 },
5564   { "__func__",         RID_C99_FUNCTION_NAME, 0 },
5565   { "__imag",           RID_IMAGPART,   0 },
5566   { "__imag__",         RID_IMAGPART,   0 },
5567   { "__inline",         RID_INLINE,     0 },
5568   { "__inline__",       RID_INLINE,     0 },
5569   { "__label__",        RID_LABEL,      0 },
5570   { "__real",           RID_REALPART,   0 },
5571   { "__real__",         RID_REALPART,   0 },
5572   { "__restrict",       RID_RESTRICT,   0 },
5573   { "__restrict__",     RID_RESTRICT,   0 },
5574   { "__signed",         RID_SIGNED,     0 },
5575   { "__signed__",       RID_SIGNED,     0 },
5576   { "__thread",         RID_THREAD,     0 },
5577   { "__typeof",         RID_TYPEOF,     0 },
5578   { "__typeof__",       RID_TYPEOF,     0 },
5579   { "__volatile",       RID_VOLATILE,   0 },
5580   { "__volatile__",     RID_VOLATILE,   0 },
5581   { "asm",              RID_ASM,        D_EXT },
5582   { "auto",             RID_AUTO,       0 },
5583   { "break",            RID_BREAK,      0 },
5584   { "case",             RID_CASE,       0 },
5585   { "char",             RID_CHAR,       0 },
5586   { "const",            RID_CONST,      0 },
5587   { "continue",         RID_CONTINUE,   0 },
5588   { "default",          RID_DEFAULT,    0 },
5589   { "do",               RID_DO,         0 },
5590   { "double",           RID_DOUBLE,     0 },
5591   { "else",             RID_ELSE,       0 },
5592   { "enum",             RID_ENUM,       0 },
5593   { "extern",           RID_EXTERN,     0 },
5594   { "float",            RID_FLOAT,      0 },
5595   { "for",              RID_FOR,        0 },
5596   { "goto",             RID_GOTO,       0 },
5597   { "if",               RID_IF,         0 },
5598   { "inline",           RID_INLINE,     D_EXT89 },
5599   { "int",              RID_INT,        0 },
5600   { "long",             RID_LONG,       0 },
5601   { "register",         RID_REGISTER,   0 },
5602   { "restrict",         RID_RESTRICT,   D_C89 },
5603   { "return",           RID_RETURN,     0 },
5604   { "short",            RID_SHORT,      0 },
5605   { "signed",           RID_SIGNED,     0 },
5606   { "sizeof",           RID_SIZEOF,     0 },
5607   { "static",           RID_STATIC,     0 },
5608   { "struct",           RID_STRUCT,     0 },
5609   { "switch",           RID_SWITCH,     0 },
5610   { "typedef",          RID_TYPEDEF,    0 },
5611   { "typeof",           RID_TYPEOF,     D_EXT },
5612   { "union",            RID_UNION,      0 },
5613   { "unsigned",         RID_UNSIGNED,   0 },
5614   { "void",             RID_VOID,       0 },
5615   { "volatile",         RID_VOLATILE,   0 },
5616   { "while",            RID_WHILE,      0 },
5617
5618 };
5619 #define N_reswords (sizeof reswords / sizeof (struct resword))
5620
5621 /* Table mapping from RID_* constants to yacc token numbers.
5622    Unfortunately we have to have entries for all the keywords in all
5623    three languages.  */
5624 static const short rid_to_yy[RID_MAX] =
5625 {
5626   /* RID_STATIC */      STATIC,
5627   /* RID_UNSIGNED */    TYPESPEC,
5628   /* RID_LONG */        TYPESPEC,
5629   /* RID_CONST */       TYPE_QUAL,
5630   /* RID_EXTERN */      SCSPEC,
5631   /* RID_REGISTER */    SCSPEC,
5632   /* RID_TYPEDEF */     SCSPEC,
5633   /* RID_SHORT */       TYPESPEC,
5634   /* RID_INLINE */      SCSPEC,
5635   /* RID_VOLATILE */    TYPE_QUAL,
5636   /* RID_SIGNED */      TYPESPEC,
5637   /* RID_AUTO */        SCSPEC,
5638   /* RID_RESTRICT */    TYPE_QUAL,
5639
5640   /* C extensions */
5641   /* RID_COMPLEX */     TYPESPEC,
5642   /* RID_THREAD */      SCSPEC,
5643
5644   /* C++ */
5645   /* RID_FRIEND */      0,
5646   /* RID_VIRTUAL */     0,
5647   /* RID_EXPLICIT */    0,
5648   /* RID_EXPORT */      0,
5649   /* RID_MUTABLE */     0,
5650
5651   /* ObjC */
5652   /* RID_IN */          OBJC_TYPE_QUAL,
5653   /* RID_OUT */         OBJC_TYPE_QUAL,
5654   /* RID_INOUT */       OBJC_TYPE_QUAL,
5655   /* RID_BYCOPY */      OBJC_TYPE_QUAL,
5656   /* RID_BYREF */       OBJC_TYPE_QUAL,
5657   /* RID_ONEWAY */      OBJC_TYPE_QUAL,
5658
5659   /* C */
5660   /* RID_INT */         TYPESPEC,
5661   /* RID_CHAR */        TYPESPEC,
5662   /* RID_FLOAT */       TYPESPEC,
5663   /* RID_DOUBLE */      TYPESPEC,
5664   /* RID_VOID */        TYPESPEC,
5665   /* RID_ENUM */        ENUM,
5666   /* RID_STRUCT */      STRUCT,
5667   /* RID_UNION */       UNION,
5668   /* RID_IF */          IF,
5669   /* RID_ELSE */        ELSE,
5670   /* RID_WHILE */       WHILE,
5671   /* RID_DO */          DO,
5672   /* RID_FOR */         FOR,
5673   /* RID_SWITCH */      SWITCH,
5674   /* RID_CASE */        CASE,
5675   /* RID_DEFAULT */     DEFAULT,
5676   /* RID_BREAK */       BREAK,
5677   /* RID_CONTINUE */    CONTINUE,
5678   /* RID_RETURN */      RETURN,
5679   /* RID_GOTO */        GOTO,
5680   /* RID_SIZEOF */      SIZEOF,
5681
5682   /* C extensions */
5683   /* RID_ASM */         ASM_KEYWORD,
5684   /* RID_TYPEOF */      TYPEOF,
5685   /* RID_ALIGNOF */     ALIGNOF,
5686   /* RID_ATTRIBUTE */   ATTRIBUTE,
5687   /* RID_VA_ARG */      VA_ARG,
5688   /* RID_EXTENSION */   EXTENSION,
5689   /* RID_IMAGPART */    IMAGPART,
5690   /* RID_REALPART */    REALPART,
5691   /* RID_LABEL */       LABEL,
5692
5693   /* RID_CHOOSE_EXPR */                 CHOOSE_EXPR,
5694   /* RID_TYPES_COMPATIBLE_P */          TYPES_COMPATIBLE_P,
5695
5696   /* RID_FUNCTION_NAME */               FUNC_NAME,
5697   /* RID_PRETTY_FUNCTION_NAME */        FUNC_NAME,
5698   /* RID_C99_FUNCTION_NAME */           FUNC_NAME,
5699
5700   /* C++ */
5701   /* RID_BOOL */        TYPESPEC,
5702   /* RID_WCHAR */       0,
5703   /* RID_CLASS */       0,
5704   /* RID_PUBLIC */      0,
5705   /* RID_PRIVATE */     0,
5706   /* RID_PROTECTED */   0,
5707   /* RID_TEMPLATE */    0,
5708   /* RID_NULL */        0,
5709   /* RID_CATCH */       0,
5710   /* RID_DELETE */      0,
5711   /* RID_FALSE */       0,
5712   /* RID_NAMESPACE */   0,
5713   /* RID_NEW */         0,
5714   /* RID_OFFSETOF */    OFFSETOF,
5715   /* RID_OPERATOR */    0,
5716   /* RID_THIS */        0,
5717   /* RID_THROW */       0,
5718   /* RID_TRUE */        0,
5719   /* RID_TRY */         0,
5720   /* RID_TYPENAME */    0,
5721   /* RID_TYPEID */      0,
5722   /* RID_USING */       0,
5723
5724   /* casts */
5725   /* RID_CONSTCAST */   0,
5726   /* RID_DYNCAST */     0,
5727   /* RID_REINTCAST */   0,
5728   /* RID_STATCAST */    0,
5729
5730   /* Objective C */
5731   /* RID_AT_ENCODE */           AT_ENCODE,
5732   /* RID_AT_END */              AT_END,
5733   /* RID_AT_CLASS */            AT_CLASS,
5734   /* RID_AT_ALIAS */            AT_ALIAS,
5735   /* RID_AT_DEFS */             AT_DEFS,
5736   /* RID_AT_PRIVATE */          AT_PRIVATE,
5737   /* RID_AT_PROTECTED */        AT_PROTECTED,
5738   /* RID_AT_PUBLIC */           AT_PUBLIC,
5739   /* RID_AT_PROTOCOL */         AT_PROTOCOL,
5740   /* RID_AT_SELECTOR */         AT_SELECTOR,
5741   /* RID_AT_THROW */            AT_THROW,
5742   /* RID_AT_TRY */              AT_TRY,
5743   /* RID_AT_CATCH */            AT_CATCH,
5744   /* RID_AT_FINALLY */          AT_FINALLY,
5745   /* RID_AT_SYNCHRONIZED */     AT_SYNCHRONIZED,
5746   /* RID_AT_INTERFACE */        AT_INTERFACE,
5747   /* RID_AT_IMPLEMENTATION */   AT_IMPLEMENTATION
5748 };
5749
5750 static void
5751 init_reswords (void)
5752 {
5753   unsigned int i;
5754   tree id;
5755   int mask = (flag_isoc99 ? 0 : D_C89)
5756               | (flag_no_asm ? (flag_isoc99 ? D_EXT : D_EXT|D_EXT89) : 0);
5757
5758   if (!c_dialect_objc ())
5759      mask |= D_OBJC;
5760
5761   ridpointers = GGC_CNEWVEC (tree, (int) RID_MAX);
5762   for (i = 0; i < N_reswords; i++)
5763     {
5764       /* If a keyword is disabled, do not enter it into the table
5765          and so create a canonical spelling that isn't a keyword.  */
5766       if (reswords[i].disable & mask)
5767         continue;
5768
5769       id = get_identifier (reswords[i].word);
5770       C_RID_CODE (id) = reswords[i].rid;
5771       C_IS_RESERVED_WORD (id) = 1;
5772       ridpointers [(int) reswords[i].rid] = id;
5773     }
5774 }
5775
5776 #define NAME(type) cpp_type2name (type)
5777
5778 static void
5779 yyerror (const char *msgid)
5780 {
5781   c_parse_error (msgid, last_token, yylval.ttype);
5782 }
5783
5784 static int
5785 yylexname (void)
5786 {
5787   tree decl;
5788
5789
5790   if (C_IS_RESERVED_WORD (yylval.ttype))
5791     {
5792       enum rid rid_code = C_RID_CODE (yylval.ttype);
5793
5794       {
5795         /* Return the canonical spelling for this keyword.  */
5796         yylval.ttype = ridpointers[(int) rid_code];
5797         return rid_to_yy[(int) rid_code];
5798       }
5799     }
5800
5801   decl = lookup_name (yylval.ttype);
5802   if (decl)
5803     {
5804       if (TREE_CODE (decl) == TYPE_DECL)
5805         return TYPENAME;
5806     }
5807
5808   return IDENTIFIER;
5809 }
5810
5811 static inline int
5812 _yylex (void)
5813 {
5814  get_next:
5815   last_token = c_lex (&yylval.ttype);
5816   switch (last_token)
5817     {
5818     case CPP_EQ:                                        return '=';
5819     case CPP_NOT:                                       return '!';
5820     case CPP_GREATER:   yylval.code = GT_EXPR;          return ARITHCOMPARE;
5821     case CPP_LESS:      yylval.code = LT_EXPR;          return ARITHCOMPARE;
5822     case CPP_PLUS:      yylval.code = PLUS_EXPR;        return '+';
5823     case CPP_MINUS:     yylval.code = MINUS_EXPR;       return '-';
5824     case CPP_MULT:      yylval.code = MULT_EXPR;        return '*';
5825     case CPP_DIV:       yylval.code = TRUNC_DIV_EXPR;   return '/';
5826     case CPP_MOD:       yylval.code = TRUNC_MOD_EXPR;   return '%';
5827     case CPP_AND:       yylval.code = BIT_AND_EXPR;     return '&';
5828     case CPP_OR:        yylval.code = BIT_IOR_EXPR;     return '|';
5829     case CPP_XOR:       yylval.code = BIT_XOR_EXPR;     return '^';
5830     case CPP_RSHIFT:    yylval.code = RSHIFT_EXPR;      return RSHIFT;
5831     case CPP_LSHIFT:    yylval.code = LSHIFT_EXPR;      return LSHIFT;
5832
5833     case CPP_COMPL:                                     return '~';
5834     case CPP_AND_AND:                                   return ANDAND;
5835     case CPP_OR_OR:                                     return OROR;
5836     case CPP_QUERY:                                     return '?';
5837     case CPP_OPEN_PAREN:                                return '(';
5838     case CPP_EQ_EQ:     yylval.code = EQ_EXPR;          return EQCOMPARE;
5839     case CPP_NOT_EQ:    yylval.code = NE_EXPR;          return EQCOMPARE;
5840     case CPP_GREATER_EQ:yylval.code = GE_EXPR;          return ARITHCOMPARE;
5841     case CPP_LESS_EQ:   yylval.code = LE_EXPR;          return ARITHCOMPARE;
5842
5843     case CPP_PLUS_EQ:   yylval.code = PLUS_EXPR;        return ASSIGN;
5844     case CPP_MINUS_EQ:  yylval.code = MINUS_EXPR;       return ASSIGN;
5845     case CPP_MULT_EQ:   yylval.code = MULT_EXPR;        return ASSIGN;
5846     case CPP_DIV_EQ:    yylval.code = TRUNC_DIV_EXPR;   return ASSIGN;
5847     case CPP_MOD_EQ:    yylval.code = TRUNC_MOD_EXPR;   return ASSIGN;
5848     case CPP_AND_EQ:    yylval.code = BIT_AND_EXPR;     return ASSIGN;
5849     case CPP_OR_EQ:     yylval.code = BIT_IOR_EXPR;     return ASSIGN;
5850     case CPP_XOR_EQ:    yylval.code = BIT_XOR_EXPR;     return ASSIGN;
5851     case CPP_RSHIFT_EQ: yylval.code = RSHIFT_EXPR;      return ASSIGN;
5852     case CPP_LSHIFT_EQ: yylval.code = LSHIFT_EXPR;      return ASSIGN;
5853
5854     case CPP_OPEN_SQUARE:                               return '[';
5855     case CPP_CLOSE_SQUARE:                              return ']';
5856     case CPP_OPEN_BRACE:                                return '{';
5857     case CPP_CLOSE_BRACE:                               return '}';
5858     case CPP_ELLIPSIS:                                  return ELLIPSIS;
5859
5860     case CPP_PLUS_PLUS:                                 return PLUSPLUS;
5861     case CPP_MINUS_MINUS:                               return MINUSMINUS;
5862     case CPP_DEREF:                                     return POINTSAT;
5863     case CPP_DOT:                                       return '.';
5864
5865       /* The following tokens may affect the interpretation of any
5866          identifiers following, if doing Objective-C.  */
5867     case CPP_COLON:             OBJC_NEED_RAW_IDENTIFIER (0);   return ':';
5868     case CPP_COMMA:             OBJC_NEED_RAW_IDENTIFIER (0);   return ',';
5869     case CPP_CLOSE_PAREN:       OBJC_NEED_RAW_IDENTIFIER (0);   return ')';
5870     case CPP_SEMICOLON:         OBJC_NEED_RAW_IDENTIFIER (0);   return ';';
5871
5872     case CPP_EOF:
5873       return 0;
5874
5875     case CPP_NAME:
5876       return yylexname ();
5877
5878     case CPP_AT_NAME:
5879       /* This only happens in Objective-C; it must be a keyword.  */
5880       return rid_to_yy [(int) C_RID_CODE (yylval.ttype)];
5881
5882     case CPP_NUMBER:
5883     case CPP_CHAR:
5884     case CPP_WCHAR:
5885       return CONSTANT;
5886
5887     case CPP_STRING:
5888     case CPP_WSTRING:
5889       return STRING;
5890
5891     case CPP_OBJC_STRING:
5892       return OBJC_STRING;
5893
5894       /* These tokens are C++ specific (and will not be generated
5895          in C mode, but let's be cautious).  */
5896     case CPP_SCOPE:
5897     case CPP_DEREF_STAR:
5898     case CPP_DOT_STAR:
5899     case CPP_MIN_EQ:
5900     case CPP_MAX_EQ:
5901     case CPP_MIN:
5902     case CPP_MAX:
5903       /* These tokens should not survive translation phase 4.  */
5904     case CPP_HASH:
5905     case CPP_PASTE:
5906       error ("syntax error at %qs token", NAME(last_token));
5907       goto get_next;
5908
5909     default:
5910       abort ();
5911     }
5912   /* NOTREACHED */
5913 }
5914
5915 static int
5916 yylex (void)
5917 {
5918   int r;
5919   timevar_push (TV_LEX);
5920   r = _yylex();
5921   timevar_pop (TV_LEX);
5922   return r;
5923 }
5924
5925 /* Function used when yydebug is set, to print a token in more detail.  */
5926
5927 static void
5928 yyprint (FILE *file, int yychar, YYSTYPE yyl)
5929 {
5930   tree t = yyl.ttype;
5931
5932   fprintf (file, " [%s]", NAME(last_token));
5933
5934   switch (yychar)
5935     {
5936     case IDENTIFIER:
5937     case TYPENAME:
5938     case TYPESPEC:
5939     case TYPE_QUAL:
5940     case SCSPEC:
5941     case STATIC:
5942       if (IDENTIFIER_POINTER (t))
5943         fprintf (file, " '%s'", IDENTIFIER_POINTER (t));
5944       break;
5945
5946     case CONSTANT:
5947       fprintf (file, " %s", GET_MODE_NAME (TYPE_MODE (TREE_TYPE (t))));
5948       if (TREE_CODE (t) == INTEGER_CST)
5949         {
5950           fputs (" ", file);
5951           fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX,
5952                    TREE_INT_CST_HIGH (t), TREE_INT_CST_LOW (t));
5953         }
5954       break;
5955     }
5956 }
5957 \f
5958 /* This is not the ideal place to put this, but we have to get it out
5959    of c-lex.c because cp/lex.c has its own version.  */
5960
5961 /* Parse the file.  */
5962 void
5963 c_parse_file (void)
5964 {
5965   yyparse ();
5966
5967   if (malloced_yyss)
5968     {
5969       free (malloced_yyss);
5970       free (malloced_yyvs);
5971       malloced_yyss = 0;
5972     }
5973 }
5974
5975 #ifdef __XGETTEXT__
5976 /* Depending on the version of Bison used to compile this grammar,
5977    it may issue generic diagnostics spelled "syntax error" or
5978    "parse error".  To prevent this from changing the translation
5979    template randomly, we list all the variants of this particular
5980    diagnostic here.  Translators: there is no fine distinction
5981    between diagnostics with "syntax error" in them, and diagnostics
5982    with "parse error" in them.  It's okay to give them both the same
5983    translation.  */
5984 const char d1[] = N_("syntax error");
5985 const char d2[] = N_("parse error");
5986 const char d3[] = N_("syntax error; also virtual memory exhausted");
5987 const char d4[] = N_("parse error; also virtual memory exhausted");
5988 const char d5[] = N_("syntax error: cannot back up");
5989 const char d6[] = N_("parse error: cannot back up");
5990 #endif
5991
5992 #include "gt-c-parse.h"
5993
5994