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