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, 852, 856,
228 858, 860, 863, 865, 869, 874, 881, 887, 889, 893,
229 895, 897, 901, 904, 907, 908, 910, 912, 915, 916,
230 919, 923, 927, 930, 934, 939, 943, 946, 950, 953,
231 957, 959, 961, 964, 967, 968, 970, 973, 974, 975,
232 977, 979, 982, 986, 988, 991, 993, 995, 1001, 1006,
233 1011, 1014, 1017, 1020, 1023, 1028, 1029, 1034, 1035, 1036,
234 1040, 1045, 1049, 1051, 1053, 1055, 1057, 1060, 1061, 1066,
235 1068, 1072, 1073, 1074, 1082, 1088, 1091, 1092, 1093, 1094,
236 1107, 1108, 1115, 1118, 1121, 1124, 1128, 1135, 1144, 1155,
237 1168, 1172, 1177, 1179, 1181, 1182, 1189, 1193, 1199, 1202,
238 1206, 1207, 1209, 1210, 1212, 1213, 1215, 1217, 1221, 1226,
239 1228, 1232, 1233, 1236, 1239, 1240, 1245, 1248, 1249, 1251,
240 1253, 1257, 1259, 1263, 1268, 1273, 1278, 1283, 1288, 1289,
241 1292, 1294, 1297, 1299, 1303, 1305, 1309
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, 123, 208, 209, 143,
330 0, 188, 123, 182, 0, 188, 0, 1, 0, 243,
331 181, 0, 183, 0, 182, 83, 183, 0, 208, 209,
332 165, 143, 0, 208, 209, 165, 40, 109, 143, 0,
333 208, 209, 40, 109, 143, 0, 185, 0, 184, 83,
334 185, 0, 1, 0, 99, 0, 99, 38, 109, 0,
335 132, 187, 0, 188, 187, 0, 0, 190, 0, 7,
336 0, 188, 7, 0, 0, 189, 7, 0, 61, 190,
337 78, 0, 52, 189, 190, 0, 52, 189, 0, 190,
338 61, 231, 0, 190, 62, 101, 85, 0, 190, 62,
339 85, 0, 61, 231, 0, 62, 101, 85, 0, 62,
340 85, 0, 144, 124, 190, 0, 192, 0, 211, 0,
341 192, 211, 0, 192, 194, 0, 0, 191, 0, 1,
342 79, 0, 0, 0, 197, 0, 198, 0, 197, 198,
343 0, 32, 242, 79, 0, 203, 0, 1, 203, 0,
344 84, 0, 80, 0, 195, 196, 122, 193, 80, 0,
345 195, 196, 1, 80, 0, 195, 196, 191, 80, 0,
346 61, 84, 0, 200, 201, 0, 205, 210, 0, 205,
347 1, 0, 15, 61, 101, 78, 0, 0, 18, 207,
348 210, 17, 0, 0, 0, 208, 209, 213, 0, 208,
349 209, 224, 210, 0, 208, 209, 212, 0, 213, 0,
350 224, 0, 203, 0, 221, 0, 101, 79, 0, 0,
351 204, 16, 214, 210, 0, 204, 0, 204, 16, 1,
352 0, 0, 0, 17, 215, 61, 101, 78, 216, 210,
353 0, 206, 61, 101, 78, 79, 0, 206, 1, 0,
354 0, 0, 0, 19, 61, 226, 79, 217, 226, 79,
355 218, 226, 78, 219, 210, 0, 0, 20, 61, 101,
356 78, 220, 210, 0, 23, 79, 0, 24, 79, 0,
357 25, 79, 0, 25, 101, 79, 0, 27, 225, 61,
358 101, 78, 79, 0, 27, 225, 61, 101, 40, 227,
359 78, 79, 0, 27, 225, 61, 101, 40, 227, 40,
360 227, 78, 79, 0, 27, 225, 61, 101, 40, 227,
361 40, 227, 40, 230, 78, 79, 0, 26, 99, 79,
362 0, 26, 52, 101, 79, 0, 79, 0, 222, 0,
363 0, 19, 61, 115, 78, 223, 210, 0, 21, 109,
364 40, 0, 21, 109, 10, 109, 40, 0, 22, 40,
365 0, 99, 40, 143, 0, 0, 7, 0, 0, 101,
366 0, 0, 228, 0, 229, 0, 228, 83, 229, 0,
367 9, 61, 101, 78, 0, 116, 0, 230, 83, 116,
368 0, 0, 232, 233, 0, 235, 78, 0, 0, 236,
369 79, 234, 233, 0, 1, 78, 0, 0, 10, 0,
370 236, 0, 236, 83, 10, 0, 237, 0, 236, 83,
371 237, 0, 126, 123, 167, 143, 0, 126, 123, 168,
372 143, 0, 126, 123, 187, 143, 0, 130, 123, 168,
373 143, 0, 130, 123, 187, 143, 0, 0, 239, 240,
374 0, 233, 0, 241, 78, 0, 3, 0, 241, 83,
375 3, 0, 99, 0, 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, 1424, 1430,
409 1435, 1437, 1442, 1444, 1448, 1452, 1456, 1466, 1468, 1473,
410 1478, 1481, 1485, 1488, 1492, 1495, 1498, 1501, 1505, 1508,
411 1512, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1534,
412 1542, 1550, 1552, 1554, 1558, 1560, 1563, 1566, 1577, 1579,
413 1584, 1586, 1589, 1603, 1606, 1609, 1611, 1613, 1621, 1629,
414 1639, 1657, 1662, 1667, 1670, 1684, 1693, 1697, 1701, 1705,
415 1711, 1715, 1720, 1723, 1728, 1731, 1732, 1749, 1754, 1757,
416 1769, 1771, 1781, 1791, 1792, 1800, 1803, 1815, 1819, 1836,
417 1846, 1855, 1860, 1865, 1870, 1874, 1878, 1889, 1896, 1903,
418 1910, 1921, 1927, 1930, 1935, 1958, 1992, 2023, 2054, 2069,
419 2083, 2087, 2091, 2094, 2099, 2101, 2104, 2106, 2110, 2115,
420 2118, 2124, 2129, 2134, 2136, 2145, 2146, 2152, 2154, 2164,
421 2166, 2170, 2173, 2179, 2189, 2198, 2207, 2217, 2231, 2236,
422 2241, 2243, 2252, 2255, 2260, 2263, 2267
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, 5, 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, 329, 171, 171,
597 282, 279, 171, 0, 0, 0, 81, 84, 313, 0,
598 319, 118, 117, 306, 0, 320, 304, 329, 303, 0,
599 295, 180, 0, 182, 230, 289, 382, 120, 171, 171,
600 171, 289, 120, 171, 171, 0, 391, 393, 404, 315,
601 322, 112, 0, 113, 0, 136, 134, 190, 188, 187,
602 169, 21, 0, 25, 328, 171, 0, 246, 250, 256,
603 171, 56, 203, 87, 0, 0, 200, 0, 202, 0,
604 258, 193, 199, 0, 0, 0, 406, 318, 0, 153,
605 0, 342, 326, 0, 0, 0, 0, 0, 0, 0,
606 0, 371, 363, 0, 0, 114, 119, 119, 335, 340,
607 0, 0, 332, 333, 336, 364, 334, 0, 0, 293,
608 0, 399, 0, 394, 395, 396, 293, 0, 397, 398,
609 386, 0, 0, 163, 135, 138, 137, 0, 166, 274,
610 0, 268, 120, 171, 254, 206, 0, 0, 197, 62,
611 0, 192, 0, 205, 196, 82, 0, 0, 328, 373,
612 0, 0, 369, 353, 354, 355, 0, 0, 0, 372,
613 0, 171, 337, 125, 0, 126, 0, 0, 324, 329,
614 323, 346, 0, 127, 181, 228, 229, 224, 0, 227,
615 0, 110, 111, 0, 171, 0, 275, 0, 208, 0,
616 0, 194, 195, 0, 0, 0, 374, 45, 0, 0,
617 0, 367, 356, 0, 361, 0, 370, 0, 123, 209,
618 0, 124, 212, 341, 328, 0, 0, 225, 226, 189,
619 277, 171, 0, 201, 198, 325, 0, 327, 365, 347,
620 351, 0, 362, 0, 121, 0, 122, 0, 339, 330,
621 328, 0, 276, 207, 343, 328, 373, 328, 368, 375,
622 0, 210, 213, 331, 345, 328, 366, 0, 352, 0,
623 0, 376, 377, 357, 0, 0, 344, 348, 0, 375,
624 0, 0, 211, 214, 373, 0, 0, 358, 378, 0,
625 379, 0, 0, 349, 380, 0, 359, 328, 0, 0,
626 350, 360, 381, 0, 0, 0
629 static const short yydefgoto
[] = { 704,
630 1, 2, 3, 17, 18, 19, 231, 400, 237, 403,
631 114, 319, 478, 86, 148, 281, 88, 89, 90, 91,
632 92, 416, 93, 266, 265, 263, 486, 264, 94, 95,
633 218, 219, 220, 395, 361, 362, 20, 229, 506, 308,
634 57, 396, 457, 309, 23, 100, 193, 24, 131, 119,
635 44, 115, 120, 463, 45, 399, 223, 224, 26, 202,
636 203, 204, 461, 538, 480, 481, 482, 601, 483, 548,
637 484, 485, 619, 646, 675, 622, 648, 676, 209, 123,
638 439, 124, 27, 28, 29, 30, 245, 247, 252, 139,
639 552, 345, 134, 135, 242, 404, 405, 250, 251, 102,
640 191, 103, 105, 192, 363, 364, 425, 221, 183, 286,
641 287, 288, 392, 393, 184, 96, 394, 510, 511, 512,
642 559, 580, 323, 581, 367, 513, 514, 625, 558, 666,
643 657, 685, 698, 658, 515, 516, 656, 517, 571, 609,
644 671, 672, 673, 696, 292, 293, 310, 446, 311, 312,
645 313, 212, 213, 314, 315, 359, 97
648 static const short yypact
[] = { 74,
649 77, 2389, 2389, 126,-32768,-32768,-32768,-32768, 73, 73,
650 73, 84, 88, 98,-32768,-32768,-32768,-32768,-32768, 361,
651 35, 1677, 248,-32768, 73,-32768, 55, 76, 91,-32768,
652 2389,-32768,-32768,-32768, 73, 73, 73, 2205, 2115, 111,
653 -32768,-32768, 361, 65,-32768, 73, 1485,-32768, 629,-32768,
654 361, 248,-32768, 73,-32768,-32768, 329,-32768,-32768,-32768,
655 -32768, 44,-32768, 106,-32768, 134,-32768,-32768,-32768,-32768,
656 -32768,-32768, 2205, 2205, 121, 426,-32768,-32768,-32768, 2205,
657 -32768,-32768, 732,-32768,-32768, 2205, 163, 180,-32768, 2240,
658 2295,-32768, 2520, 656, 235, 820, 2205,-32768, 187, 206,
659 -32768, 222, 381, 545, 292, 219,-32768, 629, 361,-32768,
660 241,-32768, 1521, 648, 73,-32768,-32768, 629, 114,-32768,
661 73, 319, 444, 451, 151, 1513, 329,-32768,-32768,-32768,
662 -32768, 73,-32768, 227, 483,-32768, 234,-32768, 552,-32768,
663 -32768,-32768, 2205,-32768,-32768, 249,-32768, 252, 259,-32768,
664 261, 2205, 732,-32768, 732,-32768, 2205, 2205, 311,-32768,
665 -32768, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
666 2205, 2205, 2205,-32768,-32768, 426, 426, 2205, 2205,-32768,
667 283,-32768, 358, 321,-32768,-32768,-32768, 206, 1576, 73,
668 -32768, 463, 457,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
669 -32768, 125,-32768, 354,-32768, 451,-32768,-32768, 393, 451,
670 423,-32768, 1043, 1614,-32768, 349, 360,-32768, 595, 66,
671 -32768,-32768, 403, 73, 614, 267,-32768, 629, 629,-32768,
672 648, 73,-32768, 1669,-32768,-32768, 648, 73,-32768,-32768,
673 -32768, 365, 233, 1209,-32768, 73,-32768,-32768, 410, 373,
674 -32768, 552, 2455,-32768,-32768, 2000,-32768, 2520, 387, 389,
675 2520, 2520, 2205, 435, 2205, 2205, 2377, 2085, 2437, 1081,
676 1090, 718, 718, 429, 429,-32768,-32768,-32768,-32768,-32768,
677 408, 180, 406,-32768, 426, 984, 358,-32768,-32768, 242,
678 396,-32768, 790,-32768, 409, 206,-32768, 1707,-32768, 457,
679 420, 545, 2330, 53, 422,-32768,-32768,-32768, 1917,-32768,
680 438, 195,-32768,-32768, 137,-32768,-32768,-32768, 46,-32768,
681 -32768,-32768, 884,-32768, 444,-32768,-32768, 444,-32768, 450,
682 -32768,-32768, 433,-32768,-32768,-32768,-32768,-32768,-32768, 427,
683 -32768, 447, 2205, 426, 456, 373, 966,-32768,-32768,-32768,
684 -32768, 491, 2205, 2265, 2174,-32768,-32768,-32768, 210, 460,
685 902, 464, 480, 1066,-32768,-32768,-32768,-32768, 463,-32768,
686 -32768,-32768, 463,-32768,-32768, 488,-32768,-32768, 143, 501,
687 -32768,-32768, 224, 161,-32768,-32768, 936,-32768, 578, 503,
688 -32768,-32768, 517,-32768,-32768, 525, 172,-32768, 669, 46,
689 -32768,-32768, 46, 528,-32768,-32768, 528,-32768, 73, 73,
690 2520,-32768, 73, 533, 536, 1265,-32768, 1907,-32768, 426,
691 -32768,-32768,-32768,-32768, 540,-32768,-32768,-32768,-32768, 1883,
692 -32768,-32768, 2205,-32768,-32768,-32768, 161, 73, 208, 247,
693 73,-32768, 73, 247, 73, 790,-32768,-32768,-32768,-32768,
694 -32768,-32768, 629,-32768, 361,-32768, 679,-32768,-32768, 2520,
695 -32768,-32768, 669,-32768,-32768, 582, 582,-32768,-32768,-32768,
696 73,-32768,-32768, 588, 426, 2205,-32768, 591, 2520, 555,
697 553,-32768,-32768, 150, 1389, 2205,-32768,-32768, 1965, 598,
698 579,-32768,-32768, 581, 584, 2205, 606, 569, 571, 2150,
699 82, 650,-32768, 618, 585,-32768, 586, 1770,-32768, 647,
700 1148, 59,-32768,-32768,-32768,-32768,-32768, 2059, 223, 554,
701 224,-32768, 1762,-32768,-32768,-32768, 398, 161,-32768,-32768,
702 -32768, 317, 325, 75, 679,-32768,-32768, 1265,-32768,-32768,
703 2205,-32768, 67, 58,-32768,-32768, 2428, 1265,-32768,-32768,
704 1327,-32768, 1427,-32768,-32768, 1907, 2205, 607,-32768, 2205,
705 2205, 1826,-32768,-32768,-32768,-32768, 590, 2205, 592,-32768,
706 612, 73,-32768,-32768, 629,-32768, 361, 1230,-32768,-32768,
707 -32768,-32768, 2205,-32768,-32768, 504, 504,-32768, 1800,-32768,
708 597,-32768,-32768, 587, 2480, 2205,-32768, 2205,-32768, 603,
709 1427,-32768,-32768, 610, 2205, 672,-32768, 515, 615, 617,
710 2205,-32768,-32768, 620,-32768, 2205,-32768, 327,-32768, 205,
711 335,-32768, 1075,-32768,-32768, 1965, 623,-32768,-32768,-32768,
712 -32768, 2480, 2410,-32768,-32768,-32768, 627,-32768,-32768,-32768,
713 -32768, 2502,-32768, 29,-32768, 648,-32768, 648,-32768,-32768,
714 -32768, 630,-32768,-32768,-32768,-32768, 2205,-32768,-32768, 697,
715 631,-32768,-32768,-32768,-32768,-32768,-32768, 643,-32768, 662,
716 43, 625,-32768,-32768, 503, 503,-32768,-32768, 2205, 697,
717 645, 697,-32768,-32768, 2205, 649, 49,-32768,-32768, 653,
718 -32768, 423, 655,-32768, 235, 289,-32768,-32768, 658, 423,
719 -32768,-32768, 235, 728, 742,-32768
722 static const short yypgoto
[] = {-32768,
723 -32768,-32768,-32768, 93,-32768,-32768,-32768,-32768,-32768,-32768,
724 -32768,-32768, -23,-32768, -38, 445, -137, 478,-32768,-32768,
725 -57,-32768, 211,-32768,-32768,-32768,-32768,-32768, 194, -199,
726 -193, 527,-32768,-32768, 394,-32768, 30, -3, 237, 17,
727 705,-32768, 320, 24, -4, -89, 577, 39, -165, -417,
728 -43, -100, -59,-32768,-32768,-32768, 185, 62, -22,-32768,
729 473,-32768, 315,-32768, -430,-32768, 228,-32768, -428,-32768,
730 -32768, 297,-32768,-32768,-32768,-32768,-32768,-32768, -42, -73,
731 71, -18,-32768,-32768,-32768, 11,-32768,-32768,-32768,-32768,
732 -32768, 439, -28,-32768, 542, 449, 333, 538, 448, -49,
733 -66, -81, -86, -48, 437,-32768,-32768, -163,-32768,-32768,
734 -32768, 514, -337,-32768, 412,-32768, -360,-32768,-32768,-32768,
735 -32768, -105, -316, -442, 442,-32768, 182,-32768,-32768,-32768,
736 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 184,-32768, -524,
737 131,-32768, 133,-32768, 522,-32768, -251,-32768,-32768,-32768,
738 443, -212,-32768,-32768,-32768,-32768, 8
745 static const short yytable
[] = { 87,
746 99, 47, 58, 62, 64, 66, 122, 125, 222, 31,
747 31, 304, 58, 58, 58, 141, 142, 52, 21, 21,
748 331, 232, 145, 58, 106, 22, 22, 299, 150, 450,
749 225, 58, 126, 149, 137, 532, 197, 329, 31, 185,
750 282, 371, 109, 334, 226, 241, 390, 21, 208, 430,
751 49, 51, 144, 243, 22, 320, 555, 59, 60, 582,
752 53, 180, 462, 25, 25, 464, -103, 133, 660, 509,
753 35, 36, 37, -1, 216, 321, -2, 101, 59, 60,
754 201, 46, 680, 54, 59, 60, 206, 14, 692, 466,
755 210, 467, 25, 59, 60, 32, 14, 596, 58, 106,
756 290, 111, 14, 259, 46, 260, 661, 594, 232, 58,
757 121, 489, 46, 48, 222, 249, 606, 600, 132, 583,
758 681, 101, 365, 67, 603, 222, 693, 136, 509, 391,
759 381, 222, 668, 568, 299, 112, 113, 133, 61, 291,
760 283, 196, 244, 107, 38, -172, -172, 108, 39, -103,
761 295, 325, 279, 280, 241, 328, 145, 618, 40, 63,
762 690, 190, 243, 41, 190, 282, 46, 58, 327, 121,
763 46, 104, 635, 101, 65, 5, 55, 7, 56, 121,
764 366, 143, 649, 9, 10, 11, 296, 553, 132, 138,
765 14, 101, 227, 101, 531, 333, 228, 422, 349, 13,
766 427, 58, 301, 133, 33, 34, 206, 302, 664, 475,
767 210, 476, 442, 667, 388, 669, 340, 140, 342, 389,
768 432, 437, 189, 677, 352, 433, 41, 435, 249, 235,
769 406, 111, 408, 108, -163, 14, 5, 14, 7, 195,
770 151, 369, -163, 180, 9, 10, 11, 373, 205, 190,
771 454, 244, 55, 14, 56, 701, 366, 187, 428, 376,
772 13, 358, 152, 626, 186, 509, 188, 189, 522, 523,
773 336, 14, 338, 386, 25, 436, 14, 387, 201, 112,
774 113, 196, 101, -163, 437, 189, 121, -163, 419, 121,
775 121, 537, 420, 187, 41, 519, 207, 415, 205, 194,
776 585, 211, 188, 189, 52, 152, 238, 112, 113, 588,
777 133, -270, -270, 246, 683, 684, 441, 445, 397, 230,
778 249, 14, -19, -19, -19, -19, 254, 233, 234, 255,
779 -19, -19, -19, 128, 129, 130, 256, 383, 384, 257,
780 9, 10, 11, 42, 326, 111, -19, 53, -163, 520,
781 -83, 190, 43, 253, 25, 527, -163, 190, 14, 408,
782 284, 398, 258, 41, 440, 444, 699, 261, 262, 537,
783 54, 700, 267, 268, 269, 270, 271, 272, 273, 274,
784 275, 276, 277, 278, 5, 101, 7, 195, 291, 285,
785 14, 505, 9, 10, 11, 592, 487, -163, 289, 228,
786 41, -163, -19, 593, 205, 645, 504, 108, 13, 228,
787 14, 533, 42, 647, 303, 58, 330, 108, 106, 111,
788 58, 43, 335, 544, 544, 453, 455, 14, 59, 60,
789 341, 70, 187, 317, 521, 456, 534, 518, 318, 528,
790 324, 188, 189, 337, 438, 443, 507, 343, 25, 442,
791 505, 546, 662, 508, 663, 344, 297, 298, 437, 189,
792 185, 567, 129, 130, 350, 504, 351, 133, 9, 10,
793 11, 369, 373, 370, 353, 354, 355, 569, 369, 373,
794 171, 172, 173, 239, 591, 356, 5, 401, 7, 98,
795 357, 25, 695, 372, 9, 10, 11, 377, 443, 382,
796 703, 206, 210, 52, 233, 234, 409, 25, 206, 210,
797 13, 112, 113, 15, 121, 385, 46, 402, 604, 232,
798 58, 607, 610, 297, 298, 518, 410, 543, 121, 614,
799 417, 145, 620, 621, 507, 413, 575, 577, 318, 421,
800 222, 508, 222, -305, 627, 133, 53, 59, 60, 198,
801 199, 200, 248, 411, 59, 60, 41, 435, 623, 426,
802 205, 240, -262, 418, 522, 523, 637, 154, 156, 54,
803 174, 175, 431, 176, 177, 178, 179, 644, 434, 25,
804 449, 438, 438, 14, 41, 116, 391, 505, 443, 443,
805 586, 587, 639, 468, 469, 217, 182, 470, -106, -106,
806 -106, -106, 504, 452, -106, 436, -106, -106, -106, 460,
807 465, 14, 471, 472, 437, 189, 41, 116, 607, 488,
808 205, 541, -106, 524, 525, 526, 479, -31, 529, 530,
809 549, 41, 116, 117, 550, 551, 121, -32, 46, 557,
810 686, 560, 118, 14, 561, 563, 607, 564, 217, 565,
811 542, -328, -328, -328, -328, 545, 570, 572, 14, -328,
812 -328, -328, 578, 573, 574, 117, 630, 605, 613, 458,
813 615, 68, 616, 460, 118, -328, 69, 70, -106, 71,
814 117, 629, 634, 536, 129, 130, 547, 636, 638, 118,
815 9, 10, 11, 640, 641, 479, 556, 72, 643, 15,
816 652, 73, 74, 75, 655, 670, 562, 682, 665, 674,
817 76, 174, 175, 77, 176, 177, 178, 179, 78, 79,
818 80, 678, 679, 688, 81, 82, 691, 705, 597, 83,
819 694, -102, 146, 697, 68, 5, 702, 7, 98, 69,
820 70, 706, 71, 9, 10, 11, 322, 380, 479, 84,
821 85, 595, 459, 608, 584, 423, 617, 127, 479, 13,
822 72, 479, 15, 479, 73, 74, 75, 169, 170, 171,
823 172, 173, 300, 76, 378, 535, 77, 539, 602, 631,
824 554, 78, 79, 80, 414, 339, 407, 81, 82, 346,
825 305, 412, 83, 5, 6, 7, 8, 540, 424, 307,
826 368, 9, 10, 11, 451, 429, 632, 650, 633, 651,
827 687, 479, 84, 85, 689, 147, 653, 13, 374, 14,
828 181, 642, -308, -308, -308, -308, -308, -308, -308, 448,
829 -308, -308, -308, -308, -308, 0, -308, -308, -308, -308,
830 -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
831 -308, -308, -308, -308, -308, 0, 0, 0, 0, 0,
832 0, -308, 0, 0, -308, 0, 0, -388, 0, -308,
833 -308, -308, 0, 0, 0, -308, -308, 0, 0, 0,
834 -308, 0, 0, 0, 0, 0, 0, 5, 6, 7,
835 8, 0, 0, 0, 0, 9, 10, 11, -308, 182,
836 -308, -308, 217, -308, -115, -115, -115, -115, -115, -115,
837 -115, 13, -115, -115, -115, -115, -115, 0, -115, -115,
838 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
839 -115, -115, -115, 0, -115, -115, -115, 0, 0, 5,
840 6, 7, 8, -115, 0, 447, -115, 9, 10, 11,
841 0, -115, -115, -115, 0, 0, 0, -115, -115, 0,
842 0, 0, -115, 13, 0, 14, 0, 0, 0, 5,
843 0, 7, 98, 0, 0, 0, 0, 9, 10, 11,
844 -115, -115, -115, -115, 360, -115, -328, -328, -328, -328,
845 -328, -328, -328, 13, -328, -328, -328, -328, -328, 0,
846 -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
847 -328, -328, -328, -328, -328, 0, -328, -328, -328, 0,
848 0, 0, 0, 0, 0, -328, 0, 0, -328, 0,
849 0, 0, 0, -328, -328, -328, 0, 0, 0, -328,
850 -328, 0, 0, 305, -328, 306, 5, 6, 7, 8,
851 0, 0, 307, 0, 9, 10, 11, 0, 0, 0,
852 0, 0, -328, 0, -328, -328, 217, -328, -328, -328,
853 13, 0, 14, -328, -328, 0, -328, 0, 0, 0,
854 -328, 0, -328, -328, -328, -328, -328, -328, -328, -328,
855 -328, -328, -328, 0, -328, 0, -328, 0, -328, -328,
856 -328, 111, 0, 0, -163, 0, 0, -328, 0, 0,
857 -328, 0, -163, 0, 0, -328, -328, -328, 0, 0,
858 -388, -328, -328, 0, 0, 0, -328, 166, 167, 168,
859 169, 170, 171, 172, 173, 112, 113, 167, 168, 169,
860 170, 171, 172, 173, -328, -301, -328, -328, 579, -328,
861 -328, -328, 0, -163, 0, -328, -328, -163, -328, 0,
862 0, 0, -328, 0, -328, -328, -328, -328, -328, -328,
863 -328, -328, -328, -328, -328, 0, -328, 0, -328, 0,
864 -328, -328, -328, 0, 0, 0, 0, 0, 0, -328,
865 0, 0, -328, 0, 0, 0, 0, -328, -328, -328,
866 0, 0, 0, -328, -328, 0, 0, 0, -328, 239,
867 0, 0, 5, 0, 7, 98, 0, 0, 0, 0,
868 9, 10, 11, 0, 0, 0, -328, 0, -328, -328,
869 624, -328, -338, -338, 0, 0, 13, -338, -338, 15,
870 -338, 0, 0, 0, -338, 0, -338, -338, -338, -338,
871 -338, -338, -338, -338, -338, -338, -338, 0, -338, 0,
872 -338, 0, -338, -338, -338, 473, 0, 474, 60, 0,
873 0, -338, 69, 70, -338, 71, 0, 0, 0, -338,
874 -338, -338, 0, 0, 0, -338, -338, 0, 0, 0,
875 -338, 0, 0, 72, 0, 15, 0, 73, 74, 75,
876 0, 0, 0, 0, 0, 0, 76, 0, -338, 77,
877 -338, -338, 0, -338, 78, 79, 80, 0, 0, 0,
878 81, 82, 0, 0, 475, 83, 476, 473, 0, 474,
879 60, 0, 0, 0, 69, 70, 0, 71, 0, 0,
880 0, 0, 0, 0, -191, 84, 85, 0, 477, 0,
881 0, 0, 0, 0, 0, 72, 0, 15, 0, 73,
882 74, 75, 0, 0, 0, 0, 0, 0, 76, 0,
883 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
884 0, 0, 81, 82, 0, 0, 475, 83, 476, 473,
885 0, 68, 0, 0, 0, 0, 69, 70, 0, 71,
886 0, 0, 0, 0, 0, 0, -259, 84, 85, 0,
887 477, 0, 0, 0, 0, 0, 0, 72, 0, 15,
888 0, 73, 74, 75, 0, 0, -204, 473, 0, 68,
889 76, 0, 0, 77, 69, 70, 0, 71, 78, 79,
890 80, 0, 0, 0, 81, 82, 0, 0, -204, 83,
891 -204, 0, 0, 0, 0, 72, 0, 15, 0, 73,
892 74, 75, 0, 0, 0, 0, 0, 0, 76, 84,
893 85, 77, 477, 0, 0, 0, 78, 79, 80, 0,
894 0, 0, 81, 82, 0, 110, 0, 83, -27, -27,
895 -27, -27, 0, 0, 0, 0, -27, -27, -27, 0,
896 0, 0, 0, 0, 0, 0, 0, 84, 85, 0,
897 477, 111, -27, 236, -163, 0, -23, -23, -23, -23,
898 0, 0, -163, 68, -23, -23, -23, 0, 69, 70,
899 0, 71, 0, 0, 0, 0, 0, 0, 0, 111,
900 -23, 0, -163, 0, 0, 112, 113, 0, 0, 72,
901 -163, 15, 0, 73, 74, 75, 0, 0, 0, 0,
902 0, 0, 76, -163, 0, 77, 0, -163, -27, 0,
903 78, 79, 214, 112, 113, 0, 81, 82, 68, 0,
904 0, 83, 0, 69, 70, 0, 71, 0, 0, 0,
905 0, -163, 0, 0, 0, -163, -23, 0, 0, 0,
906 0, 84, 85, 0, 72, 215, 15, 0, 73, 74,
907 75, 0, 0, 0, 0, 0, 68, 76, 0, 0,
908 77, 69, 70, 0, 71, 78, 79, 80, 0, 0,
909 0, 81, 82, 0, 0, 0, 83, 0, 0, 0,
910 0, 0, 72, 0, 15, 0, 73, 74, 75, 0,
911 0, 0, 0, 0, 0, 76, 84, 85, 77, 0,
912 294, 0, 0, 78, 79, 80, 0, 0, 0, 81,
913 82, 68, 0, 0, 83, 0, 69, 70, 0, 71,
914 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
915 11, 0, 0, 0, 84, 85, 0, 72, 316, 15,
916 0, 73, 74, 75, 13, 0, 14, 0, 0, 68,
917 76, 0, 0, 77, 69, 70, 0, 71, 78, 79,
918 80, 0, 0, 0, 81, 82, 0, 0, 0, 83,
919 0, 0, 0, 0, 0, 72, 0, 15, 0, 73,
920 74, 75, 0, 0, 0, 0, 0, 0, 76, 84,
921 85, 77, 0, 332, 0, 50, 78, 79, 80, 0,
922 0, 0, 81, 82, 68, 0, 0, 83, 0, 69,
923 70, 0, 71, 5, 6, 7, 8, 0, 0, 0,
924 0, 9, 10, 11, 0, 0, 0, 84, 85, 0,
925 72, 375, 15, 0, 73, 74, 75, 13, 0, 14,
926 0, 0, 68, 76, 0, 0, 77, 69, 70, 0,
927 71, 78, 79, 589, 0, 0, 0, 81, 82, 0,
928 0, 0, 83, 0, 0, 0, 0, 0, 72, 0,
929 15, 0, 73, 74, 75, 611, 0, 0, 0, 0,
930 0, 76, 84, 85, 77, 0, 590, 0, 576, 78,
931 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
932 83, 0, 157, 158, 159, 612, 160, 161, 162, 163,
933 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
934 84, 85, 0, 0, 628, 474, 490, 6, 7, 8,
935 69, 70, 0, 71, 9, 10, 11, 491, 0, 492,
936 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
937 13, 72, 14, 15, 0, 73, 74, 75, 0, 0,
938 5, 6, 7, 8, 76, 0, 0, 77, 9, 10,
939 11, 0, 78, 79, 80, 0, 0, 0, 81, 82,
940 0, 0, 0, 83, 13, 159, 14, 160, 161, 162,
941 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
942 173, 503, 0, 84, 85, 0, 391, 474, 60, 0,
943 0, 0, 69, 70, 0, 71, 0, 0, 0, 491,
944 0, 492, 493, 494, 495, 496, 497, 498, 499, 500,
945 501, 502, 0, 72, 0, 15, 0, 73, 74, 75,
946 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
947 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
948 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
949 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
950 0, 76, 0, 503, 77, 84, 85, 0, 391, 78,
951 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
952 83, 68, 5, 6, 7, 8, 69, 70, 0, 71,
953 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
954 84, 85, 0, 348, 0, 0, 13, 72, 14, 15,
955 0, 73, 74, 75, 0, 0, 0, 0, 0, 0,
956 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
957 80, 0, 0, 0, 81, 82, 0, 68, 5, 83,
958 7, 98, 69, 70, 0, 71, 9, 10, 11, 164,
959 165, 166, 167, 168, 169, 170, 171, 172, 173, 84,
960 85, 0, 13, 72, 0, 15, 0, 73, 74, 75,
961 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
962 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
963 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
964 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
965 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
966 79, 80, 0, 0, 0, 81, 82, 68, 0, 0,
967 83, 0, 69, 70, 0, 71, 162, 163, 164, 165,
968 166, 167, 168, 169, 170, 171, 172, 173, 566, 0,
969 84, 85, 0, 72, 0, 15, 0, 73, 74, 75,
970 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
971 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
972 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
973 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
974 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
975 79, 80, 0, 0, 0, 81, 82, 68, 0, 0,
976 153, 0, 69, 70, 0, 71, 161, 162, 163, 164,
977 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
978 84, 85, 0, 72, 0, 15, 0, 73, 74, 75,
979 0, 0, 379, 0, 0, 0, 76, 69, 70, 77,
980 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
981 81, 82, 0, 0, 0, 155, 0, 0, 72, 0,
982 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
983 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
984 79, 80, 0, 0, 0, 81, 82, 0, 0, 4,
985 83, -119, 5, 6, 7, 8, 0, 0, 0, 0,
986 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
987 84, 85, 0, 0, 0, 12, 13, 0, 14, 15,
988 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
989 173, 0, 0, 0, 0, 0, 0, 598, 0, 0,
990 -119, 0, 0, 0, 0, 0, 157, 158, 159, -119,
991 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
992 170, 171, 172, 173, 157, 158, 159, 16, 160, 161,
993 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
994 172, 173, 165, 166, 167, 168, 169, 170, 171, 172,
995 173, 157, 158, 159, 654, 160, 161, 162, 163, 164,
996 165, 166, 167, 168, 169, 170, 171, 172, 173, 14,
997 0, 0, 599, 0, 0, 0, 157, 158, 159, 0,
998 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
999 170, 171, 172, 173, 0, 0, 0, 347, 157, 158,
1000 159, 659, 160, 161, 162, 163, 164, 165, 166, 167,
1001 168, 169, 170, 171, 172, 173, 157, 158, 159, 0,
1002 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1006 static const short yycheck
[] = { 38,
1007 39, 20, 25, 27, 28, 29, 49, 51, 114, 2,
1008 3, 211, 35, 36, 37, 73, 74, 22, 2, 3,
1009 233, 122, 80, 46, 43, 2, 3, 193, 86, 390,
1010 117, 54, 51, 83, 63, 453, 103, 231, 31, 97,
1011 178, 293, 46, 237, 118, 135, 1, 31, 108, 366,
1012 21, 22, 76, 135, 31, 219, 485, 3, 4, 1,
1013 22, 9, 400, 2, 3, 403, 1, 57, 40, 430,
1014 9, 10, 11, 0, 113, 10, 0, 39, 3, 4,
1015 104, 20, 40, 22, 3, 4, 105, 30, 40, 406,
1016 109, 408, 31, 3, 4, 3, 30, 40, 121, 118,
1017 187, 27, 30, 153, 43, 155, 78, 538, 209, 132,
1018 49, 428, 51, 79, 220, 139, 559, 548, 57, 61,
1019 78, 83, 286, 31, 553, 231, 78, 84, 489, 84,
1020 78, 237, 657, 52, 300, 61, 62, 127, 84, 188,
1021 179, 103, 135, 79, 61, 79, 80, 83, 61, 84,
1022 189, 225, 176, 177, 244, 229, 214, 575, 61, 84,
1023 685, 100, 244, 3, 103, 303, 105, 190, 228, 108,
1024 109, 61, 601, 135, 84, 4, 5, 6, 7, 118,
1025 286, 61, 625, 12, 13, 14, 190, 38, 127, 84,
1026 30, 153, 79, 155, 446, 234, 83, 361, 256, 28,
1027 364, 224, 78, 193, 79, 80, 225, 83, 651, 60,
1028 229, 62, 52, 656, 78, 658, 245, 84, 247, 83,
1029 78, 61, 62, 666, 263, 83, 3, 4, 252, 79,
1030 336, 27, 338, 83, 30, 30, 4, 30, 6, 7,
1031 78, 290, 38, 9, 12, 13, 14, 296, 7, 188,
1032 79, 244, 5, 30, 7, 698, 362, 52, 364, 298,
1033 28, 285, 83, 580, 78, 626, 61, 62, 61, 62,
1034 241, 30, 243, 79, 213, 52, 30, 83, 302, 61,
1035 62, 243, 244, 79, 61, 62, 225, 83, 79, 228,
1036 229, 457, 83, 52, 3, 433, 78, 347, 7, 78,
1037 78, 61, 61, 62, 309, 83, 80, 61, 62, 522,
1038 300, 79, 80, 80, 675, 676, 383, 384, 323, 1,
1039 344, 30, 4, 5, 6, 7, 78, 61, 62, 78,
1040 12, 13, 14, 5, 6, 7, 78, 308, 309, 79,
1041 12, 13, 14, 52, 78, 27, 28, 309, 30, 436,
1042 40, 290, 61, 143, 293, 442, 38, 296, 30, 465,
1043 78, 323, 152, 3, 383, 384, 78, 157, 158, 535,
1044 309, 83, 162, 163, 164, 165, 166, 167, 168, 169,
1045 170, 171, 172, 173, 4, 347, 6, 7, 437, 32,
1046 30, 430, 12, 13, 14, 79, 420, 79, 78, 83,
1047 3, 83, 84, 79, 7, 79, 430, 83, 28, 83,
1048 30, 455, 52, 79, 61, 438, 232, 83, 437, 27,
1049 443, 61, 238, 466, 467, 396, 397, 30, 3, 4,
1050 246, 9, 52, 85, 438, 397, 455, 430, 79, 443,
1051 38, 61, 62, 79, 383, 384, 430, 38, 387, 52,
1052 489, 475, 646, 430, 648, 83, 61, 62, 61, 62,
1053 518, 500, 6, 7, 78, 489, 78, 457, 12, 13,
1054 14, 520, 521, 78, 40, 265, 266, 501, 527, 528,
1055 52, 53, 54, 1, 523, 78, 4, 38, 6, 7,
1056 85, 430, 692, 85, 12, 13, 14, 78, 437, 78,
1057 700, 520, 521, 508, 61, 62, 80, 446, 527, 528,
1058 28, 61, 62, 31, 453, 78, 455, 85, 557, 620,
1059 543, 560, 561, 61, 62, 518, 80, 466, 467, 568,
1060 40, 589, 575, 577, 518, 80, 507, 508, 79, 80,
1061 646, 518, 648, 80, 583, 535, 508, 3, 4, 5,
1062 6, 7, 1, 343, 3, 4, 3, 4, 577, 80,
1063 7, 79, 80, 353, 61, 62, 605, 90, 91, 508,
1064 56, 57, 85, 59, 60, 61, 62, 616, 78, 518,
1065 3, 520, 521, 30, 3, 4, 84, 626, 527, 528,
1066 520, 521, 78, 409, 410, 1, 80, 413, 4, 5,
1067 6, 7, 626, 79, 10, 52, 12, 13, 14, 399,
1068 83, 30, 80, 78, 61, 62, 3, 4, 657, 80,
1069 7, 40, 28, 439, 440, 441, 416, 40, 444, 445,
1070 40, 3, 4, 52, 80, 83, 575, 40, 577, 61,
1071 679, 61, 61, 30, 61, 40, 685, 79, 1, 79,
1072 466, 4, 5, 6, 7, 471, 7, 40, 30, 12,
1073 13, 14, 16, 79, 79, 52, 80, 61, 79, 1,
1074 79, 3, 61, 463, 61, 28, 8, 9, 84, 11,
1075 52, 85, 80, 5, 6, 7, 476, 78, 17, 61,
1076 12, 13, 14, 79, 78, 485, 486, 29, 79, 31,
1077 78, 33, 34, 35, 78, 9, 496, 83, 79, 79,
1078 42, 56, 57, 45, 59, 60, 61, 62, 50, 51,
1079 52, 79, 61, 79, 56, 57, 78, 0, 544, 61,
1080 78, 84, 1, 79, 3, 4, 79, 6, 7, 8,
1081 9, 0, 11, 12, 13, 14, 220, 303, 538, 81,
1082 82, 541, 84, 560, 518, 362, 572, 53, 548, 28,
1083 29, 551, 31, 553, 33, 34, 35, 50, 51, 52,
1084 53, 54, 196, 42, 302, 456, 45, 463, 551, 595,
1085 484, 50, 51, 52, 346, 244, 338, 56, 57, 252,
1086 1, 344, 61, 4, 5, 6, 7, 465, 362, 10,
1087 287, 12, 13, 14, 393, 364, 596, 626, 598, 626,
1088 680, 601, 81, 82, 682, 84, 632, 28, 297, 30,
1089 1, 611, 3, 4, 5, 6, 7, 8, 9, 387,
1090 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
1091 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1092 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
1093 -1, 42, -1, -1, 45, -1, -1, 78, -1, 50,
1094 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1095 61, -1, -1, -1, -1, -1, -1, 4, 5, 6,
1096 7, -1, -1, -1, -1, 12, 13, 14, 79, 80,
1097 81, 82, 1, 84, 3, 4, 5, 6, 7, 8,
1098 9, 28, 11, 12, 13, 14, 15, -1, 17, 18,
1099 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1100 29, 30, 31, -1, 33, 34, 35, -1, -1, 4,
1101 5, 6, 7, 42, -1, 10, 45, 12, 13, 14,
1102 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1103 -1, -1, 61, 28, -1, 30, -1, -1, -1, 4,
1104 -1, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1105 79, 80, 81, 82, 1, 84, 3, 4, 5, 6,
1106 7, 8, 9, 28, 11, 12, 13, 14, 15, -1,
1107 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1108 27, 28, 29, 30, 31, -1, 33, 34, 35, -1,
1109 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1110 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1111 57, -1, -1, 1, 61, 3, 4, 5, 6, 7,
1112 -1, -1, 10, -1, 12, 13, 14, -1, -1, -1,
1113 -1, -1, 79, -1, 81, 82, 1, 84, 3, 4,
1114 28, -1, 30, 8, 9, -1, 11, -1, -1, -1,
1115 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1116 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1117 35, 27, -1, -1, 30, -1, -1, 42, -1, -1,
1118 45, -1, 38, -1, -1, 50, 51, 52, -1, -1,
1119 78, 56, 57, -1, -1, -1, 61, 47, 48, 49,
1120 50, 51, 52, 53, 54, 61, 62, 48, 49, 50,
1121 51, 52, 53, 54, 79, 80, 81, 82, 1, 84,
1122 3, 4, -1, 79, -1, 8, 9, 83, 11, -1,
1123 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1124 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1125 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1126 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1127 -1, -1, -1, 56, 57, -1, -1, -1, 61, 1,
1128 -1, -1, 4, -1, 6, 7, -1, -1, -1, -1,
1129 12, 13, 14, -1, -1, -1, 79, -1, 81, 82,
1130 1, 84, 3, 4, -1, -1, 28, 8, 9, 31,
1131 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1132 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1133 31, -1, 33, 34, 35, 1, -1, 3, 4, -1,
1134 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1135 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1136 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1137 -1, -1, -1, -1, -1, -1, 42, -1, 79, 45,
1138 81, 82, -1, 84, 50, 51, 52, -1, -1, -1,
1139 56, 57, -1, -1, 60, 61, 62, 1, -1, 3,
1140 4, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1141 -1, -1, -1, -1, 80, 81, 82, -1, 84, -1,
1142 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1143 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1144 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1145 -1, -1, 56, 57, -1, -1, 60, 61, 62, 1,
1146 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1147 -1, -1, -1, -1, -1, -1, 80, 81, 82, -1,
1148 84, -1, -1, -1, -1, -1, -1, 29, -1, 31,
1149 -1, 33, 34, 35, -1, -1, 38, 1, -1, 3,
1150 42, -1, -1, 45, 8, 9, -1, 11, 50, 51,
1151 52, -1, -1, -1, 56, 57, -1, -1, 60, 61,
1152 62, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1153 34, 35, -1, -1, -1, -1, -1, -1, 42, 81,
1154 82, 45, 84, -1, -1, -1, 50, 51, 52, -1,
1155 -1, -1, 56, 57, -1, 1, -1, 61, 4, 5,
1156 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1157 -1, -1, -1, -1, -1, -1, -1, 81, 82, -1,
1158 84, 27, 28, 1, 30, -1, 4, 5, 6, 7,
1159 -1, -1, 38, 3, 12, 13, 14, -1, 8, 9,
1160 -1, 11, -1, -1, -1, -1, -1, -1, -1, 27,
1161 28, -1, 30, -1, -1, 61, 62, -1, -1, 29,
1162 38, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1163 -1, -1, 42, 79, -1, 45, -1, 83, 84, -1,
1164 50, 51, 52, 61, 62, -1, 56, 57, 3, -1,
1165 -1, 61, -1, 8, 9, -1, 11, -1, -1, -1,
1166 -1, 79, -1, -1, -1, 83, 84, -1, -1, -1,
1167 -1, 81, 82, -1, 29, 85, 31, -1, 33, 34,
1168 35, -1, -1, -1, -1, -1, 3, 42, -1, -1,
1169 45, 8, 9, -1, 11, 50, 51, 52, -1, -1,
1170 -1, 56, 57, -1, -1, -1, 61, -1, -1, -1,
1171 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1172 -1, -1, -1, -1, -1, 42, 81, 82, 45, -1,
1173 85, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1174 57, 3, -1, -1, 61, -1, 8, 9, -1, 11,
1175 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1176 14, -1, -1, -1, 81, 82, -1, 29, 85, 31,
1177 -1, 33, 34, 35, 28, -1, 30, -1, -1, 3,
1178 42, -1, -1, 45, 8, 9, -1, 11, 50, 51,
1179 52, -1, -1, -1, 56, 57, -1, -1, -1, 61,
1180 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1181 34, 35, -1, -1, -1, -1, -1, -1, 42, 81,
1182 82, 45, -1, 85, -1, 79, 50, 51, 52, -1,
1183 -1, -1, 56, 57, 3, -1, -1, 61, -1, 8,
1184 9, -1, 11, 4, 5, 6, 7, -1, -1, -1,
1185 -1, 12, 13, 14, -1, -1, -1, 81, 82, -1,
1186 29, 85, 31, -1, 33, 34, 35, 28, -1, 30,
1187 -1, -1, 3, 42, -1, -1, 45, 8, 9, -1,
1188 11, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1189 -1, -1, 61, -1, -1, -1, -1, -1, 29, -1,
1190 31, -1, 33, 34, 35, 10, -1, -1, -1, -1,
1191 -1, 42, 81, 82, 45, -1, 85, -1, 79, 50,
1192 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1193 61, -1, 37, 38, 39, 40, 41, 42, 43, 44,
1194 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1195 81, 82, -1, -1, 85, 3, 4, 5, 6, 7,
1196 8, 9, -1, 11, 12, 13, 14, 15, -1, 17,
1197 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1198 28, 29, 30, 31, -1, 33, 34, 35, -1, -1,
1199 4, 5, 6, 7, 42, -1, -1, 45, 12, 13,
1200 14, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1201 -1, -1, -1, 61, 28, 39, 30, 41, 42, 43,
1202 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1203 54, 79, -1, 81, 82, -1, 84, 3, 4, -1,
1204 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1205 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1206 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1207 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1208 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1209 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1210 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1211 -1, 42, -1, 79, 45, 81, 82, -1, 84, 50,
1212 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1213 61, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1214 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1215 81, 82, -1, 84, -1, -1, 28, 29, 30, 31,
1216 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1217 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1218 52, -1, -1, -1, 56, 57, -1, 3, 4, 61,
1219 6, 7, 8, 9, -1, 11, 12, 13, 14, 45,
1220 46, 47, 48, 49, 50, 51, 52, 53, 54, 81,
1221 82, -1, 28, 29, -1, 31, -1, 33, 34, 35,
1222 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1223 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1224 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1225 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1226 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1227 51, 52, -1, -1, -1, 56, 57, 3, -1, -1,
1228 61, -1, 8, 9, -1, 11, 43, 44, 45, 46,
1229 47, 48, 49, 50, 51, 52, 53, 54, 79, -1,
1230 81, 82, -1, 29, -1, 31, -1, 33, 34, 35,
1231 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1232 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1233 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1234 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1235 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1236 51, 52, -1, -1, -1, 56, 57, 3, -1, -1,
1237 61, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1238 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1239 81, 82, -1, 29, -1, 31, -1, 33, 34, 35,
1240 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1241 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1242 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1243 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1244 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1245 51, 52, -1, -1, -1, 56, 57, -1, -1, 1,
1246 61, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1247 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1248 81, 82, -1, -1, -1, 27, 28, -1, 30, 31,
1249 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1250 54, -1, -1, -1, -1, -1, -1, 10, -1, -1,
1251 52, -1, -1, -1, -1, -1, 37, 38, 39, 61,
1252 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1253 51, 52, 53, 54, 37, 38, 39, 79, 41, 42,
1254 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1255 53, 54, 46, 47, 48, 49, 50, 51, 52, 53,
1256 54, 37, 38, 39, 85, 41, 42, 43, 44, 45,
1257 46, 47, 48, 49, 50, 51, 52, 53, 54, 30,
1258 -1, -1, 85, -1, -1, -1, 37, 38, 39, -1,
1259 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1260 51, 52, 53, 54, -1, -1, -1, 83, 37, 38,
1261 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1262 49, 50, 51, 52, 53, 54, 37, 38, 39, -1,
1263 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
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 /* Support for unnamed structs or unions as members of
2987 structs or unions (which is [a] useful and [b] supports
2990 pedwarn ("ANSI C doesn't support unnamed structs/unions");
2992 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
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
[-3].itype
);
3000 #line 1425 "c-parse.y"
3001 { yyval
.ttype
= yyvsp
[0].ttype
;
3002 current_declspecs
= TREE_VALUE (declspec_stack
);
3003 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3004 declspec_stack
= TREE_CHAIN (declspec_stack
);
3005 resume_momentary (yyvsp
[-1].itype
); ;
3008 #line 1431 "c-parse.y"
3010 pedwarn ("ANSI C forbids member declarations with no members");
3011 shadow_tag(yyvsp
[0].ttype
);
3012 yyval
.ttype
= NULL_TREE
; ;
3015 #line 1436 "c-parse.y"
3016 { yyval
.ttype
= NULL_TREE
; ;
3019 #line 1438 "c-parse.y"
3020 { yyval
.ttype
= yyvsp
[0].ttype
;
3021 RESTORE_WARN_FLAGS (yyvsp
[-1].itype
); ;
3024 #line 1445 "c-parse.y"
3025 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3028 #line 1450 "c-parse.y"
3029 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3030 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3033 #line 1454 "c-parse.y"
3034 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3035 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3038 #line 1457 "c-parse.y"
3039 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3040 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3043 #line 1469 "c-parse.y"
3044 { if (yyvsp
[-2].ttype
== error_mark_node
)
3045 yyval
.ttype
= yyvsp
[-2].ttype
;
3047 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3050 #line 1474 "c-parse.y"
3051 { yyval
.ttype
= error_mark_node
; ;
3054 #line 1480 "c-parse.y"
3055 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3058 #line 1482 "c-parse.y"
3059 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3062 #line 1487 "c-parse.y"
3063 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3066 #line 1489 "c-parse.y"
3067 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3070 #line 1494 "c-parse.y"
3071 { yyval
.ttype
= NULL_TREE
; ;
3074 #line 1500 "c-parse.y"
3075 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3078 #line 1502 "c-parse.y"
3079 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3082 #line 1507 "c-parse.y"
3083 { yyval
.ttype
= NULL_TREE
; ;
3086 #line 1509 "c-parse.y"
3087 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3090 #line 1514 "c-parse.y"
3091 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3094 #line 1517 "c-parse.y"
3095 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3098 #line 1519 "c-parse.y"
3099 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3102 #line 1521 "c-parse.y"
3103 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3106 #line 1523 "c-parse.y"
3107 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3110 #line 1525 "c-parse.y"
3111 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3114 #line 1527 "c-parse.y"
3115 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3118 #line 1529 "c-parse.y"
3119 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3122 #line 1531 "c-parse.y"
3123 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3126 #line 1535 "c-parse.y"
3127 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3130 #line 1544 "c-parse.y"
3132 if (pedantic
&& yyvsp
[0].ends_in_label
)
3133 pedwarn ("ANSI C forbids label at end of compound statement");
3137 #line 1553 "c-parse.y"
3138 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3141 #line 1555 "c-parse.y"
3142 { yyval
.ends_in_label
= 0; ;
3145 #line 1567 "c-parse.y"
3146 { emit_line_note (input_filename
, lineno
);
3150 expand_start_bindings (0);
3154 #line 1580 "c-parse.y"
3156 pedwarn ("ANSI C forbids label declarations"); ;
3159 #line 1591 "c-parse.y"
3161 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3163 tree label
= shadow_label (TREE_VALUE (link
));
3164 C_DECLARED_LABEL_FLAG (label
) = 1;
3165 declare_nonlocal_label (label
);
3170 #line 1605 "c-parse.y"
3174 #line 1609 "c-parse.y"
3175 { compstmt_count
++; ;
3178 #line 1612 "c-parse.y"
3179 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3182 #line 1614 "c-parse.y"
3183 { emit_line_note (input_filename
, lineno
);
3184 expand_end_bindings (getdecls (), 1, 0);
3185 yyval
.ttype
= poplevel (1, 1, 0);
3186 if (yychar
== CONSTANT
|| yychar
== STRING
)
3187 pop_momentary_nofree ();
3192 #line 1622 "c-parse.y"
3193 { emit_line_note (input_filename
, lineno
);
3194 expand_end_bindings (getdecls (), kept_level_p (), 0);
3195 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3196 if (yychar
== CONSTANT
|| yychar
== STRING
)
3197 pop_momentary_nofree ();
3202 #line 1630 "c-parse.y"
3203 { emit_line_note (input_filename
, lineno
);
3204 expand_end_bindings (getdecls (), kept_level_p (), 0);
3205 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3206 if (yychar
== CONSTANT
|| yychar
== STRING
)
3207 pop_momentary_nofree ();
3212 #line 1641 "c-parse.y"
3213 { if (current_function_decl
== 0)
3215 error ("braced-group within expression allowed only inside a function");
3218 /* We must force a BLOCK for this level
3219 so that, if it is not expanded later,
3220 there is a way to turn off the entire subtree of blocks
3221 that are contained in it. */
3223 push_iterator_stack ();
3224 push_label_level ();
3225 yyval
.ttype
= expand_start_stmt_expr ();
3230 #line 1658 "c-parse.y"
3231 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3234 #line 1672 "c-parse.y"
3235 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3236 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3238 yyval
.itype
= stmt_count
;
3239 if_stmt_file
= yyvsp
[-5].filename
;
3240 if_stmt_line
= yyvsp
[-4].lineno
;
3241 position_after_white_space (); ;
3244 #line 1686 "c-parse.y"
3247 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3248 /* See comment in `while' alternative, above. */
3250 expand_start_loop_continue_elsewhere (1);
3251 position_after_white_space (); ;
3254 #line 1694 "c-parse.y"
3255 { expand_loop_continue_here (); ;
3258 #line 1698 "c-parse.y"
3259 { yyval
.filename
= input_filename
; ;
3262 #line 1702 "c-parse.y"
3263 { yyval
.lineno
= lineno
; ;
3266 #line 1707 "c-parse.y"
3270 #line 1712 "c-parse.y"
3274 #line 1717 "c-parse.y"
3275 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3278 #line 1722 "c-parse.y"
3279 { yyval
.ends_in_label
= 0; ;
3282 #line 1724 "c-parse.y"
3283 { yyval
.ends_in_label
= 1; ;
3286 #line 1730 "c-parse.y"
3290 #line 1733 "c-parse.y"
3292 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3293 /* It appears that this should not be done--that a non-lvalue array
3294 shouldn't get an error if the value isn't used.
3295 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3296 if it appears as a top-level expression,
3297 but says nothing about non-lvalue arrays. */
3299 /* Call default_conversion to get an error
3300 on referring to a register array if pedantic. */
3301 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3302 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3303 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3305 iterator_expand (yyvsp
[-1].ttype
);
3306 clear_momentary (); ;
3309 #line 1750 "c-parse.y"
3310 { c_expand_start_else ();
3311 yyvsp
[-1].itype
= stmt_count
;
3312 position_after_white_space (); ;
3315 #line 1754 "c-parse.y"
3316 { c_expand_end_cond ();
3317 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3318 warning ("empty body in an else-statement"); ;
3321 #line 1758 "c-parse.y"
3322 { c_expand_end_cond ();
3323 /* This warning is here instead of in simple_if, because we
3324 do not want a warning if an empty if is followed by an
3325 else statement. Increment stmt_count so we don't
3326 give a second error if this is a nested `if'. */
3327 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3328 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3329 "empty body in an if-statement"); ;
3332 #line 1770 "c-parse.y"
3333 { c_expand_end_cond (); ;
3336 #line 1772 "c-parse.y"
3338 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3339 /* The emit_nop used to come before emit_line_note,
3340 but that made the nop seem like part of the preceding line.
3341 And that was confusing when the preceding line was
3342 inside of an if statement and was not really executed.
3343 I think it ought to work to put the nop after the line number.
3344 We will see. --rms, July 15, 1991. */
3348 #line 1782 "c-parse.y"
3349 { /* Don't start the loop till we have succeeded
3350 in parsing the end test. This is to make sure
3351 that we end every loop we start. */
3352 expand_start_loop (1);
3353 emit_line_note (input_filename
, lineno
);
3354 expand_exit_loop_if_false (NULL_PTR
,
3355 truthvalue_conversion (yyvsp
[-1].ttype
));
3356 position_after_white_space (); ;
3359 #line 1791 "c-parse.y"
3360 { expand_end_loop (); ;
3363 #line 1794 "c-parse.y"
3364 { emit_line_note (input_filename
, lineno
);
3365 expand_exit_loop_if_false (NULL_PTR
,
3366 truthvalue_conversion (yyvsp
[-2].ttype
));
3368 clear_momentary (); ;
3371 #line 1801 "c-parse.y"
3372 { expand_end_loop ();
3373 clear_momentary (); ;
3376 #line 1805 "c-parse.y"
3378 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3379 /* See comment in `while' alternative, above. */
3381 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3382 /* Next step is to call expand_start_loop_continue_elsewhere,
3383 but wait till after we parse the entire for (...).
3384 Otherwise, invalid input might cause us to call that
3385 fn without calling expand_end_loop. */
3389 #line 1817 "c-parse.y"
3390 { yyvsp
[0].lineno
= lineno
;
3391 yyval
.filename
= input_filename
; ;
3394 #line 1820 "c-parse.y"
3396 /* Start the loop. Doing this after parsing
3397 all the expressions ensures we will end the loop. */
3398 expand_start_loop_continue_elsewhere (1);
3399 /* Emit the end-test, with a line number. */
3400 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3401 if (yyvsp
[-4].ttype
)
3402 expand_exit_loop_if_false (NULL_PTR
,
3403 truthvalue_conversion (yyvsp
[-4].ttype
));
3404 /* Don't let the tree nodes for $9 be discarded by
3405 clear_momentary during the parsing of the next stmt. */
3407 yyvsp
[-3].lineno
= lineno
;
3408 yyvsp
[-2].filename
= input_filename
;
3409 position_after_white_space (); ;
3412 #line 1836 "c-parse.y"
3413 { /* Emit the increment expression, with a line number. */
3414 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3415 expand_loop_continue_here ();
3416 if (yyvsp
[-3].ttype
)
3417 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3418 if (yychar
== CONSTANT
|| yychar
== STRING
)
3419 pop_momentary_nofree ();
3422 expand_end_loop (); ;
3425 #line 1847 "c-parse.y"
3427 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3428 c_expand_start_case (yyvsp
[-1].ttype
);
3429 /* Don't let the tree nodes for $3 be discarded by
3430 clear_momentary during the parsing of the next stmt. */
3432 position_after_white_space (); ;
3435 #line 1855 "c-parse.y"
3436 { expand_end_case (yyvsp
[-3].ttype
);
3437 if (yychar
== CONSTANT
|| yychar
== STRING
)
3438 pop_momentary_nofree ();
3443 #line 1861 "c-parse.y"
3445 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3446 if ( ! expand_exit_something ())
3447 error ("break statement not within loop or switch"); ;
3450 #line 1866 "c-parse.y"
3452 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3453 if (! expand_continue_loop (NULL_PTR
))
3454 error ("continue statement not within a loop"); ;
3457 #line 1871 "c-parse.y"
3459 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3460 c_expand_return (NULL_TREE
); ;
3463 #line 1875 "c-parse.y"
3465 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3466 c_expand_return (yyvsp
[-1].ttype
); ;
3469 #line 1879 "c-parse.y"
3471 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3472 STRIP_NOPS (yyvsp
[-2].ttype
);
3473 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3474 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3475 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3476 expand_asm (yyvsp
[-2].ttype
);
3478 error ("argument of `asm' is not a constant string"); ;
3481 #line 1890 "c-parse.y"
3483 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3484 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3485 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3486 input_filename
, lineno
); ;
3489 #line 1897 "c-parse.y"
3491 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3492 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3493 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3494 input_filename
, lineno
); ;
3497 #line 1905 "c-parse.y"
3499 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3500 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3501 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3502 input_filename
, lineno
); ;
3505 #line 1911 "c-parse.y"
3508 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3509 decl
= lookup_label (yyvsp
[-1].ttype
);
3512 TREE_USED (decl
) = 1;
3518 #line 1922 "c-parse.y"
3520 pedwarn ("ANSI C forbids `goto *expr;'");
3522 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3523 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3526 #line 1937 "c-parse.y"
3528 /* The value returned by this action is */
3529 /* 1 if everything is OK */
3530 /* 0 in case of error or already bound iterator */
3533 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3534 error ("invalid `for (ITERATOR)' syntax");
3535 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3536 error ("`%s' is not an iterator",
3537 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3538 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3539 error ("`for (%s)' inside expansion of same iterator",
3540 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3544 iterator_for_loop_start (yyvsp
[-1].ttype
);
3549 #line 1958 "c-parse.y"
3551 if (yyvsp
[-1].itype
)
3552 iterator_for_loop_end (yyvsp
[-3].ttype
);
3556 #line 1993 "c-parse.y"
3557 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3559 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3563 if (value
!= error_mark_node
)
3568 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3569 pedwarn ("label must have integral type in ANSI C");
3571 success
= pushcase (value
, convert_and_check
,
3575 error ("case label not within a switch statement");
3576 else if (success
== 2)
3578 error ("duplicate case value");
3579 error_with_decl (duplicate
, "this is the first entry for that value");
3581 else if (success
== 3)
3582 warning ("case value out of range");
3583 else if (success
== 5)
3584 error ("case label within scope of cleanup or variable array");
3586 position_after_white_space (); ;
3589 #line 2024 "c-parse.y"
3590 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3591 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3593 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3596 pedwarn ("ANSI C forbids case ranges");
3599 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3602 int success
= pushcase_range (value1
, value2
,
3603 convert_and_check
, label
,
3606 error ("case label not within a switch statement");
3607 else if (success
== 2)
3609 error ("duplicate case value");
3610 error_with_decl (duplicate
, "this is the first entry for that value");
3612 else if (success
== 3)
3613 warning ("case value out of range");
3614 else if (success
== 4)
3615 warning ("empty case range");
3616 else if (success
== 5)
3617 error ("case label within scope of cleanup or variable array");
3619 position_after_white_space (); ;
3622 #line 2055 "c-parse.y"
3626 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3627 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3630 error ("default label not within a switch statement");
3631 else if (success
== 2)
3633 error ("multiple default labels in one switch");
3634 error_with_decl (duplicate
, "this is the first default label");
3636 position_after_white_space (); ;
3639 #line 2070 "c-parse.y"
3640 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3645 expand_label (label
);
3646 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3648 position_after_white_space (); ;
3651 #line 2085 "c-parse.y"
3652 { emit_line_note (input_filename
, lineno
);
3653 yyval
.ttype
= NULL_TREE
; ;
3656 #line 2088 "c-parse.y"
3657 { emit_line_note (input_filename
, lineno
); ;
3660 #line 2093 "c-parse.y"
3661 { yyval
.ttype
= NULL_TREE
; ;
3664 #line 2100 "c-parse.y"
3665 { yyval
.ttype
= NULL_TREE
; ;
3668 #line 2107 "c-parse.y"
3669 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3672 #line 2112 "c-parse.y"
3673 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3676 #line 2117 "c-parse.y"
3677 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3680 #line 2119 "c-parse.y"
3681 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3684 #line 2125 "c-parse.y"
3686 clear_parm_order ();
3687 declare_parm_level (0); ;
3690 #line 2129 "c-parse.y"
3691 { yyval
.ttype
= yyvsp
[0].ttype
;
3692 parmlist_tags_warning ();
3693 poplevel (0, 0, 0); ;
3696 #line 2137 "c-parse.y"
3699 pedwarn ("ANSI C forbids forward parameter declarations");
3700 /* Mark the forward decls as such. */
3701 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3702 TREE_ASM_WRITTEN (parm
) = 1;
3703 clear_parm_order (); ;
3706 #line 2145 "c-parse.y"
3707 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3710 #line 2147 "c-parse.y"
3711 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3714 #line 2153 "c-parse.y"
3715 { yyval
.ttype
= get_parm_info (0); ;
3718 #line 2155 "c-parse.y"
3719 { yyval
.ttype
= get_parm_info (0);
3720 /* Gcc used to allow this as an extension. However, it does
3721 not work for all targets, and thus has been disabled.
3722 Also, since func (...) and func () are indistinguishable,
3723 it caused problems with the code in expand_builtin which
3724 tries to verify that BUILT_IN_NEXT_ARG is being used
3726 error ("ANSI C requires a named argument before `...'");
3730 #line 2165 "c-parse.y"
3731 { yyval
.ttype
= get_parm_info (1); ;
3734 #line 2167 "c-parse.y"
3735 { yyval
.ttype
= get_parm_info (0); ;
3738 #line 2172 "c-parse.y"
3739 { push_parm_decl (yyvsp
[0].ttype
); ;
3742 #line 2174 "c-parse.y"
3743 { push_parm_decl (yyvsp
[0].ttype
); ;
3746 #line 2181 "c-parse.y"
3747 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3749 build_tree_list (prefix_attributes
,
3751 current_declspecs
= TREE_VALUE (declspec_stack
);
3752 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3753 declspec_stack
= TREE_CHAIN (declspec_stack
);
3754 resume_momentary (yyvsp
[-2].itype
); ;
3757 #line 2190 "c-parse.y"
3758 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3760 build_tree_list (prefix_attributes
,
3762 current_declspecs
= TREE_VALUE (declspec_stack
);
3763 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3764 declspec_stack
= TREE_CHAIN (declspec_stack
);
3765 resume_momentary (yyvsp
[-2].itype
); ;
3768 #line 2199 "c-parse.y"
3769 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3771 build_tree_list (prefix_attributes
,
3773 current_declspecs
= TREE_VALUE (declspec_stack
);
3774 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3775 declspec_stack
= TREE_CHAIN (declspec_stack
);
3776 resume_momentary (yyvsp
[-2].itype
); ;
3779 #line 2208 "c-parse.y"
3780 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3782 build_tree_list (prefix_attributes
,
3784 current_declspecs
= TREE_VALUE (declspec_stack
);
3785 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3786 declspec_stack
= TREE_CHAIN (declspec_stack
);
3787 resume_momentary (yyvsp
[-2].itype
); ;
3790 #line 2218 "c-parse.y"
3791 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3793 build_tree_list (prefix_attributes
,
3795 current_declspecs
= TREE_VALUE (declspec_stack
);
3796 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3797 declspec_stack
= TREE_CHAIN (declspec_stack
);
3798 resume_momentary (yyvsp
[-2].itype
); ;
3801 #line 2232 "c-parse.y"
3803 clear_parm_order ();
3804 declare_parm_level (1); ;
3807 #line 2236 "c-parse.y"
3808 { yyval
.ttype
= yyvsp
[0].ttype
;
3809 parmlist_tags_warning ();
3810 poplevel (0, 0, 0); ;
3813 #line 2244 "c-parse.y"
3815 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3816 if (TREE_VALUE (t
) == NULL_TREE
)
3817 error ("`...' in old-style identifier list");
3818 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3821 #line 2254 "c-parse.y"
3822 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3825 #line 2256 "c-parse.y"
3826 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3829 #line 2262 "c-parse.y"
3830 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3833 #line 2264 "c-parse.y"
3834 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3837 #line 2269 "c-parse.y"
3838 { yyval
.itype
= SAVE_WARN_FLAGS();
3840 warn_pointer_arith
= 0; ;
3843 /* the action file gets copied in in place of this dollarsign */
3844 #line 498 "/usr/cygnus/TBD-TBD/share/bison.simple"
3855 short *ssp1
= yyss
- 1;
3856 fprintf (stderr
, "state stack now");
3857 while (ssp1
!= yyssp
)
3858 fprintf (stderr
, " %d", *++ssp1
);
3859 fprintf (stderr
, "\n");
3869 yylsp
->first_line
= yylloc
.first_line
;
3870 yylsp
->first_column
= yylloc
.first_column
;
3871 yylsp
->last_line
= (yylsp
-1)->last_line
;
3872 yylsp
->last_column
= (yylsp
-1)->last_column
;
3877 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3878 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3882 /* Now "shift" the result of the reduction.
3883 Determine what state that goes to,
3884 based on the state we popped back to
3885 and the rule number reduced by. */
3889 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3890 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3891 yystate
= yytable
[yystate
];
3893 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3897 yyerrlab
: /* here on detecting error */
3900 /* If not already recovering from an error, report this error. */
3904 #ifdef YYERROR_VERBOSE
3905 yyn
= yypact
[yystate
];
3907 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3914 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3915 for (x
= (yyn
< 0 ? -yyn
: 0);
3916 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3917 if (yycheck
[x
+ yyn
] == x
)
3918 size
+= strlen(yytname
[x
]) + 15, count
++;
3919 msg
= (char *) malloc(size
+ 15);
3922 strcpy(msg
, "parse error");
3927 for (x
= (yyn
< 0 ? -yyn
: 0);
3928 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3929 if (yycheck
[x
+ yyn
] == x
)
3931 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3932 strcat(msg
, yytname
[x
]);
3941 yyerror ("parse error; also virtual memory exceeded");
3944 #endif /* YYERROR_VERBOSE */
3945 yyerror("parse error");
3949 yyerrlab1
: /* here on error raised explicitly by an action */
3951 if (yyerrstatus
== 3)
3953 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3955 /* return failure if at end of input */
3956 if (yychar
== YYEOF
)
3961 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3967 /* Else will try to reuse lookahead token
3968 after shifting the error token. */
3970 yyerrstatus
= 3; /* Each real token shifted decrements this */
3974 yyerrdefault
: /* current state does not do anything special for the error token. */
3977 /* This is wrong; only states that explicitly want error tokens
3978 should shift them. */
3979 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3980 if (yyn
) goto yydefault
;
3983 yyerrpop
: /* pop the current state because it cannot handle the error token */
3985 if (yyssp
== yyss
) YYABORT
;
3995 short *ssp1
= yyss
- 1;
3996 fprintf (stderr
, "Error: state stack now");
3997 while (ssp1
!= yyssp
)
3998 fprintf (stderr
, " %d", *++ssp1
);
3999 fprintf (stderr
, "\n");
4005 yyn
= yypact
[yystate
];
4010 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
4029 fprintf(stderr
, "Shifting error token, ");
4040 #line 2274 "c-parse.y"