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
84 #ifdef MULTIBYTE_CHARS
89 /* Since parsers are distinct for each language, put the language string
91 const char * const language_string
= "GNU C";
93 /* Like YYERROR but do call yyerror. */
94 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
96 /* Cause the `yydebug' variable to be defined. */
100 typedef union {long itype
; tree ttype
; enum tree_code code
;
101 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
102 #line 186 "c-parse.y"
104 /* Number of statements (loosely speaking) and compound statements
106 static int stmt_count
;
107 static int compstmt_count
;
109 /* Input file and line number of the end of the body of last simple_if;
110 used by the stmt-rule immediately after simple_if returns. */
111 static char *if_stmt_file
;
112 static int if_stmt_line
;
114 /* List of types and structure classes of the current declaration. */
115 static tree current_declspecs
= NULL_TREE
;
116 static tree prefix_attributes
= NULL_TREE
;
118 /* Stack of saved values of current_declspecs and prefix_attributes. */
119 static tree declspec_stack
;
121 /* 1 if we explained undeclared var errors. */
122 static int undeclared_variable_notice
;
124 /* For __extension__, save/restore the warning flags which are
125 controlled by __extension__. */
126 #define SAVE_WARN_FLAGS() (pedantic | (warn_pointer_arith << 1))
127 #define RESTORE_WARN_FLAGS(val) \
129 pedantic = val & 1; \
130 warn_pointer_arith = (val >> 1) & 1; \
134 /* Tell yyparse how to print a token's value, if yydebug is set. */
136 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
137 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
139 /* Add GC roots for variables local to this file. */
143 ggc_add_tree_root (&declspec_stack
, 1);
144 ggc_add_tree_root (¤t_declspecs
, 1);
145 ggc_add_tree_root (&prefix_attributes
, 1);
159 #define YYFLAG -32768
162 #define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 244)
164 static const char yytranslate
[] = { 0,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 82, 2, 2, 2, 54, 45, 2, 61,
169 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
170 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
171 38, 2, 39, 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 62, 2, 85, 44, 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, 84, 43, 80, 81, 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, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
191 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
192 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
193 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
194 36, 37, 41, 42, 46, 47, 48, 49, 55, 56,
195 57, 58, 59, 63, 64, 65, 66, 67, 68, 69,
196 70, 71, 72, 73, 74, 75, 76, 77
200 static const short yyprhs
[] = { 0,
201 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
202 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
203 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
204 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
205 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
206 142, 147, 150, 155, 158, 161, 168, 170, 172, 174,
207 179, 180, 188, 190, 194, 198, 202, 206, 210, 214,
208 218, 222, 226, 230, 234, 238, 239, 244, 245, 250,
209 251, 252, 260, 261, 267, 271, 275, 277, 279, 281,
210 285, 289, 293, 297, 302, 307, 311, 315, 318, 321,
211 323, 326, 327, 329, 332, 336, 338, 340, 343, 346,
212 351, 356, 359, 362, 366, 368, 370, 373, 376, 377,
213 378, 383, 388, 392, 396, 399, 402, 405, 408, 412,
214 413, 416, 419, 422, 425, 429, 430, 433, 436, 438,
215 440, 443, 446, 448, 450, 453, 456, 459, 463, 464,
216 467, 469, 471, 473, 478, 483, 485, 487, 489, 491,
217 495, 497, 501, 502, 507, 508, 515, 519, 520, 527,
218 531, 532, 534, 536, 539, 546, 548, 552, 553, 555,
219 560, 567, 572, 574, 576, 578, 580, 582, 583, 588,
220 590, 591, 594, 596, 600, 604, 607, 608, 613, 615,
221 616, 621, 623, 625, 627, 630, 633, 639, 643, 644,
222 645, 651, 652, 653, 659, 661, 663, 667, 671, 676,
223 680, 684, 688, 690, 694, 699, 704, 708, 712, 716,
224 718, 722, 726, 730, 735, 740, 744, 748, 750, 752,
225 755, 757, 760, 762, 765, 766, 774, 780, 783, 784,
226 792, 798, 801, 802, 811, 812, 820, 823, 824, 826,
227 827, 829, 831, 834, 835, 839, 842, 846, 848, 852,
228 854, 856, 859, 861, 865, 870, 877, 883, 885, 889,
229 891, 893, 897, 900, 903, 904, 906, 908, 911, 912,
230 915, 919, 923, 926, 930, 935, 939, 942, 946, 949,
231 953, 955, 957, 960, 963, 964, 966, 969, 970, 971,
232 973, 975, 978, 982, 984, 987, 989, 991, 997, 1002,
233 1007, 1010, 1013, 1016, 1019, 1024, 1025, 1030, 1031, 1032,
234 1036, 1041, 1045, 1047, 1049, 1051, 1053, 1056, 1057, 1062,
235 1064, 1068, 1069, 1070, 1078, 1084, 1087, 1088, 1089, 1090,
236 1103, 1104, 1111, 1114, 1117, 1120, 1124, 1131, 1140, 1151,
237 1164, 1168, 1173, 1175, 1177, 1178, 1185, 1189, 1195, 1198,
238 1202, 1203, 1205, 1206, 1208, 1209, 1211, 1213, 1217, 1222,
239 1224, 1228, 1229, 1232, 1235, 1236, 1241, 1244, 1245, 1247,
240 1249, 1253, 1255, 1259, 1264, 1269, 1274, 1279, 1284, 1285,
241 1288, 1290, 1293, 1295, 1299, 1301, 1305
244 static const short yyrhs
[] = { -1,
245 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
246 0, 92, 0, 91, 0, 27, 61, 101, 78, 79,
247 0, 243, 90, 0, 123, 137, 79, 0, 130, 123,
248 137, 79, 0, 126, 123, 136, 79, 0, 130, 79,
249 0, 126, 79, 0, 1, 79, 0, 1, 80, 0,
250 79, 0, 0, 0, 126, 123, 165, 93, 117, 94,
251 199, 0, 126, 123, 165, 1, 0, 0, 0, 130,
252 123, 168, 95, 117, 96, 199, 0, 130, 123, 168,
253 1, 0, 0, 0, 123, 168, 97, 117, 98, 199,
254 0, 123, 168, 1, 0, 3, 0, 4, 0, 45,
255 0, 51, 0, 50, 0, 56, 0, 57, 0, 81,
256 0, 82, 0, 103, 0, 0, 103, 0, 109, 0,
257 103, 83, 109, 0, 115, 0, 52, 107, 0, 243,
258 107, 0, 100, 107, 0, 42, 99, 0, 105, 104,
259 0, 105, 61, 186, 78, 0, 106, 104, 0, 106,
260 61, 186, 78, 0, 33, 107, 0, 34, 107, 0,
261 35, 61, 109, 83, 186, 78, 0, 11, 0, 29,
262 0, 104, 0, 61, 186, 78, 107, 0, 0, 61,
263 186, 78, 84, 108, 151, 80, 0, 107, 0, 109,
264 50, 109, 0, 109, 51, 109, 0, 109, 52, 109,
265 0, 109, 53, 109, 0, 109, 54, 109, 0, 109,
266 48, 109, 0, 109, 49, 109, 0, 109, 47, 109,
267 0, 109, 46, 109, 0, 109, 45, 109, 0, 109,
268 43, 109, 0, 109, 44, 109, 0, 0, 109, 42,
269 110, 109, 0, 0, 109, 41, 111, 109, 0, 0,
270 0, 109, 39, 112, 101, 40, 113, 109, 0, 0,
271 109, 39, 114, 40, 109, 0, 109, 38, 109, 0,
272 109, 37, 109, 0, 3, 0, 8, 0, 116, 0,
273 61, 101, 78, 0, 61, 1, 78, 0, 202, 201,
274 78, 0, 202, 1, 78, 0, 115, 61, 102, 78,
275 0, 115, 62, 101, 85, 0, 115, 60, 99, 0,
276 115, 59, 99, 0, 115, 56, 0, 115, 57, 0,
277 9, 0, 116, 9, 0, 0, 119, 0, 119, 10,
278 0, 208, 209, 120, 0, 118, 0, 194, 0, 119,
279 118, 0, 118, 194, 0, 128, 123, 136, 79, 0,
280 131, 123, 137, 79, 0, 128, 79, 0, 131, 79,
281 0, 208, 209, 125, 0, 121, 0, 194, 0, 122,
282 121, 0, 121, 194, 0, 0, 0, 126, 123, 136,
283 79, 0, 130, 123, 137, 79, 0, 126, 123, 159,
284 0, 130, 123, 162, 0, 126, 79, 0, 130, 79,
285 0, 243, 125, 0, 134, 127, 0, 130, 134, 127,
286 0, 0, 127, 135, 0, 127, 5, 0, 127, 144,
287 0, 134, 129, 0, 131, 134, 129, 0, 0, 129,
288 135, 0, 129, 5, 0, 131, 0, 144, 0, 130,
289 131, 0, 130, 144, 0, 7, 0, 5, 0, 131,
290 7, 0, 131, 5, 0, 134, 133, 0, 188, 134,
291 133, 0, 0, 133, 135, 0, 6, 0, 172, 0,
292 4, 0, 28, 61, 101, 78, 0, 28, 61, 186,
293 78, 0, 6, 0, 7, 0, 172, 0, 139, 0,
294 136, 83, 139, 0, 141, 0, 137, 83, 139, 0,
295 0, 27, 61, 116, 78, 0, 0, 165, 138, 143,
296 38, 140, 149, 0, 165, 138, 143, 0, 0, 168,
297 138, 143, 38, 142, 149, 0, 168, 138, 143, 0,
298 0, 144, 0, 145, 0, 144, 145, 0, 30, 61,
299 61, 146, 78, 78, 0, 147, 0, 146, 83, 147,
300 0, 0, 148, 0, 148, 61, 3, 78, 0, 148,
301 61, 3, 83, 103, 78, 0, 148, 61, 102, 78,
302 0, 99, 0, 5, 0, 6, 0, 7, 0, 109,
303 0, 0, 84, 150, 151, 80, 0, 1, 0, 0,
304 152, 177, 0, 153, 0, 152, 83, 153, 0, 157,
305 38, 155, 0, 158, 155, 0, 0, 99, 40, 154,
306 155, 0, 155, 0, 0, 84, 156, 151, 80, 0,
307 109, 0, 1, 0, 158, 0, 157, 158, 0, 60,
308 99, 0, 62, 109, 10, 109, 85, 0, 62, 109,
309 85, 0, 0, 0, 165, 160, 117, 161, 203, 0,
310 0, 0, 168, 163, 117, 164, 203, 0, 166, 0,
311 168, 0, 61, 166, 78, 0, 166, 61, 238, 0,
312 166, 62, 101, 85, 0, 166, 62, 85, 0, 52,
313 189, 166, 0, 144, 124, 166, 0, 4, 0, 167,
314 61, 238, 0, 167, 62, 52, 85, 0, 167, 62,
315 101, 85, 0, 167, 62, 85, 0, 52, 189, 167,
316 0, 144, 124, 167, 0, 4, 0, 168, 61, 238,
317 0, 61, 168, 78, 0, 52, 189, 168, 0, 168,
318 62, 52, 85, 0, 168, 62, 101, 85, 0, 168,
319 62, 85, 0, 144, 124, 168, 0, 3, 0, 13,
320 0, 13, 144, 0, 14, 0, 14, 144, 0, 12,
321 0, 12, 144, 0, 0, 169, 99, 84, 173, 179,
322 80, 143, 0, 169, 84, 179, 80, 143, 0, 169,
323 99, 0, 0, 170, 99, 84, 174, 179, 80, 143,
324 0, 170, 84, 179, 80, 143, 0, 170, 99, 0,
325 0, 171, 99, 84, 175, 184, 178, 80, 143, 0,
326 0, 171, 84, 176, 184, 178, 80, 143, 0, 171,
327 99, 0, 0, 83, 0, 0, 83, 0, 180, 0,
328 180, 181, 0, 0, 180, 181, 79, 0, 180, 79,
329 0, 132, 123, 182, 0, 132, 0, 188, 123, 182,
330 0, 188, 0, 1, 0, 243, 181, 0, 183, 0,
331 182, 83, 183, 0, 208, 209, 165, 143, 0, 208,
332 209, 165, 40, 109, 143, 0, 208, 209, 40, 109,
333 143, 0, 185, 0, 184, 83, 185, 0, 1, 0,
334 99, 0, 99, 38, 109, 0, 132, 187, 0, 188,
335 187, 0, 0, 190, 0, 7, 0, 188, 7, 0,
336 0, 189, 7, 0, 61, 190, 78, 0, 52, 189,
337 190, 0, 52, 189, 0, 190, 61, 231, 0, 190,
338 62, 101, 85, 0, 190, 62, 85, 0, 61, 231,
339 0, 62, 101, 85, 0, 62, 85, 0, 144, 124,
340 190, 0, 192, 0, 211, 0, 192, 211, 0, 192,
341 194, 0, 0, 191, 0, 1, 79, 0, 0, 0,
342 197, 0, 198, 0, 197, 198, 0, 32, 242, 79,
343 0, 203, 0, 1, 203, 0, 84, 0, 80, 0,
344 195, 196, 122, 193, 80, 0, 195, 196, 1, 80,
345 0, 195, 196, 191, 80, 0, 61, 84, 0, 200,
346 201, 0, 205, 210, 0, 205, 1, 0, 15, 61,
347 101, 78, 0, 0, 18, 207, 210, 17, 0, 0,
348 0, 208, 209, 213, 0, 208, 209, 224, 210, 0,
349 208, 209, 212, 0, 213, 0, 224, 0, 203, 0,
350 221, 0, 101, 79, 0, 0, 204, 16, 214, 210,
351 0, 204, 0, 204, 16, 1, 0, 0, 0, 17,
352 215, 61, 101, 78, 216, 210, 0, 206, 61, 101,
353 78, 79, 0, 206, 1, 0, 0, 0, 0, 19,
354 61, 226, 79, 217, 226, 79, 218, 226, 78, 219,
355 210, 0, 0, 20, 61, 101, 78, 220, 210, 0,
356 23, 79, 0, 24, 79, 0, 25, 79, 0, 25,
357 101, 79, 0, 27, 225, 61, 101, 78, 79, 0,
358 27, 225, 61, 101, 40, 227, 78, 79, 0, 27,
359 225, 61, 101, 40, 227, 40, 227, 78, 79, 0,
360 27, 225, 61, 101, 40, 227, 40, 227, 40, 230,
361 78, 79, 0, 26, 99, 79, 0, 26, 52, 101,
362 79, 0, 79, 0, 222, 0, 0, 19, 61, 115,
363 78, 223, 210, 0, 21, 109, 40, 0, 21, 109,
364 10, 109, 40, 0, 22, 40, 0, 99, 40, 143,
365 0, 0, 7, 0, 0, 101, 0, 0, 228, 0,
366 229, 0, 228, 83, 229, 0, 9, 61, 101, 78,
367 0, 116, 0, 230, 83, 116, 0, 0, 232, 233,
368 0, 235, 78, 0, 0, 236, 79, 234, 233, 0,
369 1, 78, 0, 0, 10, 0, 236, 0, 236, 83,
370 10, 0, 237, 0, 236, 83, 237, 0, 126, 123,
371 167, 143, 0, 126, 123, 168, 143, 0, 126, 123,
372 187, 143, 0, 130, 123, 168, 143, 0, 130, 123,
373 187, 143, 0, 0, 239, 240, 0, 233, 0, 241,
374 78, 0, 3, 0, 241, 83, 3, 0, 99, 0,
375 242, 83, 99, 0, 31, 0
381 static const short yyrline
[] = { 0,
382 234, 239, 253, 255, 255, 256, 258, 260, 261, 269,
383 273, 284, 289, 294, 296, 298, 299, 300, 305, 312,
384 314, 319, 324, 330, 332, 337, 342, 348, 350, 355,
385 362, 364, 367, 369, 371, 373, 375, 377, 379, 383,
386 387, 390, 393, 396, 400, 402, 405, 408, 412, 440,
387 446, 449, 452, 455, 457, 459, 463, 467, 471, 473,
388 476, 480, 507, 509, 511, 513, 515, 517, 519, 521,
389 523, 525, 527, 529, 531, 533, 537, 539, 543, 545,
390 548, 552, 554, 561, 564, 572, 583, 682, 683, 685,
391 691, 693, 716, 725, 727, 729, 733, 739, 741, 746,
392 748, 753, 755, 756, 766, 771, 773, 774, 775, 782,
393 788, 793, 796, 804, 809, 811, 812, 813, 820, 831,
394 835, 841, 846, 851, 856, 858, 860, 869, 872, 876,
395 878, 880, 885, 889, 892, 896, 899, 901, 913, 916,
396 918, 920, 924, 928, 930, 933, 946, 949, 953, 955,
397 963, 964, 965, 969, 971, 977, 978, 979, 982, 984,
398 987, 989, 992, 995, 1001, 1008, 1010, 1017, 1024, 1027,
399 1034, 1037, 1041, 1044, 1048, 1053, 1056, 1060, 1063, 1065,
400 1067, 1069, 1076, 1078, 1079, 1080, 1085, 1087, 1092, 1100,
401 1105, 1109, 1112, 1114, 1119, 1121, 1122, 1125, 1125, 1128,
402 1131, 1133, 1135, 1138, 1140, 1143, 1149, 1151, 1155, 1169,
403 1177, 1181, 1195, 1203, 1210, 1212, 1217, 1220, 1225, 1227,
404 1229, 1236, 1238, 1246, 1252, 1257, 1259, 1261, 1268, 1270,
405 1276, 1282, 1284, 1286, 1291, 1293, 1300, 1302, 1305, 1308,
406 1312, 1315, 1319, 1322, 1326, 1331, 1333, 1337, 1339, 1341,
407 1343, 1347, 1349, 1352, 1355, 1358, 1361, 1365, 1367, 1370,
408 1372, 1377, 1380, 1385, 1387, 1389, 1403, 1410, 1415, 1421,
409 1426, 1428, 1433, 1435, 1439, 1443, 1447, 1457, 1459, 1464,
410 1469, 1472, 1476, 1479, 1483, 1486, 1489, 1492, 1496, 1499,
411 1503, 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1521, 1525,
412 1533, 1541, 1543, 1545, 1549, 1551, 1554, 1557, 1568, 1570,
413 1575, 1577, 1580, 1594, 1597, 1600, 1602, 1604, 1612, 1620,
414 1630, 1648, 1653, 1658, 1661, 1675, 1684, 1688, 1692, 1696,
415 1702, 1706, 1711, 1714, 1719, 1722, 1723, 1740, 1745, 1748,
416 1760, 1762, 1772, 1782, 1783, 1791, 1794, 1806, 1810, 1827,
417 1837, 1846, 1851, 1856, 1861, 1865, 1869, 1880, 1887, 1894,
418 1901, 1912, 1918, 1921, 1926, 1949, 1983, 2014, 2045, 2060,
419 2074, 2078, 2082, 2085, 2090, 2092, 2095, 2097, 2101, 2106,
420 2109, 2115, 2120, 2125, 2127, 2136, 2137, 2143, 2145, 2155,
421 2157, 2161, 2164, 2170, 2180, 2189, 2198, 2208, 2222, 2227,
422 2232, 2234, 2243, 2246, 2251, 2254, 2258
427 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
429 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
430 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
431 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
432 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
433 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
434 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
435 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
436 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
437 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
438 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
439 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
440 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
441 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
442 "@14","primary","string","old_style_parm_decls","lineno_datadecl","datadecls",
443 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
444 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
445 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
446 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
447 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
448 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
449 "initelt","@18","initval","@19","designator_list","designator","nested_function",
450 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
451 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
452 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
453 "component_decl_list2","component_decl","components","component_declarator",
454 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
455 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
456 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
457 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
458 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
459 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
460 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
461 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
462 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
463 "identifiers","identifiers_or_typenames","extension", NULL
467 static const short yyr1
[] = { 0,
468 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
469 91, 91, 91, 91, 91, 91, 91, 91, 93, 94,
470 92, 92, 95, 96, 92, 92, 97, 98, 92, 92,
471 99, 99, 100, 100, 100, 100, 100, 100, 100, 101,
472 102, 102, 103, 103, 104, 104, 104, 104, 104, 104,
473 104, 104, 104, 104, 104, 104, 105, 106, 107, 107,
474 108, 107, 109, 109, 109, 109, 109, 109, 109, 109,
475 109, 109, 109, 109, 109, 110, 109, 111, 109, 112,
476 113, 109, 114, 109, 109, 109, 115, 115, 115, 115,
477 115, 115, 115, 115, 115, 115, 115, 115, 115, 116,
478 116, 117, 117, 117, 118, 119, 119, 119, 119, 120,
479 120, 120, 120, 121, 122, 122, 122, 122, 123, 124,
480 125, 125, 125, 125, 125, 125, 125, 126, 126, 127,
481 127, 127, 127, 128, 128, 129, 129, 129, 130, 130,
482 130, 130, 131, 131, 131, 131, 132, 132, 133, 133,
483 134, 134, 134, 134, 134, 135, 135, 135, 136, 136,
484 137, 137, 138, 138, 140, 139, 139, 142, 141, 141,
485 143, 143, 144, 144, 145, 146, 146, 147, 147, 147,
486 147, 147, 148, 148, 148, 148, 149, 150, 149, 149,
487 151, 151, 152, 152, 153, 153, 154, 153, 153, 156,
488 155, 155, 155, 157, 157, 158, 158, 158, 160, 161,
489 159, 163, 164, 162, 165, 165, 166, 166, 166, 166,
490 166, 166, 166, 167, 167, 167, 167, 167, 167, 167,
491 168, 168, 168, 168, 168, 168, 168, 168, 169, 169,
492 170, 170, 171, 171, 173, 172, 172, 172, 174, 172,
493 172, 172, 175, 172, 176, 172, 172, 177, 177, 178,
494 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
495 181, 181, 182, 182, 183, 183, 183, 184, 184, 184,
496 185, 185, 186, 186, 187, 187, 188, 188, 189, 189,
497 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
498 191, 192, 192, 192, 193, 193, 194, 195, 196, 196,
499 197, 197, 198, 199, 199, 200, 201, 201, 201, 201,
500 202, 203, 204, 204, 205, 207, 206, 208, 209, 210,
501 210, 211, 212, 212, 213, 213, 213, 214, 213, 213,
502 213, 215, 216, 213, 213, 213, 217, 218, 219, 213,
503 220, 213, 213, 213, 213, 213, 213, 213, 213, 213,
504 213, 213, 213, 221, 223, 222, 224, 224, 224, 224,
505 225, 225, 226, 226, 227, 227, 228, 228, 229, 230,
506 230, 232, 231, 233, 234, 233, 233, 235, 235, 235,
507 235, 236, 236, 237, 237, 237, 237, 237, 239, 238,
508 240, 240, 241, 241, 242, 242, 243
511 static const short yyr2
[] = { 0,
512 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
513 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
514 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
516 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
517 4, 2, 4, 2, 2, 6, 1, 1, 1, 4,
518 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
519 3, 3, 3, 3, 3, 0, 4, 0, 4, 0,
520 0, 7, 0, 5, 3, 3, 1, 1, 1, 3,
521 3, 3, 3, 4, 4, 3, 3, 2, 2, 1,
522 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
523 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
524 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
525 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
526 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
527 1, 1, 1, 4, 4, 1, 1, 1, 1, 3,
528 1, 3, 0, 4, 0, 6, 3, 0, 6, 3,
529 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
530 6, 4, 1, 1, 1, 1, 1, 0, 4, 1,
531 0, 2, 1, 3, 3, 2, 0, 4, 1, 0,
532 4, 1, 1, 1, 2, 2, 5, 3, 0, 0,
533 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
534 3, 3, 1, 3, 4, 4, 3, 3, 3, 1,
535 3, 3, 3, 4, 4, 3, 3, 1, 1, 2,
536 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
537 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
538 1, 1, 2, 0, 3, 2, 3, 1, 3, 1,
539 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
540 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
541 3, 3, 2, 3, 4, 3, 2, 3, 2, 3,
542 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
543 1, 2, 3, 1, 2, 1, 1, 5, 4, 4,
544 2, 2, 2, 2, 4, 0, 4, 0, 0, 3,
545 4, 3, 1, 1, 1, 1, 2, 0, 4, 1,
546 3, 0, 0, 7, 5, 2, 0, 0, 0, 12,
547 0, 6, 2, 2, 2, 3, 6, 8, 10, 12,
548 3, 4, 1, 1, 0, 6, 3, 5, 2, 3,
549 0, 1, 0, 1, 0, 1, 1, 3, 4, 1,
550 3, 0, 2, 2, 0, 4, 2, 0, 1, 1,
551 3, 1, 3, 4, 4, 4, 4, 4, 0, 2,
555 static const short yydefact
[] = { 3,
556 5, 0, 0, 0, 153, 144, 151, 143, 243, 239,
557 241, 0, 0, 0, 407, 18, 4, 8, 7, 0,
558 119, 119, 139, 130, 140, 173, 0, 0, 0, 152,
559 0, 6, 16, 17, 244, 240, 242, 0, 0, 0,
560 238, 289, 0, 0, 161, 120, 0, 15, 0, 14,
561 0, 141, 130, 142, 146, 145, 128, 174, 31, 32,
562 264, 248, 264, 252, 255, 257, 10, 87, 88, 100,
563 57, 58, 0, 0, 0, 0, 33, 35, 34, 0,
564 36, 37, 0, 38, 39, 0, 0, 40, 59, 0,
565 0, 63, 43, 45, 89, 0, 0, 287, 0, 285,
566 149, 0, 285, 178, 0, 0, 11, 0, 0, 30,
567 0, 399, 0, 0, 171, 223, 289, 0, 0, 159,
568 120, 0, 215, 216, 0, 0, 129, 132, 156, 157,
569 131, 133, 158, 0, 0, 245, 0, 249, 0, 253,
570 54, 55, 0, 49, 46, 0, 321, 0, 0, 48,
571 0, 0, 0, 50, 0, 52, 0, 0, 80, 78,
572 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
573 0, 0, 0, 98, 99, 0, 0, 41, 0, 101,
574 0, 317, 309, 0, 47, 154, 289, 382, 0, 120,
575 283, 286, 147, 155, 288, 149, 284, 184, 185, 186,
576 183, 0, 176, 179, 290, 233, 232, 162, 163, 237,
577 0, 231, 0, 0, 236, 0, 0, 28, 0, 328,
578 107, 329, 170, 172, 0, 0, 13, 0, 0, 22,
579 0, 171, 399, 0, 12, 26, 0, 171, 271, 266,
580 119, 263, 119, 0, 264, 171, 264, 280, 281, 260,
581 278, 0, 0, 91, 90, 0, 9, 44, 0, 0,
582 86, 85, 0, 0, 0, 0, 74, 75, 73, 72,
583 71, 69, 70, 64, 65, 66, 67, 68, 97, 96,
584 0, 42, 0, 93, 0, 0, 310, 311, 92, 293,
585 0, 297, 0, 299, 0, 0, 382, 0, 150, 148,
586 0, 178, 41, 0, 0, 403, 389, 119, 119, 401,
587 0, 390, 392, 400, 0, 234, 235, 307, 0, 109,
588 104, 108, 0, 168, 221, 217, 160, 222, 20, 167,
589 218, 220, 0, 24, 247, 328, 265, 328, 272, 0,
590 251, 0, 0, 261, 0, 260, 0, 61, 60, 51,
591 53, 0, 0, 79, 77, 94, 95, 405, 0, 0,
592 0, 328, 0, 0, 116, 329, 302, 312, 292, 291,
593 383, 298, 300, 294, 296, 0, 175, 177, 87, 0,
594 164, 387, 285, 285, 384, 385, 0, 402, 0, 0,
595 316, 29, 308, 314, 105, 119, 119, 136, 0, 0,
596 165, 219, 0, 267, 273, 329, 269, 171, 171, 282,
597 279, 171, 0, 0, 0, 81, 84, 313, 0, 319,
598 118, 117, 306, 0, 320, 304, 329, 303, 0, 295,
599 180, 0, 182, 230, 289, 382, 120, 171, 171, 171,
600 289, 120, 171, 171, 0, 391, 393, 404, 315, 322,
601 112, 0, 113, 0, 136, 134, 190, 188, 187, 169,
602 21, 0, 25, 328, 0, 246, 250, 256, 171, 56,
603 203, 87, 0, 0, 200, 0, 202, 0, 258, 193,
604 199, 0, 0, 0, 406, 318, 0, 153, 0, 342,
605 326, 0, 0, 0, 0, 0, 0, 0, 0, 371,
606 363, 0, 0, 114, 119, 119, 335, 340, 0, 0,
607 332, 333, 336, 364, 334, 0, 0, 293, 0, 399,
608 0, 394, 395, 396, 293, 0, 397, 398, 386, 0,
609 0, 163, 135, 138, 137, 0, 166, 274, 0, 171,
610 254, 206, 0, 0, 197, 62, 0, 192, 0, 205,
611 196, 82, 0, 0, 328, 373, 0, 0, 369, 353,
612 354, 355, 0, 0, 0, 372, 0, 171, 337, 125,
613 0, 126, 0, 0, 324, 329, 323, 346, 0, 127,
614 181, 228, 229, 224, 0, 227, 0, 110, 111, 0,
615 171, 0, 275, 0, 208, 0, 0, 194, 195, 0,
616 0, 0, 374, 45, 0, 0, 0, 367, 356, 0,
617 361, 0, 370, 0, 123, 209, 0, 124, 212, 341,
618 328, 0, 0, 225, 226, 189, 277, 171, 0, 201,
619 198, 325, 0, 327, 365, 347, 351, 0, 362, 0,
620 121, 0, 122, 0, 339, 330, 328, 0, 276, 207,
621 343, 328, 373, 328, 368, 375, 0, 210, 213, 331,
622 345, 328, 366, 0, 352, 0, 0, 376, 377, 357,
623 0, 0, 344, 348, 0, 375, 0, 0, 211, 214,
624 373, 0, 0, 358, 378, 0, 379, 0, 0, 349,
625 380, 0, 359, 328, 0, 0, 350, 360, 381, 0,
629 static const short yydefgoto
[] = { 700,
630 1, 2, 3, 17, 18, 19, 231, 400, 237, 403,
631 114, 319, 476, 86, 148, 281, 88, 89, 90, 91,
632 92, 415, 93, 266, 265, 263, 484, 264, 94, 95,
633 218, 219, 220, 395, 361, 362, 20, 109, 504, 308,
634 57, 396, 456, 309, 23, 100, 193, 24, 131, 119,
635 44, 115, 120, 462, 45, 399, 223, 224, 26, 202,
636 203, 204, 460, 536, 478, 479, 480, 597, 481, 544,
637 482, 483, 615, 642, 671, 618, 644, 672, 209, 123,
638 438, 124, 27, 28, 29, 30, 245, 247, 252, 139,
639 548, 345, 134, 135, 242, 404, 405, 250, 251, 102,
640 191, 103, 105, 192, 363, 364, 424, 221, 183, 286,
641 287, 288, 392, 393, 184, 96, 394, 508, 509, 510,
642 555, 576, 323, 577, 367, 511, 512, 621, 554, 662,
643 653, 681, 694, 654, 513, 514, 652, 515, 567, 605,
644 667, 668, 669, 692, 292, 293, 310, 445, 311, 312,
645 313, 212, 213, 314, 315, 359, 97
648 static const short yypact
[] = { 130,
649 136, 2364, 2364, 105,-32768,-32768,-32768,-32768, 117, 117,
650 117, 22, 103, 137,-32768,-32768,-32768,-32768,-32768, 288,
651 134, 461, 168,-32768, 117,-32768, 48, 86, 95,-32768,
652 2364,-32768,-32768,-32768, 117, 117, 117, 2180, 2090, 139,
653 -32768,-32768, 288, 127,-32768, 117, 1396,-32768, 245,-32768,
654 288, 168,-32768, 117,-32768,-32768, 559,-32768,-32768,-32768,
655 -32768, 135,-32768, 144,-32768, 169,-32768,-32768,-32768,-32768,
656 -32768,-32768, 2180, 2180, 179, 328,-32768,-32768,-32768, 2180,
657 -32768,-32768, 1133,-32768,-32768, 2180, 185, 188,-32768, 2215,
658 2270,-32768, 2495, 1061, 265, 627, 2180,-32768, 206, 228,
659 -32768, 209, 978, 689, 350, 215,-32768, 245, 288,-32768,
660 196,-32768, 1496, 855, 117,-32768,-32768, 245, 237,-32768,
661 117, 1488, 367, 386, 273, 1460, 559,-32768,-32768,-32768,
662 -32768, 117,-32768, 222, 949,-32768, 270,-32768, 438,-32768,
663 -32768,-32768, 2180,-32768,-32768, 230,-32768, 239, 267,-32768,
664 313, 2180, 1133,-32768, 1133,-32768, 2180, 2180, 321,-32768,
665 -32768, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180, 2180,
666 2180, 2180, 2180,-32768,-32768, 328, 328, 2180, 2180,-32768,
667 286,-32768, 363, 320,-32768,-32768,-32768, 228, 1551, 117,
668 -32768, 416, 376,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
669 -32768, 35,-32768, 347,-32768, 386,-32768,-32768, 387, 386,
670 443,-32768, 1051, 1589,-32768, 370, 379,-32768, 323, 55,
671 -32768,-32768, 425, 117, 240, 285,-32768, 245, 245,-32768,
672 855, 117,-32768, 1644,-32768,-32768, 855, 117,-32768,-32768,
673 305, 393, 431, 1919,-32768, 117,-32768,-32768, 452, 410,
674 -32768, 438, 2430,-32768,-32768, 1975,-32768, 2495, 421, 444,
675 2495, 2495, 2180, 463, 2180, 2180, 2518, 571, 2059, 727,
676 1401, 733, 733, 104, 104,-32768,-32768,-32768,-32768,-32768,
677 446, 188, 432,-32768, 328, 794, 363,-32768,-32768, 351,
678 316,-32768, 1653,-32768, 445, 228,-32768, 1682,-32768, 376,
679 450, 689, 2305, 94, 454,-32768,-32768,-32768, 743,-32768,
680 456, 276,-32768,-32768, 110,-32768,-32768,-32768, 71,-32768,
681 -32768,-32768, 2188,-32768, 367,-32768,-32768, 367,-32768, 471,
682 -32768,-32768, 453,-32768,-32768,-32768,-32768,-32768,-32768, 436,
683 -32768, 457, 2180, 328, 459, 410, 945,-32768,-32768,-32768,
684 -32768, 509, 2180, 2354, 2507,-32768,-32768,-32768, 296, 401,
685 709, 476, 477, 885,-32768,-32768,-32768,-32768, 416,-32768,
686 -32768,-32768, 416,-32768,-32768, 482,-32768,-32768, 131, 484,
687 -32768,-32768, 234, 156,-32768,-32768, 661,-32768, 565, 485,
688 -32768,-32768, 490,-32768,-32768, 497, 1745,-32768, 1330, 71,
689 -32768,-32768, 71, 495,-32768,-32768, 495, 117, 117, 2495,
690 -32768, 117, 499, 502, 1168,-32768, 2241,-32768, 328,-32768,
691 -32768,-32768,-32768, 501,-32768,-32768,-32768,-32768, 1858,-32768,
692 -32768, 2180,-32768,-32768,-32768, 156, 117, 253, 282, 117,
693 -32768, 117, 282, 117, 1653,-32768,-32768,-32768,-32768,-32768,
694 -32768, 245,-32768, 288,-32768, 420,-32768,-32768, 2495,-32768,
695 -32768, 1330,-32768,-32768, 248,-32768,-32768,-32768, 117,-32768,
696 -32768, 543, 328, 2180,-32768, 545, 2495, 506, 504,-32768,
697 -32768, 83, 1292, 2180,-32768,-32768, 1940, 552, 532,-32768,
698 -32768, 533, 534, 2180, 558, 521, 535, 2125, 98, 606,
699 -32768, 587, 550,-32768, 584, 547,-32768, 648, 992, 53,
700 -32768,-32768,-32768,-32768,-32768, 2034, 138, 220, 234,-32768,
701 1737,-32768,-32768,-32768, 174, 156,-32768,-32768,-32768, 314,
702 326, 121, 420,-32768,-32768, 1168,-32768,-32768, 2180, 64,
703 -32768,-32768, 2403, 1168,-32768,-32768, 1230,-32768, 1387,-32768,
704 -32768, 2241, 2180, 609,-32768, 2180, 2180, 1801,-32768,-32768,
705 -32768,-32768, 597, 2180, 601,-32768, 620, 117,-32768,-32768,
706 245,-32768, 288, 1074,-32768,-32768,-32768,-32768, 2180,-32768,
707 -32768, 424, 424,-32768, 1775,-32768, 600,-32768,-32768, 602,
708 2455, 2180,-32768, 2180,-32768, 607, 1387,-32768,-32768, 608,
709 2180, 673,-32768, 641, 646, 621, 2180,-32768,-32768, 662,
710 -32768, 2180,-32768, 337,-32768, 467, 338,-32768, 1143,-32768,
711 -32768, 1940, 667,-32768,-32768,-32768,-32768, 2455, 2385,-32768,
712 -32768,-32768, 668,-32768,-32768,-32768,-32768, 2477,-32768, 29,
713 -32768, 855,-32768, 855,-32768,-32768,-32768, 674,-32768,-32768,
714 -32768,-32768, 2180,-32768,-32768, 749, 683,-32768,-32768,-32768,
715 -32768,-32768,-32768, 684,-32768, 691, 31, 681,-32768,-32768,
716 485, 485,-32768,-32768, 2180, 749, 688, 749,-32768,-32768,
717 2180, 690, 33,-32768,-32768, 694,-32768, 443, 715,-32768,
718 265, 178,-32768,-32768, 717, 443,-32768,-32768, 265, 769,
722 static const short yypgoto
[] = {-32768,
723 -32768,-32768,-32768, 54,-32768,-32768,-32768,-32768,-32768,-32768,
724 -32768,-32768, -23,-32768, -38, 507, -138, 397,-32768,-32768,
725 -65,-32768, 439,-32768,-32768,-32768,-32768,-32768, 274, -182,
726 -188, 611,-32768,-32768, 464,-32768, -10, -66, 317, 28,
727 779,-32768, 380, 32, -4, -77, 638, 25, -171, -402,
728 -44, -112, -62,-32768,-32768,-32768, -70, 17, 42,-32768,
729 538,-32768, 375,-32768, -417,-32768, 294,-32768, -407,-32768,
730 -32768, 360,-32768,-32768,-32768,-32768,-32768,-32768, -46, -26,
731 -6, -18,-32768,-32768,-32768, -41,-32768,-32768,-32768,-32768,
732 -32768, 503, -25,-32768, 599, 510, 383, 605, 508, -22,
733 -80, -73, -81, -95, 491,-32768,-32768, -149,-32768,-32768,
734 -32768, 576, -288,-32768, 465,-32768, -349,-32768,-32768,-32768,
735 -32768, -97, -322, -460, 500,-32768, 243,-32768,-32768,-32768,
736 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 244,-32768, -571,
737 194,-32768, 193,-32768, 575,-32768, -248,-32768,-32768,-32768,
738 487, -209,-32768,-32768,-32768,-32768, 11
745 static const short yytable
[] = { 87,
746 99, 47, 122, 62, 64, 66, 125, 141, 142, 232,
747 49, 51, 31, 31, 145, 133, 222, 52, 25, 25,
748 150, 299, 197, 331, 106, 35, 36, 37, 304, 21,
749 21, 185, 126, 22, 22, 225, 46, 137, 54, 282,
750 449, 31, 329, 429, 371, 208, 53, 25, 334, 530,
751 59, 60, 144, 578, 229, -103, 32, 241, 21, 46,
752 149, 243, 22, 101, 321, 121, 58, 46, 656, 320,
753 676, 390, 688, 132, 216, 551, 58, 58, 58, 507,
754 201, 664, 38, 465, 67, 133, 206, 58, 59, 60,
755 210, 226, 291, 14, 602, 58, 232, 59, 60, 106,
756 59, 60, 180, 592, 487, 290, 657, 101, 677, 686,
757 689, 461, 301, 579, 463, 249, 190, 302, 590, 190,
758 549, 46, 222, 296, 121, 46, 596, 196, 299, -1,
759 259, 61, 260, 222, 121, -2, 365, 507, -103, 222,
760 283, 599, 473, 132, 474, 244, 14, 111, 145, 564,
761 295, 133, 279, 280, 391, 171, 172, 173, 41, 101,
762 645, 330, 58, 39, 282, 327, 241, 335, 614, 63,
763 243, 381, 55, 58, 56, 341, 41, 101, 65, 101,
764 205, 112, 113, 33, 34, 14, 660, 388, 366, 631,
765 349, 663, 389, 665, 369, 333, 529, 40, 325, 104,
766 373, 673, 328, 14, 190, 107, 206, 441, 431, 108,
767 210, 421, 48, 432, 426, 581, 436, 189, 136, 340,
768 152, 342, 41, 434, 352, 441, 205, 138, 249, 25,
769 336, 58, 338, 697, 436, 189, 41, 434, 406, 143,
770 406, 121, 41, 116, 121, 121, 205, 41, 116, 14,
771 41, 116, 140, 622, 244, 695, 211, 14, 133, 376,
772 696, 358, 151, 14, 366, 58, 427, 196, 101, 14,
773 152, 435, 507, 180, 14, 112, 113, 14, 201, 187,
774 436, 189, 14, 186, 535, 435, 194, 539, 188, 189,
775 41, 117, 207, 517, 436, 189, 117, 383, 384, 117,
776 118, 238, 440, 444, 52, 118, 190, 254, 118, 25,
777 584, 14, 190, 520, 521, 227, 255, 14, 397, 228,
778 249, 679, 680, 217, 414, 54, -106, -106, -106, -106,
779 59, 60, -106, 53, -106, -106, -106, 466, 467, 42,
780 291, 468, 112, 113, 256, 233, 234, 398, 43, 246,
781 -106, 235, 41, 518, 386, 108, 205, 205, 387, 525,
782 -83, 535, 326, 284, 439, 443, 406, 522, 523, 524,
783 519, 101, 527, 528, 418, 526, 297, 298, 419, 14,
784 14, 129, 130, -268, -268, 452, 454, 9, 10, 11,
785 503, 257, 588, 370, 285, 485, 228, 289, 541, 437,
786 442, 42, 187, 25, 589, 502, -106, 303, 108, 531,
787 43, 188, 189, 111, 133, 641, 643, 106, 540, 228,
788 108, 455, 369, 373, 534, 129, 130, 233, 234, 369,
789 373, 9, 10, 11, 5, 532, 7, 195, 248, 516,
790 59, 60, 9, 10, 11, 25, 112, 113, 503, 542,
791 185, 70, 442, 658, 317, 659, 505, 318, 13, 563,
792 506, 25, 324, 502, 5, 6, 7, 8, 121, 593,
793 46, 337, 9, 10, 11, 565, 297, 298, 58, 318,
794 420, 121, 587, 58, 520, 521, 154, 156, 13, 343,
795 14, 133, 344, 111, 571, 573, -163, 613, 350, 206,
796 210, 52, 353, 232, -163, 691, 206, 210, 401, -270,
797 -270, 582, 583, 699, 600, 408, 357, 603, 606, 145,
798 627, 351, 54, 356, 616, 610, 516, 377, 617, 372,
799 53, 382, 25, 385, 437, 437, 409, 402, 412, 50,
800 623, 442, 442, 505, 222, -163, 222, 506, 416, -163,
801 5, 6, 7, 8, 619, -305, 425, 649, 9, 10,
802 11, 433, 633, 128, 129, 130, 430, 448, 391, 182,
803 9, 10, 11, 640, 13, 451, 14, 464, 469, 470,
804 486, 253, -31, 503, 545, 546, 547, 121, 14, 46,
805 258, -32, 553, 556, 557, 261, 262, 559, 502, 560,
806 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
807 277, 278, 566, 561, 603, 164, 165, 166, 167, 168,
808 169, 170, 171, 172, 173, 572, 568, 181, 569, -308,
809 -308, -308, -308, -308, -308, -308, 682, -308, -308, -308,
810 -308, -308, 603, -308, -308, -308, -308, -308, -308, -308,
811 -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
812 -308, -308, 570, 574, 5, 6, 7, 8, -308, 601,
813 446, -308, 9, 10, 11, 609, -308, -308, -308, 611,
814 612, 626, -308, -308, 625, 632, 630, -308, 13, 634,
815 14, 59, 60, 198, 199, 200, 174, 175, 637, 176,
816 177, 178, 179, 354, 355, -308, 182, -308, -308, 217,
817 -308, -115, -115, -115, -115, -115, -115, -115, 635, -115,
818 -115, -115, -115, -115, 636, -115, -115, -115, -115, -115,
819 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
820 639, -115, -115, -115, 648, 651, 5, 6, 7, 8,
821 -115, 675, 661, -115, 9, 10, 11, 666, -115, -115,
822 -115, 670, 674, 678, -115, -115, 684, 687, 701, -115,
823 13, 690, 14, 166, 167, 168, 169, 170, 171, 172,
824 173, 410, 169, 170, 171, 172, 173, -115, -115, -115,
825 -115, 417, -115, 693, 360, 698, -328, -328, -328, -328,
826 -328, -328, -328, 702, -328, -328, -328, -328, -328, 380,
827 -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
828 -328, -328, -328, -328, -328, 422, -328, -328, -328, 604,
829 322, 127, 580, 300, 533, -328, 537, 459, -328, 378,
830 598, 550, 339, -328, -328, -328, 538, 407, 413, -328,
831 -328, 411, 423, 477, -328, 217, 346, 450, -328, -328,
832 -328, -328, 368, 428, 646, 647, -328, -328, -328, 683,
833 685, 374, -328, 447, -328, -328, 0, -328, 0, 0,
834 0, 0, -328, 0, 0, 217, 0, -328, -328, 0,
835 0, 0, -328, -328, 0, -328, 0, 0, 0, -328,
836 459, -328, -328, -328, -328, -328, -328, -328, -328, -328,
837 -328, -328, 543, -328, 0, -328, 0, -328, -328, -328,
838 0, 477, 552, 0, 0, 0, -328, 0, 0, -328,
839 0, 0, 558, 0, -328, -328, -328, 0, -102, 0,
840 -328, -328, 0, 0, 0, -328, 0, 0, 5, 239,
841 7, 98, 5, 0, 7, 98, 9, 10, 11, 0,
842 9, 10, 11, -328, -301, -328, -328, 0, -328, 0,
843 0, 0, 13, 0, 477, 0, 13, 591, 0, 15,
844 0, 5, 477, 7, 195, 477, 0, 477, 0, 9,
845 10, 11, 575, 0, -328, -328, 0, 0, 0, -328,
846 -328, 0, -328, 0, 0, 13, -328, 14, -328, -328,
847 -328, -328, -328, -328, -328, -328, -328, -328, -328, 0,
848 -328, 0, -328, 0, -328, -328, -328, 240, -262, 187,
849 628, 0, 629, -328, 0, 477, -328, 0, 188, 189,
850 0, -328, -328, -328, 0, 638, 0, -328, -328, 0,
851 0, 305, -328, 306, 5, 6, 7, 8, 0, 0,
852 307, 0, 9, 10, 11, 0, 0, 0, 0, 0,
853 -328, 0, -328, -328, 620, -328, -338, -338, 13, 0,
854 14, -338, -338, 0, -338, 0, 0, 0, -338, 0,
855 -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
856 -338, 0, -338, 0, -338, 0, -338, -338, -338, 0,
857 0, 0, 0, 0, 0, -338, 174, 175, -338, 176,
858 177, 178, 179, -338, -338, -338, 0, 0, -388, -338,
859 -338, 0, 0, 146, -338, 68, 5, 0, 7, 98,
860 69, 70, 0, 71, 9, 10, 11, 0, 0, 0,
861 0, 0, -338, 0, -338, -338, 0, -338, 0, 0,
862 13, 72, 0, 15, 0, 73, 74, 75, 471, 111,
863 472, 60, -163, 0, 76, 69, 70, 77, 71, 0,
864 -163, 0, 78, 79, 80, 0, 0, 0, 81, 82,
865 0, 0, 0, 83, 0, 0, 72, 0, 15, 0,
866 73, 74, 75, 112, 113, 0, 0, 0, 0, 76,
867 0, 0, 77, 84, 85, 0, 147, 78, 79, 80,
868 0, -163, 0, 81, 82, -163, 0, 473, 83, 474,
869 471, 0, 472, 60, 0, 0, 0, 69, 70, 0,
870 71, 0, 0, 0, 0, 0, 0, -191, 84, 85,
871 0, 475, 0, 0, 0, 0, 0, 0, 72, 0,
872 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
873 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
874 79, 80, 0, 0, 0, 81, 82, 0, 0, 473,
875 83, 474, 471, 0, 68, 0, 0, 0, 0, 69,
876 70, 0, 71, 0, 0, 0, 0, 0, 0, -259,
877 84, 85, 0, 475, 0, 0, 0, 0, 0, 0,
878 72, 0, 15, 0, 73, 74, 75, 0, 0, -204,
879 457, 0, 68, 76, 0, 0, 77, 69, 70, 0,
880 71, 78, 79, 80, 0, 0, 0, 81, 82, 0,
881 0, -204, 83, -204, 0, 0, 0, 0, 72, 0,
882 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
883 0, 76, 84, 85, 77, 475, 0, 0, 0, 78,
884 79, 80, 0, 0, 0, 81, 82, 471, 0, 68,
885 83, 0, 0, 0, 69, 70, 110, 71, 0, -27,
886 -27, -27, -27, 0, 0, 0, 0, -27, -27, -27,
887 84, 85, 0, 458, 0, 72, 0, 15, 0, 73,
888 74, 75, 111, -27, 0, -163, 0, 0, 76, 0,
889 0, 77, 0, -163, 0, 0, 78, 79, 80, 0,
890 0, 0, 81, 82, 0, 0, 0, 83, 167, 168,
891 169, 170, 171, 172, 173, 0, 112, 113, 0, 0,
892 236, 0, 0, -23, -23, -23, -23, 84, 85, 0,
893 475, -23, -23, -23, -163, 0, 0, 0, -163, -27,
894 0, 0, 0, 0, 0, 0, 111, -23, 230, -163,
895 0, -19, -19, -19, -19, 0, 0, -163, 68, -19,
896 -19, -19, 0, 69, 70, 0, 71, 0, 0, 0,
897 0, 0, 0, 0, 111, -19, 0, -163, 0, 0,
898 112, 113, 0, 0, 72, -163, 15, 0, 73, 74,
899 75, 0, 0, 0, 0, 0, 0, 76, -163, 0,
900 77, 0, -163, -23, 0, 78, 79, 214, 0, 0,
901 0, 81, 82, 68, 0, 0, 83, 0, 69, 70,
902 0, 71, 0, 0, 0, 0, -163, 0, 0, 0,
903 -163, -19, 0, 0, 0, 0, 84, 85, 0, 72,
904 215, 15, 0, 73, 74, 75, 0, 0, 0, 0,
905 0, 68, 76, 0, 0, 77, 69, 70, 0, 71,
906 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
907 0, 83, 0, 0, 0, 0, 0, 72, 0, 15,
908 0, 73, 74, 75, 0, 0, 0, 0, 0, 0,
909 76, 84, 85, 77, 0, 294, 0, 0, 78, 79,
910 80, 0, 0, 0, 81, 82, 68, 0, 0, 83,
911 0, 69, 70, 305, 71, 0, 5, 6, 7, 8,
912 0, 0, 307, 0, 9, 10, 11, 0, 0, 84,
913 85, 0, 72, 316, 15, 0, 73, 74, 75, 0,
914 13, 0, 14, 0, 68, 76, 0, 0, 77, 69,
915 70, 0, 71, 78, 79, 80, 0, 0, 0, 81,
916 82, 0, 0, 0, 83, 0, 0, 0, 0, 0,
917 72, 0, 15, 0, 73, 74, 75, 0, 0, 0,
918 0, 0, 0, 76, 84, 85, 77, 0, 332, 0,
919 -388, 78, 79, 80, 0, 0, 0, 81, 82, 68,
920 0, 0, 83, 0, 69, 70, 0, 71, 5, 55,
921 7, 56, 0, 0, 0, 0, 9, 10, 11, 0,
922 0, 0, 84, 85, 0, 72, 375, 15, 0, 73,
923 74, 75, 13, 0, 0, 0, 0, 68, 76, 0,
924 0, 77, 69, 70, 0, 71, 78, 79, 585, 0,
925 0, 0, 81, 82, 0, 0, 0, 83, 0, 0,
926 0, 0, 0, 72, 0, 15, 0, 73, 74, 75,
927 607, 0, 0, 0, 0, 0, 76, 84, 85, 77,
928 0, 586, 0, 453, 78, 79, 80, 0, 0, 0,
929 81, 82, 0, 0, 0, 83, 0, 157, 158, 159,
930 608, 160, 161, 162, 163, 164, 165, 166, 167, 168,
931 169, 170, 171, 172, 173, 84, 85, 0, 0, 624,
932 472, 488, 6, 7, 8, 69, 70, 0, 71, 9,
933 10, 11, 489, 0, 490, 491, 492, 493, 494, 495,
934 496, 497, 498, 499, 500, 13, 72, 14, 15, 0,
935 73, 74, 75, 0, 0, 0, 0, 0, 0, 76,
936 0, 0, 77, 0, 0, 0, 0, 78, 79, 80,
937 0, 0, 0, 81, 82, 0, 0, 0, 83, 239,
938 0, 0, 5, 0, 7, 98, 0, 0, 0, 0,
939 9, 10, 11, 0, 0, 0, 501, 0, 84, 85,
940 0, 391, 472, 60, 0, 0, 13, 69, 70, 15,
941 71, 0, 0, 0, 489, 0, 490, 491, 492, 493,
942 494, 495, 496, 497, 498, 499, 500, 0, 72, 0,
943 15, 0, 73, 74, 75, 0, 0, 68, 0, 0,
944 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
945 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
946 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
947 0, 0, 0, 0, 0, 0, 76, 0, 501, 77,
948 84, 85, 0, 391, 78, 79, 80, 0, 0, 0,
949 81, 82, 0, 0, 0, 83, 68, 5, 6, 7,
950 8, 69, 70, 0, 71, 9, 10, 11, 0, 0,
951 0, 0, 0, 0, 0, 84, 85, 0, 348, 0,
952 0, 13, 72, 14, 15, 0, 73, 74, 75, 0,
953 0, 0, 0, 0, 0, 76, 0, 0, 77, 0,
954 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
955 82, 0, 68, 5, 83, 7, 98, 69, 70, 0,
956 71, 9, 10, 11, 165, 166, 167, 168, 169, 170,
957 171, 172, 173, 0, 84, 85, 0, 13, 72, 0,
958 15, 0, 73, 74, 75, 0, 0, 68, 0, 0,
959 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
960 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
961 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
962 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
963 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
964 81, 82, 68, 0, 0, 83, 0, 69, 70, 0,
965 71, 5, 6, 7, 8, 0, 0, 0, 0, 9,
966 10, 11, 0, 562, 0, 84, 85, 0, 72, 0,
967 15, 0, 73, 74, 75, 13, 0, 68, 0, 0,
968 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
969 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
970 83, 0, 0, 72, 0, 15, 0, 73, 74, 75,
971 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
972 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
973 81, 82, 68, 0, 0, 153, 0, 69, 70, 159,
974 71, 160, 161, 162, 163, 164, 165, 166, 167, 168,
975 169, 170, 171, 172, 173, 84, 85, 0, 72, 0,
976 15, 0, 73, 74, 75, 0, 0, 379, 0, 0,
977 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
978 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
979 155, 0, 0, 72, 0, 15, 0, 73, 74, 75,
980 0, 0, 0, 0, 0, 0, 76, 0, 0, 77,
981 84, 85, 0, 0, 78, 79, 80, 0, 0, 0,
982 81, 82, 0, 0, 4, 83, -119, 5, 6, 7,
983 8, 0, 0, 0, 0, 9, 10, 11, 0, 0,
984 0, 0, 0, 0, 0, 84, 85, 0, 0, 0,
985 12, 13, 0, 14, 15, 161, 162, 163, 164, 165,
986 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
987 0, 0, 594, 0, 0, -119, 0, 0, 0, 0,
988 0, 157, 158, 159, -119, 160, 161, 162, 163, 164,
989 165, 166, 167, 168, 169, 170, 171, 172, 173, 157,
990 158, 159, 16, 160, 161, 162, 163, 164, 165, 166,
991 167, 168, 169, 170, 171, 172, 173, 0, 0, 0,
992 0, 0, 0, 0, 0, 0, 157, 158, 159, 650,
993 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
994 170, 171, 172, 173, 14, 0, 0, 595, 0, 0,
995 0, 157, 158, 159, 0, 160, 161, 162, 163, 164,
996 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
997 0, 0, 347, 157, 158, 159, 655, 160, 161, 162,
998 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
999 173, 157, 158, 159, 0, 160, 161, 162, 163, 164,
1000 165, 166, 167, 168, 169, 170, 171, 172, 173, 162,
1001 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
1002 173, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1006 static const short yycheck
[] = { 38,
1007 39, 20, 49, 27, 28, 29, 51, 73, 74, 122,
1008 21, 22, 2, 3, 80, 57, 114, 22, 2, 3,
1009 86, 193, 103, 233, 43, 9, 10, 11, 211, 2,
1010 3, 97, 51, 2, 3, 117, 20, 63, 22, 178,
1011 390, 31, 231, 366, 293, 108, 22, 31, 237, 452,
1012 3, 4, 76, 1, 121, 1, 3, 135, 31, 43,
1013 83, 135, 31, 39, 10, 49, 25, 51, 40, 219,
1014 40, 1, 40, 57, 113, 483, 35, 36, 37, 429,
1015 104, 653, 61, 406, 31, 127, 105, 46, 3, 4,
1016 109, 118, 188, 30, 555, 54, 209, 3, 4, 118,
1017 3, 4, 9, 40, 427, 187, 78, 83, 78, 681,
1018 78, 400, 78, 61, 403, 139, 100, 83, 536, 103,
1019 38, 105, 220, 190, 108, 109, 544, 103, 300, 0,
1020 153, 84, 155, 231, 118, 0, 286, 487, 84, 237,
1021 179, 549, 60, 127, 62, 135, 30, 27, 214, 52,
1022 189, 193, 176, 177, 84, 52, 53, 54, 3, 135,
1023 621, 232, 121, 61, 303, 228, 244, 238, 571, 84,
1024 244, 78, 5, 132, 7, 246, 3, 153, 84, 155,
1025 7, 61, 62, 79, 80, 30, 647, 78, 286, 597,
1026 256, 652, 83, 654, 290, 234, 445, 61, 225, 61,
1027 296, 662, 229, 30, 188, 79, 225, 52, 78, 83,
1028 229, 361, 79, 83, 364, 78, 61, 62, 84, 245,
1029 83, 247, 3, 4, 263, 52, 7, 84, 252, 213,
1030 241, 190, 243, 694, 61, 62, 3, 4, 336, 61,
1031 338, 225, 3, 4, 228, 229, 7, 3, 4, 30,
1032 3, 4, 84, 576, 244, 78, 61, 30, 300, 298,
1033 83, 285, 78, 30, 362, 224, 364, 243, 244, 30,
1034 83, 52, 622, 9, 30, 61, 62, 30, 302, 52,
1035 61, 62, 30, 78, 456, 52, 78, 40, 61, 62,
1036 3, 52, 78, 432, 61, 62, 52, 308, 309, 52,
1037 61, 80, 383, 384, 309, 61, 290, 78, 61, 293,
1038 520, 30, 296, 61, 62, 79, 78, 30, 323, 83,
1039 344, 671, 672, 1, 347, 309, 4, 5, 6, 7,
1040 3, 4, 10, 309, 12, 13, 14, 408, 409, 52,
1041 436, 412, 61, 62, 78, 61, 62, 323, 61, 80,
1042 28, 79, 3, 435, 79, 83, 7, 7, 83, 441,
1043 40, 533, 78, 78, 383, 384, 464, 438, 439, 440,
1044 437, 347, 443, 444, 79, 442, 61, 62, 83, 30,
1045 30, 6, 7, 79, 80, 396, 397, 12, 13, 14,
1046 429, 79, 79, 78, 32, 419, 83, 78, 469, 383,
1047 384, 52, 52, 387, 79, 429, 84, 61, 83, 454,
1048 61, 61, 62, 27, 456, 79, 79, 436, 465, 83,
1049 83, 397, 518, 519, 5, 6, 7, 61, 62, 525,
1050 526, 12, 13, 14, 4, 454, 6, 7, 1, 429,
1051 3, 4, 12, 13, 14, 429, 61, 62, 487, 473,
1052 516, 9, 436, 642, 85, 644, 429, 79, 28, 498,
1053 429, 445, 38, 487, 4, 5, 6, 7, 452, 540,
1054 454, 79, 12, 13, 14, 499, 61, 62, 437, 79,
1055 80, 465, 521, 442, 61, 62, 90, 91, 28, 38,
1056 30, 533, 83, 27, 505, 506, 30, 568, 78, 518,
1057 519, 506, 40, 616, 38, 688, 525, 526, 38, 79,
1058 80, 518, 519, 696, 553, 80, 85, 556, 557, 585,
1059 591, 78, 506, 78, 571, 564, 516, 78, 573, 85,
1060 506, 78, 516, 78, 518, 519, 80, 85, 80, 79,
1061 579, 525, 526, 516, 642, 79, 644, 516, 40, 83,
1062 4, 5, 6, 7, 573, 80, 80, 628, 12, 13,
1063 14, 78, 601, 5, 6, 7, 85, 3, 84, 80,
1064 12, 13, 14, 612, 28, 79, 30, 83, 80, 78,
1065 80, 143, 40, 622, 40, 80, 83, 571, 30, 573,
1066 152, 40, 61, 61, 61, 157, 158, 40, 622, 79,
1067 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1068 172, 173, 7, 79, 653, 45, 46, 47, 48, 49,
1069 50, 51, 52, 53, 54, 79, 40, 1, 79, 3,
1070 4, 5, 6, 7, 8, 9, 675, 11, 12, 13,
1071 14, 15, 681, 17, 18, 19, 20, 21, 22, 23,
1072 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1073 34, 35, 79, 16, 4, 5, 6, 7, 42, 61,
1074 10, 45, 12, 13, 14, 79, 50, 51, 52, 79,
1075 61, 80, 56, 57, 85, 78, 80, 61, 28, 17,
1076 30, 3, 4, 5, 6, 7, 56, 57, 78, 59,
1077 60, 61, 62, 265, 266, 79, 80, 81, 82, 1,
1078 84, 3, 4, 5, 6, 7, 8, 9, 78, 11,
1079 12, 13, 14, 15, 79, 17, 18, 19, 20, 21,
1080 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1081 79, 33, 34, 35, 78, 78, 4, 5, 6, 7,
1082 42, 61, 79, 45, 12, 13, 14, 9, 50, 51,
1083 52, 79, 79, 83, 56, 57, 79, 78, 0, 61,
1084 28, 78, 30, 47, 48, 49, 50, 51, 52, 53,
1085 54, 343, 50, 51, 52, 53, 54, 79, 80, 81,
1086 82, 353, 84, 79, 1, 79, 3, 4, 5, 6,
1087 7, 8, 9, 0, 11, 12, 13, 14, 15, 303,
1088 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1089 27, 28, 29, 30, 31, 362, 33, 34, 35, 556,
1090 220, 53, 516, 196, 455, 42, 462, 399, 45, 302,
1091 547, 482, 244, 50, 51, 52, 464, 338, 346, 56,
1092 57, 344, 362, 415, 61, 1, 252, 393, 4, 5,
1093 6, 7, 287, 364, 622, 622, 12, 13, 14, 676,
1094 678, 297, 79, 387, 81, 82, -1, 84, -1, -1,
1095 -1, -1, 28, -1, -1, 1, -1, 3, 4, -1,
1096 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1097 462, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1098 26, 27, 474, 29, -1, 31, -1, 33, 34, 35,
1099 -1, 483, 484, -1, -1, -1, 42, -1, -1, 45,
1100 -1, -1, 494, -1, 50, 51, 52, -1, 84, -1,
1101 56, 57, -1, -1, -1, 61, -1, -1, 4, 1,
1102 6, 7, 4, -1, 6, 7, 12, 13, 14, -1,
1103 12, 13, 14, 79, 80, 81, 82, -1, 84, -1,
1104 -1, -1, 28, -1, 536, -1, 28, 539, -1, 31,
1105 -1, 4, 544, 6, 7, 547, -1, 549, -1, 12,
1106 13, 14, 1, -1, 3, 4, -1, -1, -1, 8,
1107 9, -1, 11, -1, -1, 28, 15, 30, 17, 18,
1108 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1109 29, -1, 31, -1, 33, 34, 35, 79, 80, 52,
1110 592, -1, 594, 42, -1, 597, 45, -1, 61, 62,
1111 -1, 50, 51, 52, -1, 607, -1, 56, 57, -1,
1112 -1, 1, 61, 3, 4, 5, 6, 7, -1, -1,
1113 10, -1, 12, 13, 14, -1, -1, -1, -1, -1,
1114 79, -1, 81, 82, 1, 84, 3, 4, 28, -1,
1115 30, 8, 9, -1, 11, -1, -1, -1, 15, -1,
1116 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1117 27, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1118 -1, -1, -1, -1, -1, 42, 56, 57, 45, 59,
1119 60, 61, 62, 50, 51, 52, -1, -1, 78, 56,
1120 57, -1, -1, 1, 61, 3, 4, -1, 6, 7,
1121 8, 9, -1, 11, 12, 13, 14, -1, -1, -1,
1122 -1, -1, 79, -1, 81, 82, -1, 84, -1, -1,
1123 28, 29, -1, 31, -1, 33, 34, 35, 1, 27,
1124 3, 4, 30, -1, 42, 8, 9, 45, 11, -1,
1125 38, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1126 -1, -1, -1, 61, -1, -1, 29, -1, 31, -1,
1127 33, 34, 35, 61, 62, -1, -1, -1, -1, 42,
1128 -1, -1, 45, 81, 82, -1, 84, 50, 51, 52,
1129 -1, 79, -1, 56, 57, 83, -1, 60, 61, 62,
1130 1, -1, 3, 4, -1, -1, -1, 8, 9, -1,
1131 11, -1, -1, -1, -1, -1, -1, 80, 81, 82,
1132 -1, 84, -1, -1, -1, -1, -1, -1, 29, -1,
1133 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1134 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1135 51, 52, -1, -1, -1, 56, 57, -1, -1, 60,
1136 61, 62, 1, -1, 3, -1, -1, -1, -1, 8,
1137 9, -1, 11, -1, -1, -1, -1, -1, -1, 80,
1138 81, 82, -1, 84, -1, -1, -1, -1, -1, -1,
1139 29, -1, 31, -1, 33, 34, 35, -1, -1, 38,
1140 1, -1, 3, 42, -1, -1, 45, 8, 9, -1,
1141 11, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1142 -1, 60, 61, 62, -1, -1, -1, -1, 29, -1,
1143 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1144 -1, 42, 81, 82, 45, 84, -1, -1, -1, 50,
1145 51, 52, -1, -1, -1, 56, 57, 1, -1, 3,
1146 61, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1147 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1148 81, 82, -1, 84, -1, 29, -1, 31, -1, 33,
1149 34, 35, 27, 28, -1, 30, -1, -1, 42, -1,
1150 -1, 45, -1, 38, -1, -1, 50, 51, 52, -1,
1151 -1, -1, 56, 57, -1, -1, -1, 61, 48, 49,
1152 50, 51, 52, 53, 54, -1, 61, 62, -1, -1,
1153 1, -1, -1, 4, 5, 6, 7, 81, 82, -1,
1154 84, 12, 13, 14, 79, -1, -1, -1, 83, 84,
1155 -1, -1, -1, -1, -1, -1, 27, 28, 1, 30,
1156 -1, 4, 5, 6, 7, -1, -1, 38, 3, 12,
1157 13, 14, -1, 8, 9, -1, 11, -1, -1, -1,
1158 -1, -1, -1, -1, 27, 28, -1, 30, -1, -1,
1159 61, 62, -1, -1, 29, 38, 31, -1, 33, 34,
1160 35, -1, -1, -1, -1, -1, -1, 42, 79, -1,
1161 45, -1, 83, 84, -1, 50, 51, 52, -1, -1,
1162 -1, 56, 57, 3, -1, -1, 61, -1, 8, 9,
1163 -1, 11, -1, -1, -1, -1, 79, -1, -1, -1,
1164 83, 84, -1, -1, -1, -1, 81, 82, -1, 29,
1165 85, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1166 -1, 3, 42, -1, -1, 45, 8, 9, -1, 11,
1167 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1168 -1, 61, -1, -1, -1, -1, -1, 29, -1, 31,
1169 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1170 42, 81, 82, 45, -1, 85, -1, -1, 50, 51,
1171 52, -1, -1, -1, 56, 57, 3, -1, -1, 61,
1172 -1, 8, 9, 1, 11, -1, 4, 5, 6, 7,
1173 -1, -1, 10, -1, 12, 13, 14, -1, -1, 81,
1174 82, -1, 29, 85, 31, -1, 33, 34, 35, -1,
1175 28, -1, 30, -1, 3, 42, -1, -1, 45, 8,
1176 9, -1, 11, 50, 51, 52, -1, -1, -1, 56,
1177 57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
1178 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1179 -1, -1, -1, 42, 81, 82, 45, -1, 85, -1,
1180 78, 50, 51, 52, -1, -1, -1, 56, 57, 3,
1181 -1, -1, 61, -1, 8, 9, -1, 11, 4, 5,
1182 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1183 -1, -1, 81, 82, -1, 29, 85, 31, -1, 33,
1184 34, 35, 28, -1, -1, -1, -1, 3, 42, -1,
1185 -1, 45, 8, 9, -1, 11, 50, 51, 52, -1,
1186 -1, -1, 56, 57, -1, -1, -1, 61, -1, -1,
1187 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1188 10, -1, -1, -1, -1, -1, 42, 81, 82, 45,
1189 -1, 85, -1, 79, 50, 51, 52, -1, -1, -1,
1190 56, 57, -1, -1, -1, 61, -1, 37, 38, 39,
1191 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1192 50, 51, 52, 53, 54, 81, 82, -1, -1, 85,
1193 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1194 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1195 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1196 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1197 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1198 -1, -1, -1, 56, 57, -1, -1, -1, 61, 1,
1199 -1, -1, 4, -1, 6, 7, -1, -1, -1, -1,
1200 12, 13, 14, -1, -1, -1, 79, -1, 81, 82,
1201 -1, 84, 3, 4, -1, -1, 28, 8, 9, 31,
1202 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1203 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1204 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1205 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1206 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1207 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1208 -1, -1, -1, -1, -1, -1, 42, -1, 79, 45,
1209 81, 82, -1, 84, 50, 51, 52, -1, -1, -1,
1210 56, 57, -1, -1, -1, 61, 3, 4, 5, 6,
1211 7, 8, 9, -1, 11, 12, 13, 14, -1, -1,
1212 -1, -1, -1, -1, -1, 81, 82, -1, 84, -1,
1213 -1, 28, 29, 30, 31, -1, 33, 34, 35, -1,
1214 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1215 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1216 57, -1, 3, 4, 61, 6, 7, 8, 9, -1,
1217 11, 12, 13, 14, 46, 47, 48, 49, 50, 51,
1218 52, 53, 54, -1, 81, 82, -1, 28, 29, -1,
1219 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1220 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1221 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1222 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1223 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1224 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1225 56, 57, 3, -1, -1, 61, -1, 8, 9, -1,
1226 11, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1227 13, 14, -1, 79, -1, 81, 82, -1, 29, -1,
1228 31, -1, 33, 34, 35, 28, -1, 3, -1, -1,
1229 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1230 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1231 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1232 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1233 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1234 56, 57, 3, -1, -1, 61, -1, 8, 9, 39,
1235 11, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1236 50, 51, 52, 53, 54, 81, 82, -1, 29, -1,
1237 31, -1, 33, 34, 35, -1, -1, 3, -1, -1,
1238 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1239 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1240 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1241 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1242 81, 82, -1, -1, 50, 51, 52, -1, -1, -1,
1243 56, 57, -1, -1, 1, 61, 3, 4, 5, 6,
1244 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1245 -1, -1, -1, -1, -1, 81, 82, -1, -1, -1,
1246 27, 28, -1, 30, 31, 42, 43, 44, 45, 46,
1247 47, 48, 49, 50, 51, 52, 53, 54, -1, -1,
1248 -1, -1, 10, -1, -1, 52, -1, -1, -1, -1,
1249 -1, 37, 38, 39, 61, 41, 42, 43, 44, 45,
1250 46, 47, 48, 49, 50, 51, 52, 53, 54, 37,
1251 38, 39, 79, 41, 42, 43, 44, 45, 46, 47,
1252 48, 49, 50, 51, 52, 53, 54, -1, -1, -1,
1253 -1, -1, -1, -1, -1, -1, 37, 38, 39, 85,
1254 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1255 51, 52, 53, 54, 30, -1, -1, 85, -1, -1,
1256 -1, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1257 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1258 -1, -1, 83, 37, 38, 39, 40, 41, 42, 43,
1259 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1260 54, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1261 46, 47, 48, 49, 50, 51, 52, 53, 54, 43,
1262 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1263 54, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1266 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1267 #line 3 "/usr/cygnus/TBD-TBD/share/bison.simple"
1269 /* Skeleton output parser for bison,
1270 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1272 This program is free software; you can redistribute it and/or modify
1273 it under the terms of the GNU General Public License as published by
1274 the Free Software Foundation; either version 2, or (at your option)
1277 This program is distributed in the hope that it will be useful,
1278 but WITHOUT ANY WARRANTY; without even the implied warranty of
1279 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1280 GNU General Public License for more details.
1282 You should have received a copy of the GNU General Public License
1283 along with this program; if not, write to the Free Software
1284 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1286 /* As a special exception, when this file is copied by Bison into a
1287 Bison output file, you may use that output file without restriction.
1288 This special exception was added by the Free Software Foundation
1289 in version 1.24 of Bison. */
1293 #define alloca __builtin_alloca
1294 #else /* not GNU C. */
1295 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1297 #else /* not sparc */
1298 #if defined (MSDOS) && !defined (__TURBOC__)
1300 #else /* not MSDOS, or __TURBOC__ */
1304 #else /* not MSDOS, __TURBOC__, or _AIX */
1308 void *alloca (unsigned int);
1310 #else /* not __cplusplus */
1312 #endif /* not __cplusplus */
1314 #endif /* not _AIX */
1315 #endif /* not MSDOS, or __TURBOC__ */
1316 #endif /* not sparc. */
1317 #endif /* not GNU C. */
1318 #endif /* alloca not defined. */
1320 /* This is the parser code that is written into each bison parser
1321 when the %semantic_parser declaration is not specified in the grammar.
1322 It was written by Richard Stallman by simplifying the hairy parser
1323 used when %semantic_parser is specified. */
1325 /* Note: there must be only one dollar sign in this file.
1326 It is replaced by the list of actions, each action
1327 as one case of the switch. */
1329 #define yyerrok (yyerrstatus = 0)
1330 #define yyclearin (yychar = YYEMPTY)
1333 #define YYACCEPT return(0)
1334 #define YYABORT return(1)
1335 #define YYERROR goto yyerrlab1
1336 /* Like YYERROR except do call yyerror.
1337 This remains here temporarily to ease the
1338 transition to the new meaning of YYERROR, for GCC.
1339 Once GCC version 2 has supplanted version 1, this can go. */
1340 #define YYFAIL goto yyerrlab
1341 #define YYRECOVERING() (!!yyerrstatus)
1342 #define YYBACKUP(token, value) \
1344 if (yychar == YYEMPTY && yylen == 1) \
1345 { yychar = (token), yylval = (value); \
1346 yychar1 = YYTRANSLATE (yychar); \
1351 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1355 #define YYERRCODE 256
1358 #define YYLEX yylex()
1364 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1366 #define YYLEX yylex(&yylval, &yylloc)
1368 #else /* not YYLSP_NEEDED */
1370 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1372 #define YYLEX yylex(&yylval)
1374 #endif /* not YYLSP_NEEDED */
1377 /* If nonreentrant, generate the variables here */
1381 int yychar
; /* the lookahead symbol */
1382 YYSTYPE yylval
; /* the semantic value of the */
1383 /* lookahead symbol */
1386 YYLTYPE yylloc
; /* location data for the lookahead */
1390 int yynerrs
; /* number of parse errors so far */
1391 #endif /* not YYPURE */
1394 int yydebug
; /* nonzero means print parse trace */
1395 /* Since this is uninitialized, it does not stop multiple parsers
1399 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1402 #define YYINITDEPTH 200
1405 /* YYMAXDEPTH is the maximum size the stacks can grow to
1406 (effective only if the built-in stack extension method is used). */
1413 #define YYMAXDEPTH 10000
1416 /* Prevent warning if -Wstrict-prototypes. */
1421 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1422 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1423 #else /* not GNU C or C++ */
1426 /* This is the most reliable way to avoid incompatibilities
1427 in available built-in functions on various systems. */
1429 __yy_memcpy (to
, from
, count
)
1434 register char *f
= from
;
1435 register char *t
= to
;
1436 register int i
= count
;
1442 #else /* __cplusplus */
1444 /* This is the most reliable way to avoid incompatibilities
1445 in available built-in functions on various systems. */
1447 __yy_memcpy (char *to
, char *from
, int count
)
1449 register char *f
= from
;
1450 register char *t
= to
;
1451 register int i
= count
;
1460 #line 196 "/usr/cygnus/TBD-TBD/share/bison.simple"
1462 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1463 into yyparse. The argument should have type void *.
1464 It should actually point to an object.
1465 Grammar actions can access the variable by casting it
1466 to the proper pointer type. */
1468 #ifdef YYPARSE_PARAM
1470 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1471 #define YYPARSE_PARAM_DECL
1472 #else /* not __cplusplus */
1473 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1474 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1475 #endif /* not __cplusplus */
1476 #else /* not YYPARSE_PARAM */
1477 #define YYPARSE_PARAM_ARG
1478 #define YYPARSE_PARAM_DECL
1479 #endif /* not YYPARSE_PARAM */
1482 yyparse(YYPARSE_PARAM_ARG
)
1485 register int yystate
;
1487 register short *yyssp
;
1488 register YYSTYPE
*yyvsp
;
1489 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1490 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1492 short yyssa
[YYINITDEPTH
]; /* the state stack */
1493 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1495 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1496 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1499 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1500 YYLTYPE
*yyls
= yylsa
;
1503 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1505 #define YYPOPSTACK (yyvsp--, yyssp--)
1508 int yystacksize
= YYINITDEPTH
;
1519 YYSTYPE yyval
; /* the variable used to return */
1520 /* semantic values from the action */
1527 fprintf(stderr
, "Starting parse\n");
1533 yychar
= YYEMPTY
; /* Cause a token to be read. */
1535 /* Initialize stack pointers.
1536 Waste one element of value and location stack
1537 so that they stay on the same level as the state stack.
1538 The wasted elements are never initialized. */
1546 /* Push a new state, which is found in yystate . */
1547 /* In all cases, when you get here, the value and location stacks
1548 have just been pushed. so pushing a state here evens the stacks. */
1553 if (yyssp
>= yyss
+ yystacksize
- 1)
1555 /* Give user a chance to reallocate the stack */
1556 /* Use copies of these so that the &'s don't force the real ones into memory. */
1557 YYSTYPE
*yyvs1
= yyvs
;
1558 short *yyss1
= yyss
;
1560 YYLTYPE
*yyls1
= yyls
;
1563 /* Get the current used size of the three stacks, in elements. */
1564 int size
= yyssp
- yyss
+ 1;
1567 /* Each stack pointer address is followed by the size of
1568 the data in use in that stack, in bytes. */
1570 /* This used to be a conditional around just the two extra args,
1571 but that might be undefined if yyoverflow is a macro. */
1572 yyoverflow("parser stack overflow",
1573 &yyss1
, size
* sizeof (*yyssp
),
1574 &yyvs1
, size
* sizeof (*yyvsp
),
1575 &yyls1
, size
* sizeof (*yylsp
),
1578 yyoverflow("parser stack overflow",
1579 &yyss1
, size
* sizeof (*yyssp
),
1580 &yyvs1
, size
* sizeof (*yyvsp
),
1584 yyss
= yyss1
; yyvs
= yyvs1
;
1588 #else /* no yyoverflow */
1589 /* Extend the stack our own way. */
1590 if (yystacksize
>= YYMAXDEPTH
)
1592 yyerror("parser stack overflow");
1596 if (yystacksize
> YYMAXDEPTH
)
1597 yystacksize
= YYMAXDEPTH
;
1598 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1599 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1600 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1601 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1603 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1604 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1606 #endif /* no yyoverflow */
1608 yyssp
= yyss
+ size
- 1;
1609 yyvsp
= yyvs
+ size
- 1;
1611 yylsp
= yyls
+ size
- 1;
1616 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1619 if (yyssp
>= yyss
+ yystacksize
- 1)
1625 fprintf(stderr
, "Entering state %d\n", yystate
);
1631 /* Do appropriate processing given the current state. */
1632 /* Read a lookahead token if we need one and don't already have one. */
1635 /* First try to decide what to do without reference to lookahead token. */
1637 yyn
= yypact
[yystate
];
1641 /* Not known => get a lookahead token if don't already have one. */
1643 /* yychar is either YYEMPTY or YYEOF
1644 or a valid token in external form. */
1646 if (yychar
== YYEMPTY
)
1650 fprintf(stderr
, "Reading a token: ");
1655 /* Convert token to internal form (in yychar1) for indexing tables with */
1657 if (yychar
<= 0) /* This means end of input. */
1660 yychar
= YYEOF
; /* Don't call YYLEX any more */
1664 fprintf(stderr
, "Now at end of input.\n");
1669 yychar1
= YYTRANSLATE(yychar
);
1674 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1675 /* Give the individual parser a way to print the precise meaning
1676 of a token, for further debugging info. */
1678 YYPRINT (stderr
, yychar
, yylval
);
1680 fprintf (stderr
, ")\n");
1686 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1691 /* yyn is what to do for this token type in this state.
1692 Negative => reduce, -yyn is rule number.
1693 Positive => shift, yyn is new state.
1694 New state is final state => don't bother to shift,
1695 just return success.
1696 0, or most negative number => error. */
1711 /* Shift the lookahead token. */
1715 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1718 /* Discard the token being shifted unless it is eof. */
1719 if (yychar
!= YYEOF
)
1727 /* count tokens shifted since error; after three, turn off error status. */
1728 if (yyerrstatus
) yyerrstatus
--;
1733 /* Do the default action for the current state. */
1736 yyn
= yydefact
[yystate
];
1740 /* Do a reduction. yyn is the number of a rule to reduce with. */
1744 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1751 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1754 /* Print the symbols being reduced, and their result. */
1755 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1756 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1757 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1765 #line 235 "c-parse.y"
1767 pedwarn ("ANSI C forbids an empty source file");
1772 #line 240 "c-parse.y"
1774 /* In case there were missing closebraces,
1775 get us back to the global binding level. */
1776 while (! global_bindings_p ())
1782 #line 254 "c-parse.y"
1783 {yyval
.ttype
= NULL_TREE
; ;
1786 #line 255 "c-parse.y"
1787 {yyval
.ttype
= NULL_TREE
; ;
1790 #line 262 "c-parse.y"
1791 { STRIP_NOPS (yyvsp
[-2].ttype
);
1792 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1793 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1794 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1795 assemble_asm (yyvsp
[-2].ttype
);
1797 error ("argument of `asm' is not a constant string"); ;
1800 #line 270 "c-parse.y"
1801 { RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
1804 #line 275 "c-parse.y"
1806 error ("ANSI C forbids data definition with no type or storage class");
1807 else if (!flag_traditional
)
1808 warning ("data definition has no type or storage class");
1810 current_declspecs
= TREE_VALUE (declspec_stack
);
1811 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1812 declspec_stack
= TREE_CHAIN (declspec_stack
);
1813 resume_momentary (yyvsp
[-2].itype
); ;
1816 #line 285 "c-parse.y"
1817 { current_declspecs
= TREE_VALUE (declspec_stack
);
1818 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1819 declspec_stack
= TREE_CHAIN (declspec_stack
);
1820 resume_momentary (yyvsp
[-2].itype
); ;
1823 #line 290 "c-parse.y"
1824 { current_declspecs
= TREE_VALUE (declspec_stack
);
1825 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1826 declspec_stack
= TREE_CHAIN (declspec_stack
);
1827 resume_momentary (yyvsp
[-2].itype
); ;
1830 #line 295 "c-parse.y"
1831 { pedwarn ("empty declaration"); ;
1834 #line 297 "c-parse.y"
1835 { shadow_tag (yyvsp
[-1].ttype
); ;
1838 #line 301 "c-parse.y"
1840 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1843 #line 307 "c-parse.y"
1844 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1845 prefix_attributes
, NULL_TREE
, 0))
1847 reinit_parse_for_function (); ;
1850 #line 312 "c-parse.y"
1851 { store_parm_decls (); ;
1854 #line 314 "c-parse.y"
1855 { finish_function (0);
1856 current_declspecs
= TREE_VALUE (declspec_stack
);
1857 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1858 declspec_stack
= TREE_CHAIN (declspec_stack
);
1859 resume_momentary (yyvsp
[-5].itype
); ;
1862 #line 320 "c-parse.y"
1863 { current_declspecs
= TREE_VALUE (declspec_stack
);
1864 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1865 declspec_stack
= TREE_CHAIN (declspec_stack
);
1866 resume_momentary (yyvsp
[-2].itype
); ;
1869 #line 325 "c-parse.y"
1870 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1871 prefix_attributes
, NULL_TREE
, 0))
1873 reinit_parse_for_function (); ;
1876 #line 330 "c-parse.y"
1877 { store_parm_decls (); ;
1880 #line 332 "c-parse.y"
1881 { finish_function (0);
1882 current_declspecs
= TREE_VALUE (declspec_stack
);
1883 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1884 declspec_stack
= TREE_CHAIN (declspec_stack
);
1885 resume_momentary (yyvsp
[-5].itype
); ;
1888 #line 338 "c-parse.y"
1889 { current_declspecs
= TREE_VALUE (declspec_stack
);
1890 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1891 declspec_stack
= TREE_CHAIN (declspec_stack
);
1892 resume_momentary (yyvsp
[-2].itype
); ;
1895 #line 343 "c-parse.y"
1896 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1897 prefix_attributes
, NULL_TREE
, 0))
1899 reinit_parse_for_function (); ;
1902 #line 348 "c-parse.y"
1903 { store_parm_decls (); ;
1906 #line 350 "c-parse.y"
1907 { finish_function (0);
1908 current_declspecs
= TREE_VALUE (declspec_stack
);
1909 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1910 declspec_stack
= TREE_CHAIN (declspec_stack
);
1911 resume_momentary (yyvsp
[-5].itype
); ;
1914 #line 356 "c-parse.y"
1915 { current_declspecs
= TREE_VALUE (declspec_stack
);
1916 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1917 declspec_stack
= TREE_CHAIN (declspec_stack
);
1918 resume_momentary (yyvsp
[-2].itype
); ;
1921 #line 368 "c-parse.y"
1922 { yyval
.code
= ADDR_EXPR
; ;
1925 #line 370 "c-parse.y"
1926 { yyval
.code
= NEGATE_EXPR
; ;
1929 #line 372 "c-parse.y"
1930 { yyval
.code
= CONVERT_EXPR
; ;
1933 #line 374 "c-parse.y"
1934 { yyval
.code
= PREINCREMENT_EXPR
; ;
1937 #line 376 "c-parse.y"
1938 { yyval
.code
= PREDECREMENT_EXPR
; ;
1941 #line 378 "c-parse.y"
1942 { yyval
.code
= BIT_NOT_EXPR
; ;
1945 #line 380 "c-parse.y"
1946 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1949 #line 384 "c-parse.y"
1950 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1953 #line 389 "c-parse.y"
1954 { yyval
.ttype
= NULL_TREE
; ;
1957 #line 395 "c-parse.y"
1958 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1961 #line 397 "c-parse.y"
1962 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1965 #line 403 "c-parse.y"
1966 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1969 #line 406 "c-parse.y"
1970 { yyval
.ttype
= yyvsp
[0].ttype
;
1971 RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
1974 #line 409 "c-parse.y"
1975 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1976 overflow_warning (yyval
.ttype
); ;
1979 #line 413 "c-parse.y"
1980 { tree label
= lookup_label (yyvsp
[0].ttype
);
1982 pedwarn ("ANSI C forbids `&&'");
1984 yyval
.ttype
= null_pointer_node
;
1987 TREE_USED (label
) = 1;
1988 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1989 TREE_CONSTANT (yyval
.ttype
) = 1;
1994 #line 441 "c-parse.y"
1995 { skip_evaluation
--;
1996 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1997 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1998 error ("`sizeof' applied to a bit-field");
1999 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2002 #line 447 "c-parse.y"
2003 { skip_evaluation
--;
2004 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2007 #line 450 "c-parse.y"
2008 { skip_evaluation
--;
2009 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2012 #line 453 "c-parse.y"
2013 { skip_evaluation
--;
2014 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2017 #line 456 "c-parse.y"
2018 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2021 #line 458 "c-parse.y"
2022 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2025 #line 460 "c-parse.y"
2026 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2029 #line 464 "c-parse.y"
2030 { skip_evaluation
++; ;
2033 #line 468 "c-parse.y"
2034 { skip_evaluation
++; ;
2037 #line 474 "c-parse.y"
2038 { tree type
= groktypename (yyvsp
[-2].ttype
);
2039 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2042 #line 477 "c-parse.y"
2043 { start_init (NULL_TREE
, NULL
, 0);
2044 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2045 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2048 #line 481 "c-parse.y"
2050 tree result
= pop_init_level (0);
2051 tree type
= yyvsp
[-5].ttype
;
2054 if (pedantic
&& ! flag_isoc9x
)
2055 pedwarn ("ANSI C forbids constructor expressions");
2056 if (TYPE_NAME (type
) != 0)
2058 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2059 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2061 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2065 yyval
.ttype
= result
;
2066 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2068 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2075 #line 510 "c-parse.y"
2076 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2079 #line 512 "c-parse.y"
2080 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2083 #line 514 "c-parse.y"
2084 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2087 #line 516 "c-parse.y"
2088 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2091 #line 518 "c-parse.y"
2092 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2095 #line 520 "c-parse.y"
2096 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2099 #line 522 "c-parse.y"
2100 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2103 #line 524 "c-parse.y"
2104 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2107 #line 526 "c-parse.y"
2108 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2111 #line 528 "c-parse.y"
2112 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2115 #line 530 "c-parse.y"
2116 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2119 #line 532 "c-parse.y"
2120 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2123 #line 534 "c-parse.y"
2124 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2125 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2128 #line 537 "c-parse.y"
2129 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2130 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2133 #line 540 "c-parse.y"
2134 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2135 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2138 #line 543 "c-parse.y"
2139 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2140 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2143 #line 546 "c-parse.y"
2144 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2145 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2148 #line 549 "c-parse.y"
2149 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2150 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2153 #line 552 "c-parse.y"
2154 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2155 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2158 #line 555 "c-parse.y"
2160 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2161 /* Make sure first operand is calculated only once. */
2162 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2163 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2164 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2167 #line 562 "c-parse.y"
2168 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2169 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2172 #line 565 "c-parse.y"
2174 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2175 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2176 if (class == 'e' || class == '1'
2177 || class == '2' || class == '<')
2178 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2182 #line 573 "c-parse.y"
2184 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2185 /* This inhibits warnings in truthvalue_conversion. */
2186 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2187 if (class == 'e' || class == '1'
2188 || class == '2' || class == '<')
2189 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2193 #line 585 "c-parse.y"
2195 yyval
.ttype
= lastiddecl
;
2196 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2198 if (yychar
== YYEMPTY
)
2203 /* Ordinary implicit function declaration. */
2204 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2205 assemble_external (yyval
.ttype
);
2206 TREE_USED (yyval
.ttype
) = 1;
2209 else if (current_function_decl
== 0)
2211 error ("`%s' undeclared here (not in a function)",
2212 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2213 yyval
.ttype
= error_mark_node
;
2218 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2219 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2221 error ("`%s' undeclared (first use in this function)",
2222 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2224 if (! undeclared_variable_notice
)
2226 error ("(Each undeclared identifier is reported only once");
2227 error ("for each function it appears in.)");
2228 undeclared_variable_notice
= 1;
2231 yyval
.ttype
= error_mark_node
;
2232 /* Prevent repeated error messages. */
2233 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2234 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2238 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2239 yyval
.ttype
= error_mark_node
;
2240 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2242 /* The first time we see a build-in function used,
2243 if it has not been declared. */
2244 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2245 if (yychar
== YYEMPTY
)
2249 /* Omit the implicit declaration we
2250 would ordinarily do, so we don't lose
2251 the actual built in type.
2252 But print a diagnostic for the mismatch. */
2253 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2254 error ("`%s' implicitly declared as function",
2255 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2256 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2257 != TYPE_MODE (integer_type_node
))
2258 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2260 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2261 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2262 /* If it really returns void, change that to int. */
2263 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2264 TREE_TYPE (yyval
.ttype
)
2265 = build_function_type (integer_type_node
,
2266 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2269 pedwarn ("built-in function `%s' used without declaration",
2270 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2272 /* Do what we would ordinarily do when a fn is used. */
2273 assemble_external (yyval
.ttype
);
2274 TREE_USED (yyval
.ttype
) = 1;
2278 assemble_external (yyval
.ttype
);
2279 TREE_USED (yyval
.ttype
) = 1;
2282 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2284 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2285 /* This is to prevent an enum whose value is 0
2286 from being considered a null pointer constant. */
2287 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2288 TREE_CONSTANT (yyval
.ttype
) = 1;
2293 #line 684 "c-parse.y"
2294 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2297 #line 686 "c-parse.y"
2298 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2299 if (class == 'e' || class == '1'
2300 || class == '2' || class == '<')
2301 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2302 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2305 #line 692 "c-parse.y"
2306 { yyval
.ttype
= error_mark_node
; ;
2309 #line 694 "c-parse.y"
2312 pedwarn ("ANSI C forbids braced-groups within expressions");
2313 pop_iterator_stack ();
2315 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2316 /* The statements have side effects, so the group does. */
2317 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2319 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2321 /* Make a BIND_EXPR for the BLOCK already made. */
2322 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2323 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2324 /* Remove the block from the tree at this point.
2325 It gets put back at the proper place
2326 when the BIND_EXPR is expanded. */
2327 delete_block (yyvsp
[-1].ttype
);
2330 yyval
.ttype
= yyvsp
[-1].ttype
;
2334 #line 717 "c-parse.y"
2336 /* Make sure we call expand_end_stmt_expr. Otherwise
2337 we are likely to lose sequences and crash later. */
2338 pop_iterator_stack ();
2340 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2341 yyval
.ttype
= error_mark_node
;
2345 #line 726 "c-parse.y"
2346 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2349 #line 728 "c-parse.y"
2350 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2353 #line 730 "c-parse.y"
2355 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2359 #line 734 "c-parse.y"
2361 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2363 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2367 #line 740 "c-parse.y"
2368 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2371 #line 742 "c-parse.y"
2372 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2375 #line 749 "c-parse.y"
2376 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2379 #line 758 "c-parse.y"
2380 { c_mark_varargs ();
2382 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2385 #line 768 "c-parse.y"
2389 #line 784 "c-parse.y"
2390 { current_declspecs
= TREE_VALUE (declspec_stack
);
2391 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2392 declspec_stack
= TREE_CHAIN (declspec_stack
);
2393 resume_momentary (yyvsp
[-2].itype
); ;
2396 #line 789 "c-parse.y"
2397 { current_declspecs
= TREE_VALUE (declspec_stack
);
2398 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2399 declspec_stack
= TREE_CHAIN (declspec_stack
);
2400 resume_momentary (yyvsp
[-2].itype
); ;
2403 #line 794 "c-parse.y"
2404 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2405 pedwarn ("empty declaration"); ;
2408 #line 797 "c-parse.y"
2409 { pedwarn ("empty declaration"); ;
2412 #line 806 "c-parse.y"
2416 #line 821 "c-parse.y"
2417 { yyval
.itype
= suspend_momentary ();
2418 pending_xref_error ();
2419 declspec_stack
= tree_cons (prefix_attributes
,
2422 split_specs_attrs (yyvsp
[0].ttype
,
2423 ¤t_declspecs
, &prefix_attributes
); ;
2426 #line 832 "c-parse.y"
2427 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2430 #line 837 "c-parse.y"
2431 { current_declspecs
= TREE_VALUE (declspec_stack
);
2432 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2433 declspec_stack
= TREE_CHAIN (declspec_stack
);
2434 resume_momentary (yyvsp
[-2].itype
); ;
2437 #line 842 "c-parse.y"
2438 { current_declspecs
= TREE_VALUE (declspec_stack
);
2439 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2440 declspec_stack
= TREE_CHAIN (declspec_stack
);
2441 resume_momentary (yyvsp
[-2].itype
); ;
2444 #line 847 "c-parse.y"
2445 { current_declspecs
= TREE_VALUE (declspec_stack
);
2446 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2447 declspec_stack
= TREE_CHAIN (declspec_stack
);
2448 resume_momentary (yyvsp
[-1].itype
); ;
2451 #line 852 "c-parse.y"
2452 { current_declspecs
= TREE_VALUE (declspec_stack
);
2453 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2454 declspec_stack
= TREE_CHAIN (declspec_stack
);
2455 resume_momentary (yyvsp
[-1].itype
); ;
2458 #line 857 "c-parse.y"
2459 { shadow_tag (yyvsp
[-1].ttype
); ;
2462 #line 859 "c-parse.y"
2463 { pedwarn ("empty declaration"); ;
2466 #line 861 "c-parse.y"
2467 { RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
2470 #line 871 "c-parse.y"
2471 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2474 #line 873 "c-parse.y"
2475 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2478 #line 877 "c-parse.y"
2479 { yyval
.ttype
= NULL_TREE
; ;
2482 #line 879 "c-parse.y"
2483 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2486 #line 881 "c-parse.y"
2487 { if (extra_warnings
)
2488 warning ("`%s' is not at beginning of declaration",
2489 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2490 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2493 #line 886 "c-parse.y"
2494 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2497 #line 891 "c-parse.y"
2498 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2501 #line 893 "c-parse.y"
2502 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2505 #line 898 "c-parse.y"
2506 { yyval
.ttype
= NULL_TREE
; ;
2509 #line 900 "c-parse.y"
2510 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2513 #line 902 "c-parse.y"
2514 { if (extra_warnings
)
2515 warning ("`%s' is not at beginning of declaration",
2516 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2517 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2520 #line 915 "c-parse.y"
2521 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2524 #line 917 "c-parse.y"
2525 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2528 #line 919 "c-parse.y"
2529 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2532 #line 921 "c-parse.y"
2533 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2536 #line 926 "c-parse.y"
2537 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2538 TREE_STATIC (yyval
.ttype
) = 1; ;
2541 #line 929 "c-parse.y"
2542 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2545 #line 931 "c-parse.y"
2546 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2547 TREE_STATIC (yyval
.ttype
) = 1; ;
2550 #line 934 "c-parse.y"
2551 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2552 warning ("`%s' is not at beginning of declaration",
2553 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2554 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2555 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2558 #line 948 "c-parse.y"
2559 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2562 #line 950 "c-parse.y"
2563 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2566 #line 954 "c-parse.y"
2567 { yyval
.ttype
= NULL_TREE
; ;
2570 #line 956 "c-parse.y"
2571 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2574 #line 966 "c-parse.y"
2575 { /* For a typedef name, record the meaning, not the name.
2576 In case of `foo foo, bar;'. */
2577 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2580 #line 970 "c-parse.y"
2581 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2584 #line 972 "c-parse.y"
2585 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2588 #line 994 "c-parse.y"
2589 { yyval
.ttype
= NULL_TREE
; ;
2592 #line 996 "c-parse.y"
2593 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2594 yyval
.ttype
= yyvsp
[-1].ttype
;
2598 #line 1003 "c-parse.y"
2599 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2600 yyvsp
[-1].ttype
, prefix_attributes
);
2601 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2604 #line 1008 "c-parse.y"
2606 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2609 #line 1011 "c-parse.y"
2610 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2611 yyvsp
[0].ttype
, prefix_attributes
);
2612 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2616 #line 1019 "c-parse.y"
2617 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2618 yyvsp
[-1].ttype
, prefix_attributes
);
2619 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2622 #line 1024 "c-parse.y"
2624 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2625 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2628 #line 1028 "c-parse.y"
2629 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2630 yyvsp
[0].ttype
, prefix_attributes
);
2631 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2634 #line 1036 "c-parse.y"
2635 { yyval
.ttype
= NULL_TREE
; ;
2638 #line 1038 "c-parse.y"
2639 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2642 #line 1043 "c-parse.y"
2643 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2646 #line 1045 "c-parse.y"
2647 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2650 #line 1050 "c-parse.y"
2651 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2654 #line 1055 "c-parse.y"
2655 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2658 #line 1057 "c-parse.y"
2659 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2662 #line 1062 "c-parse.y"
2663 { yyval
.ttype
= NULL_TREE
; ;
2666 #line 1064 "c-parse.y"
2667 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2670 #line 1066 "c-parse.y"
2671 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2674 #line 1068 "c-parse.y"
2675 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2678 #line 1070 "c-parse.y"
2679 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2682 #line 1088 "c-parse.y"
2683 { really_start_incremental_init (NULL_TREE
);
2684 /* Note that the call to clear_momentary
2685 is in process_init_element. */
2686 push_momentary (); ;
2689 #line 1093 "c-parse.y"
2690 { yyval
.ttype
= pop_init_level (0);
2691 if (yyval
.ttype
== error_mark_node
2692 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2695 pop_momentary_nofree (); ;
2698 #line 1101 "c-parse.y"
2699 { yyval
.ttype
= error_mark_node
; ;
2702 #line 1107 "c-parse.y"
2704 pedwarn ("ANSI C forbids empty initializer braces"); ;
2707 #line 1123 "c-parse.y"
2708 { set_init_label (yyvsp
[-1].ttype
); ;
2711 #line 1130 "c-parse.y"
2712 { push_init_level (0); ;
2715 #line 1132 "c-parse.y"
2716 { process_init_element (pop_init_level (0)); ;
2719 #line 1134 "c-parse.y"
2720 { process_init_element (yyvsp
[0].ttype
); ;
2723 #line 1145 "c-parse.y"
2724 { set_init_label (yyvsp
[0].ttype
); ;
2727 #line 1150 "c-parse.y"
2728 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2731 #line 1152 "c-parse.y"
2732 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2735 #line 1157 "c-parse.y"
2737 pedwarn ("ANSI C forbids nested functions");
2739 push_function_context ();
2740 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2741 prefix_attributes
, NULL_TREE
, 1))
2743 pop_function_context ();
2746 reinit_parse_for_function (); ;
2749 #line 1169 "c-parse.y"
2750 { store_parm_decls (); ;
2753 #line 1177 "c-parse.y"
2754 { finish_function (1);
2755 pop_function_context (); ;
2758 #line 1183 "c-parse.y"
2760 pedwarn ("ANSI C forbids nested functions");
2762 push_function_context ();
2763 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2764 prefix_attributes
, NULL_TREE
, 1))
2766 pop_function_context ();
2769 reinit_parse_for_function (); ;
2772 #line 1195 "c-parse.y"
2773 { store_parm_decls (); ;
2776 #line 1203 "c-parse.y"
2777 { finish_function (1);
2778 pop_function_context (); ;
2781 #line 1219 "c-parse.y"
2782 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2785 #line 1221 "c-parse.y"
2786 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2789 #line 1226 "c-parse.y"
2790 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2793 #line 1228 "c-parse.y"
2794 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2797 #line 1230 "c-parse.y"
2798 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2801 #line 1237 "c-parse.y"
2802 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2805 #line 1248 "c-parse.y"
2806 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2809 #line 1253 "c-parse.y"
2810 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2812 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2816 #line 1258 "c-parse.y"
2817 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2820 #line 1260 "c-parse.y"
2821 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2824 #line 1262 "c-parse.y"
2825 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2828 #line 1269 "c-parse.y"
2829 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2832 #line 1278 "c-parse.y"
2833 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2836 #line 1283 "c-parse.y"
2837 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2840 #line 1285 "c-parse.y"
2841 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2844 #line 1287 "c-parse.y"
2845 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2847 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2851 #line 1292 "c-parse.y"
2852 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2855 #line 1294 "c-parse.y"
2856 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2859 #line 1301 "c-parse.y"
2860 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2863 #line 1307 "c-parse.y"
2864 { yyval
.ttype
= NULL_TREE
; ;
2867 #line 1309 "c-parse.y"
2868 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2871 #line 1314 "c-parse.y"
2872 { yyval
.ttype
= NULL_TREE
; ;
2875 #line 1316 "c-parse.y"
2876 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2879 #line 1321 "c-parse.y"
2880 { yyval
.ttype
= NULL_TREE
; ;
2883 #line 1323 "c-parse.y"
2884 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2887 #line 1328 "c-parse.y"
2888 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2889 /* Start scope of tag before parsing components. */
2893 #line 1332 "c-parse.y"
2894 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2897 #line 1334 "c-parse.y"
2898 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2899 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2903 #line 1338 "c-parse.y"
2904 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2907 #line 1340 "c-parse.y"
2908 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2911 #line 1342 "c-parse.y"
2912 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2915 #line 1344 "c-parse.y"
2916 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2917 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2921 #line 1348 "c-parse.y"
2922 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2925 #line 1350 "c-parse.y"
2926 { yyvsp
[0].itype
= suspend_momentary ();
2927 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2930 #line 1353 "c-parse.y"
2931 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
2932 resume_momentary (yyvsp
[-5].itype
); ;
2935 #line 1356 "c-parse.y"
2936 { yyvsp
[0].itype
= suspend_momentary ();
2937 yyval
.ttype
= start_enum (NULL_TREE
); ;
2940 #line 1359 "c-parse.y"
2941 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
2942 resume_momentary (yyvsp
[-5].itype
); ;
2945 #line 1362 "c-parse.y"
2946 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2949 #line 1373 "c-parse.y"
2950 { if (pedantic
&& ! flag_isoc9x
)
2951 pedwarn ("comma at end of enumerator list"); ;
2954 #line 1379 "c-parse.y"
2955 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2958 #line 1381 "c-parse.y"
2959 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2960 pedwarn ("no semicolon at end of struct or union"); ;
2963 #line 1386 "c-parse.y"
2964 { yyval
.ttype
= NULL_TREE
; ;
2967 #line 1388 "c-parse.y"
2968 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2971 #line 1390 "c-parse.y"
2973 pedwarn ("extra semicolon in struct or union specified"); ;
2976 #line 1405 "c-parse.y"
2977 { yyval
.ttype
= yyvsp
[0].ttype
;
2978 current_declspecs
= TREE_VALUE (declspec_stack
);
2979 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2980 declspec_stack
= TREE_CHAIN (declspec_stack
);
2981 resume_momentary (yyvsp
[-1].itype
); ;
2984 #line 1411 "c-parse.y"
2986 pedwarn ("ANSI C forbids member declarations with no members");
2987 shadow_tag(yyvsp
[0].ttype
);
2988 yyval
.ttype
= NULL_TREE
; ;
2991 #line 1416 "c-parse.y"
2992 { yyval
.ttype
= yyvsp
[0].ttype
;
2993 current_declspecs
= TREE_VALUE (declspec_stack
);
2994 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2995 declspec_stack
= TREE_CHAIN (declspec_stack
);
2996 resume_momentary (yyvsp
[-1].itype
); ;
2999 #line 1422 "c-parse.y"
3001 pedwarn ("ANSI C forbids member declarations with no members");
3002 shadow_tag(yyvsp
[0].ttype
);
3003 yyval
.ttype
= NULL_TREE
; ;
3006 #line 1427 "c-parse.y"
3007 { yyval
.ttype
= NULL_TREE
; ;
3010 #line 1429 "c-parse.y"
3011 { yyval
.ttype
= yyvsp
[0].ttype
;
3012 RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
3015 #line 1436 "c-parse.y"
3016 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3019 #line 1441 "c-parse.y"
3020 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3021 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3024 #line 1445 "c-parse.y"
3025 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3026 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3029 #line 1448 "c-parse.y"
3030 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3031 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3034 #line 1460 "c-parse.y"
3035 { if (yyvsp
[-2].ttype
== error_mark_node
)
3036 yyval
.ttype
= yyvsp
[-2].ttype
;
3038 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3041 #line 1465 "c-parse.y"
3042 { yyval
.ttype
= error_mark_node
; ;
3045 #line 1471 "c-parse.y"
3046 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3049 #line 1473 "c-parse.y"
3050 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3053 #line 1478 "c-parse.y"
3054 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3057 #line 1480 "c-parse.y"
3058 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3061 #line 1485 "c-parse.y"
3062 { yyval
.ttype
= NULL_TREE
; ;
3065 #line 1491 "c-parse.y"
3066 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3069 #line 1493 "c-parse.y"
3070 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3073 #line 1498 "c-parse.y"
3074 { yyval
.ttype
= NULL_TREE
; ;
3077 #line 1500 "c-parse.y"
3078 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3081 #line 1505 "c-parse.y"
3082 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3085 #line 1508 "c-parse.y"
3086 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3089 #line 1510 "c-parse.y"
3090 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3093 #line 1512 "c-parse.y"
3094 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3097 #line 1514 "c-parse.y"
3098 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3101 #line 1516 "c-parse.y"
3102 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3105 #line 1518 "c-parse.y"
3106 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3109 #line 1520 "c-parse.y"
3110 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3113 #line 1522 "c-parse.y"
3114 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3117 #line 1526 "c-parse.y"
3118 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3121 #line 1535 "c-parse.y"
3123 if (pedantic
&& yyvsp
[0].ends_in_label
)
3124 pedwarn ("ANSI C forbids label at end of compound statement");
3128 #line 1544 "c-parse.y"
3129 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3132 #line 1546 "c-parse.y"
3133 { yyval
.ends_in_label
= 0; ;
3136 #line 1558 "c-parse.y"
3137 { emit_line_note (input_filename
, lineno
);
3141 expand_start_bindings (0);
3145 #line 1571 "c-parse.y"
3147 pedwarn ("ANSI C forbids label declarations"); ;
3150 #line 1582 "c-parse.y"
3152 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3154 tree label
= shadow_label (TREE_VALUE (link
));
3155 C_DECLARED_LABEL_FLAG (label
) = 1;
3156 declare_nonlocal_label (label
);
3161 #line 1596 "c-parse.y"
3165 #line 1600 "c-parse.y"
3166 { compstmt_count
++; ;
3169 #line 1603 "c-parse.y"
3170 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3173 #line 1605 "c-parse.y"
3174 { emit_line_note (input_filename
, lineno
);
3175 expand_end_bindings (getdecls (), 1, 0);
3176 yyval
.ttype
= poplevel (1, 1, 0);
3177 if (yychar
== CONSTANT
|| yychar
== STRING
)
3178 pop_momentary_nofree ();
3183 #line 1613 "c-parse.y"
3184 { emit_line_note (input_filename
, lineno
);
3185 expand_end_bindings (getdecls (), kept_level_p (), 0);
3186 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3187 if (yychar
== CONSTANT
|| yychar
== STRING
)
3188 pop_momentary_nofree ();
3193 #line 1621 "c-parse.y"
3194 { emit_line_note (input_filename
, lineno
);
3195 expand_end_bindings (getdecls (), kept_level_p (), 0);
3196 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3197 if (yychar
== CONSTANT
|| yychar
== STRING
)
3198 pop_momentary_nofree ();
3203 #line 1632 "c-parse.y"
3204 { if (current_function_decl
== 0)
3206 error ("braced-group within expression allowed only inside a function");
3209 /* We must force a BLOCK for this level
3210 so that, if it is not expanded later,
3211 there is a way to turn off the entire subtree of blocks
3212 that are contained in it. */
3214 push_iterator_stack ();
3215 push_label_level ();
3216 yyval
.ttype
= expand_start_stmt_expr ();
3221 #line 1649 "c-parse.y"
3222 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3225 #line 1663 "c-parse.y"
3226 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3227 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3229 yyval
.itype
= stmt_count
;
3230 if_stmt_file
= yyvsp
[-5].filename
;
3231 if_stmt_line
= yyvsp
[-4].lineno
;
3232 position_after_white_space (); ;
3235 #line 1677 "c-parse.y"
3238 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3239 /* See comment in `while' alternative, above. */
3241 expand_start_loop_continue_elsewhere (1);
3242 position_after_white_space (); ;
3245 #line 1685 "c-parse.y"
3246 { expand_loop_continue_here (); ;
3249 #line 1689 "c-parse.y"
3250 { yyval
.filename
= input_filename
; ;
3253 #line 1693 "c-parse.y"
3254 { yyval
.lineno
= lineno
; ;
3257 #line 1698 "c-parse.y"
3261 #line 1703 "c-parse.y"
3265 #line 1708 "c-parse.y"
3266 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3269 #line 1713 "c-parse.y"
3270 { yyval
.ends_in_label
= 0; ;
3273 #line 1715 "c-parse.y"
3274 { yyval
.ends_in_label
= 1; ;
3277 #line 1721 "c-parse.y"
3281 #line 1724 "c-parse.y"
3283 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3284 /* It appears that this should not be done--that a non-lvalue array
3285 shouldn't get an error if the value isn't used.
3286 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3287 if it appears as a top-level expression,
3288 but says nothing about non-lvalue arrays. */
3290 /* Call default_conversion to get an error
3291 on referring to a register array if pedantic. */
3292 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3293 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3294 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3296 iterator_expand (yyvsp
[-1].ttype
);
3297 clear_momentary (); ;
3300 #line 1741 "c-parse.y"
3301 { c_expand_start_else ();
3302 yyvsp
[-1].itype
= stmt_count
;
3303 position_after_white_space (); ;
3306 #line 1745 "c-parse.y"
3307 { c_expand_end_cond ();
3308 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3309 warning ("empty body in an else-statement"); ;
3312 #line 1749 "c-parse.y"
3313 { c_expand_end_cond ();
3314 /* This warning is here instead of in simple_if, because we
3315 do not want a warning if an empty if is followed by an
3316 else statement. Increment stmt_count so we don't
3317 give a second error if this is a nested `if'. */
3318 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3319 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3320 "empty body in an if-statement"); ;
3323 #line 1761 "c-parse.y"
3324 { c_expand_end_cond (); ;
3327 #line 1763 "c-parse.y"
3329 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3330 /* The emit_nop used to come before emit_line_note,
3331 but that made the nop seem like part of the preceding line.
3332 And that was confusing when the preceding line was
3333 inside of an if statement and was not really executed.
3334 I think it ought to work to put the nop after the line number.
3335 We will see. --rms, July 15, 1991. */
3339 #line 1773 "c-parse.y"
3340 { /* Don't start the loop till we have succeeded
3341 in parsing the end test. This is to make sure
3342 that we end every loop we start. */
3343 expand_start_loop (1);
3344 emit_line_note (input_filename
, lineno
);
3345 expand_exit_loop_if_false (NULL_PTR
,
3346 truthvalue_conversion (yyvsp
[-1].ttype
));
3347 position_after_white_space (); ;
3350 #line 1782 "c-parse.y"
3351 { expand_end_loop (); ;
3354 #line 1785 "c-parse.y"
3355 { emit_line_note (input_filename
, lineno
);
3356 expand_exit_loop_if_false (NULL_PTR
,
3357 truthvalue_conversion (yyvsp
[-2].ttype
));
3359 clear_momentary (); ;
3362 #line 1792 "c-parse.y"
3363 { expand_end_loop ();
3364 clear_momentary (); ;
3367 #line 1796 "c-parse.y"
3369 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3370 /* See comment in `while' alternative, above. */
3372 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3373 /* Next step is to call expand_start_loop_continue_elsewhere,
3374 but wait till after we parse the entire for (...).
3375 Otherwise, invalid input might cause us to call that
3376 fn without calling expand_end_loop. */
3380 #line 1808 "c-parse.y"
3381 { yyvsp
[0].lineno
= lineno
;
3382 yyval
.filename
= input_filename
; ;
3385 #line 1811 "c-parse.y"
3387 /* Start the loop. Doing this after parsing
3388 all the expressions ensures we will end the loop. */
3389 expand_start_loop_continue_elsewhere (1);
3390 /* Emit the end-test, with a line number. */
3391 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3392 if (yyvsp
[-4].ttype
)
3393 expand_exit_loop_if_false (NULL_PTR
,
3394 truthvalue_conversion (yyvsp
[-4].ttype
));
3395 /* Don't let the tree nodes for $9 be discarded by
3396 clear_momentary during the parsing of the next stmt. */
3398 yyvsp
[-3].lineno
= lineno
;
3399 yyvsp
[-2].filename
= input_filename
;
3400 position_after_white_space (); ;
3403 #line 1827 "c-parse.y"
3404 { /* Emit the increment expression, with a line number. */
3405 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3406 expand_loop_continue_here ();
3407 if (yyvsp
[-3].ttype
)
3408 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3409 if (yychar
== CONSTANT
|| yychar
== STRING
)
3410 pop_momentary_nofree ();
3413 expand_end_loop (); ;
3416 #line 1838 "c-parse.y"
3418 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3419 c_expand_start_case (yyvsp
[-1].ttype
);
3420 /* Don't let the tree nodes for $3 be discarded by
3421 clear_momentary during the parsing of the next stmt. */
3423 position_after_white_space (); ;
3426 #line 1846 "c-parse.y"
3427 { expand_end_case (yyvsp
[-3].ttype
);
3428 if (yychar
== CONSTANT
|| yychar
== STRING
)
3429 pop_momentary_nofree ();
3434 #line 1852 "c-parse.y"
3436 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3437 if ( ! expand_exit_something ())
3438 error ("break statement not within loop or switch"); ;
3441 #line 1857 "c-parse.y"
3443 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3444 if (! expand_continue_loop (NULL_PTR
))
3445 error ("continue statement not within a loop"); ;
3448 #line 1862 "c-parse.y"
3450 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3451 c_expand_return (NULL_TREE
); ;
3454 #line 1866 "c-parse.y"
3456 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3457 c_expand_return (yyvsp
[-1].ttype
); ;
3460 #line 1870 "c-parse.y"
3462 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3463 STRIP_NOPS (yyvsp
[-2].ttype
);
3464 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3465 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3466 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3467 expand_asm (yyvsp
[-2].ttype
);
3469 error ("argument of `asm' is not a constant string"); ;
3472 #line 1881 "c-parse.y"
3474 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3475 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3476 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3477 input_filename
, lineno
); ;
3480 #line 1888 "c-parse.y"
3482 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3483 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3484 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3485 input_filename
, lineno
); ;
3488 #line 1896 "c-parse.y"
3490 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3491 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3492 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3493 input_filename
, lineno
); ;
3496 #line 1902 "c-parse.y"
3499 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3500 decl
= lookup_label (yyvsp
[-1].ttype
);
3503 TREE_USED (decl
) = 1;
3509 #line 1913 "c-parse.y"
3511 pedwarn ("ANSI C forbids `goto *expr;'");
3513 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3514 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3517 #line 1928 "c-parse.y"
3519 /* The value returned by this action is */
3520 /* 1 if everything is OK */
3521 /* 0 in case of error or already bound iterator */
3524 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3525 error ("invalid `for (ITERATOR)' syntax");
3526 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3527 error ("`%s' is not an iterator",
3528 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3529 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3530 error ("`for (%s)' inside expansion of same iterator",
3531 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3535 iterator_for_loop_start (yyvsp
[-1].ttype
);
3540 #line 1949 "c-parse.y"
3542 if (yyvsp
[-1].itype
)
3543 iterator_for_loop_end (yyvsp
[-3].ttype
);
3547 #line 1984 "c-parse.y"
3548 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3550 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3554 if (value
!= error_mark_node
)
3559 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3560 pedwarn ("label must have integral type in ANSI C");
3562 success
= pushcase (value
, convert_and_check
,
3566 error ("case label not within a switch statement");
3567 else if (success
== 2)
3569 error ("duplicate case value");
3570 error_with_decl (duplicate
, "this is the first entry for that value");
3572 else if (success
== 3)
3573 warning ("case value out of range");
3574 else if (success
== 5)
3575 error ("case label within scope of cleanup or variable array");
3577 position_after_white_space (); ;
3580 #line 2015 "c-parse.y"
3581 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3582 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3584 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3587 pedwarn ("ANSI C forbids case ranges");
3590 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3593 int success
= pushcase_range (value1
, value2
,
3594 convert_and_check
, label
,
3597 error ("case label not within a switch statement");
3598 else if (success
== 2)
3600 error ("duplicate case value");
3601 error_with_decl (duplicate
, "this is the first entry for that value");
3603 else if (success
== 3)
3604 warning ("case value out of range");
3605 else if (success
== 4)
3606 warning ("empty case range");
3607 else if (success
== 5)
3608 error ("case label within scope of cleanup or variable array");
3610 position_after_white_space (); ;
3613 #line 2046 "c-parse.y"
3617 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3618 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3621 error ("default label not within a switch statement");
3622 else if (success
== 2)
3624 error ("multiple default labels in one switch");
3625 error_with_decl (duplicate
, "this is the first default label");
3627 position_after_white_space (); ;
3630 #line 2061 "c-parse.y"
3631 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3636 expand_label (label
);
3637 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3639 position_after_white_space (); ;
3642 #line 2076 "c-parse.y"
3643 { emit_line_note (input_filename
, lineno
);
3644 yyval
.ttype
= NULL_TREE
; ;
3647 #line 2079 "c-parse.y"
3648 { emit_line_note (input_filename
, lineno
); ;
3651 #line 2084 "c-parse.y"
3652 { yyval
.ttype
= NULL_TREE
; ;
3655 #line 2091 "c-parse.y"
3656 { yyval
.ttype
= NULL_TREE
; ;
3659 #line 2098 "c-parse.y"
3660 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3663 #line 2103 "c-parse.y"
3664 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3667 #line 2108 "c-parse.y"
3668 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3671 #line 2110 "c-parse.y"
3672 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3675 #line 2116 "c-parse.y"
3677 clear_parm_order ();
3678 declare_parm_level (0); ;
3681 #line 2120 "c-parse.y"
3682 { yyval
.ttype
= yyvsp
[0].ttype
;
3683 parmlist_tags_warning ();
3684 poplevel (0, 0, 0); ;
3687 #line 2128 "c-parse.y"
3690 pedwarn ("ANSI C forbids forward parameter declarations");
3691 /* Mark the forward decls as such. */
3692 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3693 TREE_ASM_WRITTEN (parm
) = 1;
3694 clear_parm_order (); ;
3697 #line 2136 "c-parse.y"
3698 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3701 #line 2138 "c-parse.y"
3702 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3705 #line 2144 "c-parse.y"
3706 { yyval
.ttype
= get_parm_info (0); ;
3709 #line 2146 "c-parse.y"
3710 { yyval
.ttype
= get_parm_info (0);
3711 /* Gcc used to allow this as an extension. However, it does
3712 not work for all targets, and thus has been disabled.
3713 Also, since func (...) and func () are indistinguishable,
3714 it caused problems with the code in expand_builtin which
3715 tries to verify that BUILT_IN_NEXT_ARG is being used
3717 error ("ANSI C requires a named argument before `...'");
3721 #line 2156 "c-parse.y"
3722 { yyval
.ttype
= get_parm_info (1); ;
3725 #line 2158 "c-parse.y"
3726 { yyval
.ttype
= get_parm_info (0); ;
3729 #line 2163 "c-parse.y"
3730 { push_parm_decl (yyvsp
[0].ttype
); ;
3733 #line 2165 "c-parse.y"
3734 { push_parm_decl (yyvsp
[0].ttype
); ;
3737 #line 2172 "c-parse.y"
3738 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3740 build_tree_list (prefix_attributes
,
3742 current_declspecs
= TREE_VALUE (declspec_stack
);
3743 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3744 declspec_stack
= TREE_CHAIN (declspec_stack
);
3745 resume_momentary (yyvsp
[-2].itype
); ;
3748 #line 2181 "c-parse.y"
3749 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3751 build_tree_list (prefix_attributes
,
3753 current_declspecs
= TREE_VALUE (declspec_stack
);
3754 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3755 declspec_stack
= TREE_CHAIN (declspec_stack
);
3756 resume_momentary (yyvsp
[-2].itype
); ;
3759 #line 2190 "c-parse.y"
3760 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3762 build_tree_list (prefix_attributes
,
3764 current_declspecs
= TREE_VALUE (declspec_stack
);
3765 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3766 declspec_stack
= TREE_CHAIN (declspec_stack
);
3767 resume_momentary (yyvsp
[-2].itype
); ;
3770 #line 2199 "c-parse.y"
3771 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3773 build_tree_list (prefix_attributes
,
3775 current_declspecs
= TREE_VALUE (declspec_stack
);
3776 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3777 declspec_stack
= TREE_CHAIN (declspec_stack
);
3778 resume_momentary (yyvsp
[-2].itype
); ;
3781 #line 2209 "c-parse.y"
3782 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3784 build_tree_list (prefix_attributes
,
3786 current_declspecs
= TREE_VALUE (declspec_stack
);
3787 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3788 declspec_stack
= TREE_CHAIN (declspec_stack
);
3789 resume_momentary (yyvsp
[-2].itype
); ;
3792 #line 2223 "c-parse.y"
3794 clear_parm_order ();
3795 declare_parm_level (1); ;
3798 #line 2227 "c-parse.y"
3799 { yyval
.ttype
= yyvsp
[0].ttype
;
3800 parmlist_tags_warning ();
3801 poplevel (0, 0, 0); ;
3804 #line 2235 "c-parse.y"
3806 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3807 if (TREE_VALUE (t
) == NULL_TREE
)
3808 error ("`...' in old-style identifier list");
3809 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3812 #line 2245 "c-parse.y"
3813 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3816 #line 2247 "c-parse.y"
3817 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3820 #line 2253 "c-parse.y"
3821 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3824 #line 2255 "c-parse.y"
3825 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3828 #line 2260 "c-parse.y"
3829 { yyval
.itype
= SAVE_WARN_FLAGS();
3831 warn_pointer_arith
= 0; ;
3834 /* the action file gets copied in in place of this dollarsign */
3835 #line 498 "/usr/cygnus/TBD-TBD/share/bison.simple"
3846 short *ssp1
= yyss
- 1;
3847 fprintf (stderr
, "state stack now");
3848 while (ssp1
!= yyssp
)
3849 fprintf (stderr
, " %d", *++ssp1
);
3850 fprintf (stderr
, "\n");
3860 yylsp
->first_line
= yylloc
.first_line
;
3861 yylsp
->first_column
= yylloc
.first_column
;
3862 yylsp
->last_line
= (yylsp
-1)->last_line
;
3863 yylsp
->last_column
= (yylsp
-1)->last_column
;
3868 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3869 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3873 /* Now "shift" the result of the reduction.
3874 Determine what state that goes to,
3875 based on the state we popped back to
3876 and the rule number reduced by. */
3880 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3881 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3882 yystate
= yytable
[yystate
];
3884 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3888 yyerrlab
: /* here on detecting error */
3891 /* If not already recovering from an error, report this error. */
3895 #ifdef YYERROR_VERBOSE
3896 yyn
= yypact
[yystate
];
3898 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3905 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3906 for (x
= (yyn
< 0 ? -yyn
: 0);
3907 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3908 if (yycheck
[x
+ yyn
] == x
)
3909 size
+= strlen(yytname
[x
]) + 15, count
++;
3910 msg
= (char *) malloc(size
+ 15);
3913 strcpy(msg
, "parse error");
3918 for (x
= (yyn
< 0 ? -yyn
: 0);
3919 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3920 if (yycheck
[x
+ yyn
] == x
)
3922 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3923 strcat(msg
, yytname
[x
]);
3932 yyerror ("parse error; also virtual memory exceeded");
3935 #endif /* YYERROR_VERBOSE */
3936 yyerror("parse error");
3940 yyerrlab1
: /* here on error raised explicitly by an action */
3942 if (yyerrstatus
== 3)
3944 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3946 /* return failure if at end of input */
3947 if (yychar
== YYEOF
)
3952 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3958 /* Else will try to reuse lookahead token
3959 after shifting the error token. */
3961 yyerrstatus
= 3; /* Each real token shifted decrements this */
3965 yyerrdefault
: /* current state does not do anything special for the error token. */
3968 /* This is wrong; only states that explicitly want error tokens
3969 should shift them. */
3970 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3971 if (yyn
) goto yydefault
;
3974 yyerrpop
: /* pop the current state because it cannot handle the error token */
3976 if (yyssp
== yyss
) YYABORT
;
3986 short *ssp1
= yyss
- 1;
3987 fprintf (stderr
, "Error: state stack now");
3988 while (ssp1
!= yyssp
)
3989 fprintf (stderr
, " %d", *++ssp1
);
3990 fprintf (stderr
, "\n");
3996 yyn
= yypact
[yystate
];
4001 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
4020 fprintf(stderr
, "Shifting error token, ");
4031 #line 2265 "c-parse.y"