2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
41 #define END_OF_LINE 291
46 #define ARITHCOMPARE 296
51 #define MINUSMINUS 301
52 #define HYPERUNARY 302
55 #define IMPLEMENTATION 305
65 #define OBJECTNAME 315
68 #define OBJC_STRING 318
85 #ifdef MULTIBYTE_CHARS
90 /* Since parsers are distinct for each language, put the language string
92 const char * const language_string = "GNU C";
94 /* Like YYERROR but do call yyerror. */
95 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
97 /* Cause the `yydebug' variable to be defined. */
101 typedef union {long itype; tree ttype; enum tree_code code;
102 char *filename; int lineno; int ends_in_label; } YYSTYPE;
103 #line 185 "c-parse.y"
105 /* Number of statements (loosely speaking) and compound statements
107 static int stmt_count;
108 static int compstmt_count;
110 /* Input file and line number of the end of the body of last simple_if;
111 used by the stmt-rule immediately after simple_if returns. */
112 static char *if_stmt_file;
113 static int if_stmt_line;
115 /* List of types and structure classes of the current declaration. */
116 static tree current_declspecs = NULL_TREE;
117 static tree prefix_attributes = NULL_TREE;
119 /* Stack of saved values of current_declspecs and prefix_attributes. */
120 static tree declspec_stack;
122 /* 1 if we explained undeclared var errors. */
123 static int undeclared_variable_notice;
126 /* Tell yyparse how to print a token's value, if yydebug is set. */
128 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
129 extern void yyprint PROTO ((FILE *, int, YYSTYPE));
131 /* Add GC roots for variables local to this file. */
135 ggc_add_tree_root (&declspec_stack, 1);
136 ggc_add_tree_root (¤t_declspecs, 1);
137 ggc_add_tree_root (&prefix_attributes, 1);
151 #define YYFLAG -32768
154 #define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 244)
156 static const char yytranslate[] = { 0,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 82, 2, 2, 2, 54, 45, 2, 61,
161 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
163 38, 2, 39, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 62, 2, 85, 44, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 84, 43, 80, 81, 2, 2, 2, 2,
170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
183 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
184 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
185 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
186 36, 37, 41, 42, 46, 47, 48, 49, 55, 56,
187 57, 58, 59, 63, 64, 65, 66, 67, 68, 69,
188 70, 71, 72, 73, 74, 75, 76, 77
192 static const short yyprhs[] = { 0,
193 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
194 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
195 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
196 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
197 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
198 142, 147, 150, 155, 158, 161, 168, 170, 172, 174,
199 179, 180, 188, 190, 194, 198, 202, 206, 210, 214,
200 218, 222, 226, 230, 234, 238, 239, 244, 245, 250,
201 251, 252, 260, 261, 267, 271, 275, 277, 279, 281,
202 285, 289, 293, 297, 302, 307, 311, 315, 318, 321,
203 323, 326, 327, 329, 332, 336, 338, 340, 343, 346,
204 351, 356, 359, 362, 366, 368, 370, 373, 376, 377,
205 378, 383, 388, 392, 396, 399, 402, 405, 408, 412,
206 413, 416, 419, 422, 425, 429, 430, 433, 436, 438,
207 440, 443, 446, 448, 450, 453, 456, 459, 463, 464,
208 467, 469, 471, 473, 478, 483, 485, 487, 489, 491,
209 495, 497, 501, 502, 507, 508, 515, 519, 520, 527,
210 531, 532, 534, 536, 539, 546, 548, 552, 553, 555,
211 560, 567, 572, 574, 576, 578, 580, 582, 583, 588,
212 590, 591, 594, 596, 600, 604, 607, 608, 613, 615,
213 616, 621, 623, 625, 627, 630, 633, 639, 643, 644,
214 645, 651, 652, 653, 659, 661, 663, 667, 671, 676,
215 680, 684, 688, 690, 694, 699, 704, 708, 712, 716,
216 718, 722, 726, 730, 735, 740, 744, 748, 750, 752,
217 755, 757, 760, 762, 765, 766, 774, 780, 783, 784,
218 792, 798, 801, 802, 811, 812, 820, 823, 824, 826,
219 827, 829, 831, 834, 835, 839, 842, 846, 848, 852,
220 854, 856, 859, 861, 865, 870, 877, 883, 885, 889,
221 891, 893, 897, 900, 903, 904, 906, 908, 911, 912,
222 915, 919, 923, 926, 930, 935, 939, 942, 946, 949,
223 953, 955, 957, 960, 963, 964, 966, 969, 970, 971,
224 973, 975, 978, 982, 984, 987, 989, 991, 997, 1002,
225 1007, 1010, 1013, 1016, 1019, 1024, 1025, 1030, 1031, 1032,
226 1036, 1041, 1045, 1047, 1049, 1051, 1053, 1056, 1057, 1062,
227 1064, 1068, 1069, 1070, 1078, 1084, 1087, 1088, 1089, 1090,
228 1103, 1104, 1111, 1114, 1117, 1120, 1124, 1131, 1140, 1151,
229 1164, 1168, 1173, 1175, 1177, 1178, 1185, 1189, 1195, 1198,
230 1202, 1203, 1205, 1206, 1208, 1209, 1211, 1213, 1217, 1222,
231 1224, 1228, 1229, 1232, 1235, 1236, 1241, 1244, 1245, 1247,
232 1249, 1253, 1255, 1259, 1264, 1269, 1274, 1279, 1284, 1285,
233 1288, 1290, 1293, 1295, 1299, 1301, 1305
236 static const short yyrhs[] = { -1,
237 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
238 0, 92, 0, 91, 0, 27, 61, 101, 78, 79,
239 0, 243, 90, 0, 123, 137, 79, 0, 130, 123,
240 137, 79, 0, 126, 123, 136, 79, 0, 130, 79,
241 0, 126, 79, 0, 1, 79, 0, 1, 80, 0,
242 79, 0, 0, 0, 126, 123, 165, 93, 117, 94,
243 199, 0, 126, 123, 165, 1, 0, 0, 0, 130,
244 123, 168, 95, 117, 96, 199, 0, 130, 123, 168,
245 1, 0, 0, 0, 123, 168, 97, 117, 98, 199,
246 0, 123, 168, 1, 0, 3, 0, 4, 0, 45,
247 0, 51, 0, 50, 0, 56, 0, 57, 0, 81,
248 0, 82, 0, 103, 0, 0, 103, 0, 109, 0,
249 103, 83, 109, 0, 115, 0, 52, 107, 0, 243,
250 107, 0, 100, 107, 0, 42, 99, 0, 105, 104,
251 0, 105, 61, 186, 78, 0, 106, 104, 0, 106,
252 61, 186, 78, 0, 33, 107, 0, 34, 107, 0,
253 35, 61, 109, 83, 186, 78, 0, 11, 0, 29,
254 0, 104, 0, 61, 186, 78, 107, 0, 0, 61,
255 186, 78, 84, 108, 151, 80, 0, 107, 0, 109,
256 50, 109, 0, 109, 51, 109, 0, 109, 52, 109,
257 0, 109, 53, 109, 0, 109, 54, 109, 0, 109,
258 48, 109, 0, 109, 49, 109, 0, 109, 47, 109,
259 0, 109, 46, 109, 0, 109, 45, 109, 0, 109,
260 43, 109, 0, 109, 44, 109, 0, 0, 109, 42,
261 110, 109, 0, 0, 109, 41, 111, 109, 0, 0,
262 0, 109, 39, 112, 101, 40, 113, 109, 0, 0,
263 109, 39, 114, 40, 109, 0, 109, 38, 109, 0,
264 109, 37, 109, 0, 3, 0, 8, 0, 116, 0,
265 61, 101, 78, 0, 61, 1, 78, 0, 202, 201,
266 78, 0, 202, 1, 78, 0, 115, 61, 102, 78,
267 0, 115, 62, 101, 85, 0, 115, 60, 99, 0,
268 115, 59, 99, 0, 115, 56, 0, 115, 57, 0,
269 9, 0, 116, 9, 0, 0, 119, 0, 119, 10,
270 0, 208, 209, 120, 0, 118, 0, 194, 0, 119,
271 118, 0, 118, 194, 0, 128, 123, 136, 79, 0,
272 131, 123, 137, 79, 0, 128, 79, 0, 131, 79,
273 0, 208, 209, 125, 0, 121, 0, 194, 0, 122,
274 121, 0, 121, 194, 0, 0, 0, 126, 123, 136,
275 79, 0, 130, 123, 137, 79, 0, 126, 123, 159,
276 0, 130, 123, 162, 0, 126, 79, 0, 130, 79,
277 0, 243, 125, 0, 134, 127, 0, 130, 134, 127,
278 0, 0, 127, 135, 0, 127, 5, 0, 127, 144,
279 0, 134, 129, 0, 131, 134, 129, 0, 0, 129,
280 135, 0, 129, 5, 0, 131, 0, 144, 0, 130,
281 131, 0, 130, 144, 0, 7, 0, 5, 0, 131,
282 7, 0, 131, 5, 0, 134, 133, 0, 188, 134,
283 133, 0, 0, 133, 135, 0, 6, 0, 172, 0,
284 4, 0, 28, 61, 101, 78, 0, 28, 61, 186,
285 78, 0, 6, 0, 7, 0, 172, 0, 139, 0,
286 136, 83, 139, 0, 141, 0, 137, 83, 139, 0,
287 0, 27, 61, 116, 78, 0, 0, 165, 138, 143,
288 38, 140, 149, 0, 165, 138, 143, 0, 0, 168,
289 138, 143, 38, 142, 149, 0, 168, 138, 143, 0,
290 0, 144, 0, 145, 0, 144, 145, 0, 30, 61,
291 61, 146, 78, 78, 0, 147, 0, 146, 83, 147,
292 0, 0, 148, 0, 148, 61, 3, 78, 0, 148,
293 61, 3, 83, 103, 78, 0, 148, 61, 102, 78,
294 0, 99, 0, 5, 0, 6, 0, 7, 0, 109,
295 0, 0, 84, 150, 151, 80, 0, 1, 0, 0,
296 152, 177, 0, 153, 0, 152, 83, 153, 0, 157,
297 38, 155, 0, 158, 155, 0, 0, 99, 40, 154,
298 155, 0, 155, 0, 0, 84, 156, 151, 80, 0,
299 109, 0, 1, 0, 158, 0, 157, 158, 0, 60,
300 99, 0, 62, 109, 10, 109, 85, 0, 62, 109,
301 85, 0, 0, 0, 165, 160, 117, 161, 203, 0,
302 0, 0, 168, 163, 117, 164, 203, 0, 166, 0,
303 168, 0, 61, 166, 78, 0, 166, 61, 238, 0,
304 166, 62, 101, 85, 0, 166, 62, 85, 0, 52,
305 189, 166, 0, 144, 124, 166, 0, 4, 0, 167,
306 61, 238, 0, 167, 62, 52, 85, 0, 167, 62,
307 101, 85, 0, 167, 62, 85, 0, 52, 189, 167,
308 0, 144, 124, 167, 0, 4, 0, 168, 61, 238,
309 0, 61, 168, 78, 0, 52, 189, 168, 0, 168,
310 62, 52, 85, 0, 168, 62, 101, 85, 0, 168,
311 62, 85, 0, 144, 124, 168, 0, 3, 0, 13,
312 0, 13, 144, 0, 14, 0, 14, 144, 0, 12,
313 0, 12, 144, 0, 0, 169, 99, 84, 173, 179,
314 80, 143, 0, 169, 84, 179, 80, 143, 0, 169,
315 99, 0, 0, 170, 99, 84, 174, 179, 80, 143,
316 0, 170, 84, 179, 80, 143, 0, 170, 99, 0,
317 0, 171, 99, 84, 175, 184, 178, 80, 143, 0,
318 0, 171, 84, 176, 184, 178, 80, 143, 0, 171,
319 99, 0, 0, 83, 0, 0, 83, 0, 180, 0,
320 180, 181, 0, 0, 180, 181, 79, 0, 180, 79,
321 0, 132, 123, 182, 0, 132, 0, 188, 123, 182,
322 0, 188, 0, 1, 0, 243, 181, 0, 183, 0,
323 182, 83, 183, 0, 208, 209, 165, 143, 0, 208,
324 209, 165, 40, 109, 143, 0, 208, 209, 40, 109,
325 143, 0, 185, 0, 184, 83, 185, 0, 1, 0,
326 99, 0, 99, 38, 109, 0, 132, 187, 0, 188,
327 187, 0, 0, 190, 0, 7, 0, 188, 7, 0,
328 0, 189, 7, 0, 61, 190, 78, 0, 52, 189,
329 190, 0, 52, 189, 0, 190, 61, 231, 0, 190,
330 62, 101, 85, 0, 190, 62, 85, 0, 61, 231,
331 0, 62, 101, 85, 0, 62, 85, 0, 144, 124,
332 190, 0, 192, 0, 211, 0, 192, 211, 0, 192,
333 194, 0, 0, 191, 0, 1, 79, 0, 0, 0,
334 197, 0, 198, 0, 197, 198, 0, 32, 242, 79,
335 0, 203, 0, 1, 203, 0, 84, 0, 80, 0,
336 195, 196, 122, 193, 80, 0, 195, 196, 1, 80,
337 0, 195, 196, 191, 80, 0, 61, 84, 0, 200,
338 201, 0, 205, 210, 0, 205, 1, 0, 15, 61,
339 101, 78, 0, 0, 18, 207, 210, 17, 0, 0,
340 0, 208, 209, 213, 0, 208, 209, 224, 210, 0,
341 208, 209, 212, 0, 213, 0, 224, 0, 203, 0,
342 221, 0, 101, 79, 0, 0, 204, 16, 214, 210,
343 0, 204, 0, 204, 16, 1, 0, 0, 0, 17,
344 215, 61, 101, 78, 216, 210, 0, 206, 61, 101,
345 78, 79, 0, 206, 1, 0, 0, 0, 0, 19,
346 61, 226, 79, 217, 226, 79, 218, 226, 78, 219,
347 210, 0, 0, 20, 61, 101, 78, 220, 210, 0,
348 23, 79, 0, 24, 79, 0, 25, 79, 0, 25,
349 101, 79, 0, 27, 225, 61, 101, 78, 79, 0,
350 27, 225, 61, 101, 40, 227, 78, 79, 0, 27,
351 225, 61, 101, 40, 227, 40, 227, 78, 79, 0,
352 27, 225, 61, 101, 40, 227, 40, 227, 40, 230,
353 78, 79, 0, 26, 99, 79, 0, 26, 52, 101,
354 79, 0, 79, 0, 222, 0, 0, 19, 61, 115,
355 78, 223, 210, 0, 21, 109, 40, 0, 21, 109,
356 10, 109, 40, 0, 22, 40, 0, 99, 40, 143,
357 0, 0, 7, 0, 0, 101, 0, 0, 228, 0,
358 229, 0, 228, 83, 229, 0, 9, 61, 101, 78,
359 0, 116, 0, 230, 83, 116, 0, 0, 232, 233,
360 0, 235, 78, 0, 0, 236, 79, 234, 233, 0,
361 1, 78, 0, 0, 10, 0, 236, 0, 236, 83,
362 10, 0, 237, 0, 236, 83, 237, 0, 126, 123,
363 167, 143, 0, 126, 123, 168, 143, 0, 126, 123,
364 187, 143, 0, 130, 123, 168, 143, 0, 130, 123,
365 187, 143, 0, 0, 239, 240, 0, 233, 0, 241,
366 78, 0, 3, 0, 241, 83, 3, 0, 99, 0,
367 242, 83, 99, 0, 31, 0
373 static const short yyrline[] = { 0,
374 224, 229, 243, 245, 245, 246, 248, 250, 251, 259,
375 263, 274, 279, 284, 286, 288, 289, 290, 295, 302,
376 304, 309, 314, 320, 322, 327, 332, 338, 340, 345,
377 352, 354, 357, 359, 361, 363, 365, 367, 369, 373,
378 377, 380, 383, 386, 390, 392, 395, 398, 402, 430,
379 436, 439, 442, 445, 447, 449, 453, 457, 461, 463,
380 466, 470, 497, 499, 501, 503, 505, 507, 509, 511,
381 513, 515, 517, 519, 521, 523, 527, 529, 533, 535,
382 538, 542, 544, 551, 554, 562, 573, 672, 673, 675,
383 681, 683, 706, 715, 717, 719, 723, 729, 731, 736,
384 738, 743, 745, 746, 756, 761, 763, 764, 765, 772,
385 778, 783, 786, 794, 799, 801, 802, 803, 810, 821,
386 825, 831, 836, 841, 846, 848, 850, 859, 862, 866,
387 868, 870, 875, 879, 882, 886, 889, 891, 903, 906,
388 908, 910, 914, 918, 920, 923, 936, 939, 943, 945,
389 953, 954, 955, 959, 961, 967, 968, 969, 972, 974,
390 977, 979, 982, 985, 991, 998, 1000, 1007, 1014, 1017,
391 1024, 1027, 1031, 1034, 1038, 1043, 1046, 1050, 1053, 1055,
392 1057, 1059, 1066, 1068, 1069, 1070, 1075, 1077, 1082, 1090,
393 1095, 1099, 1102, 1104, 1109, 1111, 1112, 1115, 1115, 1118,
394 1121, 1123, 1125, 1128, 1130, 1133, 1139, 1141, 1145, 1159,
395 1167, 1171, 1185, 1193, 1200, 1202, 1207, 1210, 1215, 1217,
396 1219, 1226, 1228, 1236, 1242, 1247, 1249, 1251, 1258, 1260,
397 1266, 1272, 1274, 1276, 1281, 1283, 1290, 1292, 1295, 1298,
398 1302, 1305, 1309, 1312, 1316, 1321, 1323, 1327, 1329, 1331,
399 1333, 1337, 1339, 1342, 1345, 1348, 1351, 1355, 1357, 1360,
400 1362, 1367, 1370, 1375, 1377, 1379, 1393, 1400, 1405, 1411,
401 1416, 1418, 1423, 1425, 1429, 1433, 1437, 1447, 1449, 1454,
402 1459, 1462, 1466, 1469, 1473, 1476, 1479, 1482, 1486, 1489,
403 1493, 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511, 1515,
404 1523, 1531, 1533, 1535, 1539, 1541, 1544, 1547, 1558, 1560,
405 1565, 1567, 1570, 1584, 1587, 1590, 1592, 1594, 1602, 1610,
406 1620, 1638, 1643, 1648, 1651, 1665, 1674, 1678, 1682, 1686,
407 1692, 1696, 1701, 1704, 1709, 1712, 1713, 1730, 1735, 1738,
408 1750, 1752, 1762, 1772, 1773, 1781, 1784, 1796, 1800, 1817,
409 1827, 1836, 1841, 1846, 1851, 1855, 1859, 1870, 1877, 1884,
410 1891, 1902, 1908, 1911, 1916, 1939, 1973, 2004, 2035, 2050,
411 2064, 2068, 2072, 2075, 2080, 2082, 2085, 2087, 2091, 2096,
412 2099, 2105, 2110, 2115, 2117, 2126, 2127, 2133, 2135, 2145,
413 2147, 2151, 2154, 2160, 2170, 2179, 2188, 2198, 2212, 2217,
414 2222, 2224, 2233, 2236, 2241, 2244, 2248
419 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
421 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
422 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
423 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
424 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
425 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
426 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
427 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
428 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
429 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
430 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
431 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
432 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
433 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
434 "@14","primary","string","old_style_parm_decls","lineno_datadecl","datadecls",
435 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
436 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
437 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
438 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
439 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
440 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
441 "initelt","@18","initval","@19","designator_list","designator","nested_function",
442 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
443 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
444 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
445 "component_decl_list2","component_decl","components","component_declarator",
446 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
447 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
448 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
449 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
450 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
451 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
452 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
453 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
454 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
455 "identifiers","identifiers_or_typenames","extension", NULL
459 static const short yyr1[] = { 0,
460 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
461 91, 91, 91, 91, 91, 91, 91, 91, 93, 94,
462 92, 92, 95, 96, 92, 92, 97, 98, 92, 92,
463 99, 99, 100, 100, 100, 100, 100, 100, 100, 101,
464 102, 102, 103, 103, 104, 104, 104, 104, 104, 104,
465 104, 104, 104, 104, 104, 104, 105, 106, 107, 107,
466 108, 107, 109, 109, 109, 109, 109, 109, 109, 109,
467 109, 109, 109, 109, 109, 110, 109, 111, 109, 112,
468 113, 109, 114, 109, 109, 109, 115, 115, 115, 115,
469 115, 115, 115, 115, 115, 115, 115, 115, 115, 116,
470 116, 117, 117, 117, 118, 119, 119, 119, 119, 120,
471 120, 120, 120, 121, 122, 122, 122, 122, 123, 124,
472 125, 125, 125, 125, 125, 125, 125, 126, 126, 127,
473 127, 127, 127, 128, 128, 129, 129, 129, 130, 130,
474 130, 130, 131, 131, 131, 131, 132, 132, 133, 133,
475 134, 134, 134, 134, 134, 135, 135, 135, 136, 136,
476 137, 137, 138, 138, 140, 139, 139, 142, 141, 141,
477 143, 143, 144, 144, 145, 146, 146, 147, 147, 147,
478 147, 147, 148, 148, 148, 148, 149, 150, 149, 149,
479 151, 151, 152, 152, 153, 153, 154, 153, 153, 156,
480 155, 155, 155, 157, 157, 158, 158, 158, 160, 161,
481 159, 163, 164, 162, 165, 165, 166, 166, 166, 166,
482 166, 166, 166, 167, 167, 167, 167, 167, 167, 167,
483 168, 168, 168, 168, 168, 168, 168, 168, 169, 169,
484 170, 170, 171, 171, 173, 172, 172, 172, 174, 172,
485 172, 172, 175, 172, 176, 172, 172, 177, 177, 178,
486 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
487 181, 181, 182, 182, 183, 183, 183, 184, 184, 184,
488 185, 185, 186, 186, 187, 187, 188, 188, 189, 189,
489 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
490 191, 192, 192, 192, 193, 193, 194, 195, 196, 196,
491 197, 197, 198, 199, 199, 200, 201, 201, 201, 201,
492 202, 203, 204, 204, 205, 207, 206, 208, 209, 210,
493 210, 211, 212, 212, 213, 213, 213, 214, 213, 213,
494 213, 215, 216, 213, 213, 213, 217, 218, 219, 213,
495 220, 213, 213, 213, 213, 213, 213, 213, 213, 213,
496 213, 213, 213, 221, 223, 222, 224, 224, 224, 224,
497 225, 225, 226, 226, 227, 227, 228, 228, 229, 230,
498 230, 232, 231, 233, 234, 233, 233, 235, 235, 235,
499 235, 236, 236, 237, 237, 237, 237, 237, 239, 238,
500 240, 240, 241, 241, 242, 242, 243
503 static const short yyr2[] = { 0,
504 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
505 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
506 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
507 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
508 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
509 4, 2, 4, 2, 2, 6, 1, 1, 1, 4,
510 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
511 3, 3, 3, 3, 3, 0, 4, 0, 4, 0,
512 0, 7, 0, 5, 3, 3, 1, 1, 1, 3,
513 3, 3, 3, 4, 4, 3, 3, 2, 2, 1,
514 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
515 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
516 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
517 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
518 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
519 1, 1, 1, 4, 4, 1, 1, 1, 1, 3,
520 1, 3, 0, 4, 0, 6, 3, 0, 6, 3,
521 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
522 6, 4, 1, 1, 1, 1, 1, 0, 4, 1,
523 0, 2, 1, 3, 3, 2, 0, 4, 1, 0,
524 4, 1, 1, 1, 2, 2, 5, 3, 0, 0,
525 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
526 3, 3, 1, 3, 4, 4, 3, 3, 3, 1,
527 3, 3, 3, 4, 4, 3, 3, 1, 1, 2,
528 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
529 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
530 1, 1, 2, 0, 3, 2, 3, 1, 3, 1,
531 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
532 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
533 3, 3, 2, 3, 4, 3, 2, 3, 2, 3,
534 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
535 1, 2, 3, 1, 2, 1, 1, 5, 4, 4,
536 2, 2, 2, 2, 4, 0, 4, 0, 0, 3,
537 4, 3, 1, 1, 1, 1, 2, 0, 4, 1,
538 3, 0, 0, 7, 5, 2, 0, 0, 0, 12,
539 0, 6, 2, 2, 2, 3, 6, 8, 10, 12,
540 3, 4, 1, 1, 0, 6, 3, 5, 2, 3,
541 0, 1, 0, 1, 0, 1, 1, 3, 4, 1,
542 3, 0, 2, 2, 0, 4, 2, 0, 1, 1,
543 3, 1, 3, 4, 4, 4, 4, 4, 0, 2,
547 static const short yydefact[] = { 3,
548 5, 0, 0, 0, 153, 144, 151, 143, 243, 239,
549 241, 0, 0, 0, 407, 18, 4, 8, 7, 0,
550 119, 119, 139, 130, 140, 173, 0, 0, 0, 152,
551 0, 6, 16, 17, 244, 240, 242, 0, 0, 0,
552 238, 289, 0, 0, 161, 120, 0, 15, 0, 14,
553 0, 141, 130, 142, 146, 145, 128, 174, 31, 32,
554 264, 248, 264, 252, 255, 257, 10, 87, 88, 100,
555 57, 58, 0, 0, 0, 0, 33, 35, 34, 0,
556 36, 37, 0, 38, 39, 0, 0, 40, 59, 0,
557 0, 63, 43, 45, 89, 0, 0, 287, 0, 285,
558 149, 0, 285, 178, 0, 0, 11, 0, 0, 30,
559 0, 399, 0, 0, 171, 223, 289, 0, 0, 159,
560 120, 0, 215, 216, 0, 0, 129, 132, 156, 157,
561 131, 133, 158, 0, 0, 245, 0, 249, 0, 253,
562 54, 55, 0, 49, 46, 0, 321, 0, 0, 48,
563 0, 0, 0, 50, 0, 52, 0, 0, 80, 78,
564 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
565 0, 0, 0, 98, 99, 0, 0, 41, 0, 101,
566 0, 317, 309, 0, 47, 154, 289, 382, 0, 120,
567 283, 286, 147, 155, 288, 149, 284, 184, 185, 186,
568 183, 0, 176, 179, 290, 233, 232, 162, 163, 237,
569 0, 231, 0, 0, 236, 0, 0, 28, 0, 328,
570 107, 329, 170, 172, 0, 0, 13, 0, 0, 22,
571 0, 171, 399, 0, 12, 26, 0, 171, 271, 266,
572 119, 263, 119, 0, 264, 171, 264, 280, 281, 260,
573 278, 0, 0, 91, 90, 0, 9, 44, 0, 0,
574 86, 85, 0, 0, 0, 0, 74, 75, 73, 72,
575 71, 69, 70, 64, 65, 66, 67, 68, 97, 96,
576 0, 42, 0, 93, 0, 0, 310, 311, 92, 293,
577 0, 297, 0, 299, 0, 0, 382, 0, 150, 148,
578 0, 178, 41, 0, 0, 403, 389, 119, 119, 401,
579 0, 390, 392, 400, 0, 234, 235, 307, 0, 109,
580 104, 108, 0, 168, 221, 217, 160, 222, 20, 167,
581 218, 220, 0, 24, 247, 328, 265, 328, 272, 0,
582 251, 0, 0, 261, 0, 260, 0, 61, 60, 51,
583 53, 0, 0, 79, 77, 94, 95, 405, 0, 0,
584 0, 328, 0, 0, 116, 329, 302, 312, 292, 291,
585 383, 298, 300, 294, 296, 0, 175, 177, 87, 0,
586 164, 387, 285, 285, 384, 385, 0, 402, 0, 0,
587 316, 29, 308, 314, 105, 119, 119, 136, 0, 0,
588 165, 219, 0, 267, 273, 329, 269, 171, 171, 282,
589 279, 171, 0, 0, 0, 81, 84, 313, 0, 319,
590 118, 117, 306, 0, 320, 304, 329, 303, 0, 295,
591 180, 0, 182, 230, 289, 382, 120, 171, 171, 171,
592 289, 120, 171, 171, 0, 391, 393, 404, 315, 322,
593 112, 0, 113, 0, 136, 134, 190, 188, 187, 169,
594 21, 0, 25, 328, 0, 246, 250, 256, 171, 56,
595 203, 87, 0, 0, 200, 0, 202, 0, 258, 193,
596 199, 0, 0, 0, 406, 318, 0, 153, 0, 342,
597 326, 0, 0, 0, 0, 0, 0, 0, 0, 371,
598 363, 0, 0, 114, 119, 119, 335, 340, 0, 0,
599 332, 333, 336, 364, 334, 0, 0, 293, 0, 399,
600 0, 394, 395, 396, 293, 0, 397, 398, 386, 0,
601 0, 163, 135, 138, 137, 0, 166, 274, 0, 171,
602 254, 206, 0, 0, 197, 62, 0, 192, 0, 205,
603 196, 82, 0, 0, 328, 373, 0, 0, 369, 353,
604 354, 355, 0, 0, 0, 372, 0, 171, 337, 125,
605 0, 126, 0, 0, 324, 329, 323, 346, 0, 127,
606 181, 228, 229, 224, 0, 227, 0, 110, 111, 0,
607 171, 0, 275, 0, 208, 0, 0, 194, 195, 0,
608 0, 0, 374, 45, 0, 0, 0, 367, 356, 0,
609 361, 0, 370, 0, 123, 209, 0, 124, 212, 341,
610 328, 0, 0, 225, 226, 189, 277, 171, 0, 201,
611 198, 325, 0, 327, 365, 347, 351, 0, 362, 0,
612 121, 0, 122, 0, 339, 330, 328, 0, 276, 207,
613 343, 328, 373, 328, 368, 375, 0, 210, 213, 331,
614 345, 328, 366, 0, 352, 0, 0, 376, 377, 357,
615 0, 0, 344, 348, 0, 375, 0, 0, 211, 214,
616 373, 0, 0, 358, 378, 0, 379, 0, 0, 349,
617 380, 0, 359, 328, 0, 0, 350, 360, 381, 0,
621 static const short yydefgoto[] = { 700,
622 1, 2, 3, 17, 18, 19, 231, 400, 237, 403,
623 114, 319, 476, 86, 148, 281, 88, 89, 90, 91,
624 92, 415, 93, 266, 265, 263, 484, 264, 94, 95,
625 218, 219, 220, 395, 361, 362, 20, 109, 504, 308,
626 57, 396, 456, 309, 23, 100, 193, 24, 131, 119,
627 44, 115, 120, 462, 45, 399, 223, 224, 26, 202,
628 203, 204, 460, 536, 478, 479, 480, 597, 481, 544,
629 482, 483, 615, 642, 671, 618, 644, 672, 209, 123,
630 438, 124, 27, 28, 29, 30, 245, 247, 252, 139,
631 548, 345, 134, 135, 242, 404, 405, 250, 251, 102,
632 191, 103, 105, 192, 363, 364, 424, 221, 183, 286,
633 287, 288, 392, 393, 184, 96, 394, 508, 509, 510,
634 555, 576, 323, 577, 367, 511, 512, 621, 554, 662,
635 653, 681, 694, 654, 513, 514, 652, 515, 567, 605,
636 667, 668, 669, 692, 292, 293, 310, 445, 311, 312,
637 313, 212, 213, 314, 315, 359, 97
640 static const short yypact[] = { 130,
641 136, 2364, 2364, 105,-32768,-32768,-32768,-32768, 117, 117,
642 117, 22, 103, 137,-32768,-32768,-32768,-32768,-32768, 288,
643 134, 461, 168,-32768, 117,-32768, 48, 86, 95,-32768,
644 2364,-32768,-32768,-32768, 117, 117, 117, 2180, 2090, 139,
645 -32768,-32768, 288, 127,-32768, 117, 1396,-32768, 245,-32768,
646 288, 168,-32768, 117,-32768,-32768, 559,-32768,-32768,-32768,
647 -32768, 135,-32768, 144,-32768, 169,-32768,-32768,-32768,-32768,
648 -32768,-32768, 2180, 2180, 179, 328,-32768,-32768,-32768, 2180,
649 -32768,-32768, 1133,-32768,-32768, 2180, 185, 188,-32768, 2215,
650 2270,-32768, 2495, 1061, 265, 627, 2180,-32768, 206, 228,
651 -32768, 209, 978, 689, 350, 215,-32768, 245, 288,-32768,
652 196,-32768, 1496, 855, 117,-32768,-32768, 245, 237,-32768,
653 117, 1488, 367, 386, 273, 1460, 559,-32768,-32768,-32768,
654 -32768, 117,-32768, 222, 949,-32768, 270,-32768, 438,-32768,
655 -32768,-32768, 2180,-32768,-32768, 230,-32768, 239, 267,-32768,
656 313, 2180, 1133,-32768, 1133,-32768, 2180, 2180, 321,-32768,
657 -32768, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180,
658 2180, 2180, 2180,-32768,-32768, 328, 328, 2180, 2180,-32768,
659 286,-32768, 363, 320,-32768,-32768,-32768, 228, 1551, 117,
660 -32768, 416, 376,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
661 -32768, 35,-32768, 347,-32768, 386,-32768,-32768, 387, 386,
662 443,-32768, 1051, 1589,-32768, 370, 379,-32768, 323, 55,
663 -32768,-32768, 425, 117, 240, 285,-32768, 245, 245,-32768,
664 855, 117,-32768, 1644,-32768,-32768, 855, 117,-32768,-32768,
665 305, 393, 431, 1919,-32768, 117,-32768,-32768, 452, 410,
666 -32768, 438, 2430,-32768,-32768, 1975,-32768, 2495, 421, 444,
667 2495, 2495, 2180, 463, 2180, 2180, 2518, 571, 2059, 727,
668 1401, 733, 733, 104, 104,-32768,-32768,-32768,-32768,-32768,
669 446, 188, 432,-32768, 328, 794, 363,-32768,-32768, 351,
670 316,-32768, 1653,-32768, 445, 228,-32768, 1682,-32768, 376,
671 450, 689, 2305, 94, 454,-32768,-32768,-32768, 743,-32768,
672 456, 276,-32768,-32768, 110,-32768,-32768,-32768, 71,-32768,
673 -32768,-32768, 2188,-32768, 367,-32768,-32768, 367,-32768, 471,
674 -32768,-32768, 453,-32768,-32768,-32768,-32768,-32768,-32768, 436,
675 -32768, 457, 2180, 328, 459, 410, 945,-32768,-32768,-32768,
676 -32768, 509, 2180, 2354, 2507,-32768,-32768,-32768, 296, 401,
677 709, 476, 477, 885,-32768,-32768,-32768,-32768, 416,-32768,
678 -32768,-32768, 416,-32768,-32768, 482,-32768,-32768, 131, 484,
679 -32768,-32768, 234, 156,-32768,-32768, 661,-32768, 565, 485,
680 -32768,-32768, 490,-32768,-32768, 497, 1745,-32768, 1330, 71,
681 -32768,-32768, 71, 495,-32768,-32768, 495, 117, 117, 2495,
682 -32768, 117, 499, 502, 1168,-32768, 2241,-32768, 328,-32768,
683 -32768,-32768,-32768, 501,-32768,-32768,-32768,-32768, 1858,-32768,
684 -32768, 2180,-32768,-32768,-32768, 156, 117, 253, 282, 117,
685 -32768, 117, 282, 117, 1653,-32768,-32768,-32768,-32768,-32768,
686 -32768, 245,-32768, 288,-32768, 420,-32768,-32768, 2495,-32768,
687 -32768, 1330,-32768,-32768, 248,-32768,-32768,-32768, 117,-32768,
688 -32768, 543, 328, 2180,-32768, 545, 2495, 506, 504,-32768,
689 -32768, 83, 1292, 2180,-32768,-32768, 1940, 552, 532,-32768,
690 -32768, 533, 534, 2180, 558, 521, 535, 2125, 98, 606,
691 -32768, 587, 550,-32768, 584, 547,-32768, 648, 992, 53,
692 -32768,-32768,-32768,-32768,-32768, 2034, 138, 220, 234,-32768,
693 1737,-32768,-32768,-32768, 174, 156,-32768,-32768,-32768, 314,
694 326, 121, 420,-32768,-32768, 1168,-32768,-32768, 2180, 64,
695 -32768,-32768, 2403, 1168,-32768,-32768, 1230,-32768, 1387,-32768,
696 -32768, 2241, 2180, 609,-32768, 2180, 2180, 1801,-32768,-32768,
697 -32768,-32768, 597, 2180, 601,-32768, 620, 117,-32768,-32768,
698 245,-32768, 288, 1074,-32768,-32768,-32768,-32768, 2180,-32768,
699 -32768, 424, 424,-32768, 1775,-32768, 600,-32768,-32768, 602,
700 2455, 2180,-32768, 2180,-32768, 607, 1387,-32768,-32768, 608,
701 2180, 673,-32768, 641, 646, 621, 2180,-32768,-32768, 662,
702 -32768, 2180,-32768, 337,-32768, 467, 338,-32768, 1143,-32768,
703 -32768, 1940, 667,-32768,-32768,-32768,-32768, 2455, 2385,-32768,
704 -32768,-32768, 668,-32768,-32768,-32768,-32768, 2477,-32768, 29,
705 -32768, 855,-32768, 855,-32768,-32768,-32768, 674,-32768,-32768,
706 -32768,-32768, 2180,-32768,-32768, 749, 683,-32768,-32768,-32768,
707 -32768,-32768,-32768, 684,-32768, 691, 31, 681,-32768,-32768,
708 485, 485,-32768,-32768, 2180, 749, 688, 749,-32768,-32768,
709 2180, 690, 33,-32768,-32768, 694,-32768, 443, 715,-32768,
710 265, 178,-32768,-32768, 717, 443,-32768,-32768, 265, 769,
714 static const short yypgoto[] = {-32768,
715 -32768,-32768,-32768, 54,-32768,-32768,-32768,-32768,-32768,-32768,
716 -32768,-32768, -23,-32768, -38, 507, -138, 397,-32768,-32768,
717 -65,-32768, 439,-32768,-32768,-32768,-32768,-32768, 274, -182,
718 -188, 611,-32768,-32768, 464,-32768, -10, -66, 317, 28,
719 779,-32768, 380, 32, -4, -77, 638, 25, -171, -402,
720 -44, -112, -62,-32768,-32768,-32768, -70, 17, 42,-32768,
721 538,-32768, 375,-32768, -417,-32768, 294,-32768, -407,-32768,
722 -32768, 360,-32768,-32768,-32768,-32768,-32768,-32768, -46, -26,
723 -6, -18,-32768,-32768,-32768, -41,-32768,-32768,-32768,-32768,
724 -32768, 503, -25,-32768, 599, 510, 383, 605, 508, -22,
725 -80, -73, -81, -95, 491,-32768,-32768, -149,-32768,-32768,
726 -32768, 576, -288,-32768, 465,-32768, -349,-32768,-32768,-32768,
727 -32768, -97, -322, -460, 500,-32768, 243,-32768,-32768,-32768,
728 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 244,-32768, -571,
729 194,-32768, 193,-32768, 575,-32768, -248,-32768,-32768,-32768,
730 487, -209,-32768,-32768,-32768,-32768, 11
737 static const short yytable[] = { 87,
738 99, 47, 122, 62, 64, 66, 125, 141, 142, 232,
739 49, 51, 31, 31, 145, 133, 222, 52, 25, 25,
740 150, 299, 197, 331, 106, 35, 36, 37, 304, 21,
741 21, 185, 126, 22, 22, 225, 46, 137, 54, 282,
742 449, 31, 329, 429, 371, 208, 53, 25, 334, 530,
743 59, 60, 144, 578, 229, -103, 32, 241, 21, 46,
744 149, 243, 22, 101, 321, 121, 58, 46, 656, 320,
745 676, 390, 688, 132, 216, 551, 58, 58, 58, 507,
746 201, 664, 38, 465, 67, 133, 206, 58, 59, 60,
747 210, 226, 291, 14, 602, 58, 232, 59, 60, 106,
748 59, 60, 180, 592, 487, 290, 657, 101, 677, 686,
749 689, 461, 301, 579, 463, 249, 190, 302, 590, 190,
750 549, 46, 222, 296, 121, 46, 596, 196, 299, -1,
751 259, 61, 260, 222, 121, -2, 365, 507, -103, 222,
752 283, 599, 473, 132, 474, 244, 14, 111, 145, 564,
753 295, 133, 279, 280, 391, 171, 172, 173, 41, 101,
754 645, 330, 58, 39, 282, 327, 241, 335, 614, 63,
755 243, 381, 55, 58, 56, 341, 41, 101, 65, 101,
756 205, 112, 113, 33, 34, 14, 660, 388, 366, 631,
757 349, 663, 389, 665, 369, 333, 529, 40, 325, 104,
758 373, 673, 328, 14, 190, 107, 206, 441, 431, 108,
759 210, 421, 48, 432, 426, 581, 436, 189, 136, 340,
760 152, 342, 41, 434, 352, 441, 205, 138, 249, 25,
761 336, 58, 338, 697, 436, 189, 41, 434, 406, 143,
762 406, 121, 41, 116, 121, 121, 205, 41, 116, 14,
763 41, 116, 140, 622, 244, 695, 211, 14, 133, 376,
764 696, 358, 151, 14, 366, 58, 427, 196, 101, 14,
765 152, 435, 507, 180, 14, 112, 113, 14, 201, 187,
766 436, 189, 14, 186, 535, 435, 194, 539, 188, 189,
767 41, 117, 207, 517, 436, 189, 117, 383, 384, 117,
768 118, 238, 440, 444, 52, 118, 190, 254, 118, 25,
769 584, 14, 190, 520, 521, 227, 255, 14, 397, 228,
770 249, 679, 680, 217, 414, 54, -106, -106, -106, -106,
771 59, 60, -106, 53, -106, -106, -106, 466, 467, 42,
772 291, 468, 112, 113, 256, 233, 234, 398, 43, 246,
773 -106, 235, 41, 518, 386, 108, 205, 205, 387, 525,
774 -83, 535, 326, 284, 439, 443, 406, 522, 523, 524,
775 519, 101, 527, 528, 418, 526, 297, 298, 419, 14,
776 14, 129, 130, -268, -268, 452, 454, 9, 10, 11,
777 503, 257, 588, 370, 285, 485, 228, 289, 541, 437,
778 442, 42, 187, 25, 589, 502, -106, 303, 108, 531,
779 43, 188, 189, 111, 133, 641, 643, 106, 540, 228,
780 108, 455, 369, 373, 534, 129, 130, 233, 234, 369,
781 373, 9, 10, 11, 5, 532, 7, 195, 248, 516,
782 59, 60, 9, 10, 11, 25, 112, 113, 503, 542,
783 185, 70, 442, 658, 317, 659, 505, 318, 13, 563,
784 506, 25, 324, 502, 5, 6, 7, 8, 121, 593,
785 46, 337, 9, 10, 11, 565, 297, 298, 58, 318,
786 420, 121, 587, 58, 520, 521, 154, 156, 13, 343,
787 14, 133, 344, 111, 571, 573, -163, 613, 350, 206,
788 210, 52, 353, 232, -163, 691, 206, 210, 401, -270,
789 -270, 582, 583, 699, 600, 408, 357, 603, 606, 145,
790 627, 351, 54, 356, 616, 610, 516, 377, 617, 372,
791 53, 382, 25, 385, 437, 437, 409, 402, 412, 50,
792 623, 442, 442, 505, 222, -163, 222, 506, 416, -163,
793 5, 6, 7, 8, 619, -305, 425, 649, 9, 10,
794 11, 433, 633, 128, 129, 130, 430, 448, 391, 182,
795 9, 10, 11, 640, 13, 451, 14, 464, 469, 470,
796 486, 253, -31, 503, 545, 546, 547, 121, 14, 46,
797 258, -32, 553, 556, 557, 261, 262, 559, 502, 560,
798 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
799 277, 278, 566, 561, 603, 164, 165, 166, 167, 168,
800 169, 170, 171, 172, 173, 572, 568, 181, 569, -308,
801 -308, -308, -308, -308, -308, -308, 682, -308, -308, -308,
802 -308, -308, 603, -308, -308, -308, -308, -308, -308, -308,
803 -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
804 -308, -308, 570, 574, 5, 6, 7, 8, -308, 601,
805 446, -308, 9, 10, 11, 609, -308, -308, -308, 611,
806 612, 626, -308, -308, 625, 632, 630, -308, 13, 634,
807 14, 59, 60, 198, 199, 200, 174, 175, 637, 176,
808 177, 178, 179, 354, 355, -308, 182, -308, -308, 217,
809 -308, -115, -115, -115, -115, -115, -115, -115, 635, -115,
810 -115, -115, -115, -115, 636, -115, -115, -115, -115, -115,
811 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
812 639, -115, -115, -115, 648, 651, 5, 6, 7, 8,
813 -115, 675, 661, -115, 9, 10, 11, 666, -115, -115,
814 -115, 670, 674, 678, -115, -115, 684, 687, 701, -115,
815 13, 690, 14, 166, 167, 168, 169, 170, 171, 172,
816 173, 410, 169, 170, 171, 172, 173, -115, -115, -115,
817 -115, 417, -115, 693, 360, 698, -328, -328, -328, -328,
818 -328, -328, -328, 702, -328, -328, -328, -328, -328, 380,
819 -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
820 -328, -328, -328, -328, -328, 422, -328, -328, -328, 604,
821 322, 127, 580, 300, 533, -328, 537, 459, -328, 378,
822 598, 550, 339, -328, -328, -328, 538, 407, 413, -328,
823 -328, 411, 423, 477, -328, 217, 346, 450, -328, -328,
824 -328, -328, 368, 428, 646, 647, -328, -328, -328, 683,
825 685, 374, -328, 447, -328, -328, 0, -328, 0, 0,
826 0, 0, -328, 0, 0, 217, 0, -328, -328, 0,
827 0, 0, -328, -328, 0, -328, 0, 0, 0, -328,
828 459, -328, -328, -328, -328, -328, -328, -328, -328, -328,
829 -328, -328, 543, -328, 0, -328, 0, -328, -328, -328,
830 0, 477, 552, 0, 0, 0, -328, 0, 0, -328,
831 0, 0, 558, 0, -328, -328, -328, 0, -102, 0,
832 -328, -328, 0, 0, 0, -328, 0, 0, 5, 239,
833 7, 98, 5, 0, 7, 98, 9, 10, 11, 0,
834 9, 10, 11, -328, -301, -328, -328, 0, -328, 0,
835 0, 0, 13, 0, 477, 0, 13, 591, 0, 15,
836 0, 5, 477, 7, 195, 477, 0, 477, 0, 9,
837 10, 11, 575, 0, -328, -328, 0, 0, 0, -328,
838 -328, 0, -328, 0, 0, 13, -328, 14, -328, -328,
839 -328, -328, -328, -328, -328, -328, -328, -328, -328, 0,
840 -328, 0, -328, 0, -328, -328, -328, 240, -262, 187,
841 628, 0, 629, -328, 0, 477, -328, 0, 188, 189,
842 0, -328, -328, -328, 0, 638, 0, -328, -328, 0,
843 0, 305, -328, 306, 5, 6, 7, 8, 0, 0,
844 307, 0, 9, 10, 11, 0, 0, 0, 0, 0,
845 -328, 0, -328, -328, 620, -328, -338, -338, 13, 0,
846 14, -338, -338, 0, -338, 0, 0, 0, -338, 0,
847 -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
848 -338, 0, -338, 0, -338, 0, -338, -338, -338, 0,
849 0, 0, 0, 0, 0, -338, 174, 175, -338, 176,
850 177, 178, 179, -338, -338, -338, 0, 0, -388, -338,
851 -338, 0, 0, 146, -338, 68, 5, 0, 7, 98,
852 69, 70, 0, 71, 9, 10, 11, 0, 0, 0,
853 0, 0, -338, 0, -338, -338, 0, -338, 0, 0,
854 13, 72, 0, 15, 0, 73, 74, 75, 471, 111,
855 472, 60, -163, 0, 76, 69, 70, 77, 71, 0,
856 -163, 0, 78, 79, 80, 0, 0, 0, 81, 82,
857 0, 0, 0, 83, 0, 0, 72, 0, 15, 0,
858 73, 74, 75, 112, 113, 0, 0, 0, 0, 76,
859 0, 0, 77, 84, 85, 0, 147, 78, 79, 80,
860 0, -163, 0, 81, 82, -163, 0, 473, 83, 474,
861 471, 0, 472, 60, 0, 0, 0, 69, 70, 0,
862 71, 0, 0, 0, 0, 0, 0, -191, 84, 85,
863 0, 475, 0, 0, 0, 0, 0, 0, 72, 0,
864 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
865 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
866 79, 80, 0, 0, 0, 81, 82, 0, 0, 473,
867 83, 474, 471, 0, 68, 0, 0, 0, 0, 69,
868 70, 0, 71, 0, 0, 0, 0, 0, 0, -259,
869 84, 85, 0, 475, 0, 0, 0, 0, 0, 0,
870 72, 0, 15, 0, 73, 74, 75, 0, 0, -204,
871 457, 0, 68, 76, 0, 0, 77, 69, 70, 0,
872 71, 78, 79, 80, 0, 0, 0, 81, 82, 0,
873 0, -204, 83, -204, 0, 0, 0, 0, 72, 0,
874 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
875 0, 76, 84, 85, 77, 475, 0, 0, 0, 78,
876 79, 80, 0, 0, 0, 81, 82, 471, 0, 68,
877 83, 0, 0, 0, 69, 70, 110, 71, 0, -27,
878 -27, -27, -27, 0, 0, 0, 0, -27, -27, -27,
879 84, 85, 0, 458, 0, 72, 0, 15, 0, 73,
880 74, 75, 111, -27, 0, -163, 0, 0, 76, 0,
881 0, 77, 0, -163, 0, 0, 78, 79, 80, 0,
882 0, 0, 81, 82, 0, 0, 0, 83, 167, 168,
883 169, 170, 171, 172, 173, 0, 112, 113, 0, 0,
884 236, 0, 0, -23, -23, -23, -23, 84, 85, 0,
885 475, -23, -23, -23, -163, 0, 0, 0, -163, -27,
886 0, 0, 0, 0, 0, 0, 111, -23, 230, -163,
887 0, -19, -19, -19, -19, 0, 0, -163, 68, -19,
888 -19, -19, 0, 69, 70, 0, 71, 0, 0, 0,
889 0, 0, 0, 0, 111, -19, 0, -163, 0, 0,
890 112, 113, 0, 0, 72, -163, 15, 0, 73, 74,
891 75, 0, 0, 0, 0, 0, 0, 76, -163, 0,
892 77, 0, -163, -23, 0, 78, 79, 214, 0, 0,
893 0, 81, 82, 68, 0, 0, 83, 0, 69, 70,
894 0, 71, 0, 0, 0, 0, -163, 0, 0, 0,
895 -163, -19, 0, 0, 0, 0, 84, 85, 0, 72,
896 215, 15, 0, 73, 74, 75, 0, 0, 0, 0,
897 0, 68, 76, 0, 0, 77, 69, 70, 0, 71,
898 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
899 0, 83, 0, 0, 0, 0, 0, 72, 0, 15,
900 0, 73, 74, 75, 0, 0, 0, 0, 0, 0,
901 76, 84, 85, 77, 0, 294, 0, 0, 78, 79,
902 80, 0, 0, 0, 81, 82, 68, 0, 0, 83,
903 0, 69, 70, 305, 71, 0, 5, 6, 7, 8,
904 0, 0, 307, 0, 9, 10, 11, 0, 0, 84,
905 85, 0, 72, 316, 15, 0, 73, 74, 75, 0,
906 13, 0, 14, 0, 68, 76, 0, 0, 77, 69,
907 70, 0, 71, 78, 79, 80, 0, 0, 0, 81,
908 82, 0, 0, 0, 83, 0, 0, 0, 0, 0,
909 72, 0, 15, 0, 73, 74, 75, 0, 0, 0,
910 0, 0, 0, 76, 84, 85, 77, 0, 332, 0,
911 -388, 78, 79, 80, 0, 0, 0, 81, 82, 68,
912 0, 0, 83, 0, 69, 70, 0, 71, 5, 55,
913 7, 56, 0, 0, 0, 0, 9, 10, 11, 0,
914 0, 0, 84, 85, 0, 72, 375, 15, 0, 73,
915 74, 75, 13, 0, 0, 0, 0, 68, 76, 0,
916 0, 77, 69, 70, 0, 71, 78, 79, 585, 0,
917 0, 0, 81, 82, 0, 0, 0, 83, 0, 0,
918 0, 0, 0, 72, 0, 15, 0, 73, 74, 75,
919 607, 0, 0, 0, 0, 0, 76, 84, 85, 77,
920 0, 586, 0, 453, 78, 79, 80, 0, 0, 0,
921 81, 82, 0, 0, 0, 83, 0, 157, 158, 159,
922 608, 160, 161, 162, 163, 164, 165, 166, 167, 168,
923 169, 170, 171, 172, 173, 84, 85, 0, 0, 624,
924 472, 488, 6, 7, 8, 69, 70, 0, 71, 9,
925 10, 11, 489, 0, 490, 491, 492, 493, 494, 495,
926 496, 497, 498, 499, 500, 13, 72, 14, 15, 0,
927 73, 74, 75, 0, 0, 0, 0, 0, 0, 76,
928 0, 0, 77, 0, 0, 0, 0, 78, 79, 80,
929 0, 0, 0, 81, 82, 0, 0, 0, 83, 239,
930 0, 0, 5, 0, 7, 98, 0, 0, 0, 0,
931 9, 10, 11, 0, 0, 0, 501, 0, 84, 85,
932 0, 391, 472, 60, 0, 0, 13, 69, 70, 15,
933 71, 0, 0, 0, 489, 0, 490, 491, 492, 493,
934 494, 495, 496, 497, 498, 499, 500, 0, 72, 0,
935 15, 0, 73, 74, 75, 0, 0, 68, 0, 0,
936 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
937 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
938 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
939 0, 0, 0, 0, 0, 0, 76, 0, 501, 77,
940 84, 85, 0, 391, 78, 79, 80, 0, 0, 0,
941 81, 82, 0, 0, 0, 83, 68, 5, 6, 7,
942 8, 69, 70, 0, 71, 9, 10, 11, 0, 0,
943 0, 0, 0, 0, 0, 84, 85, 0, 348, 0,
944 0, 13, 72, 14, 15, 0, 73, 74, 75, 0,
945 0, 0, 0, 0, 0, 76, 0, 0, 77, 0,
946 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
947 82, 0, 68, 5, 83, 7, 98, 69, 70, 0,
948 71, 9, 10, 11, 165, 166, 167, 168, 169, 170,
949 171, 172, 173, 0, 84, 85, 0, 13, 72, 0,
950 15, 0, 73, 74, 75, 0, 0, 68, 0, 0,
951 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
952 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
953 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
954 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
955 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
956 81, 82, 68, 0, 0, 83, 0, 69, 70, 0,
957 71, 5, 6, 7, 8, 0, 0, 0, 0, 9,
958 10, 11, 0, 562, 0, 84, 85, 0, 72, 0,
959 15, 0, 73, 74, 75, 13, 0, 68, 0, 0,
960 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
961 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
962 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
963 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
964 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
965 81, 82, 68, 0, 0, 153, 0, 69, 70, 159,
966 71, 160, 161, 162, 163, 164, 165, 166, 167, 168,
967 169, 170, 171, 172, 173, 84, 85, 0, 72, 0,
968 15, 0, 73, 74, 75, 0, 0, 379, 0, 0,
969 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
970 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
971 155, 0, 0, 72, 0, 15, 0, 73, 74, 75,
972 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
973 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
974 81, 82, 0, 0, 4, 83, -119, 5, 6, 7,
975 8, 0, 0, 0, 0, 9, 10, 11, 0, 0,
976 0, 0, 0, 0, 0, 84, 85, 0, 0, 0,
977 12, 13, 0, 14, 15, 161, 162, 163, 164, 165,
978 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
979 0, 0, 594, 0, 0, -119, 0, 0, 0, 0,
980 0, 157, 158, 159, -119, 160, 161, 162, 163, 164,
981 165, 166, 167, 168, 169, 170, 171, 172, 173, 157,
982 158, 159, 16, 160, 161, 162, 163, 164, 165, 166,
983 167, 168, 169, 170, 171, 172, 173, 0, 0, 0,
984 0, 0, 0, 0, 0, 0, 157, 158, 159, 650,
985 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
986 170, 171, 172, 173, 14, 0, 0, 595, 0, 0,
987 0, 157, 158, 159, 0, 160, 161, 162, 163, 164,
988 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
989 0, 0, 347, 157, 158, 159, 655, 160, 161, 162,
990 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
991 173, 157, 158, 159, 0, 160, 161, 162, 163, 164,
992 165, 166, 167, 168, 169, 170, 171, 172, 173, 162,
993 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
994 173, 163, 164, 165, 166, 167, 168, 169, 170, 171,
998 static const short yycheck[] = { 38,
999 39, 20, 49, 27, 28, 29, 51, 73, 74, 122,
1000 21, 22, 2, 3, 80, 57, 114, 22, 2, 3,
1001 86, 193, 103, 233, 43, 9, 10, 11, 211, 2,
1002 3, 97, 51, 2, 3, 117, 20, 63, 22, 178,
1003 390, 31, 231, 366, 293, 108, 22, 31, 237, 452,
1004 3, 4, 76, 1, 121, 1, 3, 135, 31, 43,
1005 83, 135, 31, 39, 10, 49, 25, 51, 40, 219,
1006 40, 1, 40, 57, 113, 483, 35, 36, 37, 429,
1007 104, 653, 61, 406, 31, 127, 105, 46, 3, 4,
1008 109, 118, 188, 30, 555, 54, 209, 3, 4, 118,
1009 3, 4, 9, 40, 427, 187, 78, 83, 78, 681,
1010 78, 400, 78, 61, 403, 139, 100, 83, 536, 103,
1011 38, 105, 220, 190, 108, 109, 544, 103, 300, 0,
1012 153, 84, 155, 231, 118, 0, 286, 487, 84, 237,
1013 179, 549, 60, 127, 62, 135, 30, 27, 214, 52,
1014 189, 193, 176, 177, 84, 52, 53, 54, 3, 135,
1015 621, 232, 121, 61, 303, 228, 244, 238, 571, 84,
1016 244, 78, 5, 132, 7, 246, 3, 153, 84, 155,
1017 7, 61, 62, 79, 80, 30, 647, 78, 286, 597,
1018 256, 652, 83, 654, 290, 234, 445, 61, 225, 61,
1019 296, 662, 229, 30, 188, 79, 225, 52, 78, 83,
1020 229, 361, 79, 83, 364, 78, 61, 62, 84, 245,
1021 83, 247, 3, 4, 263, 52, 7, 84, 252, 213,
1022 241, 190, 243, 694, 61, 62, 3, 4, 336, 61,
1023 338, 225, 3, 4, 228, 229, 7, 3, 4, 30,
1024 3, 4, 84, 576, 244, 78, 61, 30, 300, 298,
1025 83, 285, 78, 30, 362, 224, 364, 243, 244, 30,
1026 83, 52, 622, 9, 30, 61, 62, 30, 302, 52,
1027 61, 62, 30, 78, 456, 52, 78, 40, 61, 62,
1028 3, 52, 78, 432, 61, 62, 52, 308, 309, 52,
1029 61, 80, 383, 384, 309, 61, 290, 78, 61, 293,
1030 520, 30, 296, 61, 62, 79, 78, 30, 323, 83,
1031 344, 671, 672, 1, 347, 309, 4, 5, 6, 7,
1032 3, 4, 10, 309, 12, 13, 14, 408, 409, 52,
1033 436, 412, 61, 62, 78, 61, 62, 323, 61, 80,
1034 28, 79, 3, 435, 79, 83, 7, 7, 83, 441,
1035 40, 533, 78, 78, 383, 384, 464, 438, 439, 440,
1036 437, 347, 443, 444, 79, 442, 61, 62, 83, 30,
1037 30, 6, 7, 79, 80, 396, 397, 12, 13, 14,
1038 429, 79, 79, 78, 32, 419, 83, 78, 469, 383,
1039 384, 52, 52, 387, 79, 429, 84, 61, 83, 454,
1040 61, 61, 62, 27, 456, 79, 79, 436, 465, 83,
1041 83, 397, 518, 519, 5, 6, 7, 61, 62, 525,
1042 526, 12, 13, 14, 4, 454, 6, 7, 1, 429,
1043 3, 4, 12, 13, 14, 429, 61, 62, 487, 473,
1044 516, 9, 436, 642, 85, 644, 429, 79, 28, 498,
1045 429, 445, 38, 487, 4, 5, 6, 7, 452, 540,
1046 454, 79, 12, 13, 14, 499, 61, 62, 437, 79,
1047 80, 465, 521, 442, 61, 62, 90, 91, 28, 38,
1048 30, 533, 83, 27, 505, 506, 30, 568, 78, 518,
1049 519, 506, 40, 616, 38, 688, 525, 526, 38, 79,
1050 80, 518, 519, 696, 553, 80, 85, 556, 557, 585,
1051 591, 78, 506, 78, 571, 564, 516, 78, 573, 85,
1052 506, 78, 516, 78, 518, 519, 80, 85, 80, 79,
1053 579, 525, 526, 516, 642, 79, 644, 516, 40, 83,
1054 4, 5, 6, 7, 573, 80, 80, 628, 12, 13,
1055 14, 78, 601, 5, 6, 7, 85, 3, 84, 80,
1056 12, 13, 14, 612, 28, 79, 30, 83, 80, 78,
1057 80, 143, 40, 622, 40, 80, 83, 571, 30, 573,
1058 152, 40, 61, 61, 61, 157, 158, 40, 622, 79,
1059 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1060 172, 173, 7, 79, 653, 45, 46, 47, 48, 49,
1061 50, 51, 52, 53, 54, 79, 40, 1, 79, 3,
1062 4, 5, 6, 7, 8, 9, 675, 11, 12, 13,
1063 14, 15, 681, 17, 18, 19, 20, 21, 22, 23,
1064 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1065 34, 35, 79, 16, 4, 5, 6, 7, 42, 61,
1066 10, 45, 12, 13, 14, 79, 50, 51, 52, 79,
1067 61, 80, 56, 57, 85, 78, 80, 61, 28, 17,
1068 30, 3, 4, 5, 6, 7, 56, 57, 78, 59,
1069 60, 61, 62, 265, 266, 79, 80, 81, 82, 1,
1070 84, 3, 4, 5, 6, 7, 8, 9, 78, 11,
1071 12, 13, 14, 15, 79, 17, 18, 19, 20, 21,
1072 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1073 79, 33, 34, 35, 78, 78, 4, 5, 6, 7,
1074 42, 61, 79, 45, 12, 13, 14, 9, 50, 51,
1075 52, 79, 79, 83, 56, 57, 79, 78, 0, 61,
1076 28, 78, 30, 47, 48, 49, 50, 51, 52, 53,
1077 54, 343, 50, 51, 52, 53, 54, 79, 80, 81,
1078 82, 353, 84, 79, 1, 79, 3, 4, 5, 6,
1079 7, 8, 9, 0, 11, 12, 13, 14, 15, 303,
1080 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1081 27, 28, 29, 30, 31, 362, 33, 34, 35, 556,
1082 220, 53, 516, 196, 455, 42, 462, 399, 45, 302,
1083 547, 482, 244, 50, 51, 52, 464, 338, 346, 56,
1084 57, 344, 362, 415, 61, 1, 252, 393, 4, 5,
1085 6, 7, 287, 364, 622, 622, 12, 13, 14, 676,
1086 678, 297, 79, 387, 81, 82, -1, 84, -1, -1,
1087 -1, -1, 28, -1, -1, 1, -1, 3, 4, -1,
1088 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1089 462, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1090 26, 27, 474, 29, -1, 31, -1, 33, 34, 35,
1091 -1, 483, 484, -1, -1, -1, 42, -1, -1, 45,
1092 -1, -1, 494, -1, 50, 51, 52, -1, 84, -1,
1093 56, 57, -1, -1, -1, 61, -1, -1, 4, 1,
1094 6, 7, 4, -1, 6, 7, 12, 13, 14, -1,
1095 12, 13, 14, 79, 80, 81, 82, -1, 84, -1,
1096 -1, -1, 28, -1, 536, -1, 28, 539, -1, 31,
1097 -1, 4, 544, 6, 7, 547, -1, 549, -1, 12,
1098 13, 14, 1, -1, 3, 4, -1, -1, -1, 8,
1099 9, -1, 11, -1, -1, 28, 15, 30, 17, 18,
1100 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1101 29, -1, 31, -1, 33, 34, 35, 79, 80, 52,
1102 592, -1, 594, 42, -1, 597, 45, -1, 61, 62,
1103 -1, 50, 51, 52, -1, 607, -1, 56, 57, -1,
1104 -1, 1, 61, 3, 4, 5, 6, 7, -1, -1,
1105 10, -1, 12, 13, 14, -1, -1, -1, -1, -1,
1106 79, -1, 81, 82, 1, 84, 3, 4, 28, -1,
1107 30, 8, 9, -1, 11, -1, -1, -1, 15, -1,
1108 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1109 27, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1110 -1, -1, -1, -1, -1, 42, 56, 57, 45, 59,
1111 60, 61, 62, 50, 51, 52, -1, -1, 78, 56,
1112 57, -1, -1, 1, 61, 3, 4, -1, 6, 7,
1113 8, 9, -1, 11, 12, 13, 14, -1, -1, -1,
1114 -1, -1, 79, -1, 81, 82, -1, 84, -1, -1,
1115 28, 29, -1, 31, -1, 33, 34, 35, 1, 27,
1116 3, 4, 30, -1, 42, 8, 9, 45, 11, -1,
1117 38, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1118 -1, -1, -1, 61, -1, -1, 29, -1, 31, -1,
1119 33, 34, 35, 61, 62, -1, -1, -1, -1, 42,
1120 -1, -1, 45, 81, 82, -1, 84, 50, 51, 52,
1121 -1, 79, -1, 56, 57, 83, -1, 60, 61, 62,
1122 1, -1, 3, 4, -1, -1, -1, 8, 9, -1,
1123 11, -1, -1, -1, -1, -1, -1, 80, 81, 82,
1124 -1, 84, -1, -1, -1, -1, -1, -1, 29, -1,
1125 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1126 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1127 51, 52, -1, -1, -1, 56, 57, -1, -1, 60,
1128 61, 62, 1, -1, 3, -1, -1, -1, -1, 8,
1129 9, -1, 11, -1, -1, -1, -1, -1, -1, 80,
1130 81, 82, -1, 84, -1, -1, -1, -1, -1, -1,
1131 29, -1, 31, -1, 33, 34, 35, -1, -1, 38,
1132 1, -1, 3, 42, -1, -1, 45, 8, 9, -1,
1133 11, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1134 -1, 60, 61, 62, -1, -1, -1, -1, 29, -1,
1135 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1136 -1, 42, 81, 82, 45, 84, -1, -1, -1, 50,
1137 51, 52, -1, -1, -1, 56, 57, 1, -1, 3,
1138 61, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1139 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1140 81, 82, -1, 84, -1, 29, -1, 31, -1, 33,
1141 34, 35, 27, 28, -1, 30, -1, -1, 42, -1,
1142 -1, 45, -1, 38, -1, -1, 50, 51, 52, -1,
1143 -1, -1, 56, 57, -1, -1, -1, 61, 48, 49,
1144 50, 51, 52, 53, 54, -1, 61, 62, -1, -1,
1145 1, -1, -1, 4, 5, 6, 7, 81, 82, -1,
1146 84, 12, 13, 14, 79, -1, -1, -1, 83, 84,
1147 -1, -1, -1, -1, -1, -1, 27, 28, 1, 30,
1148 -1, 4, 5, 6, 7, -1, -1, 38, 3, 12,
1149 13, 14, -1, 8, 9, -1, 11, -1, -1, -1,
1150 -1, -1, -1, -1, 27, 28, -1, 30, -1, -1,
1151 61, 62, -1, -1, 29, 38, 31, -1, 33, 34,
1152 35, -1, -1, -1, -1, -1, -1, 42, 79, -1,
1153 45, -1, 83, 84, -1, 50, 51, 52, -1, -1,
1154 -1, 56, 57, 3, -1, -1, 61, -1, 8, 9,
1155 -1, 11, -1, -1, -1, -1, 79, -1, -1, -1,
1156 83, 84, -1, -1, -1, -1, 81, 82, -1, 29,
1157 85, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1158 -1, 3, 42, -1, -1, 45, 8, 9, -1, 11,
1159 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1160 -1, 61, -1, -1, -1, -1, -1, 29, -1, 31,
1161 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1162 42, 81, 82, 45, -1, 85, -1, -1, 50, 51,
1163 52, -1, -1, -1, 56, 57, 3, -1, -1, 61,
1164 -1, 8, 9, 1, 11, -1, 4, 5, 6, 7,
1165 -1, -1, 10, -1, 12, 13, 14, -1, -1, 81,
1166 82, -1, 29, 85, 31, -1, 33, 34, 35, -1,
1167 28, -1, 30, -1, 3, 42, -1, -1, 45, 8,
1168 9, -1, 11, 50, 51, 52, -1, -1, -1, 56,
1169 57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
1170 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1171 -1, -1, -1, 42, 81, 82, 45, -1, 85, -1,
1172 78, 50, 51, 52, -1, -1, -1, 56, 57, 3,
1173 -1, -1, 61, -1, 8, 9, -1, 11, 4, 5,
1174 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1175 -1, -1, 81, 82, -1, 29, 85, 31, -1, 33,
1176 34, 35, 28, -1, -1, -1, -1, 3, 42, -1,
1177 -1, 45, 8, 9, -1, 11, 50, 51, 52, -1,
1178 -1, -1, 56, 57, -1, -1, -1, 61, -1, -1,
1179 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1180 10, -1, -1, -1, -1, -1, 42, 81, 82, 45,
1181 -1, 85, -1, 79, 50, 51, 52, -1, -1, -1,
1182 56, 57, -1, -1, -1, 61, -1, 37, 38, 39,
1183 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1184 50, 51, 52, 53, 54, 81, 82, -1, -1, 85,
1185 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1186 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1187 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1188 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1189 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1190 -1, -1, -1, 56, 57, -1, -1, -1, 61, 1,
1191 -1, -1, 4, -1, 6, 7, -1, -1, -1, -1,
1192 12, 13, 14, -1, -1, -1, 79, -1, 81, 82,
1193 -1, 84, 3, 4, -1, -1, 28, 8, 9, 31,
1194 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1195 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1196 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1197 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1198 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1199 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1200 -1, -1, -1, -1, -1, -1, 42, -1, 79, 45,
1201 81, 82, -1, 84, 50, 51, 52, -1, -1, -1,
1202 56, 57, -1, -1, -1, 61, 3, 4, 5, 6,
1203 7, 8, 9, -1, 11, 12, 13, 14, -1, -1,
1204 -1, -1, -1, -1, -1, 81, 82, -1, 84, -1,
1205 -1, 28, 29, 30, 31, -1, 33, 34, 35, -1,
1206 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1207 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1208 57, -1, 3, 4, 61, 6, 7, 8, 9, -1,
1209 11, 12, 13, 14, 46, 47, 48, 49, 50, 51,
1210 52, 53, 54, -1, 81, 82, -1, 28, 29, -1,
1211 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1212 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1213 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1214 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1215 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1216 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1217 56, 57, 3, -1, -1, 61, -1, 8, 9, -1,
1218 11, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1219 13, 14, -1, 79, -1, 81, 82, -1, 29, -1,
1220 31, -1, 33, 34, 35, 28, -1, 3, -1, -1,
1221 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1222 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1223 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1224 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1225 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1226 56, 57, 3, -1, -1, 61, -1, 8, 9, 39,
1227 11, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1228 50, 51, 52, 53, 54, 81, 82, -1, 29, -1,
1229 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1230 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1231 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1232 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1233 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1234 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1235 56, 57, -1, -1, 1, 61, 3, 4, 5, 6,
1236 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1237 -1, -1, -1, -1, -1, 81, 82, -1, -1, -1,
1238 27, 28, -1, 30, 31, 42, 43, 44, 45, 46,
1239 47, 48, 49, 50, 51, 52, 53, 54, -1, -1,
1240 -1, -1, 10, -1, -1, 52, -1, -1, -1, -1,
1241 -1, 37, 38, 39, 61, 41, 42, 43, 44, 45,
1242 46, 47, 48, 49, 50, 51, 52, 53, 54, 37,
1243 38, 39, 79, 41, 42, 43, 44, 45, 46, 47,
1244 48, 49, 50, 51, 52, 53, 54, -1, -1, -1,
1245 -1, -1, -1, -1, -1, -1, 37, 38, 39, 85,
1246 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1247 51, 52, 53, 54, 30, -1, -1, 85, -1, -1,
1248 -1, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1249 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1250 -1, -1, 83, 37, 38, 39, 40, 41, 42, 43,
1251 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1252 54, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1253 46, 47, 48, 49, 50, 51, 52, 53, 54, 43,
1254 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1255 54, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1258 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1259 #line 3 "/usr/cygnus/TBD-TBD/share/bison.simple"
1261 /* Skeleton output parser for bison,
1262 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1264 This program is free software; you can redistribute it and/or modify
1265 it under the terms of the GNU General Public License as published by
1266 the Free Software Foundation; either version 2, or (at your option)
1269 This program is distributed in the hope that it will be useful,
1270 but WITHOUT ANY WARRANTY; without even the implied warranty of
1271 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1272 GNU General Public License for more details.
1274 You should have received a copy of the GNU General Public License
1275 along with this program; if not, write to the Free Software
1276 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1278 /* As a special exception, when this file is copied by Bison into a
1279 Bison output file, you may use that output file without restriction.
1280 This special exception was added by the Free Software Foundation
1281 in version 1.24 of Bison. */
1285 #define alloca __builtin_alloca
1286 #else /* not GNU C. */
1287 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1289 #else /* not sparc */
1290 #if defined (MSDOS) && !defined (__TURBOC__)
1292 #else /* not MSDOS, or __TURBOC__ */
1296 #else /* not MSDOS, __TURBOC__, or _AIX */
1300 void *alloca (unsigned int);
1302 #else /* not __cplusplus */
1304 #endif /* not __cplusplus */
1306 #endif /* not _AIX */
1307 #endif /* not MSDOS, or __TURBOC__ */
1308 #endif /* not sparc. */
1309 #endif /* not GNU C. */
1310 #endif /* alloca not defined. */
1312 /* This is the parser code that is written into each bison parser
1313 when the %semantic_parser declaration is not specified in the grammar.
1314 It was written by Richard Stallman by simplifying the hairy parser
1315 used when %semantic_parser is specified. */
1317 /* Note: there must be only one dollar sign in this file.
1318 It is replaced by the list of actions, each action
1319 as one case of the switch. */
1321 #define yyerrok (yyerrstatus = 0)
1322 #define yyclearin (yychar = YYEMPTY)
1325 #define YYACCEPT return(0)
1326 #define YYABORT return(1)
1327 #define YYERROR goto yyerrlab1
1328 /* Like YYERROR except do call yyerror.
1329 This remains here temporarily to ease the
1330 transition to the new meaning of YYERROR, for GCC.
1331 Once GCC version 2 has supplanted version 1, this can go. */
1332 #define YYFAIL goto yyerrlab
1333 #define YYRECOVERING() (!!yyerrstatus)
1334 #define YYBACKUP(token, value) \
1336 if (yychar == YYEMPTY && yylen == 1) \
1337 { yychar = (token), yylval = (value); \
1338 yychar1 = YYTRANSLATE (yychar); \
1343 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1347 #define YYERRCODE 256
1350 #define YYLEX yylex()
1356 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1358 #define YYLEX yylex(&yylval, &yylloc)
1360 #else /* not YYLSP_NEEDED */
1362 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1364 #define YYLEX yylex(&yylval)
1366 #endif /* not YYLSP_NEEDED */
1369 /* If nonreentrant, generate the variables here */
1373 int yychar; /* the lookahead symbol */
1374 YYSTYPE yylval; /* the semantic value of the */
1375 /* lookahead symbol */
1378 YYLTYPE yylloc; /* location data for the lookahead */
1382 int yynerrs; /* number of parse errors so far */
1383 #endif /* not YYPURE */
1386 int yydebug; /* nonzero means print parse trace */
1387 /* Since this is uninitialized, it does not stop multiple parsers
1391 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1394 #define YYINITDEPTH 200
1397 /* YYMAXDEPTH is the maximum size the stacks can grow to
1398 (effective only if the built-in stack extension method is used). */
1405 #define YYMAXDEPTH 10000
1408 /* Prevent warning if -Wstrict-prototypes. */
1413 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1414 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1415 #else /* not GNU C or C++ */
1418 /* This is the most reliable way to avoid incompatibilities
1419 in available built-in functions on various systems. */
1421 __yy_memcpy (to, from, count)
1426 register char *f = from;
1427 register char *t = to;
1428 register int i = count;
1434 #else /* __cplusplus */
1436 /* This is the most reliable way to avoid incompatibilities
1437 in available built-in functions on various systems. */
1439 __yy_memcpy (char *to, char *from, int count)
1441 register char *f = from;
1442 register char *t = to;
1443 register int i = count;
1452 #line 196 "/usr/cygnus/TBD-TBD/share/bison.simple"
1454 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1455 into yyparse. The argument should have type void *.
1456 It should actually point to an object.
1457 Grammar actions can access the variable by casting it
1458 to the proper pointer type. */
1460 #ifdef YYPARSE_PARAM
1462 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1463 #define YYPARSE_PARAM_DECL
1464 #else /* not __cplusplus */
1465 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1466 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1467 #endif /* not __cplusplus */
1468 #else /* not YYPARSE_PARAM */
1469 #define YYPARSE_PARAM_ARG
1470 #define YYPARSE_PARAM_DECL
1471 #endif /* not YYPARSE_PARAM */
1474 yyparse(YYPARSE_PARAM_ARG)
1477 register int yystate;
1479 register short *yyssp;
1480 register YYSTYPE *yyvsp;
1481 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1482 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1484 short yyssa[YYINITDEPTH]; /* the state stack */
1485 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1487 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1488 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1491 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1492 YYLTYPE *yyls = yylsa;
1495 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1497 #define YYPOPSTACK (yyvsp--, yyssp--)
1500 int yystacksize = YYINITDEPTH;
1511 YYSTYPE yyval; /* the variable used to return */
1512 /* semantic values from the action */
1519 fprintf(stderr, "Starting parse\n");
1525 yychar = YYEMPTY; /* Cause a token to be read. */
1527 /* Initialize stack pointers.
1528 Waste one element of value and location stack
1529 so that they stay on the same level as the state stack.
1530 The wasted elements are never initialized. */
1538 /* Push a new state, which is found in yystate . */
1539 /* In all cases, when you get here, the value and location stacks
1540 have just been pushed. so pushing a state here evens the stacks. */
1545 if (yyssp >= yyss + yystacksize - 1)
1547 /* Give user a chance to reallocate the stack */
1548 /* Use copies of these so that the &'s don't force the real ones into memory. */
1549 YYSTYPE *yyvs1 = yyvs;
1550 short *yyss1 = yyss;
1552 YYLTYPE *yyls1 = yyls;
1555 /* Get the current used size of the three stacks, in elements. */
1556 int size = yyssp - yyss + 1;
1559 /* Each stack pointer address is followed by the size of
1560 the data in use in that stack, in bytes. */
1562 /* This used to be a conditional around just the two extra args,
1563 but that might be undefined if yyoverflow is a macro. */
1564 yyoverflow("parser stack overflow",
1565 &yyss1, size * sizeof (*yyssp),
1566 &yyvs1, size * sizeof (*yyvsp),
1567 &yyls1, size * sizeof (*yylsp),
1570 yyoverflow("parser stack overflow",
1571 &yyss1, size * sizeof (*yyssp),
1572 &yyvs1, size * sizeof (*yyvsp),
1576 yyss = yyss1; yyvs = yyvs1;
1580 #else /* no yyoverflow */
1581 /* Extend the stack our own way. */
1582 if (yystacksize >= YYMAXDEPTH)
1584 yyerror("parser stack overflow");
1588 if (yystacksize > YYMAXDEPTH)
1589 yystacksize = YYMAXDEPTH;
1590 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1591 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1592 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1593 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1595 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1596 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1598 #endif /* no yyoverflow */
1600 yyssp = yyss + size - 1;
1601 yyvsp = yyvs + size - 1;
1603 yylsp = yyls + size - 1;
1608 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1611 if (yyssp >= yyss + yystacksize - 1)
1617 fprintf(stderr, "Entering state %d\n", yystate);
1623 /* Do appropriate processing given the current state. */
1624 /* Read a lookahead token if we need one and don't already have one. */
1627 /* First try to decide what to do without reference to lookahead token. */
1629 yyn = yypact[yystate];
1633 /* Not known => get a lookahead token if don't already have one. */
1635 /* yychar is either YYEMPTY or YYEOF
1636 or a valid token in external form. */
1638 if (yychar == YYEMPTY)
1642 fprintf(stderr, "Reading a token: ");
1647 /* Convert token to internal form (in yychar1) for indexing tables with */
1649 if (yychar <= 0) /* This means end of input. */
1652 yychar = YYEOF; /* Don't call YYLEX any more */
1656 fprintf(stderr, "Now at end of input.\n");
1661 yychar1 = YYTRANSLATE(yychar);
1666 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1667 /* Give the individual parser a way to print the precise meaning
1668 of a token, for further debugging info. */
1670 YYPRINT (stderr, yychar, yylval);
1672 fprintf (stderr, ")\n");
1678 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1683 /* yyn is what to do for this token type in this state.
1684 Negative => reduce, -yyn is rule number.
1685 Positive => shift, yyn is new state.
1686 New state is final state => don't bother to shift,
1687 just return success.
1688 0, or most negative number => error. */
1703 /* Shift the lookahead token. */
1707 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1710 /* Discard the token being shifted unless it is eof. */
1711 if (yychar != YYEOF)
1719 /* count tokens shifted since error; after three, turn off error status. */
1720 if (yyerrstatus) yyerrstatus--;
1725 /* Do the default action for the current state. */
1728 yyn = yydefact[yystate];
1732 /* Do a reduction. yyn is the number of a rule to reduce with. */
1736 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1743 fprintf (stderr, "Reducing via rule %d (line %d), ",
1746 /* Print the symbols being reduced, and their result. */
1747 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1748 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1749 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1757 #line 225 "c-parse.y"
1759 pedwarn ("ANSI C forbids an empty source file");
1764 #line 230 "c-parse.y"
1766 /* In case there were missing closebraces,
1767 get us back to the global binding level. */
1768 while (! global_bindings_p ())
1774 #line 244 "c-parse.y"
1775 {yyval.ttype = NULL_TREE; ;
1778 #line 245 "c-parse.y"
1779 {yyval.ttype = NULL_TREE; ;
1782 #line 252 "c-parse.y"
1783 { STRIP_NOPS (yyvsp[-2].ttype);
1784 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1785 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1786 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1787 assemble_asm (yyvsp[-2].ttype);
1789 error ("argument of `asm' is not a constant string"); ;
1792 #line 260 "c-parse.y"
1793 { pedantic = yyvsp[-1].itype; ;
1796 #line 265 "c-parse.y"
1798 error ("ANSI C forbids data definition with no type or storage class");
1799 else if (!flag_traditional)
1800 warning ("data definition has no type or storage class");
1802 current_declspecs = TREE_VALUE (declspec_stack);
1803 prefix_attributes = TREE_PURPOSE (declspec_stack);
1804 declspec_stack = TREE_CHAIN (declspec_stack);
1805 resume_momentary (yyvsp[-2].itype); ;
1808 #line 275 "c-parse.y"
1809 { current_declspecs = TREE_VALUE (declspec_stack);
1810 prefix_attributes = TREE_PURPOSE (declspec_stack);
1811 declspec_stack = TREE_CHAIN (declspec_stack);
1812 resume_momentary (yyvsp[-2].itype); ;
1815 #line 280 "c-parse.y"
1816 { current_declspecs = TREE_VALUE (declspec_stack);
1817 prefix_attributes = TREE_PURPOSE (declspec_stack);
1818 declspec_stack = TREE_CHAIN (declspec_stack);
1819 resume_momentary (yyvsp[-2].itype); ;
1822 #line 285 "c-parse.y"
1823 { pedwarn ("empty declaration"); ;
1826 #line 287 "c-parse.y"
1827 { shadow_tag (yyvsp[-1].ttype); ;
1830 #line 291 "c-parse.y"
1832 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1835 #line 297 "c-parse.y"
1836 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1837 prefix_attributes, NULL_TREE, 0))
1839 reinit_parse_for_function (); ;
1842 #line 302 "c-parse.y"
1843 { store_parm_decls (); ;
1846 #line 304 "c-parse.y"
1847 { finish_function (0);
1848 current_declspecs = TREE_VALUE (declspec_stack);
1849 prefix_attributes = TREE_PURPOSE (declspec_stack);
1850 declspec_stack = TREE_CHAIN (declspec_stack);
1851 resume_momentary (yyvsp[-5].itype); ;
1854 #line 310 "c-parse.y"
1855 { current_declspecs = TREE_VALUE (declspec_stack);
1856 prefix_attributes = TREE_PURPOSE (declspec_stack);
1857 declspec_stack = TREE_CHAIN (declspec_stack);
1858 resume_momentary (yyvsp[-2].itype); ;
1861 #line 315 "c-parse.y"
1862 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1863 prefix_attributes, NULL_TREE, 0))
1865 reinit_parse_for_function (); ;
1868 #line 320 "c-parse.y"
1869 { store_parm_decls (); ;
1872 #line 322 "c-parse.y"
1873 { finish_function (0);
1874 current_declspecs = TREE_VALUE (declspec_stack);
1875 prefix_attributes = TREE_PURPOSE (declspec_stack);
1876 declspec_stack = TREE_CHAIN (declspec_stack);
1877 resume_momentary (yyvsp[-5].itype); ;
1880 #line 328 "c-parse.y"
1881 { current_declspecs = TREE_VALUE (declspec_stack);
1882 prefix_attributes = TREE_PURPOSE (declspec_stack);
1883 declspec_stack = TREE_CHAIN (declspec_stack);
1884 resume_momentary (yyvsp[-2].itype); ;
1887 #line 333 "c-parse.y"
1888 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1889 prefix_attributes, NULL_TREE, 0))
1891 reinit_parse_for_function (); ;
1894 #line 338 "c-parse.y"
1895 { store_parm_decls (); ;
1898 #line 340 "c-parse.y"
1899 { finish_function (0);
1900 current_declspecs = TREE_VALUE (declspec_stack);
1901 prefix_attributes = TREE_PURPOSE (declspec_stack);
1902 declspec_stack = TREE_CHAIN (declspec_stack);
1903 resume_momentary (yyvsp[-5].itype); ;
1906 #line 346 "c-parse.y"
1907 { current_declspecs = TREE_VALUE (declspec_stack);
1908 prefix_attributes = TREE_PURPOSE (declspec_stack);
1909 declspec_stack = TREE_CHAIN (declspec_stack);
1910 resume_momentary (yyvsp[-2].itype); ;
1913 #line 358 "c-parse.y"
1914 { yyval.code = ADDR_EXPR; ;
1917 #line 360 "c-parse.y"
1918 { yyval.code = NEGATE_EXPR; ;
1921 #line 362 "c-parse.y"
1922 { yyval.code = CONVERT_EXPR; ;
1925 #line 364 "c-parse.y"
1926 { yyval.code = PREINCREMENT_EXPR; ;
1929 #line 366 "c-parse.y"
1930 { yyval.code = PREDECREMENT_EXPR; ;
1933 #line 368 "c-parse.y"
1934 { yyval.code = BIT_NOT_EXPR; ;
1937 #line 370 "c-parse.y"
1938 { yyval.code = TRUTH_NOT_EXPR; ;
1941 #line 374 "c-parse.y"
1942 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1945 #line 379 "c-parse.y"
1946 { yyval.ttype = NULL_TREE; ;
1949 #line 385 "c-parse.y"
1950 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1953 #line 387 "c-parse.y"
1954 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1957 #line 393 "c-parse.y"
1958 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1961 #line 396 "c-parse.y"
1962 { yyval.ttype = yyvsp[0].ttype;
1963 pedantic = yyvsp[-1].itype; ;
1966 #line 399 "c-parse.y"
1967 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1968 overflow_warning (yyval.ttype); ;
1971 #line 403 "c-parse.y"
1972 { tree label = lookup_label (yyvsp[0].ttype);
1974 pedwarn ("ANSI C forbids `&&'");
1976 yyval.ttype = null_pointer_node;
1979 TREE_USED (label) = 1;
1980 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1981 TREE_CONSTANT (yyval.ttype) = 1;
1986 #line 431 "c-parse.y"
1987 { skip_evaluation--;
1988 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1989 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1990 error ("`sizeof' applied to a bit-field");
1991 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1994 #line 437 "c-parse.y"
1995 { skip_evaluation--;
1996 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1999 #line 440 "c-parse.y"
2000 { skip_evaluation--;
2001 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
2004 #line 443 "c-parse.y"
2005 { skip_evaluation--;
2006 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
2009 #line 446 "c-parse.y"
2010 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
2013 #line 448 "c-parse.y"
2014 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
2017 #line 450 "c-parse.y"
2018 { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
2021 #line 454 "c-parse.y"
2022 { skip_evaluation++; ;
2025 #line 458 "c-parse.y"
2026 { skip_evaluation++; ;
2029 #line 464 "c-parse.y"
2030 { tree type = groktypename (yyvsp[-2].ttype);
2031 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
2034 #line 467 "c-parse.y"
2035 { start_init (NULL_TREE, NULL, 0);
2036 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
2037 really_start_incremental_init (yyvsp[-2].ttype); ;
2040 #line 471 "c-parse.y"
2042 tree result = pop_init_level (0);
2043 tree type = yyvsp[-5].ttype;
2046 if (pedantic && ! flag_isoc9x)
2047 pedwarn ("ANSI C forbids constructor expressions");
2048 if (TYPE_NAME (type) != 0)
2050 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
2051 name = IDENTIFIER_POINTER (TYPE_NAME (type));
2053 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
2057 yyval.ttype = result;
2058 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
2060 int failure = complete_array_type (type, yyval.ttype, 1);
2067 #line 500 "c-parse.y"
2068 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2071 #line 502 "c-parse.y"
2072 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2075 #line 504 "c-parse.y"
2076 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2079 #line 506 "c-parse.y"
2080 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2083 #line 508 "c-parse.y"
2084 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2087 #line 510 "c-parse.y"
2088 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2091 #line 512 "c-parse.y"
2092 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2095 #line 514 "c-parse.y"
2096 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2099 #line 516 "c-parse.y"
2100 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2103 #line 518 "c-parse.y"
2104 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2107 #line 520 "c-parse.y"
2108 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2111 #line 522 "c-parse.y"
2112 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2115 #line 524 "c-parse.y"
2116 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2117 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2120 #line 527 "c-parse.y"
2121 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2122 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2125 #line 530 "c-parse.y"
2126 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2127 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2130 #line 533 "c-parse.y"
2131 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2132 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2135 #line 536 "c-parse.y"
2136 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2137 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2140 #line 539 "c-parse.y"
2141 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2142 - (yyvsp[-4].ttype == boolean_false_node)); ;
2145 #line 542 "c-parse.y"
2146 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2147 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2150 #line 545 "c-parse.y"
2152 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2153 /* Make sure first operand is calculated only once. */
2154 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2155 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2156 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2159 #line 552 "c-parse.y"
2160 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2161 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2164 #line 555 "c-parse.y"
2166 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2167 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2168 if (class == 'e' || class == '1'
2169 || class == '2' || class == '<')
2170 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
2174 #line 563 "c-parse.y"
2176 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2177 /* This inhibits warnings in truthvalue_conversion. */
2178 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2179 if (class == 'e' || class == '1'
2180 || class == '2' || class == '<')
2181 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
2185 #line 575 "c-parse.y"
2187 yyval.ttype = lastiddecl;
2188 if (!yyval.ttype || yyval.ttype == error_mark_node)
2190 if (yychar == YYEMPTY)
2195 /* Ordinary implicit function declaration. */
2196 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2197 assemble_external (yyval.ttype);
2198 TREE_USED (yyval.ttype) = 1;
2201 else if (current_function_decl == 0)
2203 error ("`%s' undeclared here (not in a function)",
2204 IDENTIFIER_POINTER (yyvsp[0].ttype));
2205 yyval.ttype = error_mark_node;
2210 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2211 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2213 error ("`%s' undeclared (first use in this function)",
2214 IDENTIFIER_POINTER (yyvsp[0].ttype));
2216 if (! undeclared_variable_notice)
2218 error ("(Each undeclared identifier is reported only once");
2219 error ("for each function it appears in.)");
2220 undeclared_variable_notice = 1;
2223 yyval.ttype = error_mark_node;
2224 /* Prevent repeated error messages. */
2225 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2226 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2230 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2231 yyval.ttype = error_mark_node;
2232 else if (C_DECL_ANTICIPATED (yyval.ttype))
2234 /* The first time we see a build-in function used,
2235 if it has not been declared. */
2236 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2237 if (yychar == YYEMPTY)
2241 /* Omit the implicit declaration we
2242 would ordinarily do, so we don't lose
2243 the actual built in type.
2244 But print a diagnostic for the mismatch. */
2245 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2246 error ("`%s' implicitly declared as function",
2247 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2248 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2249 != TYPE_MODE (integer_type_node))
2250 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2252 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2253 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2254 /* If it really returns void, change that to int. */
2255 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2256 TREE_TYPE (yyval.ttype)
2257 = build_function_type (integer_type_node,
2258 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2261 pedwarn ("built-in function `%s' used without declaration",
2262 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2264 /* Do what we would ordinarily do when a fn is used. */
2265 assemble_external (yyval.ttype);
2266 TREE_USED (yyval.ttype) = 1;
2270 assemble_external (yyval.ttype);
2271 TREE_USED (yyval.ttype) = 1;
2274 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2276 yyval.ttype = DECL_INITIAL (yyval.ttype);
2277 /* This is to prevent an enum whose value is 0
2278 from being considered a null pointer constant. */
2279 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2280 TREE_CONSTANT (yyval.ttype) = 1;
2285 #line 674 "c-parse.y"
2286 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2289 #line 676 "c-parse.y"
2290 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2291 if (class == 'e' || class == '1'
2292 || class == '2' || class == '<')
2293 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2294 yyval.ttype = yyvsp[-1].ttype; ;
2297 #line 682 "c-parse.y"
2298 { yyval.ttype = error_mark_node; ;
2301 #line 684 "c-parse.y"
2304 pedwarn ("ANSI C forbids braced-groups within expressions");
2305 pop_iterator_stack ();
2307 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2308 /* The statements have side effects, so the group does. */
2309 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2311 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2313 /* Make a BIND_EXPR for the BLOCK already made. */
2314 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2315 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2316 /* Remove the block from the tree at this point.
2317 It gets put back at the proper place
2318 when the BIND_EXPR is expanded. */
2319 delete_block (yyvsp[-1].ttype);
2322 yyval.ttype = yyvsp[-1].ttype;
2326 #line 707 "c-parse.y"
2328 /* Make sure we call expand_end_stmt_expr. Otherwise
2329 we are likely to lose sequences and crash later. */
2330 pop_iterator_stack ();
2332 expand_end_stmt_expr (yyvsp[-2].ttype);
2333 yyval.ttype = error_mark_node;
2337 #line 716 "c-parse.y"
2338 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2341 #line 718 "c-parse.y"
2342 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2345 #line 720 "c-parse.y"
2347 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2351 #line 724 "c-parse.y"
2353 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2355 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2359 #line 730 "c-parse.y"
2360 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2363 #line 732 "c-parse.y"
2364 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2367 #line 739 "c-parse.y"
2368 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2371 #line 748 "c-parse.y"
2372 { c_mark_varargs ();
2374 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2377 #line 758 "c-parse.y"
2381 #line 774 "c-parse.y"
2382 { current_declspecs = TREE_VALUE (declspec_stack);
2383 prefix_attributes = TREE_PURPOSE (declspec_stack);
2384 declspec_stack = TREE_CHAIN (declspec_stack);
2385 resume_momentary (yyvsp[-2].itype); ;
2388 #line 779 "c-parse.y"
2389 { current_declspecs = TREE_VALUE (declspec_stack);
2390 prefix_attributes = TREE_PURPOSE (declspec_stack);
2391 declspec_stack = TREE_CHAIN (declspec_stack);
2392 resume_momentary (yyvsp[-2].itype); ;
2395 #line 784 "c-parse.y"
2396 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2397 pedwarn ("empty declaration"); ;
2400 #line 787 "c-parse.y"
2401 { pedwarn ("empty declaration"); ;
2404 #line 796 "c-parse.y"
2408 #line 811 "c-parse.y"
2409 { yyval.itype = suspend_momentary ();
2410 pending_xref_error ();
2411 declspec_stack = tree_cons (prefix_attributes,
2414 split_specs_attrs (yyvsp[0].ttype,
2415 ¤t_declspecs, &prefix_attributes); ;
2418 #line 822 "c-parse.y"
2419 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2422 #line 827 "c-parse.y"
2423 { current_declspecs = TREE_VALUE (declspec_stack);
2424 prefix_attributes = TREE_PURPOSE (declspec_stack);
2425 declspec_stack = TREE_CHAIN (declspec_stack);
2426 resume_momentary (yyvsp[-2].itype); ;
2429 #line 832 "c-parse.y"
2430 { current_declspecs = TREE_VALUE (declspec_stack);
2431 prefix_attributes = TREE_PURPOSE (declspec_stack);
2432 declspec_stack = TREE_CHAIN (declspec_stack);
2433 resume_momentary (yyvsp[-2].itype); ;
2436 #line 837 "c-parse.y"
2437 { current_declspecs = TREE_VALUE (declspec_stack);
2438 prefix_attributes = TREE_PURPOSE (declspec_stack);
2439 declspec_stack = TREE_CHAIN (declspec_stack);
2440 resume_momentary (yyvsp[-1].itype); ;
2443 #line 842 "c-parse.y"
2444 { current_declspecs = TREE_VALUE (declspec_stack);
2445 prefix_attributes = TREE_PURPOSE (declspec_stack);
2446 declspec_stack = TREE_CHAIN (declspec_stack);
2447 resume_momentary (yyvsp[-1].itype); ;
2450 #line 847 "c-parse.y"
2451 { shadow_tag (yyvsp[-1].ttype); ;
2454 #line 849 "c-parse.y"
2455 { pedwarn ("empty declaration"); ;
2458 #line 851 "c-parse.y"
2459 { pedantic = yyvsp[-1].itype; ;
2462 #line 861 "c-parse.y"
2463 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2466 #line 863 "c-parse.y"
2467 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2470 #line 867 "c-parse.y"
2471 { yyval.ttype = NULL_TREE; ;
2474 #line 869 "c-parse.y"
2475 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2478 #line 871 "c-parse.y"
2479 { if (extra_warnings)
2480 warning ("`%s' is not at beginning of declaration",
2481 IDENTIFIER_POINTER (yyvsp[0].ttype));
2482 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2485 #line 876 "c-parse.y"
2486 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2489 #line 881 "c-parse.y"
2490 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2493 #line 883 "c-parse.y"
2494 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2497 #line 888 "c-parse.y"
2498 { yyval.ttype = NULL_TREE; ;
2501 #line 890 "c-parse.y"
2502 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2505 #line 892 "c-parse.y"
2506 { if (extra_warnings)
2507 warning ("`%s' is not at beginning of declaration",
2508 IDENTIFIER_POINTER (yyvsp[0].ttype));
2509 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2512 #line 905 "c-parse.y"
2513 { yyval.ttype = yyvsp[0].ttype; ;
2516 #line 907 "c-parse.y"
2517 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2520 #line 909 "c-parse.y"
2521 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2524 #line 911 "c-parse.y"
2525 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2528 #line 916 "c-parse.y"
2529 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2530 TREE_STATIC (yyval.ttype) = 1; ;
2533 #line 919 "c-parse.y"
2534 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2537 #line 921 "c-parse.y"
2538 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2539 TREE_STATIC (yyval.ttype) = 1; ;
2542 #line 924 "c-parse.y"
2543 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2544 warning ("`%s' is not at beginning of declaration",
2545 IDENTIFIER_POINTER (yyvsp[0].ttype));
2546 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2547 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2550 #line 938 "c-parse.y"
2551 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2554 #line 940 "c-parse.y"
2555 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2558 #line 944 "c-parse.y"
2559 { yyval.ttype = NULL_TREE; ;
2562 #line 946 "c-parse.y"
2563 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2566 #line 956 "c-parse.y"
2567 { /* For a typedef name, record the meaning, not the name.
2568 In case of `foo foo, bar;'. */
2569 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2572 #line 960 "c-parse.y"
2573 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2576 #line 962 "c-parse.y"
2577 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2580 #line 984 "c-parse.y"
2581 { yyval.ttype = NULL_TREE; ;
2584 #line 986 "c-parse.y"
2585 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2586 yyval.ttype = yyvsp[-1].ttype;
2590 #line 993 "c-parse.y"
2591 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2592 yyvsp[-1].ttype, prefix_attributes);
2593 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2596 #line 998 "c-parse.y"
2598 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2601 #line 1001 "c-parse.y"
2602 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2603 yyvsp[0].ttype, prefix_attributes);
2604 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2608 #line 1009 "c-parse.y"
2609 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2610 yyvsp[-1].ttype, prefix_attributes);
2611 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2614 #line 1014 "c-parse.y"
2616 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2617 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2620 #line 1018 "c-parse.y"
2621 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2622 yyvsp[0].ttype, prefix_attributes);
2623 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2626 #line 1026 "c-parse.y"
2627 { yyval.ttype = NULL_TREE; ;
2630 #line 1028 "c-parse.y"
2631 { yyval.ttype = yyvsp[0].ttype; ;
2634 #line 1033 "c-parse.y"
2635 { yyval.ttype = yyvsp[0].ttype; ;
2638 #line 1035 "c-parse.y"
2639 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2642 #line 1040 "c-parse.y"
2643 { yyval.ttype = yyvsp[-2].ttype; ;
2646 #line 1045 "c-parse.y"
2647 { yyval.ttype = yyvsp[0].ttype; ;
2650 #line 1047 "c-parse.y"
2651 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2654 #line 1052 "c-parse.y"
2655 { yyval.ttype = NULL_TREE; ;
2658 #line 1054 "c-parse.y"
2659 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2662 #line 1056 "c-parse.y"
2663 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2666 #line 1058 "c-parse.y"
2667 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2670 #line 1060 "c-parse.y"
2671 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2674 #line 1078 "c-parse.y"
2675 { really_start_incremental_init (NULL_TREE);
2676 /* Note that the call to clear_momentary
2677 is in process_init_element. */
2678 push_momentary (); ;
2681 #line 1083 "c-parse.y"
2682 { yyval.ttype = pop_init_level (0);
2683 if (yyval.ttype == error_mark_node
2684 && ! (yychar == STRING || yychar == CONSTANT))
2687 pop_momentary_nofree (); ;
2690 #line 1091 "c-parse.y"
2691 { yyval.ttype = error_mark_node; ;
2694 #line 1097 "c-parse.y"
2696 pedwarn ("ANSI C forbids empty initializer braces"); ;
2699 #line 1113 "c-parse.y"
2700 { set_init_label (yyvsp[-1].ttype); ;
2703 #line 1120 "c-parse.y"
2704 { push_init_level (0); ;
2707 #line 1122 "c-parse.y"
2708 { process_init_element (pop_init_level (0)); ;
2711 #line 1124 "c-parse.y"
2712 { process_init_element (yyvsp[0].ttype); ;
2715 #line 1135 "c-parse.y"
2716 { set_init_label (yyvsp[0].ttype); ;
2719 #line 1140 "c-parse.y"
2720 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2723 #line 1142 "c-parse.y"
2724 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2727 #line 1147 "c-parse.y"
2729 pedwarn ("ANSI C forbids nested functions");
2731 push_function_context ();
2732 if (! start_function (current_declspecs, yyvsp[0].ttype,
2733 prefix_attributes, NULL_TREE, 1))
2735 pop_function_context ();
2738 reinit_parse_for_function (); ;
2741 #line 1159 "c-parse.y"
2742 { store_parm_decls (); ;
2745 #line 1167 "c-parse.y"
2746 { finish_function (1);
2747 pop_function_context (); ;
2750 #line 1173 "c-parse.y"
2752 pedwarn ("ANSI C forbids nested functions");
2754 push_function_context ();
2755 if (! start_function (current_declspecs, yyvsp[0].ttype,
2756 prefix_attributes, NULL_TREE, 1))
2758 pop_function_context ();
2761 reinit_parse_for_function (); ;
2764 #line 1185 "c-parse.y"
2765 { store_parm_decls (); ;
2768 #line 1193 "c-parse.y"
2769 { finish_function (1);
2770 pop_function_context (); ;
2773 #line 1209 "c-parse.y"
2774 { yyval.ttype = yyvsp[-1].ttype; ;
2777 #line 1211 "c-parse.y"
2778 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2781 #line 1216 "c-parse.y"
2782 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2785 #line 1218 "c-parse.y"
2786 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2789 #line 1220 "c-parse.y"
2790 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2793 #line 1227 "c-parse.y"
2794 { yyval.ttype = yyvsp[0].ttype; ;
2797 #line 1238 "c-parse.y"
2798 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2801 #line 1243 "c-parse.y"
2802 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2804 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2808 #line 1248 "c-parse.y"
2809 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2812 #line 1250 "c-parse.y"
2813 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2816 #line 1252 "c-parse.y"
2817 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2820 #line 1259 "c-parse.y"
2821 { yyval.ttype = yyvsp[0].ttype; ;
2824 #line 1268 "c-parse.y"
2825 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2828 #line 1273 "c-parse.y"
2829 { yyval.ttype = yyvsp[-1].ttype; ;
2832 #line 1275 "c-parse.y"
2833 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2836 #line 1277 "c-parse.y"
2837 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2839 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2843 #line 1282 "c-parse.y"
2844 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2847 #line 1284 "c-parse.y"
2848 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2851 #line 1291 "c-parse.y"
2852 { yyval.ttype = yyvsp[0].ttype; ;
2855 #line 1297 "c-parse.y"
2856 { yyval.ttype = NULL_TREE; ;
2859 #line 1299 "c-parse.y"
2860 { yyval.ttype = yyvsp[0].ttype; ;
2863 #line 1304 "c-parse.y"
2864 { yyval.ttype = NULL_TREE; ;
2867 #line 1306 "c-parse.y"
2868 { yyval.ttype = yyvsp[0].ttype; ;
2871 #line 1311 "c-parse.y"
2872 { yyval.ttype = NULL_TREE; ;
2875 #line 1313 "c-parse.y"
2876 { yyval.ttype = yyvsp[0].ttype; ;
2879 #line 1318 "c-parse.y"
2880 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2881 /* Start scope of tag before parsing components. */
2885 #line 1322 "c-parse.y"
2886 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2889 #line 1324 "c-parse.y"
2890 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2891 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2895 #line 1328 "c-parse.y"
2896 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2899 #line 1330 "c-parse.y"
2900 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2903 #line 1332 "c-parse.y"
2904 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2907 #line 1334 "c-parse.y"
2908 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2909 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2913 #line 1338 "c-parse.y"
2914 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2917 #line 1340 "c-parse.y"
2918 { yyvsp[0].itype = suspend_momentary ();
2919 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2922 #line 1343 "c-parse.y"
2923 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
2924 resume_momentary (yyvsp[-5].itype); ;
2927 #line 1346 "c-parse.y"
2928 { yyvsp[0].itype = suspend_momentary ();
2929 yyval.ttype = start_enum (NULL_TREE); ;
2932 #line 1349 "c-parse.y"
2933 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
2934 resume_momentary (yyvsp[-5].itype); ;
2937 #line 1352 "c-parse.y"
2938 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2941 #line 1363 "c-parse.y"
2942 { if (pedantic && ! flag_isoc9x)
2943 pedwarn ("comma at end of enumerator list"); ;
2946 #line 1369 "c-parse.y"
2947 { yyval.ttype = yyvsp[0].ttype; ;
2950 #line 1371 "c-parse.y"
2951 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2952 pedwarn ("no semicolon at end of struct or union"); ;
2955 #line 1376 "c-parse.y"
2956 { yyval.ttype = NULL_TREE; ;
2959 #line 1378 "c-parse.y"
2960 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2963 #line 1380 "c-parse.y"
2965 pedwarn ("extra semicolon in struct or union specified"); ;
2968 #line 1395 "c-parse.y"
2969 { yyval.ttype = yyvsp[0].ttype;
2970 current_declspecs = TREE_VALUE (declspec_stack);
2971 prefix_attributes = TREE_PURPOSE (declspec_stack);
2972 declspec_stack = TREE_CHAIN (declspec_stack);
2973 resume_momentary (yyvsp[-1].itype); ;
2976 #line 1401 "c-parse.y"
2978 pedwarn ("ANSI C forbids member declarations with no members");
2979 shadow_tag(yyvsp[0].ttype);
2980 yyval.ttype = NULL_TREE; ;
2983 #line 1406 "c-parse.y"
2984 { yyval.ttype = yyvsp[0].ttype;
2985 current_declspecs = TREE_VALUE (declspec_stack);
2986 prefix_attributes = TREE_PURPOSE (declspec_stack);
2987 declspec_stack = TREE_CHAIN (declspec_stack);
2988 resume_momentary (yyvsp[-1].itype); ;
2991 #line 1412 "c-parse.y"
2993 pedwarn ("ANSI C forbids member declarations with no members");
2994 shadow_tag(yyvsp[0].ttype);
2995 yyval.ttype = NULL_TREE; ;
2998 #line 1417 "c-parse.y"
2999 { yyval.ttype = NULL_TREE; ;
3002 #line 1419 "c-parse.y"
3003 { yyval.ttype = yyvsp[0].ttype;
3004 pedantic = yyvsp[-1].itype; ;
3007 #line 1426 "c-parse.y"
3008 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3011 #line 1431 "c-parse.y"
3012 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
3013 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3016 #line 1435 "c-parse.y"
3017 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
3018 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3021 #line 1438 "c-parse.y"
3022 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
3023 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3026 #line 1450 "c-parse.y"
3027 { if (yyvsp[-2].ttype == error_mark_node)
3028 yyval.ttype = yyvsp[-2].ttype;
3030 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
3033 #line 1455 "c-parse.y"
3034 { yyval.ttype = error_mark_node; ;
3037 #line 1461 "c-parse.y"
3038 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3041 #line 1463 "c-parse.y"
3042 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3045 #line 1468 "c-parse.y"
3046 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3049 #line 1470 "c-parse.y"
3050 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3053 #line 1475 "c-parse.y"
3054 { yyval.ttype = NULL_TREE; ;
3057 #line 1481 "c-parse.y"
3058 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3061 #line 1483 "c-parse.y"
3062 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3065 #line 1488 "c-parse.y"
3066 { yyval.ttype = NULL_TREE; ;
3069 #line 1490 "c-parse.y"
3070 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3073 #line 1495 "c-parse.y"
3074 { yyval.ttype = yyvsp[-1].ttype; ;
3077 #line 1498 "c-parse.y"
3078 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3081 #line 1500 "c-parse.y"
3082 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3085 #line 1502 "c-parse.y"
3086 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3089 #line 1504 "c-parse.y"
3090 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3093 #line 1506 "c-parse.y"
3094 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3097 #line 1508 "c-parse.y"
3098 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3101 #line 1510 "c-parse.y"
3102 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3105 #line 1512 "c-parse.y"
3106 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3109 #line 1516 "c-parse.y"
3110 { yyval.ttype = yyvsp[0].ttype; ;
3113 #line 1525 "c-parse.y"
3115 if (pedantic && yyvsp[0].ends_in_label)
3116 pedwarn ("ANSI C forbids label at end of compound statement");
3120 #line 1534 "c-parse.y"
3121 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3124 #line 1536 "c-parse.y"
3125 { yyval.ends_in_label = 0; ;
3128 #line 1548 "c-parse.y"
3129 { emit_line_note (input_filename, lineno);
3133 expand_start_bindings (0);
3137 #line 1561 "c-parse.y"
3139 pedwarn ("ANSI C forbids label declarations"); ;
3142 #line 1572 "c-parse.y"
3144 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3146 tree label = shadow_label (TREE_VALUE (link));
3147 C_DECLARED_LABEL_FLAG (label) = 1;
3148 declare_nonlocal_label (label);
3153 #line 1586 "c-parse.y"
3157 #line 1590 "c-parse.y"
3158 { compstmt_count++; ;
3161 #line 1593 "c-parse.y"
3162 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3165 #line 1595 "c-parse.y"
3166 { emit_line_note (input_filename, lineno);
3167 expand_end_bindings (getdecls (), 1, 0);
3168 yyval.ttype = poplevel (1, 1, 0);
3169 if (yychar == CONSTANT || yychar == STRING)
3170 pop_momentary_nofree ();
3175 #line 1603 "c-parse.y"
3176 { emit_line_note (input_filename, lineno);
3177 expand_end_bindings (getdecls (), kept_level_p (), 0);
3178 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3179 if (yychar == CONSTANT || yychar == STRING)
3180 pop_momentary_nofree ();
3185 #line 1611 "c-parse.y"
3186 { emit_line_note (input_filename, lineno);
3187 expand_end_bindings (getdecls (), kept_level_p (), 0);
3188 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3189 if (yychar == CONSTANT || yychar == STRING)
3190 pop_momentary_nofree ();
3195 #line 1622 "c-parse.y"
3196 { if (current_function_decl == 0)
3198 error ("braced-group within expression allowed only inside a function");
3201 /* We must force a BLOCK for this level
3202 so that, if it is not expanded later,
3203 there is a way to turn off the entire subtree of blocks
3204 that are contained in it. */
3206 push_iterator_stack ();
3207 push_label_level ();
3208 yyval.ttype = expand_start_stmt_expr ();
3213 #line 1639 "c-parse.y"
3214 { yyval.ttype = yyvsp[0].ttype; ;
3217 #line 1653 "c-parse.y"
3218 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3219 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3221 yyval.itype = stmt_count;
3222 if_stmt_file = yyvsp[-5].filename;
3223 if_stmt_line = yyvsp[-4].lineno;
3224 position_after_white_space (); ;
3227 #line 1667 "c-parse.y"
3230 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3231 /* See comment in `while' alternative, above. */
3233 expand_start_loop_continue_elsewhere (1);
3234 position_after_white_space (); ;
3237 #line 1675 "c-parse.y"
3238 { expand_loop_continue_here (); ;
3241 #line 1679 "c-parse.y"
3242 { yyval.filename = input_filename; ;
3245 #line 1683 "c-parse.y"
3246 { yyval.lineno = lineno; ;
3249 #line 1688 "c-parse.y"
3253 #line 1693 "c-parse.y"
3257 #line 1698 "c-parse.y"
3258 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3261 #line 1703 "c-parse.y"
3262 { yyval.ends_in_label = 0; ;
3265 #line 1705 "c-parse.y"
3266 { yyval.ends_in_label = 1; ;
3269 #line 1711 "c-parse.y"
3273 #line 1714 "c-parse.y"
3275 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3276 /* It appears that this should not be done--that a non-lvalue array
3277 shouldn't get an error if the value isn't used.
3278 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3279 if it appears as a top-level expression,
3280 but says nothing about non-lvalue arrays. */
3282 /* Call default_conversion to get an error
3283 on referring to a register array if pedantic. */
3284 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3285 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3286 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3288 iterator_expand (yyvsp[-1].ttype);
3289 clear_momentary (); ;
3292 #line 1731 "c-parse.y"
3293 { c_expand_start_else ();
3294 yyvsp[-1].itype = stmt_count;
3295 position_after_white_space (); ;
3298 #line 1735 "c-parse.y"
3299 { c_expand_end_cond ();
3300 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3301 warning ("empty body in an else-statement"); ;
3304 #line 1739 "c-parse.y"
3305 { c_expand_end_cond ();
3306 /* This warning is here instead of in simple_if, because we
3307 do not want a warning if an empty if is followed by an
3308 else statement. Increment stmt_count so we don't
3309 give a second error if this is a nested `if'. */
3310 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3311 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3312 "empty body in an if-statement"); ;
3315 #line 1751 "c-parse.y"
3316 { c_expand_end_cond (); ;
3319 #line 1753 "c-parse.y"
3321 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3322 /* The emit_nop used to come before emit_line_note,
3323 but that made the nop seem like part of the preceding line.
3324 And that was confusing when the preceding line was
3325 inside of an if statement and was not really executed.
3326 I think it ought to work to put the nop after the line number.
3327 We will see. --rms, July 15, 1991. */
3331 #line 1763 "c-parse.y"
3332 { /* Don't start the loop till we have succeeded
3333 in parsing the end test. This is to make sure
3334 that we end every loop we start. */
3335 expand_start_loop (1);
3336 emit_line_note (input_filename, lineno);
3337 expand_exit_loop_if_false (NULL_PTR,
3338 truthvalue_conversion (yyvsp[-1].ttype));
3339 position_after_white_space (); ;
3342 #line 1772 "c-parse.y"
3343 { expand_end_loop (); ;
3346 #line 1775 "c-parse.y"
3347 { emit_line_note (input_filename, lineno);
3348 expand_exit_loop_if_false (NULL_PTR,
3349 truthvalue_conversion (yyvsp[-2].ttype));
3351 clear_momentary (); ;
3354 #line 1782 "c-parse.y"
3355 { expand_end_loop ();
3356 clear_momentary (); ;
3359 #line 1786 "c-parse.y"
3361 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3362 /* See comment in `while' alternative, above. */
3364 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3365 /* Next step is to call expand_start_loop_continue_elsewhere,
3366 but wait till after we parse the entire for (...).
3367 Otherwise, invalid input might cause us to call that
3368 fn without calling expand_end_loop. */
3372 #line 1798 "c-parse.y"
3373 { yyvsp[0].lineno = lineno;
3374 yyval.filename = input_filename; ;
3377 #line 1801 "c-parse.y"
3379 /* Start the loop. Doing this after parsing
3380 all the expressions ensures we will end the loop. */
3381 expand_start_loop_continue_elsewhere (1);
3382 /* Emit the end-test, with a line number. */
3383 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3384 if (yyvsp[-4].ttype)
3385 expand_exit_loop_if_false (NULL_PTR,
3386 truthvalue_conversion (yyvsp[-4].ttype));
3387 /* Don't let the tree nodes for $9 be discarded by
3388 clear_momentary during the parsing of the next stmt. */
3390 yyvsp[-3].lineno = lineno;
3391 yyvsp[-2].filename = input_filename;
3392 position_after_white_space (); ;
3395 #line 1817 "c-parse.y"
3396 { /* Emit the increment expression, with a line number. */
3397 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3398 expand_loop_continue_here ();
3399 if (yyvsp[-3].ttype)
3400 c_expand_expr_stmt (yyvsp[-3].ttype);
3401 if (yychar == CONSTANT || yychar == STRING)
3402 pop_momentary_nofree ();
3405 expand_end_loop (); ;
3408 #line 1828 "c-parse.y"
3410 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3411 c_expand_start_case (yyvsp[-1].ttype);
3412 /* Don't let the tree nodes for $3 be discarded by
3413 clear_momentary during the parsing of the next stmt. */
3415 position_after_white_space (); ;
3418 #line 1836 "c-parse.y"
3419 { expand_end_case (yyvsp[-3].ttype);
3420 if (yychar == CONSTANT || yychar == STRING)
3421 pop_momentary_nofree ();
3426 #line 1842 "c-parse.y"
3428 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3429 if ( ! expand_exit_something ())
3430 error ("break statement not within loop or switch"); ;
3433 #line 1847 "c-parse.y"
3435 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3436 if (! expand_continue_loop (NULL_PTR))
3437 error ("continue statement not within a loop"); ;
3440 #line 1852 "c-parse.y"
3442 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3443 c_expand_return (NULL_TREE); ;
3446 #line 1856 "c-parse.y"
3448 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3449 c_expand_return (yyvsp[-1].ttype); ;
3452 #line 1860 "c-parse.y"
3454 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3455 STRIP_NOPS (yyvsp[-2].ttype);
3456 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3457 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3458 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3459 expand_asm (yyvsp[-2].ttype);
3461 error ("argument of `asm' is not a constant string"); ;
3464 #line 1871 "c-parse.y"
3466 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3467 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3468 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3469 input_filename, lineno); ;
3472 #line 1878 "c-parse.y"
3474 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3475 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3476 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3477 input_filename, lineno); ;
3480 #line 1886 "c-parse.y"
3482 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3483 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3484 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3485 input_filename, lineno); ;
3488 #line 1892 "c-parse.y"
3491 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3492 decl = lookup_label (yyvsp[-1].ttype);
3495 TREE_USED (decl) = 1;
3501 #line 1903 "c-parse.y"
3503 pedwarn ("ANSI C forbids `goto *expr;'");
3505 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3506 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3509 #line 1918 "c-parse.y"
3511 /* The value returned by this action is */
3512 /* 1 if everything is OK */
3513 /* 0 in case of error or already bound iterator */
3516 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3517 error ("invalid `for (ITERATOR)' syntax");
3518 else if (! ITERATOR_P (yyvsp[-1].ttype))
3519 error ("`%s' is not an iterator",
3520 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3521 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3522 error ("`for (%s)' inside expansion of same iterator",
3523 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3527 iterator_for_loop_start (yyvsp[-1].ttype);
3532 #line 1939 "c-parse.y"
3534 if (yyvsp[-1].itype)
3535 iterator_for_loop_end (yyvsp[-3].ttype);
3539 #line 1974 "c-parse.y"
3540 { register tree value = check_case_value (yyvsp[-1].ttype);
3542 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3546 if (value != error_mark_node)
3551 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3552 pedwarn ("label must have integral type in ANSI C");
3554 success = pushcase (value, convert_and_check,
3558 error ("case label not within a switch statement");
3559 else if (success == 2)
3561 error ("duplicate case value");
3562 error_with_decl (duplicate, "this is the first entry for that value");
3564 else if (success == 3)
3565 warning ("case value out of range");
3566 else if (success == 5)
3567 error ("case label within scope of cleanup or variable array");
3569 position_after_white_space (); ;
3572 #line 2005 "c-parse.y"
3573 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3574 register tree value2 = check_case_value (yyvsp[-1].ttype);
3576 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3579 pedwarn ("ANSI C forbids case ranges");
3582 if (value1 != error_mark_node && value2 != error_mark_node)
3585 int success = pushcase_range (value1, value2,
3586 convert_and_check, label,
3589 error ("case label not within a switch statement");
3590 else if (success == 2)
3592 error ("duplicate case value");
3593 error_with_decl (duplicate, "this is the first entry for that value");
3595 else if (success == 3)
3596 warning ("case value out of range");
3597 else if (success == 4)
3598 warning ("empty case range");
3599 else if (success == 5)
3600 error ("case label within scope of cleanup or variable array");
3602 position_after_white_space (); ;
3605 #line 2036 "c-parse.y"
3609 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3610 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3613 error ("default label not within a switch statement");
3614 else if (success == 2)
3616 error ("multiple default labels in one switch");
3617 error_with_decl (duplicate, "this is the first default label");
3619 position_after_white_space (); ;
3622 #line 2051 "c-parse.y"
3623 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
3628 expand_label (label);
3629 decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
3631 position_after_white_space (); ;
3634 #line 2066 "c-parse.y"
3635 { emit_line_note (input_filename, lineno);
3636 yyval.ttype = NULL_TREE; ;
3639 #line 2069 "c-parse.y"
3640 { emit_line_note (input_filename, lineno); ;
3643 #line 2074 "c-parse.y"
3644 { yyval.ttype = NULL_TREE; ;
3647 #line 2081 "c-parse.y"
3648 { yyval.ttype = NULL_TREE; ;
3651 #line 2088 "c-parse.y"
3652 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3655 #line 2093 "c-parse.y"
3656 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3659 #line 2098 "c-parse.y"
3660 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3663 #line 2100 "c-parse.y"
3664 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3667 #line 2106 "c-parse.y"
3669 clear_parm_order ();
3670 declare_parm_level (0); ;
3673 #line 2110 "c-parse.y"
3674 { yyval.ttype = yyvsp[0].ttype;
3675 parmlist_tags_warning ();
3676 poplevel (0, 0, 0); ;
3679 #line 2118 "c-parse.y"
3682 pedwarn ("ANSI C forbids forward parameter declarations");
3683 /* Mark the forward decls as such. */
3684 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3685 TREE_ASM_WRITTEN (parm) = 1;
3686 clear_parm_order (); ;
3689 #line 2126 "c-parse.y"
3690 { yyval.ttype = yyvsp[0].ttype; ;
3693 #line 2128 "c-parse.y"
3694 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3697 #line 2134 "c-parse.y"
3698 { yyval.ttype = get_parm_info (0); ;
3701 #line 2136 "c-parse.y"
3702 { yyval.ttype = get_parm_info (0);
3703 /* Gcc used to allow this as an extension. However, it does
3704 not work for all targets, and thus has been disabled.
3705 Also, since func (...) and func () are indistinguishable,
3706 it caused problems with the code in expand_builtin which
3707 tries to verify that BUILT_IN_NEXT_ARG is being used
3709 error ("ANSI C requires a named argument before `...'");
3713 #line 2146 "c-parse.y"
3714 { yyval.ttype = get_parm_info (1); ;
3717 #line 2148 "c-parse.y"
3718 { yyval.ttype = get_parm_info (0); ;
3721 #line 2153 "c-parse.y"
3722 { push_parm_decl (yyvsp[0].ttype); ;
3725 #line 2155 "c-parse.y"
3726 { push_parm_decl (yyvsp[0].ttype); ;
3729 #line 2162 "c-parse.y"
3730 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3732 build_tree_list (prefix_attributes,
3734 current_declspecs = TREE_VALUE (declspec_stack);
3735 prefix_attributes = TREE_PURPOSE (declspec_stack);
3736 declspec_stack = TREE_CHAIN (declspec_stack);
3737 resume_momentary (yyvsp[-2].itype); ;
3740 #line 2171 "c-parse.y"
3741 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3743 build_tree_list (prefix_attributes,
3745 current_declspecs = TREE_VALUE (declspec_stack);
3746 prefix_attributes = TREE_PURPOSE (declspec_stack);
3747 declspec_stack = TREE_CHAIN (declspec_stack);
3748 resume_momentary (yyvsp[-2].itype); ;
3751 #line 2180 "c-parse.y"
3752 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3754 build_tree_list (prefix_attributes,
3756 current_declspecs = TREE_VALUE (declspec_stack);
3757 prefix_attributes = TREE_PURPOSE (declspec_stack);
3758 declspec_stack = TREE_CHAIN (declspec_stack);
3759 resume_momentary (yyvsp[-2].itype); ;
3762 #line 2189 "c-parse.y"
3763 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3765 build_tree_list (prefix_attributes,
3767 current_declspecs = TREE_VALUE (declspec_stack);
3768 prefix_attributes = TREE_PURPOSE (declspec_stack);
3769 declspec_stack = TREE_CHAIN (declspec_stack);
3770 resume_momentary (yyvsp[-2].itype); ;
3773 #line 2199 "c-parse.y"
3774 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3776 build_tree_list (prefix_attributes,
3778 current_declspecs = TREE_VALUE (declspec_stack);
3779 prefix_attributes = TREE_PURPOSE (declspec_stack);
3780 declspec_stack = TREE_CHAIN (declspec_stack);
3781 resume_momentary (yyvsp[-2].itype); ;
3784 #line 2213 "c-parse.y"
3786 clear_parm_order ();
3787 declare_parm_level (1); ;
3790 #line 2217 "c-parse.y"
3791 { yyval.ttype = yyvsp[0].ttype;
3792 parmlist_tags_warning ();
3793 poplevel (0, 0, 0); ;
3796 #line 2225 "c-parse.y"
3798 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3799 if (TREE_VALUE (t) == NULL_TREE)
3800 error ("`...' in old-style identifier list");
3801 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3804 #line 2235 "c-parse.y"
3805 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3808 #line 2237 "c-parse.y"
3809 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3812 #line 2243 "c-parse.y"
3813 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3816 #line 2245 "c-parse.y"
3817 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3820 #line 2250 "c-parse.y"
3821 { yyval.itype = pedantic;
3825 /* the action file gets copied in in place of this dollarsign */
3826 #line 498 "/usr/cygnus/TBD-TBD/share/bison.simple"
3837 short *ssp1 = yyss - 1;
3838 fprintf (stderr, "state stack now");
3839 while (ssp1 != yyssp)
3840 fprintf (stderr, " %d", *++ssp1);
3841 fprintf (stderr, "\n");
3851 yylsp->first_line = yylloc.first_line;
3852 yylsp->first_column = yylloc.first_column;
3853 yylsp->last_line = (yylsp-1)->last_line;
3854 yylsp->last_column = (yylsp-1)->last_column;
3859 yylsp->last_line = (yylsp+yylen-1)->last_line;
3860 yylsp->last_column = (yylsp+yylen-1)->last_column;
3864 /* Now "shift" the result of the reduction.
3865 Determine what state that goes to,
3866 based on the state we popped back to
3867 and the rule number reduced by. */
3871 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3872 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3873 yystate = yytable[yystate];
3875 yystate = yydefgoto[yyn - YYNTBASE];
3879 yyerrlab: /* here on detecting error */
3882 /* If not already recovering from an error, report this error. */
3886 #ifdef YYERROR_VERBOSE
3887 yyn = yypact[yystate];
3889 if (yyn > YYFLAG && yyn < YYLAST)
3896 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3897 for (x = (yyn < 0 ? -yyn : 0);
3898 x < (sizeof(yytname) / sizeof(char *)); x++)
3899 if (yycheck[x + yyn] == x)
3900 size += strlen(yytname[x]) + 15, count++;
3901 msg = (char *) malloc(size + 15);
3904 strcpy(msg, "parse error");
3909 for (x = (yyn < 0 ? -yyn : 0);
3910 x < (sizeof(yytname) / sizeof(char *)); x++)
3911 if (yycheck[x + yyn] == x)
3913 strcat(msg, count == 0 ? ", expecting `" : " or `");
3914 strcat(msg, yytname[x]);
3923 yyerror ("parse error; also virtual memory exceeded");
3926 #endif /* YYERROR_VERBOSE */
3927 yyerror("parse error");
3931 yyerrlab1: /* here on error raised explicitly by an action */
3933 if (yyerrstatus == 3)
3935 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3937 /* return failure if at end of input */
3938 if (yychar == YYEOF)
3943 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3949 /* Else will try to reuse lookahead token
3950 after shifting the error token. */
3952 yyerrstatus = 3; /* Each real token shifted decrements this */
3956 yyerrdefault: /* current state does not do anything special for the error token. */
3959 /* This is wrong; only states that explicitly want error tokens
3960 should shift them. */
3961 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3962 if (yyn) goto yydefault;
3965 yyerrpop: /* pop the current state because it cannot handle the error token */
3967 if (yyssp == yyss) YYABORT;
3977 short *ssp1 = yyss - 1;
3978 fprintf (stderr, "Error: state stack now");
3979 while (ssp1 != yyssp)
3980 fprintf (stderr, " %d", *++ssp1);
3981 fprintf (stderr, "\n");
3987 yyn = yypact[yystate];
3992 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
4011 fprintf(stderr, "Shifting error token, ");
4022 #line 2254 "c-parse.y"