1 /* A Bison parser, made from c-parse.y
4 #define YYBISON 1 /* Identify Bison output. */
6 # define IDENTIFIER 257
11 # define TYPE_QUAL 262
12 # define OBJC_TYPE_QUAL 263
32 # define ASM_KEYWORD 283
35 # define ATTRIBUTE 286
36 # define EXTENSION 287
41 # define CHOOSE_EXPR 292
42 # define TYPES_COMPATIBLE_P 293
43 # define FUNC_NAME 294
48 # define EQCOMPARE 299
49 # define ARITHCOMPARE 300
54 # define MINUSMINUS 305
55 # define HYPERUNARY 306
57 # define AT_INTERFACE 308
58 # define AT_IMPLEMENTATION 309
60 # define AT_SELECTOR 311
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
73 # define AT_FINALLY 324
74 # define AT_SYNCHRONIZED 325
75 # define OBJC_STRING 326
81 #include "coretypes.h"
84 #include "langhooks.h"
89 #include "c-pragma.h" /* For YYDEBUG definition, and parse_in. */
98 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
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.
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. */
107 static short *malloced_yyss;
108 static void *malloced_yyvs;
110 #define yyoverflow(MSG, SS, SSSIZE, VS, VSSIZE, YYSSZ) \
115 newsize = *(YYSSZ) *= 2; \
118 newss = really_call_realloc (*(SS), newsize * sizeof (short)); \
119 newvs = really_call_realloc (*(VS), newsize * sizeof (YYSTYPE)); \
123 newss = really_call_malloc (newsize * sizeof (short)); \
124 newvs = really_call_malloc (newsize * sizeof (YYSTYPE)); \
126 memcpy (newss, *(SS), (SSSIZE)); \
128 memcpy (newvs, *(VS), (VSSIZE)); \
130 if (!newss || !newvs) \
137 malloced_yyss = newss; \
138 malloced_yyvs = (void *) newvs; \
141 #line 100 "c-parse.y"
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
151 #line 251 "c-parse.y"
153 /* Declaration specifiers of the current declaration. */
154 static struct c_declspecs *current_declspecs;
155 static GTY(()) tree prefix_attributes;
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;
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;
174 /* Stack of saved values of current_declspecs, prefix_attributes and
175 all_prefix_attributes. */
176 static struct c_declspec_stack *declspec_stack;
178 /* INDIRECT_REF with a TREE_TYPE of the type being queried for offsetof. */
179 static tree offsetof_base;
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 \
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; \
194 #define POP_DECLSPEC_STACK \
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; \
202 /* For __extension__, save/restore the warning flags which are
203 controlled by __extension__. */
204 #define SAVE_EXT_FLAGS() \
206 | (warn_pointer_arith << 1) \
207 | (warn_traditional << 2) \
210 #define RESTORE_EXT_FLAGS(val) \
212 pedantic = val & 1; \
213 warn_pointer_arith = (val >> 1) & 1; \
214 warn_traditional = (val >> 2) & 1; \
215 flag_iso = (val >> 3) & 1; \
219 #define OBJC_NEED_RAW_IDENTIFIER(VAL) /* nothing */
221 /* Tell yyparse how to print a token's value, if yydebug is set. */
223 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
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);
232 /* Initialization routine for this file. */
246 #define YYFLAG -32768
249 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
250 #define YYTRANSLATE(x) ((unsigned)(x) <= 326 ? yytranslate[x] : 303)
252 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
253 static const char yytranslate[] =
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
291 static const short yyprhs[] =
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
352 static const short yyrhs[] =
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
537 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
538 static const short yyrline[] =
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
602 #if (YYDEBUG) || defined YYERROR_VERBOSE
604 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
605 static const char *const yytname[] =
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
681 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
682 static const short yyr1[] =
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,
744 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
745 static const short yyr2[] =
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,
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
810 static const short yydefact[] =
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,
908 static const short yydefgoto[] =
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
933 static const short yypact[] =
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
1031 static const short yypgoto[] =
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
1060 static const short yytable[] =
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
1389 static const short yycheck[] =
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
1717 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1718 #line 3 "/usr/share/bison/bison.simple"
1720 /* Skeleton output parser for bison,
1722 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
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)
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.
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. */
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. */
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. */
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. */
1757 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1759 /* The parser invokes alloca or malloc; define the necessary symbols. */
1761 # if YYSTACK_USE_ALLOCA
1762 # define YYSTACK_ALLOC alloca
1764 # ifndef YYSTACK_USE_ALLOCA
1765 # if defined (alloca) || defined (_ALLOCA_H)
1766 # define YYSTACK_ALLOC alloca
1769 # define YYSTACK_ALLOC __builtin_alloca
1775 # ifdef YYSTACK_ALLOC
1776 /* Pacify GCC's `empty if-body' warning. */
1777 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1779 # if defined (__STDC__) || defined (__cplusplus)
1780 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1781 # define YYSIZE_T size_t
1783 # define YYSTACK_ALLOC malloc
1784 # define YYSTACK_FREE free
1786 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1789 #if (! defined (yyoverflow) \
1790 && (! defined (__cplusplus) \
1791 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1793 /* A type that is properly aligned for any stack member. */
1803 /* The size of the maximum gap between one aligned stack and the next. */
1804 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1806 /* The size of an array large to enough to hold all stacks, each with
1809 # define YYSTACK_BYTES(N) \
1810 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1811 + 2 * YYSTACK_GAP_MAX)
1813 # define YYSTACK_BYTES(N) \
1814 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1818 /* Copy COUNT objects from FROM to TO. The source and destination do
1822 # define YYCOPY(To, From, Count) \
1823 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1825 # define YYCOPY(To, From, Count) \
1828 register YYSIZE_T yyi; \
1829 for (yyi = 0; yyi < (Count); yyi++) \
1830 (To)[yyi] = (From)[yyi]; \
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
1841 # define YYSTACK_RELOCATE(Stack) \
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); \
1855 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1856 # define YYSIZE_T __SIZE_TYPE__
1858 #if ! defined (YYSIZE_T) && defined (size_t)
1859 # define YYSIZE_T size_t
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
1867 #if ! defined (YYSIZE_T)
1868 # define YYSIZE_T unsigned int
1871 #define yyerrok (yyerrstatus = 0)
1872 #define yyclearin (yychar = YYEMPTY)
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) \
1885 if (yychar == YYEMPTY && yylen == 1) \
1889 yychar1 = YYTRANSLATE (yychar); \
1895 yyerror ("syntax error: cannot back up"); \
1901 #define YYERRCODE 256
1904 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
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. */
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;
1918 /* YYLEX -- calling `yylex' with the right arguments. */
1923 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1925 # define YYLEX yylex (&yylval, &yylloc)
1927 # else /* !YYLSP_NEEDED */
1929 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1931 # define YYLEX yylex (&yylval)
1933 # endif /* !YYLSP_NEEDED */
1935 # define YYLEX yylex ()
1936 #endif /* !YYPURE */
1939 /* Enable debugging if requested. */
1943 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1944 # define YYFPRINTF fprintf
1947 # define YYDPRINTF(Args) \
1952 /* Nonzero means print parse trace. It is left uninitialized so that
1953 multiple parsers can coexist. */
1955 #else /* !YYDEBUG */
1956 # define YYDPRINTF(Args)
1957 #endif /* !YYDEBUG */
1959 /* YYINITDEPTH -- initial size of the parser's stacks. */
1961 # define YYINITDEPTH 200
1964 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1965 if the built-in stack extension method is used).
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. */
1976 # define YYMAXDEPTH 10000
1979 #ifdef YYERROR_VERBOSE
1982 # if defined (__GLIBC__) && defined (_STRING_H)
1983 # define yystrlen strlen
1985 /* Return the length of YYSTR. */
1987 # if defined (__STDC__) || defined (__cplusplus)
1988 yystrlen (const char *yystr)
1994 register const char *yys = yystr;
1996 while (*yys++ != '\0')
1999 return yys - yystr - 1;
2005 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2006 # define yystpcpy stpcpy
2008 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2011 # if defined (__STDC__) || defined (__cplusplus)
2012 yystpcpy (char *yydest, const char *yysrc)
2014 yystpcpy (yydest, yysrc)
2019 register char *yyd = yydest;
2020 register const char *yys = yysrc;
2022 while ((*yyd++ = *yys++) != '\0')
2031 #line 315 "/usr/share/bison/bison.simple"
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. */
2040 #ifdef YYPARSE_PARAM
2041 # if defined (__STDC__) || defined (__cplusplus)
2042 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2043 # define YYPARSE_PARAM_DECL
2045 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
2046 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2048 #else /* !YYPARSE_PARAM */
2049 # define YYPARSE_PARAM_ARG
2050 # define YYPARSE_PARAM_DECL
2051 #endif /* !YYPARSE_PARAM */
2053 /* Prevent warning if -Wstrict-prototypes. */
2055 # ifdef YYPARSE_PARAM
2056 int yyparse (void *);
2062 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
2063 variables are global, or local to YYPARSE. */
2065 #define YY_DECL_NON_LSP_VARIABLES \
2066 /* The lookahead symbol. */ \
2069 /* The semantic value of the lookahead symbol. */ \
2072 /* Number of parse errors so far. */ \
2076 # define YY_DECL_VARIABLES \
2077 YY_DECL_NON_LSP_VARIABLES \
2079 /* Location data for the lookahead symbol. */ \
2082 # define YY_DECL_VARIABLES \
2083 YY_DECL_NON_LSP_VARIABLES
2087 /* If nonreentrant, generate the variables here. */
2091 #endif /* !YYPURE */
2094 yyparse (YYPARSE_PARAM_ARG)
2097 /* If reentrant, generate the variables here. */
2100 #endif /* !YYPURE */
2102 register int yystate;
2105 /* Number of tokens to shift before error messages enabled. */
2107 /* Lookahead token as an internal (translated) token number. */
2110 /* Three stacks and their tools:
2111 `yyss': related to states,
2112 `yyvs': related to semantic values,
2113 `yyls': related to locations.
2115 Refer to the stacks thru separate pointers, to allow yyoverflow
2116 to reallocate them elsewhere. */
2118 /* The state stack. */
2119 short yyssa[YYINITDEPTH];
2120 short *yyss = yyssa;
2121 register short *yyssp;
2123 /* The semantic value stack. */
2124 YYSTYPE yyvsa[YYINITDEPTH];
2125 YYSTYPE *yyvs = yyvsa;
2126 register YYSTYPE *yyvsp;
2129 /* The location stack. */
2130 YYLTYPE yylsa[YYINITDEPTH];
2131 YYLTYPE *yyls = yylsa;
2136 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2138 # define YYPOPSTACK (yyvsp--, yyssp--)
2141 YYSIZE_T yystacksize = YYINITDEPTH;
2144 /* The variables used to return semantic value and location from the
2151 /* When reducing, the number of symbols on the RHS of the reduced
2155 YYDPRINTF ((stderr, "Starting parse\n"));
2160 yychar = YYEMPTY; /* Cause a token to be read. */
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. */
2174 /*------------------------------------------------------------.
2175 | yynewstate -- Push a new state, which is found in yystate. |
2176 `------------------------------------------------------------*/
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.
2186 if (yyssp >= yyss + yystacksize - 1)
2188 /* Get the current used size of the three stacks, in elements. */
2189 YYSIZE_T yysize = yyssp - yyss + 1;
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
2196 YYSTYPE *yyvs1 = yyvs;
2197 short *yyss1 = yyss;
2199 /* Each stack pointer address is followed by the size of the
2200 data in use in that stack, in bytes. */
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),
2212 yyoverflow ("parser stack overflow",
2213 &yyss1, yysize * sizeof (*yyssp),
2214 &yyvs1, yysize * sizeof (*yyvsp),
2220 #else /* no yyoverflow */
2221 # ifndef YYSTACK_RELOCATE
2224 /* Extend the stack our own way. */
2225 if (yystacksize >= YYMAXDEPTH)
2228 if (yystacksize > YYMAXDEPTH)
2229 yystacksize = YYMAXDEPTH;
2232 short *yyss1 = yyss;
2233 union yyalloc *yyptr =
2234 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2237 YYSTACK_RELOCATE (yyss);
2238 YYSTACK_RELOCATE (yyvs);
2240 YYSTACK_RELOCATE (yyls);
2242 # undef YYSTACK_RELOCATE
2244 YYSTACK_FREE (yyss1);
2247 #endif /* no yyoverflow */
2249 yyssp = yyss + yysize - 1;
2250 yyvsp = yyvs + yysize - 1;
2252 yylsp = yyls + yysize - 1;
2255 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2256 (unsigned long int) yystacksize));
2258 if (yyssp >= yyss + yystacksize - 1)
2262 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2272 /* Do appropriate processing given the current state. */
2273 /* Read a lookahead token if we need one and don't already have one. */
2276 /* First try to decide what to do without reference to lookahead token. */
2278 yyn = yypact[yystate];
2282 /* Not known => get a lookahead token if don't already have one. */
2284 /* yychar is either YYEMPTY or YYEOF
2285 or a valid token in external form. */
2287 if (yychar == YYEMPTY)
2289 YYDPRINTF ((stderr, "Reading a token: "));
2293 /* Convert token to internal form (in yychar1) for indexing tables with */
2295 if (yychar <= 0) /* This means end of input. */
2298 yychar = YYEOF; /* Don't call YYLEX any more */
2300 YYDPRINTF ((stderr, "Now at end of input.\n"));
2304 yychar1 = YYTRANSLATE (yychar);
2307 /* We have to keep this `#if YYDEBUG', since we use variables
2308 which are defined only if `YYDEBUG' is set. */
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. */
2316 YYPRINT (stderr, yychar, yylval);
2318 YYFPRINTF (stderr, ")\n");
2324 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
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. */
2349 /* Shift the lookahead token. */
2350 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2351 yychar, yytname[yychar1]));
2353 /* Discard the token being shifted unless it is eof. */
2354 if (yychar != YYEOF)
2362 /* Count tokens shifted since error; after three, turn off error
2371 /*-----------------------------------------------------------.
2372 | yydefault -- do the default action for the current state. |
2373 `-----------------------------------------------------------*/
2375 yyn = yydefact[yystate];
2381 /*-----------------------------.
2382 | yyreduce -- Do a reduction. |
2383 `-----------------------------*/
2385 /* yyn is the number of a rule to reduce with. */
2388 /* If YYLEN is nonzero, implement the default value of the action:
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];
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);
2406 /* We have to keep this `#if YYDEBUG', since we use variables which
2407 are defined only if `YYDEBUG' is set. */
2412 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
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]]);
2425 #line 342 "c-parse.y"
2427 pedwarn ("ISO C forbids an empty source file");
2431 #line 353 "c-parse.y"
2432 { yyval.dsptype = NULL; ;
2435 #line 354 "c-parse.y"
2436 { obstack_free (&parser_obstack, yyvsp[-2].otype); ;
2439 #line 356 "c-parse.y"
2440 { yyval.dsptype = NULL; ggc_collect (); ;
2443 #line 357 "c-parse.y"
2444 { obstack_free (&parser_obstack, yyvsp[-2].otype); ;
2447 #line 365 "c-parse.y"
2448 { RESTORE_EXT_FLAGS (yyvsp[-1].itype); ;
2451 #line 371 "c-parse.y"
2452 { yyval.otype = obstack_alloc (&parser_obstack, 0); ;
2455 #line 376 "c-parse.y"
2456 { pedwarn ("data definition has no type or storage class");
2457 POP_DECLSPEC_STACK; ;
2460 #line 379 "c-parse.y"
2461 { POP_DECLSPEC_STACK; ;
2464 #line 381 "c-parse.y"
2465 { POP_DECLSPEC_STACK; ;
2468 #line 383 "c-parse.y"
2469 { shadow_tag (finish_declspecs (yyvsp[-1].dsptype)); ;
2472 #line 387 "c-parse.y"
2474 pedwarn ("ISO C does not allow extra %<;%> outside of a function"); ;
2477 #line 393 "c-parse.y"
2478 { if (!start_function (current_declspecs, yyvsp[0].dtrtype,
2479 all_prefix_attributes))
2484 #line 398 "c-parse.y"
2485 { DECL_SOURCE_LOCATION (current_function_decl) = yyvsp[0].location;
2486 store_parm_decls (); ;
2489 #line 401 "c-parse.y"
2490 { finish_function ();
2491 POP_DECLSPEC_STACK; ;
2494 #line 404 "c-parse.y"
2495 { POP_DECLSPEC_STACK; ;
2498 #line 406 "c-parse.y"
2499 { if (!start_function (current_declspecs, yyvsp[0].dtrtype,
2500 all_prefix_attributes))
2505 #line 411 "c-parse.y"
2506 { DECL_SOURCE_LOCATION (current_function_decl) = yyvsp[0].location;
2507 store_parm_decls (); ;
2510 #line 414 "c-parse.y"
2511 { finish_function ();
2512 POP_DECLSPEC_STACK; ;
2515 #line 417 "c-parse.y"
2516 { POP_DECLSPEC_STACK; ;
2519 #line 419 "c-parse.y"
2520 { if (!start_function (current_declspecs, yyvsp[0].dtrtype,
2521 all_prefix_attributes))
2526 #line 424 "c-parse.y"
2527 { DECL_SOURCE_LOCATION (current_function_decl) = yyvsp[0].location;
2528 store_parm_decls (); ;
2531 #line 427 "c-parse.y"
2532 { finish_function ();
2533 POP_DECLSPEC_STACK; ;
2536 #line 430 "c-parse.y"
2537 { POP_DECLSPEC_STACK; ;
2540 #line 439 "c-parse.y"
2541 { yyval.code = ADDR_EXPR; ;
2544 #line 441 "c-parse.y"
2545 { yyval.code = NEGATE_EXPR; ;
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");
2555 #line 448 "c-parse.y"
2556 { yyval.code = PREINCREMENT_EXPR; ;
2559 #line 450 "c-parse.y"
2560 { yyval.code = PREDECREMENT_EXPR; ;
2563 #line 452 "c-parse.y"
2564 { yyval.code = BIT_NOT_EXPR; ;
2567 #line 454 "c-parse.y"
2568 { yyval.code = TRUTH_NOT_EXPR; ;
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; ;
2576 #line 465 "c-parse.y"
2577 { yyval.ttype = NULL_TREE; ;
2580 #line 471 "c-parse.y"
2581 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].exprtype.value); ;
2584 #line 473 "c-parse.y"
2585 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].exprtype.value)); ;
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; ;
2593 #line 483 "c-parse.y"
2594 { yyval.exprtype = yyvsp[0].exprtype;
2595 RESTORE_EXT_FLAGS (yyvsp[-1].itype); ;
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; ;
2604 #line 491 "c-parse.y"
2605 { yyval.exprtype.value = finish_label_address_expr (yyvsp[0].ttype);
2606 yyval.exprtype.original_code = ERROR_MARK; ;
2609 #line 494 "c-parse.y"
2610 { skip_evaluation--;
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); ;
2618 #line 501 "c-parse.y"
2619 { skip_evaluation--;
2621 yyval.exprtype = c_expr_sizeof_type (yyvsp[-1].typenametype); ;
2624 #line 505 "c-parse.y"
2625 { skip_evaluation--;
2627 yyval.exprtype.value = c_alignof_expr (yyvsp[0].exprtype.value);
2628 yyval.exprtype.original_code = ERROR_MARK; ;
2631 #line 510 "c-parse.y"
2632 { skip_evaluation--;
2634 yyval.exprtype.value = c_alignof (groktypename (yyvsp[-1].typenametype));
2635 yyval.exprtype.original_code = ERROR_MARK; ;
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; ;
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; ;
2648 #line 523 "c-parse.y"
2649 { skip_evaluation++; in_sizeof++; ;
2652 #line 527 "c-parse.y"
2653 { skip_evaluation++; in_alignof++; ;
2656 #line 531 "c-parse.y"
2657 { skip_evaluation++; in_typeof++; ;
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; ;
2665 #line 544 "c-parse.y"
2666 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2669 #line 546 "c-parse.y"
2670 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2673 #line 548 "c-parse.y"
2674 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2677 #line 550 "c-parse.y"
2678 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2681 #line 552 "c-parse.y"
2682 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2685 #line 554 "c-parse.y"
2686 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2689 #line 556 "c-parse.y"
2690 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2693 #line 558 "c-parse.y"
2694 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2697 #line 560 "c-parse.y"
2698 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2701 #line 562 "c-parse.y"
2702 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2705 #line 564 "c-parse.y"
2706 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
2709 #line 566 "c-parse.y"
2710 { yyval.exprtype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].exprtype, yyvsp[0].exprtype); ;
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; ;
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); ;
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; ;
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); ;
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; ;
2741 #line 586 "c-parse.y"
2742 { skip_evaluation += ((yyvsp[-4].exprtype.value == truthvalue_true_node)
2743 - (yyvsp[-4].exprtype.value == truthvalue_false_node)); ;
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; ;
2753 #line 594 "c-parse.y"
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; ;
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; ;
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;
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;
2782 #line 618 "c-parse.y"
2784 if (yychar == YYEMPTY)
2786 yyval.exprtype.value = build_external_ref (yyvsp[0].ttype, yychar == '(');
2787 yyval.exprtype.original_code = ERROR_MARK;
2791 #line 625 "c-parse.y"
2792 { yyval.exprtype.value = yyvsp[0].ttype; yyval.exprtype.original_code = ERROR_MARK; ;
2795 #line 627 "c-parse.y"
2796 { yyval.exprtype.value = yyvsp[0].ttype; yyval.exprtype.original_code = STRING_CST; ;
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; ;
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))
2809 error ("compound literal has variable size");
2810 yyval.ttype = error_mark_node;
2812 really_start_incremental_init (yyval.ttype); ;
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;
2820 maybe_warn_string_init (type, init);
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;
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; ;
2836 #line 658 "c-parse.y"
2837 { yyval.exprtype.value = error_mark_node; yyval.exprtype.original_code = ERROR_MARK; ;
2840 #line 660 "c-parse.y"
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;
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;
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; ;
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; ;
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;
2870 offsetof_base = build1 (INDIRECT_REF, type, NULL);
2874 #line 685 "c-parse.y"
2875 { yyval.exprtype.value = fold_offsetof (yyvsp[-1].ttype);
2876 yyval.exprtype.original_code = ERROR_MARK; ;
2879 #line 688 "c-parse.y"
2880 { yyval.exprtype.value = error_mark_node; yyval.exprtype.original_code = ERROR_MARK; ;
2883 #line 691 "c-parse.y"
2887 c = fold (yyvsp[-5].exprtype.value);
2889 if (TREE_CODE (c) != INTEGER_CST)
2890 error ("first argument to %<__builtin_choose_expr%> not"
2892 yyval.exprtype = integer_zerop (c) ? yyvsp[-1].exprtype : yyvsp[-3].exprtype;
2896 #line 702 "c-parse.y"
2897 { yyval.exprtype.value = error_mark_node; yyval.exprtype.original_code = ERROR_MARK; ;
2900 #line 704 "c-parse.y"
2904 e1 = TYPE_MAIN_VARIANT (groktypename (yyvsp[-3].typenametype));
2905 e2 = TYPE_MAIN_VARIANT (groktypename (yyvsp[-1].typenametype));
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;
2914 #line 716 "c-parse.y"
2915 { yyval.exprtype.value = error_mark_node; yyval.exprtype.original_code = ERROR_MARK; ;
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; ;
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; ;
2928 #line 724 "c-parse.y"
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;
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; ;
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; ;
2946 #line 743 "c-parse.y"
2947 { yyval.ttype = build_component_ref (offsetof_base, yyvsp[0].ttype); ;
2950 #line 745 "c-parse.y"
2951 { yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2954 #line 747 "c-parse.y"
2955 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].exprtype.value); ;
2958 #line 760 "c-parse.y"
2962 #line 776 "c-parse.y"
2963 { POP_DECLSPEC_STACK; ;
2966 #line 778 "c-parse.y"
2967 { POP_DECLSPEC_STACK; ;
2970 #line 780 "c-parse.y"
2971 { shadow_tag_warned (finish_declspecs (yyvsp[-1].dsptype), 1);
2972 pedwarn ("empty declaration"); ;
2975 #line 783 "c-parse.y"
2976 { pedwarn ("empty declaration"); ;
2979 #line 792 "c-parse.y"
2983 #line 800 "c-parse.y"
2984 { pending_xref_error ();
2985 PUSH_DECLSPEC_STACK;
2986 if (yyvsp[0].dsptype)
2988 prefix_attributes = yyvsp[0].dsptype->attrs;
2989 yyvsp[0].dsptype->attrs = NULL_TREE;
2990 current_declspecs = yyvsp[0].dsptype;
2994 prefix_attributes = NULL_TREE;
2995 current_declspecs = build_null_declspecs ();
2997 current_declspecs = finish_declspecs (current_declspecs);
2998 all_prefix_attributes = prefix_attributes; ;
3001 #line 821 "c-parse.y"
3002 { all_prefix_attributes = chainon (yyvsp[0].ttype, prefix_attributes); ;
3005 #line 826 "c-parse.y"
3006 { POP_DECLSPEC_STACK; ;
3009 #line 828 "c-parse.y"
3010 { POP_DECLSPEC_STACK; ;
3013 #line 830 "c-parse.y"
3014 { POP_DECLSPEC_STACK; ;
3017 #line 832 "c-parse.y"
3018 { POP_DECLSPEC_STACK; ;
3021 #line 834 "c-parse.y"
3022 { shadow_tag (finish_declspecs (yyvsp[-1].dsptype)); ;
3025 #line 836 "c-parse.y"
3026 { RESTORE_EXT_FLAGS (yyvsp[-1].itype); ;
3029 #line 882 "c-parse.y"
3030 { yyval.dsptype = declspecs_add_qual (build_null_declspecs (), yyvsp[0].ttype); ;
3033 #line 884 "c-parse.y"
3034 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3037 #line 886 "c-parse.y"
3038 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3041 #line 891 "c-parse.y"
3042 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3045 #line 896 "c-parse.y"
3046 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3049 #line 898 "c-parse.y"
3050 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3053 #line 903 "c-parse.y"
3054 { yyval.dsptype = declspecs_add_attrs (build_null_declspecs (), yyvsp[0].ttype); ;
3057 #line 905 "c-parse.y"
3058 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3061 #line 910 "c-parse.y"
3062 { yyval.dsptype = declspecs_add_type (build_null_declspecs (), yyvsp[0].tstype); ;
3065 #line 912 "c-parse.y"
3066 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3069 #line 914 "c-parse.y"
3070 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3073 #line 916 "c-parse.y"
3074 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3077 #line 918 "c-parse.y"
3078 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3081 #line 920 "c-parse.y"
3082 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3085 #line 922 "c-parse.y"
3086 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3089 #line 927 "c-parse.y"
3090 { yyval.dsptype = declspecs_add_type (build_null_declspecs (), yyvsp[0].tstype); ;
3093 #line 929 "c-parse.y"
3094 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3097 #line 931 "c-parse.y"
3098 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3101 #line 933 "c-parse.y"
3102 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3105 #line 935 "c-parse.y"
3106 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3109 #line 937 "c-parse.y"
3110 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3113 #line 942 "c-parse.y"
3114 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3117 #line 944 "c-parse.y"
3118 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3121 #line 946 "c-parse.y"
3122 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3125 #line 948 "c-parse.y"
3126 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3129 #line 950 "c-parse.y"
3130 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3133 #line 952 "c-parse.y"
3134 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3137 #line 957 "c-parse.y"
3138 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3141 #line 959 "c-parse.y"
3142 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3145 #line 961 "c-parse.y"
3146 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3149 #line 963 "c-parse.y"
3150 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3153 #line 965 "c-parse.y"
3154 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3157 #line 970 "c-parse.y"
3158 { yyval.dsptype = declspecs_add_scspec (build_null_declspecs (), yyvsp[0].ttype); ;
3161 #line 972 "c-parse.y"
3162 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3165 #line 974 "c-parse.y"
3166 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3169 #line 976 "c-parse.y"
3170 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3173 #line 978 "c-parse.y"
3174 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3177 #line 980 "c-parse.y"
3178 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3181 #line 982 "c-parse.y"
3182 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3185 #line 987 "c-parse.y"
3186 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3189 #line 992 "c-parse.y"
3190 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3193 #line 994 "c-parse.y"
3194 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3197 #line 996 "c-parse.y"
3198 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3201 #line 998 "c-parse.y"
3202 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3205 #line 1000 "c-parse.y"
3206 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3209 #line 1002 "c-parse.y"
3210 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3213 #line 1007 "c-parse.y"
3214 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3217 #line 1012 "c-parse.y"
3218 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3221 #line 1014 "c-parse.y"
3222 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3225 #line 1016 "c-parse.y"
3226 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3229 #line 1018 "c-parse.y"
3230 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3233 #line 1020 "c-parse.y"
3234 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3237 #line 1022 "c-parse.y"
3238 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3241 #line 1024 "c-parse.y"
3242 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3245 #line 1026 "c-parse.y"
3246 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3249 #line 1028 "c-parse.y"
3250 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3253 #line 1030 "c-parse.y"
3254 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3257 #line 1035 "c-parse.y"
3258 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3261 #line 1037 "c-parse.y"
3262 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3265 #line 1039 "c-parse.y"
3266 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3269 #line 1041 "c-parse.y"
3270 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3273 #line 1043 "c-parse.y"
3274 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3277 #line 1048 "c-parse.y"
3278 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3281 #line 1050 "c-parse.y"
3282 { yyval.dsptype = declspecs_add_qual (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3285 #line 1052 "c-parse.y"
3286 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3289 #line 1054 "c-parse.y"
3290 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3293 #line 1056 "c-parse.y"
3294 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3297 #line 1058 "c-parse.y"
3298 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3301 #line 1060 "c-parse.y"
3302 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3305 #line 1062 "c-parse.y"
3306 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3309 #line 1064 "c-parse.y"
3310 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3313 #line 1066 "c-parse.y"
3314 { yyval.dsptype = declspecs_add_scspec (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3317 #line 1071 "c-parse.y"
3318 { yyval.dsptype = declspecs_add_attrs (yyvsp[-1].dsptype, yyvsp[0].ttype); ;
3321 #line 1073 "c-parse.y"
3322 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3325 #line 1075 "c-parse.y"
3326 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3329 #line 1077 "c-parse.y"
3330 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3333 #line 1079 "c-parse.y"
3334 { yyval.dsptype = declspecs_add_type (yyvsp[-1].dsptype, yyvsp[0].tstype); ;
3337 #line 1166 "c-parse.y"
3338 { yyval.dsptype = NULL; ;
3341 #line 1168 "c-parse.y"
3342 { yyval.dsptype = yyvsp[0].dsptype; ;
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; ;
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); ;
3358 #line 1220 "c-parse.y"
3359 { skip_evaluation--;
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,
3370 #line 1230 "c-parse.y"
3371 { skip_evaluation--;
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,
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));
3383 yyval.ttype = error_mark_node;
3384 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3387 #line 1259 "c-parse.y"
3389 if (yyvsp[-1].ttype != error_mark_node)
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);
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));
3401 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
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));
3409 yyval.ttype = error_mark_node;
3410 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3413 #line 1283 "c-parse.y"
3415 if (yyvsp[-1].ttype != error_mark_node)
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);
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));
3427 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
3430 #line 1300 "c-parse.y"
3431 { yyval.ttype = NULL_TREE; ;
3434 #line 1302 "c-parse.y"
3435 { yyval.ttype = yyvsp[0].ttype; ;
3438 #line 1307 "c-parse.y"
3439 { yyval.ttype = yyvsp[0].ttype; ;
3442 #line 1309 "c-parse.y"
3443 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3446 #line 1315 "c-parse.y"
3447 { yyval.ttype = yyvsp[-3].ttype; ;
3450 #line 1317 "c-parse.y"
3451 { yyval.ttype = NULL_TREE; ;
3454 #line 1322 "c-parse.y"
3455 { yyval.ttype = yyvsp[0].ttype; ;
3458 #line 1324 "c-parse.y"
3459 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3462 #line 1329 "c-parse.y"
3463 { yyval.ttype = NULL_TREE; ;
3466 #line 1331 "c-parse.y"
3467 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
3470 #line 1333 "c-parse.y"
3471 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
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)); ;
3478 #line 1337 "c-parse.y"
3479 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3482 #line 1359 "c-parse.y"
3483 { yyval.exprtype = yyvsp[0].exprtype; ;
3486 #line 1361 "c-parse.y"
3487 { really_start_incremental_init (NULL_TREE); ;
3490 #line 1363 "c-parse.y"
3491 { yyval.exprtype = pop_init_level (0); ;
3494 #line 1365 "c-parse.y"
3495 { yyval.exprtype.value = error_mark_node; yyval.exprtype.original_code = ERROR_MARK; ;
3498 #line 1371 "c-parse.y"
3500 pedwarn ("ISO C forbids empty initializer braces"); ;
3503 #line 1385 "c-parse.y"
3504 { if (pedantic && !flag_isoc99)
3505 pedwarn ("ISO C90 forbids specifying subobject to initialize"); ;
3508 #line 1388 "c-parse.y"
3510 pedwarn ("obsolete use of designated initializer without %<=%>"); ;
3513 #line 1391 "c-parse.y"
3514 { set_init_label (yyvsp[-1].ttype);
3516 pedwarn ("obsolete use of designated initializer with %<:%>"); ;
3519 #line 1395 "c-parse.y"
3523 #line 1401 "c-parse.y"
3524 { push_init_level (0); ;
3527 #line 1403 "c-parse.y"
3528 { process_init_element (pop_init_level (0)); ;
3531 #line 1405 "c-parse.y"
3532 { process_init_element (yyvsp[0].exprtype); ;
3535 #line 1416 "c-parse.y"
3536 { set_init_label (yyvsp[0].ttype); ;
3539 #line 1422 "c-parse.y"
3540 { set_init_index (yyvsp[-3].exprtype.value, yyvsp[-1].exprtype.value);
3542 pedwarn ("ISO C forbids specifying range of elements to initialize"); ;
3545 #line 1426 "c-parse.y"
3546 { set_init_index (yyvsp[-1].exprtype.value, NULL_TREE); ;
3549 #line 1431 "c-parse.y"
3551 pedwarn ("ISO C forbids nested functions");
3553 push_function_context ();
3554 if (!start_function (current_declspecs, yyvsp[0].dtrtype,
3555 all_prefix_attributes))
3557 pop_function_context ();
3563 #line 1443 "c-parse.y"
3564 { tree decl = current_function_decl;
3565 DECL_SOURCE_LOCATION (decl) = yyvsp[0].location;
3566 store_parm_decls (); ;
3569 #line 1452 "c-parse.y"
3570 { tree decl = current_function_decl;
3571 add_stmt (yyvsp[0].ttype);
3573 pop_function_context ();
3574 add_stmt (build_stmt (DECL_EXPR, decl)); ;
3577 #line 1461 "c-parse.y"
3579 pedwarn ("ISO C forbids nested functions");
3581 push_function_context ();
3582 if (!start_function (current_declspecs, yyvsp[0].dtrtype,
3583 all_prefix_attributes))
3585 pop_function_context ();
3591 #line 1473 "c-parse.y"
3592 { tree decl = current_function_decl;
3593 DECL_SOURCE_LOCATION (decl) = yyvsp[0].location;
3594 store_parm_decls (); ;
3597 #line 1482 "c-parse.y"
3598 { tree decl = current_function_decl;
3599 add_stmt (yyvsp[0].ttype);
3601 pop_function_context ();
3602 add_stmt (build_stmt (DECL_EXPR, decl)); ;
3605 #line 1501 "c-parse.y"
3606 { yyval.dtrtype = yyvsp[-2].ttype ? build_attrs_declarator (yyvsp[-2].ttype, yyvsp[-1].dtrtype) : yyvsp[-1].dtrtype; ;
3609 #line 1503 "c-parse.y"
3610 { yyval.dtrtype = build_function_declarator (yyvsp[0].arginfotype, yyvsp[-2].dtrtype); ;
3613 #line 1505 "c-parse.y"
3614 { yyval.dtrtype = set_array_declarator_inner (yyvsp[0].dtrtype, yyvsp[-1].dtrtype, false); ;
3617 #line 1507 "c-parse.y"
3618 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3621 #line 1509 "c-parse.y"
3622 { yyval.dtrtype = build_id_declarator (yyvsp[0].ttype); ;
3625 #line 1523 "c-parse.y"
3626 { yyval.dtrtype = build_function_declarator (yyvsp[0].arginfotype, yyvsp[-2].dtrtype); ;
3629 #line 1525 "c-parse.y"
3630 { yyval.dtrtype = set_array_declarator_inner (yyvsp[0].dtrtype, yyvsp[-1].dtrtype, false); ;
3633 #line 1527 "c-parse.y"
3634 { yyval.dtrtype = build_id_declarator (yyvsp[0].ttype); ;
3637 #line 1532 "c-parse.y"
3638 { yyval.dtrtype = build_function_declarator (yyvsp[0].arginfotype, yyvsp[-2].dtrtype); ;
3641 #line 1534 "c-parse.y"
3642 { yyval.dtrtype = set_array_declarator_inner (yyvsp[0].dtrtype, yyvsp[-1].dtrtype, false); ;
3645 #line 1536 "c-parse.y"
3646 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3649 #line 1538 "c-parse.y"
3650 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3653 #line 1540 "c-parse.y"
3654 { yyval.dtrtype = yyvsp[-2].ttype ? build_attrs_declarator (yyvsp[-2].ttype, yyvsp[-1].dtrtype) : yyvsp[-1].dtrtype; ;
3657 #line 1548 "c-parse.y"
3658 { yyval.dtrtype = build_function_declarator (yyvsp[0].arginfotype, yyvsp[-2].dtrtype); ;
3661 #line 1550 "c-parse.y"
3662 { yyval.dtrtype = yyvsp[-2].ttype ? build_attrs_declarator (yyvsp[-2].ttype, yyvsp[-1].dtrtype) : yyvsp[-1].dtrtype; ;
3665 #line 1552 "c-parse.y"
3666 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3669 #line 1554 "c-parse.y"
3670 { yyval.dtrtype = set_array_declarator_inner (yyvsp[0].dtrtype, yyvsp[-1].dtrtype, false); ;
3673 #line 1556 "c-parse.y"
3674 { yyval.dtrtype = build_id_declarator (yyvsp[0].ttype); ;
3677 #line 1561 "c-parse.y"
3678 { yyval.ttype = NULL_TREE; ;
3681 #line 1563 "c-parse.y"
3682 { yyval.ttype = yyvsp[0].ttype; ;
3685 #line 1568 "c-parse.y"
3686 { yyval.ttype = NULL_TREE; ;
3689 #line 1570 "c-parse.y"
3690 { yyval.ttype = yyvsp[0].ttype; ;
3693 #line 1575 "c-parse.y"
3694 { yyval.ttype = NULL_TREE; ;
3697 #line 1577 "c-parse.y"
3698 { yyval.ttype = yyvsp[0].ttype; ;
3701 #line 1588 "c-parse.y"
3702 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
3703 /* Start scope of tag before parsing components. */
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; ;
3713 #line 1596 "c-parse.y"
3714 { yyval.tstype.spec = finish_struct (start_struct (RECORD_TYPE,
3716 nreverse (yyvsp[-2].ttype), chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3717 yyval.tstype.kind = ctsk_tagdef;
3721 #line 1602 "c-parse.y"
3722 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
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; ;
3731 #line 1608 "c-parse.y"
3732 { yyval.tstype.spec = finish_struct (start_struct (UNION_TYPE,
3734 nreverse (yyvsp[-2].ttype), chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3735 yyval.tstype.kind = ctsk_tagdef;
3739 #line 1614 "c-parse.y"
3740 { yyval.ttype = start_enum (yyvsp[-1].ttype); ;
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; ;
3749 #line 1620 "c-parse.y"
3750 { yyval.ttype = start_enum (NULL_TREE); ;
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; ;
3759 #line 1629 "c-parse.y"
3760 { yyval.tstype = parser_xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
3763 #line 1631 "c-parse.y"
3764 { yyval.tstype = parser_xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
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"); ;
3775 #line 1648 "c-parse.y"
3776 { if (pedantic && !flag_isoc99)
3777 pedwarn ("comma at end of enumerator list"); ;
3780 #line 1666 "c-parse.y"
3781 { yyval.ttype = yyvsp[0].ttype; ;
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"); ;
3789 #line 1673 "c-parse.y"
3790 { yyval.ttype = NULL_TREE; ;
3793 #line 1675 "c-parse.y"
3794 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[-2].ttype); ;
3797 #line 1677 "c-parse.y"
3799 pedwarn ("extra semicolon in struct or union specified"); ;
3802 #line 1683 "c-parse.y"
3803 { yyval.ttype = yyvsp[0].ttype;
3804 POP_DECLSPEC_STACK; ;
3807 #line 1686 "c-parse.y"
3809 /* Support for unnamed structs or unions as members of
3810 structs or unions (which is [a] useful and [b] supports
3812 yyval.ttype = grokfield (build_id_declarator (NULL_TREE),
3813 current_declspecs, NULL_TREE);
3814 POP_DECLSPEC_STACK; ;
3817 #line 1694 "c-parse.y"
3818 { yyval.ttype = yyvsp[0].ttype;
3819 POP_DECLSPEC_STACK; ;
3822 #line 1697 "c-parse.y"
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; ;
3829 #line 1702 "c-parse.y"
3830 { yyval.ttype = NULL_TREE; ;
3833 #line 1704 "c-parse.y"
3834 { yyval.ttype = yyvsp[0].ttype;
3835 RESTORE_EXT_FLAGS (yyvsp[-1].itype); ;
3838 #line 1711 "c-parse.y"
3839 { TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-3].ttype; yyval.ttype = yyvsp[0].ttype; ;
3842 #line 1717 "c-parse.y"
3843 { TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-3].ttype; yyval.ttype = yyvsp[0].ttype; ;
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); ;
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); ;
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); ;
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); ;
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); ;
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); ;
3884 #line 1758 "c-parse.y"
3885 { if (yyvsp[-2].ttype == error_mark_node)
3886 yyval.ttype = yyvsp[-2].ttype;
3888 TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ttype, yyval.ttype = yyvsp[0].ttype; ;
3891 #line 1763 "c-parse.y"
3892 { yyval.ttype = error_mark_node; ;
3895 #line 1769 "c-parse.y"
3896 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3899 #line 1771 "c-parse.y"
3900 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].exprtype.value); ;
3903 #line 1776 "c-parse.y"
3904 { pending_xref_error ();
3905 yyval.dsptype = finish_declspecs (yyvsp[0].dsptype); ;
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; ;
3914 #line 1786 "c-parse.y"
3915 { yyval.dtrtype = build_id_declarator (NULL_TREE); ;
3918 #line 1792 "c-parse.y"
3919 { yyval.parmtype = build_c_parm (current_declspecs, all_prefix_attributes,
3920 build_id_declarator (NULL_TREE)); ;
3923 #line 1795 "c-parse.y"
3924 { yyval.parmtype = build_c_parm (current_declspecs, all_prefix_attributes,
3925 yyvsp[0].dtrtype); ;
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); ;
3934 #line 1811 "c-parse.y"
3935 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3938 #line 1816 "c-parse.y"
3939 { yyval.dtrtype = make_pointer_declarator
3940 (yyvsp[0].dsptype, build_id_declarator (NULL_TREE)); ;
3943 #line 1819 "c-parse.y"
3944 { yyval.dtrtype = make_pointer_declarator (yyvsp[-1].dsptype, yyvsp[0].dtrtype); ;
3947 #line 1824 "c-parse.y"
3948 { yyval.dtrtype = yyvsp[-2].ttype ? build_attrs_declarator (yyvsp[-2].ttype, yyvsp[-1].dtrtype) : yyvsp[-1].dtrtype; ;
3951 #line 1826 "c-parse.y"
3952 { yyval.dtrtype = build_function_declarator (yyvsp[0].arginfotype, yyvsp[-2].dtrtype); ;
3955 #line 1828 "c-parse.y"
3956 { yyval.dtrtype = set_array_declarator_inner (yyvsp[0].dtrtype, yyvsp[-1].dtrtype, true); ;
3959 #line 1830 "c-parse.y"
3960 { yyval.dtrtype = build_function_declarator
3961 (yyvsp[0].arginfotype, build_id_declarator (NULL_TREE)); ;
3964 #line 1833 "c-parse.y"
3965 { yyval.dtrtype = set_array_declarator_inner
3966 (yyvsp[0].dtrtype, build_id_declarator (NULL_TREE), true); ;
3969 #line 1841 "c-parse.y"
3970 { yyval.dtrtype = build_array_declarator (yyvsp[-1].exprtype.value, yyvsp[-2].dsptype, false, false); ;
3973 #line 1843 "c-parse.y"
3974 { yyval.dtrtype = build_array_declarator (NULL_TREE, yyvsp[-1].dsptype, false, false); ;
3977 #line 1845 "c-parse.y"
3978 { yyval.dtrtype = build_array_declarator (NULL_TREE, yyvsp[-2].dsptype, false, true); ;
3981 #line 1847 "c-parse.y"
3982 { yyval.dtrtype = build_array_declarator (yyvsp[-1].exprtype.value, yyvsp[-2].dsptype, true, false); ;
3985 #line 1850 "c-parse.y"
3986 { yyval.dtrtype = build_array_declarator (yyvsp[-1].exprtype.value, yyvsp[-3].dsptype, true, false); ;
3989 #line 1863 "c-parse.y"
3991 error ("label at end of compound statement");
3995 #line 1880 "c-parse.y"
3997 if ((pedantic && !flag_isoc99)
3998 || warn_declaration_after_statement)
3999 pedwarn_c90 ("ISO C90 forbids mixed declarations and code");
4003 #line 1914 "c-parse.y"
4004 { yyval.ttype = c_begin_compound_stmt (flag_isoc99); ;
4007 #line 1922 "c-parse.y"
4009 pedwarn ("ISO C forbids label declarations"); ;
4012 #line 1933 "c-parse.y"
4014 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
4016 tree label = declare_label (TREE_VALUE (link));
4017 C_DECLARED_LABEL_FLAG (label) = 1;
4018 add_stmt (build_stmt (DECL_EXPR, label));
4023 #line 1947 "c-parse.y"
4024 { add_stmt (yyvsp[0].ttype); ;
4027 #line 1951 "c-parse.y"
4028 { yyval.ttype = c_begin_compound_stmt (true); ;
4031 #line 1965 "c-parse.y"
4032 { if (cur_stmt_list == NULL)
4034 error ("braced-group within expression allowed "
4035 "only inside a function");
4038 yyval.ttype = c_begin_stmt_expr ();
4042 #line 1976 "c-parse.y"
4043 { yyval.ttype = c_end_compound_stmt (yyvsp[-1].ttype, true); ;
4046 #line 1984 "c-parse.y"
4047 { if (yychar == YYEMPTY)
4049 yyval.location = input_location; ;
4052 #line 1997 "c-parse.y"
4053 { yyval.ttype = c_end_compound_stmt (yyvsp[-2].ttype, flag_isoc99); ;
4056 #line 2002 "c-parse.y"
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);
4073 #line 2020 "c-parse.y"
4074 { if (yyvsp[0].ttype) SET_EXPR_LOCATION (yyvsp[0].ttype, yyvsp[-1].location); ;
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); ;
4083 #line 2037 "c-parse.y"
4084 { yyval.ttype = c_end_compound_stmt (yyvsp[-2].ttype, flag_isoc99); ;
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); ;
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)); ;
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)); ;
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)); ;
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)); ;
4113 #line 2068 "c-parse.y"
4114 { yyval.ttype = c_break_label; c_break_label = NULL; ;
4117 #line 2072 "c-parse.y"
4118 { yyval.ttype = c_cont_label; c_cont_label = NULL; ;
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; ;
4128 #line 2087 "c-parse.y"
4129 { yyval.ttype = c_break_label; c_break_label = yyvsp[-3].ttype; ;
4132 #line 2088 "c-parse.y"
4133 { yyval.ttype = c_cont_label; c_cont_label = yyvsp[-3].ttype; ;
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)); ;
4142 #line 2097 "c-parse.y"
4143 { yyval.ttype = NULL_TREE; ;
4146 #line 2099 "c-parse.y"
4147 { yyval.ttype = yyvsp[0].exprtype.value; ;
4150 #line 2104 "c-parse.y"
4151 { c_finish_expr_stmt (yyvsp[-1].ttype); ;
4154 #line 2106 "c-parse.y"
4155 { check_for_loop_decls (); ;
4158 #line 2110 "c-parse.y"
4159 { if (yyvsp[0].ttype)
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);
4170 #line 2122 "c-parse.y"
4171 { yyval.ttype = c_process_expr_stmt (yyvsp[0].ttype); ;
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; ;
4181 #line 2137 "c-parse.y"
4182 { yyval.ttype = c_start_case (yyvsp[-1].exprtype.value); ;
4185 #line 2139 "c-parse.y"
4186 { c_finish_case (yyvsp[0].ttype);
4188 add_stmt (build (LABEL_EXPR, void_type_node,
4190 c_break_label = yyvsp[-1].ttype;
4191 add_stmt (c_end_compound_stmt (yyvsp[-6].ttype, flag_isoc99)); ;
4194 #line 2150 "c-parse.y"
4195 { yyval.ttype = c_finish_expr_stmt (yyvsp[-1].exprtype.value); ;
4198 #line 2152 "c-parse.y"
4199 { yyval.ttype = NULL_TREE; ;
4202 #line 2154 "c-parse.y"
4203 { yyval.ttype = NULL_TREE; ;
4206 #line 2156 "c-parse.y"
4207 { yyval.ttype = NULL_TREE; ;
4210 #line 2158 "c-parse.y"
4211 { yyval.ttype = NULL_TREE; ;
4214 #line 2160 "c-parse.y"
4215 { yyval.ttype = NULL_TREE; ;
4218 #line 2162 "c-parse.y"
4219 { yyval.ttype = c_finish_bc_stmt (&c_break_label, true); ;
4222 #line 2164 "c-parse.y"
4223 { yyval.ttype = c_finish_bc_stmt (&c_cont_label, false); ;
4226 #line 2166 "c-parse.y"
4227 { yyval.ttype = c_finish_return (NULL_TREE); ;
4230 #line 2168 "c-parse.y"
4231 { yyval.ttype = c_finish_return (yyvsp[-1].exprtype.value); ;
4234 #line 2171 "c-parse.y"
4235 { yyval.ttype = c_finish_goto_label (yyvsp[-1].ttype); ;
4238 #line 2173 "c-parse.y"
4239 { yyval.ttype = c_finish_goto_ptr (yyvsp[-1].exprtype.value); ;
4242 #line 2175 "c-parse.y"
4243 { yyval.ttype = NULL_TREE; ;
4246 #line 2181 "c-parse.y"
4247 { add_stmt (yyvsp[0].ttype); yyval.ttype = NULL_TREE; ;
4250 #line 2190 "c-parse.y"
4251 { yyval.ttype = do_case (yyvsp[-1].exprtype.value, NULL_TREE); ;
4254 #line 2192 "c-parse.y"
4255 { yyval.ttype = do_case (yyvsp[-3].exprtype.value, yyvsp[-1].exprtype.value); ;
4258 #line 2194 "c-parse.y"
4259 { yyval.ttype = do_case (NULL_TREE, NULL_TREE); ;
4262 #line 2196 "c-parse.y"
4263 { tree label = define_label (yyvsp[-2].location, yyvsp[-3].ttype);
4266 decl_attributes (&label, yyvsp[0].ttype, 0);
4267 yyval.ttype = add_stmt (build_stmt (LABEL_EXPR, label));
4270 yyval.ttype = NULL_TREE;
4274 #line 2214 "c-parse.y"
4275 { yyval.ttype = yyvsp[-2].ttype; ;
4278 #line 2220 "c-parse.y"
4279 { yyval.ttype = NULL_TREE; ;
4282 #line 2227 "c-parse.y"
4283 { assemble_asm (yyvsp[-1].ttype); ;
4286 #line 2229 "c-parse.y"
4290 #line 2237 "c-parse.y"
4291 { yyval.ttype = build_asm_stmt (yyvsp[-6].ttype, yyvsp[-3].ttype); ;
4294 #line 2243 "c-parse.y"
4295 { yyval.ttype = build_asm_expr (yyvsp[0].ttype, 0, 0, 0, true); ;
4298 #line 2246 "c-parse.y"
4299 { yyval.ttype = build_asm_expr (yyvsp[-2].ttype, yyvsp[0].ttype, 0, 0, false); ;
4302 #line 2249 "c-parse.y"
4303 { yyval.ttype = build_asm_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, 0, false); ;
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); ;
4310 #line 2259 "c-parse.y"
4311 { yyval.ttype = 0; ;
4314 #line 2261 "c-parse.y"
4315 { if (yyvsp[0].ttype != ridpointers[RID_VOLATILE])
4317 warning ("%E qualifier ignored on asm", yyvsp[0].ttype);
4321 yyval.ttype = yyvsp[0].ttype;
4325 #line 2274 "c-parse.y"
4326 { yyval.ttype = NULL_TREE; ;
4329 #line 2281 "c-parse.y"
4330 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
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); ;
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); ;
4344 #line 2298 "c-parse.y"
4345 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4348 #line 2300 "c-parse.y"
4349 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4352 #line 2306 "c-parse.y"
4353 { if (TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (yyvsp[0].ttype)))
4356 error ("wide string literal in %<asm%>");
4357 yyval.ttype = build_string (1, "");
4360 yyval.ttype = yyvsp[0].ttype; ;
4363 #line 2317 "c-parse.y"
4364 { c_lex_string_translate = 0; ;
4367 #line 2321 "c-parse.y"
4368 { c_lex_string_translate = 1; ;
4371 #line 2332 "c-parse.y"
4373 declare_parm_level (); ;
4376 #line 2335 "c-parse.y"
4377 { yyval.arginfotype = yyvsp[0].arginfotype;
4381 #line 2342 "c-parse.y"
4382 { mark_forward_parm_decls (); ;
4385 #line 2344 "c-parse.y"
4386 { /* Dummy action so attributes are in known place
4387 on parser stack. */ ;
4390 #line 2347 "c-parse.y"
4391 { yyval.arginfotype = yyvsp[0].arginfotype; ;
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; ;
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; ;
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 %<...%>");
4421 #line 2374 "c-parse.y"
4422 { yyval.arginfotype = get_parm_info (/*ellipsis=*/false); ;
4425 #line 2376 "c-parse.y"
4426 { yyval.arginfotype = get_parm_info (/*ellipsis=*/true); ;
4429 #line 2381 "c-parse.y"
4430 { push_parm_decl (yyvsp[0].parmtype); ;
4433 #line 2383 "c-parse.y"
4434 { push_parm_decl (yyvsp[0].parmtype); ;
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; ;
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; ;
4449 #line 2398 "c-parse.y"
4450 { yyval.parmtype = yyvsp[0].parmtype;
4451 POP_DECLSPEC_STACK; ;
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; ;
4460 #line 2406 "c-parse.y"
4461 { yyval.parmtype = yyvsp[0].parmtype;
4462 POP_DECLSPEC_STACK; ;
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; ;
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; ;
4477 #line 2422 "c-parse.y"
4478 { yyval.parmtype = yyvsp[0].parmtype;
4479 POP_DECLSPEC_STACK; ;
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; ;
4488 #line 2430 "c-parse.y"
4489 { yyval.parmtype = yyvsp[0].parmtype;
4490 POP_DECLSPEC_STACK; ;
4493 #line 2436 "c-parse.y"
4494 { prefix_attributes = chainon (prefix_attributes, yyvsp[-3].ttype);
4495 all_prefix_attributes = prefix_attributes; ;
4498 #line 2445 "c-parse.y"
4500 declare_parm_level (); ;
4503 #line 2448 "c-parse.y"
4504 { yyval.arginfotype = yyvsp[0].arginfotype;
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;
4515 /* Make sure we have a parmlist after attributes. */
4516 if (yyvsp[-3].ttype != 0)
4521 #line 2470 "c-parse.y"
4522 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4525 #line 2472 "c-parse.y"
4526 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4529 #line 2478 "c-parse.y"
4530 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4533 #line 2480 "c-parse.y"
4534 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4537 #line 2485 "c-parse.y"
4538 { yyval.itype = SAVE_EXT_FLAGS ();
4540 warn_pointer_arith = 0;
4541 warn_traditional = 0;
4546 #line 705 "/usr/share/bison/bison.simple"
4558 short *yyssp1 = yyss - 1;
4559 YYFPRINTF (stderr, "state stack now");
4560 while (yyssp1 != yyssp)
4561 YYFPRINTF (stderr, " %d", *++yyssp1);
4562 YYFPRINTF (stderr, "\n");
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. */
4577 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
4578 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4579 yystate = yytable[yystate];
4581 yystate = yydefgoto[yyn - YYNTBASE];
4586 /*------------------------------------.
4587 | yyerrlab -- here on detecting error |
4588 `------------------------------------*/
4590 /* If not already recovering from an error, report this error. */
4595 #ifdef YYERROR_VERBOSE
4596 yyn = yypact[yystate];
4598 if (yyn > YYFLAG && yyn < YYLAST)
4600 YYSIZE_T yysize = 0;
4605 /* Start YYX at -YYN if negative to avoid negative indexes in
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);
4616 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
4617 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
4622 for (yyx = yyn < 0 ? -yyn : 0;
4623 yyx < (int) (sizeof (yytname) / sizeof (char *));
4625 if (yycheck[yyx + yyn] == yyx)
4627 const char *yyq = ! yycount ? ", expecting " : " or ";
4628 yyp = yystpcpy (yyp, yyq);
4629 yyp = yystpcpy (yyp, yytname[yyx]);
4634 YYSTACK_FREE (yymsg);
4637 yyerror ("parse error; also virtual memory exhausted");
4640 #endif /* defined (YYERROR_VERBOSE) */
4641 yyerror ("parse error");
4646 /*--------------------------------------------------.
4647 | yyerrlab1 -- error raised explicitly by an action |
4648 `--------------------------------------------------*/
4650 if (yyerrstatus == 3)
4652 /* If just tried and failed to reuse lookahead token after an
4653 error, discard it. */
4655 /* return failure if at end of input */
4656 if (yychar == YYEOF)
4658 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
4659 yychar, yytname[yychar1]));
4663 /* Else will try to reuse lookahead token after shifting the error
4666 yyerrstatus = 3; /* Each real token shifted decrements this */
4671 /*-------------------------------------------------------------------.
4672 | yyerrdefault -- current state does not do anything special for the |
4674 `-------------------------------------------------------------------*/
4677 /* This is wrong; only states that explicitly want error tokens
4678 should shift them. */
4680 /* If its default is to accept any token, ok. Otherwise pop it. */
4681 yyn = yydefact[yystate];
4687 /*---------------------------------------------------------------.
4688 | yyerrpop -- pop the current state because it cannot handle the |
4690 `---------------------------------------------------------------*/
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");
4715 yyn = yypact[yystate];
4720 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4737 YYDPRINTF ((stderr, "Shifting error token, "));
4748 /*-------------------------------------.
4749 | yyacceptlab -- YYACCEPT comes here. |
4750 `-------------------------------------*/
4755 /*-----------------------------------.
4756 | yyabortlab -- YYABORT comes here. |
4757 `-----------------------------------*/
4762 /*---------------------------------------------.
4763 | yyoverflowab -- parser overflow comes here. |
4764 `---------------------------------------------*/
4766 yyerror ("parser stack overflow");
4773 YYSTACK_FREE (yyss);
4777 #line 2492 "c-parse.y"
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. */
4783 static enum cpp_ttype last_token;
4785 /* The reserved keyword table. */
4789 ENUM_BITFIELD(rid) rid : 16;
4790 unsigned int disable : 16;
4793 /* Disable mask. Keywords are disabled if (reswords[i].disable & mask) is
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 */
4800 static const struct resword reswords[] =
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 },
4876 #define N_reswords (sizeof reswords / sizeof (struct resword))
4878 /* Table mapping from RID_* constants to yacc token numbers.
4879 Unfortunately we have to have entries for all the keywords in all
4881 static const short rid_to_yy[RID_MAX] =
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,
4898 /* RID_COMPLEX */ TYPESPEC,
4899 /* RID_THREAD */ SCSPEC,
4903 /* RID_VIRTUAL */ 0,
4904 /* RID_EXPLICIT */ 0,
4906 /* RID_MUTABLE */ 0,
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,
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,
4926 /* RID_ELSE */ ELSE,
4927 /* RID_WHILE */ WHILE,
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,
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,
4950 /* RID_CHOOSE_EXPR */ CHOOSE_EXPR,
4951 /* RID_TYPES_COMPATIBLE_P */ TYPES_COMPATIBLE_P,
4953 /* RID_FUNCTION_NAME */ FUNC_NAME,
4954 /* RID_PRETTY_FUNCTION_NAME */ FUNC_NAME,
4955 /* RID_C99_FUNCTION_NAME */ FUNC_NAME,
4958 /* RID_BOOL */ TYPESPEC,
4962 /* RID_PRIVATE */ 0,
4963 /* RID_PROTECTED */ 0,
4964 /* RID_TEMPLATE */ 0,
4969 /* RID_NAMESPACE */ 0,
4971 /* RID_OFFSETOF */ OFFSETOF,
4972 /* RID_OPERATOR */ 0,
4977 /* RID_TYPENAME */ 0,
4982 /* RID_CONSTCAST */ 0,
4983 /* RID_DYNCAST */ 0,
4984 /* RID_REINTCAST */ 0,
4985 /* RID_STATCAST */ 0,
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
5008 init_reswords (void)
5012 int mask = (flag_isoc99 ? 0 : D_C89)
5013 | (flag_no_asm ? (flag_isoc99 ? D_EXT : D_EXT|D_EXT89) : 0);
5015 if (!c_dialect_objc ())
5018 ridpointers = GGC_CNEWVEC (tree, (int) RID_MAX);
5019 for (i = 0; i < N_reswords; i++)
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)
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;
5033 #define NAME(type) cpp_type2name (type)
5036 yyerror (const char *msgid)
5038 c_parse_error (msgid, last_token, yylval.ttype);
5047 if (C_IS_RESERVED_WORD (yylval.ttype))
5049 enum rid rid_code = C_RID_CODE (yylval.ttype);
5052 /* Return the canonical spelling for this keyword. */
5053 yylval.ttype = ridpointers[(int) rid_code];
5054 return rid_to_yy[(int) rid_code];
5058 decl = lookup_name (yylval.ttype);
5061 if (TREE_CODE (decl) == TYPE_DECL)
5072 last_token = c_lex (&yylval.ttype);
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;
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;
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;
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;
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 '.';
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 ';';
5133 return yylexname ();
5136 /* This only happens in Objective-C; it must be a keyword. */
5137 return rid_to_yy [(int) C_RID_CODE (yylval.ttype)];
5148 case CPP_OBJC_STRING:
5151 /* These tokens are C++ specific (and will not be generated
5152 in C mode, but let's be cautious). */
5154 case CPP_DEREF_STAR:
5160 /* These tokens should not survive translation phase 4. */
5163 error ("syntax error at %qs token", NAME(last_token));
5176 timevar_push (TV_LEX);
5178 timevar_pop (TV_LEX);
5182 /* Function used when yydebug is set, to print a token in more detail. */
5185 yyprint (FILE *file, int yychar, YYSTYPE yyl)
5189 fprintf (file, " [%s]", NAME(last_token));
5199 if (IDENTIFIER_POINTER (t))
5200 fprintf (file, " '%s'", IDENTIFIER_POINTER (t));
5204 fprintf (file, " %s", GET_MODE_NAME (TYPE_MODE (TREE_TYPE (t))));
5205 if (TREE_CODE (t) == INTEGER_CST)
5208 fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX,
5209 TREE_INT_CST_HIGH (t), TREE_INT_CST_LOW (t));
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. */
5218 /* Parse the file. */
5226 free (malloced_yyss);
5227 free (malloced_yyvs);
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
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");
5249 #include "gt-c-parse.h"