2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
31 #define ASM_KEYWORD 281
40 #define END_OF_LINE 290
45 #define ARITHCOMPARE 295
50 #define MINUSMINUS 300
51 #define HYPERUNARY 301
54 #define IMPLEMENTATION 304
64 #define OBJECTNAME 314
67 #define OBJC_STRING 317
83 #ifdef MULTIBYTE_CHARS
88 /* Since parsers are distinct for each language, put the language string
90 const char * const language_string
= "GNU C";
92 /* Like YYERROR but do call yyerror. */
93 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
95 /* Cause the `yydebug' variable to be defined. */
99 typedef union {long itype
; tree ttype
; enum tree_code code
;
100 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
101 #line 184 "c-parse.y"
103 /* Number of statements (loosely speaking) and compound statements
105 static int stmt_count
;
106 static int compstmt_count
;
108 /* Input file and line number of the end of the body of last simple_if;
109 used by the stmt-rule immediately after simple_if returns. */
110 static char *if_stmt_file
;
111 static int if_stmt_line
;
113 /* List of types and structure classes of the current declaration. */
114 static tree current_declspecs
= NULL_TREE
;
115 static tree prefix_attributes
= NULL_TREE
;
117 /* Stack of saved values of current_declspecs and prefix_attributes. */
118 static tree declspec_stack
;
120 /* 1 if we explained undeclared var errors. */
121 static int undeclared_variable_notice
;
123 /* For __extension__, save/restore the warning flags which are
124 controlled by __extension__. */
125 #define SAVE_WARN_FLAGS() \
126 build_int_2 (pedantic | (warn_pointer_arith << 1), 0)
127 #define RESTORE_WARN_FLAGS(tval) \
129 int val = TREE_INT_CST_LOW (tval); \
130 pedantic = val & 1; \
131 warn_pointer_arith = (val >> 1) & 1; \
135 /* Tell yyparse how to print a token's value, if yydebug is set. */
137 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
138 extern void yyprint
PARAMS ((FILE *, int, YYSTYPE
));
140 /* Add GC roots for variables local to this file. */
144 ggc_add_tree_root (&declspec_stack
, 1);
145 ggc_add_tree_root (¤t_declspecs
, 1);
146 ggc_add_tree_root (&prefix_attributes
, 1);
160 #define YYFLAG -32768
163 #define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 244)
165 static const char yytranslate
[] = { 0,
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, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 82, 2, 2, 2, 54, 45, 2, 61,
170 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
172 38, 2, 39, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 62, 2, 85, 44, 2, 2, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 84, 43, 80, 81, 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, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
192 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
193 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
194 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
195 37, 41, 42, 46, 47, 48, 49, 55, 56, 57,
196 58, 59, 63, 64, 65, 66, 67, 68, 69, 70,
197 71, 72, 73, 74, 75, 76, 77
201 static const short yyprhs
[] = { 0,
202 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
203 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
204 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
205 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
206 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
207 142, 147, 150, 155, 158, 161, 168, 170, 172, 174,
208 179, 180, 188, 190, 194, 198, 202, 206, 210, 214,
209 218, 222, 226, 230, 234, 238, 239, 244, 245, 250,
210 251, 252, 260, 261, 267, 271, 275, 277, 279, 281,
211 285, 289, 293, 297, 302, 307, 311, 315, 318, 321,
212 323, 326, 327, 329, 332, 336, 338, 340, 343, 346,
213 351, 356, 359, 362, 366, 368, 370, 373, 376, 377,
214 378, 383, 388, 392, 396, 399, 402, 405, 408, 412,
215 413, 416, 419, 422, 425, 429, 430, 433, 436, 438,
216 440, 443, 446, 448, 450, 453, 456, 459, 463, 464,
217 467, 469, 471, 473, 478, 483, 485, 487, 489, 491,
218 495, 497, 501, 502, 507, 508, 515, 519, 520, 527,
219 531, 532, 534, 536, 539, 546, 548, 552, 553, 555,
220 560, 567, 572, 574, 576, 578, 580, 582, 583, 588,
221 590, 591, 594, 596, 600, 604, 607, 608, 613, 615,
222 616, 621, 623, 625, 627, 630, 633, 639, 643, 644,
223 645, 651, 652, 653, 659, 661, 663, 667, 671, 676,
224 680, 684, 688, 690, 694, 699, 704, 708, 712, 716,
225 718, 722, 726, 730, 735, 740, 744, 748, 750, 752,
226 755, 757, 760, 762, 765, 766, 774, 780, 783, 784,
227 792, 798, 801, 802, 811, 812, 820, 823, 824, 826,
228 827, 829, 831, 834, 835, 839, 842, 846, 852, 856,
229 858, 860, 863, 865, 869, 874, 881, 887, 889, 893,
230 895, 897, 901, 904, 907, 908, 910, 912, 915, 916,
231 919, 923, 927, 930, 934, 939, 943, 946, 950, 953,
232 957, 959, 961, 964, 967, 968, 970, 973, 974, 975,
233 977, 979, 982, 986, 988, 991, 993, 995, 1001, 1006,
234 1011, 1014, 1017, 1020, 1023, 1028, 1029, 1034, 1035, 1036,
235 1040, 1045, 1049, 1051, 1053, 1055, 1057, 1060, 1061, 1066,
236 1068, 1072, 1073, 1074, 1082, 1088, 1091, 1092, 1093, 1094,
237 1107, 1108, 1115, 1118, 1121, 1124, 1128, 1135, 1144, 1155,
238 1168, 1172, 1177, 1179, 1181, 1182, 1189, 1193, 1199, 1202,
239 1206, 1207, 1209, 1210, 1212, 1213, 1215, 1217, 1221, 1226,
240 1228, 1232, 1233, 1236, 1239, 1240, 1245, 1248, 1249, 1251,
241 1253, 1257, 1259, 1263, 1268, 1273, 1278, 1283, 1288, 1289,
242 1292, 1294, 1297, 1299, 1303, 1305, 1309
245 static const short yyrhs
[] = { -1,
246 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
247 0, 92, 0, 91, 0, 27, 61, 101, 78, 79,
248 0, 243, 90, 0, 123, 137, 79, 0, 130, 123,
249 137, 79, 0, 126, 123, 136, 79, 0, 130, 79,
250 0, 126, 79, 0, 1, 79, 0, 1, 80, 0,
251 79, 0, 0, 0, 126, 123, 165, 93, 117, 94,
252 199, 0, 126, 123, 165, 1, 0, 0, 0, 130,
253 123, 168, 95, 117, 96, 199, 0, 130, 123, 168,
254 1, 0, 0, 0, 123, 168, 97, 117, 98, 199,
255 0, 123, 168, 1, 0, 3, 0, 4, 0, 45,
256 0, 51, 0, 50, 0, 56, 0, 57, 0, 81,
257 0, 82, 0, 103, 0, 0, 103, 0, 109, 0,
258 103, 83, 109, 0, 115, 0, 52, 107, 0, 243,
259 107, 0, 100, 107, 0, 42, 99, 0, 105, 104,
260 0, 105, 61, 186, 78, 0, 106, 104, 0, 106,
261 61, 186, 78, 0, 33, 107, 0, 34, 107, 0,
262 35, 61, 109, 83, 186, 78, 0, 11, 0, 29,
263 0, 104, 0, 61, 186, 78, 107, 0, 0, 61,
264 186, 78, 84, 108, 151, 80, 0, 107, 0, 109,
265 50, 109, 0, 109, 51, 109, 0, 109, 52, 109,
266 0, 109, 53, 109, 0, 109, 54, 109, 0, 109,
267 48, 109, 0, 109, 49, 109, 0, 109, 47, 109,
268 0, 109, 46, 109, 0, 109, 45, 109, 0, 109,
269 43, 109, 0, 109, 44, 109, 0, 0, 109, 42,
270 110, 109, 0, 0, 109, 41, 111, 109, 0, 0,
271 0, 109, 39, 112, 101, 40, 113, 109, 0, 0,
272 109, 39, 114, 40, 109, 0, 109, 38, 109, 0,
273 109, 37, 109, 0, 3, 0, 8, 0, 116, 0,
274 61, 101, 78, 0, 61, 1, 78, 0, 202, 201,
275 78, 0, 202, 1, 78, 0, 115, 61, 102, 78,
276 0, 115, 62, 101, 85, 0, 115, 60, 99, 0,
277 115, 59, 99, 0, 115, 56, 0, 115, 57, 0,
278 9, 0, 116, 9, 0, 0, 119, 0, 119, 10,
279 0, 208, 209, 120, 0, 118, 0, 194, 0, 119,
280 118, 0, 118, 194, 0, 128, 123, 136, 79, 0,
281 131, 123, 137, 79, 0, 128, 79, 0, 131, 79,
282 0, 208, 209, 125, 0, 121, 0, 194, 0, 122,
283 121, 0, 121, 194, 0, 0, 0, 126, 123, 136,
284 79, 0, 130, 123, 137, 79, 0, 126, 123, 159,
285 0, 130, 123, 162, 0, 126, 79, 0, 130, 79,
286 0, 243, 125, 0, 134, 127, 0, 130, 134, 127,
287 0, 0, 127, 135, 0, 127, 5, 0, 127, 144,
288 0, 134, 129, 0, 131, 134, 129, 0, 0, 129,
289 135, 0, 129, 5, 0, 131, 0, 144, 0, 130,
290 131, 0, 130, 144, 0, 7, 0, 5, 0, 131,
291 7, 0, 131, 5, 0, 134, 133, 0, 188, 134,
292 133, 0, 0, 133, 135, 0, 6, 0, 172, 0,
293 4, 0, 28, 61, 101, 78, 0, 28, 61, 186,
294 78, 0, 6, 0, 7, 0, 172, 0, 139, 0,
295 136, 83, 139, 0, 141, 0, 137, 83, 139, 0,
296 0, 27, 61, 116, 78, 0, 0, 165, 138, 143,
297 38, 140, 149, 0, 165, 138, 143, 0, 0, 168,
298 138, 143, 38, 142, 149, 0, 168, 138, 143, 0,
299 0, 144, 0, 145, 0, 144, 145, 0, 30, 61,
300 61, 146, 78, 78, 0, 147, 0, 146, 83, 147,
301 0, 0, 148, 0, 148, 61, 3, 78, 0, 148,
302 61, 3, 83, 103, 78, 0, 148, 61, 102, 78,
303 0, 99, 0, 5, 0, 6, 0, 7, 0, 109,
304 0, 0, 84, 150, 151, 80, 0, 1, 0, 0,
305 152, 177, 0, 153, 0, 152, 83, 153, 0, 157,
306 38, 155, 0, 158, 155, 0, 0, 99, 40, 154,
307 155, 0, 155, 0, 0, 84, 156, 151, 80, 0,
308 109, 0, 1, 0, 158, 0, 157, 158, 0, 60,
309 99, 0, 62, 109, 10, 109, 85, 0, 62, 109,
310 85, 0, 0, 0, 165, 160, 117, 161, 203, 0,
311 0, 0, 168, 163, 117, 164, 203, 0, 166, 0,
312 168, 0, 61, 166, 78, 0, 166, 61, 238, 0,
313 166, 62, 101, 85, 0, 166, 62, 85, 0, 52,
314 189, 166, 0, 144, 124, 166, 0, 4, 0, 167,
315 61, 238, 0, 167, 62, 52, 85, 0, 167, 62,
316 101, 85, 0, 167, 62, 85, 0, 52, 189, 167,
317 0, 144, 124, 167, 0, 4, 0, 168, 61, 238,
318 0, 61, 168, 78, 0, 52, 189, 168, 0, 168,
319 62, 52, 85, 0, 168, 62, 101, 85, 0, 168,
320 62, 85, 0, 144, 124, 168, 0, 3, 0, 13,
321 0, 13, 144, 0, 14, 0, 14, 144, 0, 12,
322 0, 12, 144, 0, 0, 169, 99, 84, 173, 179,
323 80, 143, 0, 169, 84, 179, 80, 143, 0, 169,
324 99, 0, 0, 170, 99, 84, 174, 179, 80, 143,
325 0, 170, 84, 179, 80, 143, 0, 170, 99, 0,
326 0, 171, 99, 84, 175, 184, 178, 80, 143, 0,
327 0, 171, 84, 176, 184, 178, 80, 143, 0, 171,
328 99, 0, 0, 83, 0, 0, 83, 0, 180, 0,
329 180, 181, 0, 0, 180, 181, 79, 0, 180, 79,
330 0, 132, 123, 182, 0, 132, 123, 208, 209, 143,
331 0, 188, 123, 182, 0, 188, 0, 1, 0, 243,
332 181, 0, 183, 0, 182, 83, 183, 0, 208, 209,
333 165, 143, 0, 208, 209, 165, 40, 109, 143, 0,
334 208, 209, 40, 109, 143, 0, 185, 0, 184, 83,
335 185, 0, 1, 0, 99, 0, 99, 38, 109, 0,
336 132, 187, 0, 188, 187, 0, 0, 190, 0, 7,
337 0, 188, 7, 0, 0, 189, 7, 0, 61, 190,
338 78, 0, 52, 189, 190, 0, 52, 189, 0, 190,
339 61, 231, 0, 190, 62, 101, 85, 0, 190, 62,
340 85, 0, 61, 231, 0, 62, 101, 85, 0, 62,
341 85, 0, 144, 124, 190, 0, 192, 0, 211, 0,
342 192, 211, 0, 192, 194, 0, 0, 191, 0, 1,
343 79, 0, 0, 0, 197, 0, 198, 0, 197, 198,
344 0, 32, 242, 79, 0, 203, 0, 1, 203, 0,
345 84, 0, 80, 0, 195, 196, 122, 193, 80, 0,
346 195, 196, 1, 80, 0, 195, 196, 191, 80, 0,
347 61, 84, 0, 200, 201, 0, 205, 210, 0, 205,
348 1, 0, 15, 61, 101, 78, 0, 0, 18, 207,
349 210, 17, 0, 0, 0, 208, 209, 213, 0, 208,
350 209, 224, 210, 0, 208, 209, 212, 0, 213, 0,
351 224, 0, 203, 0, 221, 0, 101, 79, 0, 0,
352 204, 16, 214, 210, 0, 204, 0, 204, 16, 1,
353 0, 0, 0, 17, 215, 61, 101, 78, 216, 210,
354 0, 206, 61, 101, 78, 79, 0, 206, 1, 0,
355 0, 0, 0, 19, 61, 226, 79, 217, 226, 79,
356 218, 226, 78, 219, 210, 0, 0, 20, 61, 101,
357 78, 220, 210, 0, 23, 79, 0, 24, 79, 0,
358 25, 79, 0, 25, 101, 79, 0, 27, 225, 61,
359 101, 78, 79, 0, 27, 225, 61, 101, 40, 227,
360 78, 79, 0, 27, 225, 61, 101, 40, 227, 40,
361 227, 78, 79, 0, 27, 225, 61, 101, 40, 227,
362 40, 227, 40, 230, 78, 79, 0, 26, 99, 79,
363 0, 26, 52, 101, 79, 0, 79, 0, 222, 0,
364 0, 19, 61, 115, 78, 223, 210, 0, 21, 109,
365 40, 0, 21, 109, 10, 109, 40, 0, 22, 40,
366 0, 99, 40, 143, 0, 0, 7, 0, 0, 101,
367 0, 0, 228, 0, 229, 0, 228, 83, 229, 0,
368 9, 61, 101, 78, 0, 116, 0, 230, 83, 116,
369 0, 0, 232, 233, 0, 235, 78, 0, 0, 236,
370 79, 234, 233, 0, 1, 78, 0, 0, 10, 0,
371 236, 0, 236, 83, 10, 0, 237, 0, 236, 83,
372 237, 0, 126, 123, 167, 143, 0, 126, 123, 168,
373 143, 0, 126, 123, 187, 143, 0, 130, 123, 168,
374 143, 0, 130, 123, 187, 143, 0, 0, 239, 240,
375 0, 233, 0, 241, 78, 0, 3, 0, 241, 83,
376 3, 0, 99, 0, 242, 83, 99, 0, 31, 0
382 static const short yyrline
[] = { 0,
383 234, 239, 253, 255, 255, 256, 258, 260, 261, 269,
384 273, 283, 287, 291, 293, 295, 296, 297, 302, 309,
385 311, 315, 319, 325, 327, 331, 335, 341, 343, 347,
386 353, 355, 358, 360, 362, 364, 366, 368, 370, 374,
387 378, 381, 384, 387, 391, 393, 396, 399, 403, 431,
388 437, 440, 443, 446, 448, 450, 454, 458, 462, 464,
389 467, 471, 498, 500, 502, 504, 506, 508, 510, 512,
390 514, 516, 518, 520, 522, 524, 528, 530, 534, 536,
391 539, 543, 545, 552, 555, 563, 574, 673, 674, 676,
392 682, 684, 707, 716, 718, 720, 724, 730, 732, 737,
393 739, 747, 749, 750, 760, 765, 767, 768, 769, 776,
394 781, 785, 788, 796, 801, 803, 804, 805, 812, 822,
395 826, 831, 835, 839, 843, 845, 847, 856, 859, 863,
396 865, 867, 872, 876, 879, 883, 886, 888, 900, 903,
397 905, 907, 911, 915, 917, 920, 933, 936, 940, 942,
398 950, 951, 952, 956, 958, 964, 965, 966, 969, 971,
399 974, 976, 979, 982, 988, 995, 997, 1004, 1011, 1014,
400 1021, 1024, 1028, 1031, 1035, 1040, 1043, 1047, 1050, 1052,
401 1054, 1056, 1063, 1065, 1066, 1067, 1072, 1074, 1076, 1078,
402 1083, 1087, 1090, 1092, 1097, 1099, 1100, 1103, 1103, 1106,
403 1109, 1111, 1113, 1116, 1118, 1121, 1127, 1129, 1133, 1147,
404 1155, 1159, 1173, 1181, 1188, 1190, 1195, 1198, 1203, 1205,
405 1207, 1214, 1216, 1224, 1230, 1235, 1237, 1239, 1246, 1248,
406 1254, 1260, 1262, 1264, 1269, 1271, 1278, 1280, 1283, 1286,
407 1290, 1293, 1297, 1300, 1304, 1309, 1311, 1315, 1317, 1319,
408 1321, 1325, 1327, 1329, 1332, 1334, 1337, 1341, 1343, 1346,
409 1348, 1353, 1356, 1361, 1363, 1365, 1379, 1385, 1398, 1403,
410 1408, 1410, 1415, 1417, 1421, 1425, 1429, 1439, 1441, 1446,
411 1451, 1454, 1458, 1461, 1465, 1468, 1471, 1474, 1478, 1481,
412 1485, 1489, 1491, 1493, 1495, 1497, 1499, 1501, 1503, 1507,
413 1515, 1523, 1525, 1527, 1531, 1533, 1536, 1539, 1549, 1551,
414 1556, 1558, 1561, 1575, 1578, 1581, 1583, 1585, 1589, 1593,
415 1599, 1617, 1622, 1627, 1630, 1644, 1653, 1657, 1661, 1665,
416 1671, 1675, 1680, 1683, 1688, 1691, 1692, 1708, 1713, 1716,
417 1728, 1730, 1740, 1750, 1751, 1758, 1760, 1772, 1776, 1790,
418 1796, 1802, 1803, 1808, 1813, 1817, 1821, 1832, 1839, 1846,
419 1853, 1864, 1870, 1873, 1878, 1901, 1931, 1962, 1993, 2008,
420 2022, 2026, 2030, 2033, 2038, 2040, 2043, 2045, 2049, 2054,
421 2057, 2063, 2068, 2073, 2075, 2084, 2085, 2091, 2093, 2103,
422 2105, 2109, 2112, 2118, 2127, 2135, 2143, 2152, 2165, 2170,
423 2175, 2177, 2186, 2189, 2194, 2197, 2201
428 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
430 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
431 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
432 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
433 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
434 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
435 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
436 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
437 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
438 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
439 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
440 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
441 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
442 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
443 "@14","primary","string","old_style_parm_decls","lineno_datadecl","datadecls",
444 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
445 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
446 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
447 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
448 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
449 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
450 "initelt","@18","initval","@19","designator_list","designator","nested_function",
451 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
452 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
453 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
454 "component_decl_list2","component_decl","components","component_declarator",
455 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
456 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
457 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
458 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
459 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
460 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
461 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
462 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
463 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
464 "identifiers","identifiers_or_typenames","extension", NULL
468 static const short yyr1
[] = { 0,
469 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
470 91, 91, 91, 91, 91, 91, 91, 91, 93, 94,
471 92, 92, 95, 96, 92, 92, 97, 98, 92, 92,
472 99, 99, 100, 100, 100, 100, 100, 100, 100, 101,
473 102, 102, 103, 103, 104, 104, 104, 104, 104, 104,
474 104, 104, 104, 104, 104, 104, 105, 106, 107, 107,
475 108, 107, 109, 109, 109, 109, 109, 109, 109, 109,
476 109, 109, 109, 109, 109, 110, 109, 111, 109, 112,
477 113, 109, 114, 109, 109, 109, 115, 115, 115, 115,
478 115, 115, 115, 115, 115, 115, 115, 115, 115, 116,
479 116, 117, 117, 117, 118, 119, 119, 119, 119, 120,
480 120, 120, 120, 121, 122, 122, 122, 122, 123, 124,
481 125, 125, 125, 125, 125, 125, 125, 126, 126, 127,
482 127, 127, 127, 128, 128, 129, 129, 129, 130, 130,
483 130, 130, 131, 131, 131, 131, 132, 132, 133, 133,
484 134, 134, 134, 134, 134, 135, 135, 135, 136, 136,
485 137, 137, 138, 138, 140, 139, 139, 142, 141, 141,
486 143, 143, 144, 144, 145, 146, 146, 147, 147, 147,
487 147, 147, 148, 148, 148, 148, 149, 150, 149, 149,
488 151, 151, 152, 152, 153, 153, 154, 153, 153, 156,
489 155, 155, 155, 157, 157, 158, 158, 158, 160, 161,
490 159, 163, 164, 162, 165, 165, 166, 166, 166, 166,
491 166, 166, 166, 167, 167, 167, 167, 167, 167, 167,
492 168, 168, 168, 168, 168, 168, 168, 168, 169, 169,
493 170, 170, 171, 171, 173, 172, 172, 172, 174, 172,
494 172, 172, 175, 172, 176, 172, 172, 177, 177, 178,
495 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
496 181, 181, 182, 182, 183, 183, 183, 184, 184, 184,
497 185, 185, 186, 186, 187, 187, 188, 188, 189, 189,
498 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
499 191, 192, 192, 192, 193, 193, 194, 195, 196, 196,
500 197, 197, 198, 199, 199, 200, 201, 201, 201, 201,
501 202, 203, 204, 204, 205, 207, 206, 208, 209, 210,
502 210, 211, 212, 212, 213, 213, 213, 214, 213, 213,
503 213, 215, 216, 213, 213, 213, 217, 218, 219, 213,
504 220, 213, 213, 213, 213, 213, 213, 213, 213, 213,
505 213, 213, 213, 221, 223, 222, 224, 224, 224, 224,
506 225, 225, 226, 226, 227, 227, 228, 228, 229, 230,
507 230, 232, 231, 233, 234, 233, 233, 235, 235, 235,
508 235, 236, 236, 237, 237, 237, 237, 237, 239, 238,
509 240, 240, 241, 241, 242, 242, 243
512 static const short yyr2
[] = { 0,
513 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
514 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
515 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
516 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
517 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
518 4, 2, 4, 2, 2, 6, 1, 1, 1, 4,
519 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
520 3, 3, 3, 3, 3, 0, 4, 0, 4, 0,
521 0, 7, 0, 5, 3, 3, 1, 1, 1, 3,
522 3, 3, 3, 4, 4, 3, 3, 2, 2, 1,
523 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
524 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
525 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
526 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
527 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
528 1, 1, 1, 4, 4, 1, 1, 1, 1, 3,
529 1, 3, 0, 4, 0, 6, 3, 0, 6, 3,
530 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
531 6, 4, 1, 1, 1, 1, 1, 0, 4, 1,
532 0, 2, 1, 3, 3, 2, 0, 4, 1, 0,
533 4, 1, 1, 1, 2, 2, 5, 3, 0, 0,
534 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
535 3, 3, 1, 3, 4, 4, 3, 3, 3, 1,
536 3, 3, 3, 4, 4, 3, 3, 1, 1, 2,
537 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
538 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
539 1, 1, 2, 0, 3, 2, 3, 5, 3, 1,
540 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
541 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
542 3, 3, 2, 3, 4, 3, 2, 3, 2, 3,
543 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
544 1, 2, 3, 1, 2, 1, 1, 5, 4, 4,
545 2, 2, 2, 2, 4, 0, 4, 0, 0, 3,
546 4, 3, 1, 1, 1, 1, 2, 0, 4, 1,
547 3, 0, 0, 7, 5, 2, 0, 0, 0, 12,
548 0, 6, 2, 2, 2, 3, 6, 8, 10, 12,
549 3, 4, 1, 1, 0, 6, 3, 5, 2, 3,
550 0, 1, 0, 1, 0, 1, 1, 3, 4, 1,
551 3, 0, 2, 2, 0, 4, 2, 0, 1, 1,
552 3, 1, 3, 4, 4, 4, 4, 4, 0, 2,
556 static const short yydefact
[] = { 3,
557 5, 0, 0, 0, 153, 144, 151, 143, 243, 239,
558 241, 0, 0, 0, 407, 18, 4, 8, 7, 0,
559 119, 119, 139, 130, 140, 173, 0, 0, 0, 152,
560 0, 6, 16, 17, 244, 240, 242, 0, 0, 0,
561 238, 289, 0, 0, 161, 120, 0, 15, 0, 14,
562 0, 141, 130, 142, 146, 145, 128, 174, 31, 32,
563 264, 248, 264, 252, 255, 257, 10, 87, 88, 100,
564 57, 58, 0, 0, 0, 0, 33, 35, 34, 0,
565 36, 37, 0, 38, 39, 0, 0, 40, 59, 0,
566 0, 63, 43, 45, 89, 0, 0, 287, 0, 285,
567 149, 0, 285, 178, 0, 0, 11, 0, 0, 30,
568 0, 399, 0, 0, 171, 223, 289, 0, 0, 159,
569 120, 0, 215, 216, 0, 0, 129, 132, 156, 157,
570 131, 133, 158, 0, 0, 245, 0, 249, 0, 253,
571 54, 55, 0, 49, 46, 0, 321, 0, 0, 48,
572 0, 0, 0, 50, 0, 52, 0, 0, 80, 78,
573 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
574 0, 0, 0, 98, 99, 0, 0, 41, 0, 101,
575 0, 317, 309, 0, 47, 154, 289, 382, 0, 120,
576 283, 286, 147, 155, 288, 149, 284, 184, 185, 186,
577 183, 0, 176, 179, 290, 233, 232, 162, 163, 237,
578 0, 231, 0, 0, 236, 0, 0, 28, 0, 328,
579 107, 329, 170, 172, 0, 0, 13, 0, 0, 22,
580 0, 171, 399, 0, 12, 26, 0, 171, 271, 266,
581 119, 263, 119, 0, 264, 171, 264, 280, 281, 260,
582 278, 0, 0, 91, 90, 0, 9, 44, 0, 0,
583 86, 85, 0, 0, 0, 0, 74, 75, 73, 72,
584 71, 69, 70, 64, 65, 66, 67, 68, 97, 96,
585 0, 42, 0, 93, 0, 0, 310, 311, 92, 293,
586 0, 297, 0, 299, 0, 0, 382, 0, 150, 148,
587 0, 178, 41, 0, 0, 403, 389, 119, 119, 401,
588 0, 390, 392, 400, 0, 234, 235, 307, 0, 109,
589 104, 108, 0, 168, 221, 217, 160, 222, 20, 167,
590 218, 220, 0, 24, 247, 328, 265, 328, 272, 0,
591 251, 0, 0, 261, 0, 260, 0, 61, 60, 51,
592 53, 0, 0, 79, 77, 94, 95, 405, 0, 0,
593 0, 328, 0, 0, 116, 329, 302, 312, 292, 291,
594 383, 298, 300, 294, 296, 0, 175, 177, 87, 0,
595 164, 387, 285, 285, 384, 385, 0, 402, 0, 0,
596 316, 29, 308, 314, 105, 119, 119, 136, 0, 0,
597 165, 219, 0, 267, 273, 329, 269, 329, 171, 171,
598 282, 279, 171, 0, 0, 0, 81, 84, 313, 0,
599 319, 118, 117, 306, 0, 320, 304, 329, 303, 0,
600 295, 180, 0, 182, 230, 289, 382, 120, 171, 171,
601 171, 289, 120, 171, 171, 0, 391, 393, 404, 315,
602 322, 112, 0, 113, 0, 136, 134, 190, 188, 187,
603 169, 21, 0, 25, 328, 171, 0, 246, 250, 256,
604 171, 56, 203, 87, 0, 0, 200, 0, 202, 0,
605 258, 193, 199, 0, 0, 0, 406, 318, 0, 153,
606 0, 342, 326, 0, 0, 0, 0, 0, 0, 0,
607 0, 371, 363, 0, 0, 114, 119, 119, 335, 340,
608 0, 0, 332, 333, 336, 364, 334, 0, 0, 293,
609 0, 399, 0, 394, 395, 396, 293, 0, 397, 398,
610 386, 0, 0, 163, 135, 138, 137, 0, 166, 274,
611 0, 268, 120, 171, 254, 206, 0, 0, 197, 62,
612 0, 192, 0, 205, 196, 82, 0, 0, 328, 373,
613 0, 0, 369, 353, 354, 355, 0, 0, 0, 372,
614 0, 171, 337, 125, 0, 126, 0, 0, 324, 329,
615 323, 346, 0, 127, 181, 228, 229, 224, 0, 227,
616 0, 110, 111, 0, 171, 0, 275, 0, 208, 0,
617 0, 194, 195, 0, 0, 0, 374, 45, 0, 0,
618 0, 367, 356, 0, 361, 0, 370, 0, 123, 209,
619 0, 124, 212, 341, 328, 0, 0, 225, 226, 189,
620 277, 171, 0, 201, 198, 325, 0, 327, 365, 347,
621 351, 0, 362, 0, 121, 0, 122, 0, 339, 330,
622 328, 0, 276, 207, 343, 328, 373, 328, 368, 375,
623 0, 210, 213, 331, 345, 328, 366, 0, 352, 0,
624 0, 376, 377, 357, 0, 0, 344, 348, 0, 375,
625 0, 0, 211, 214, 373, 0, 0, 358, 378, 0,
626 379, 0, 0, 349, 380, 0, 359, 328, 0, 0,
627 350, 360, 381, 0, 0, 0
630 static const short yydefgoto
[] = { 704,
631 1, 2, 3, 17, 18, 19, 231, 400, 237, 403,
632 114, 319, 478, 86, 148, 281, 88, 89, 90, 91,
633 92, 416, 93, 266, 265, 263, 486, 264, 94, 95,
634 218, 219, 220, 395, 361, 362, 20, 229, 506, 308,
635 57, 396, 457, 309, 23, 100, 193, 24, 131, 119,
636 44, 115, 120, 463, 45, 399, 223, 224, 26, 202,
637 203, 204, 461, 538, 480, 481, 482, 601, 483, 548,
638 484, 485, 619, 646, 675, 622, 648, 676, 209, 123,
639 439, 124, 27, 28, 29, 30, 245, 247, 252, 139,
640 552, 345, 134, 135, 242, 404, 405, 250, 251, 102,
641 191, 103, 105, 192, 363, 364, 425, 221, 183, 286,
642 287, 288, 392, 393, 184, 96, 394, 510, 511, 512,
643 559, 580, 323, 581, 367, 513, 514, 625, 558, 666,
644 657, 685, 698, 658, 515, 516, 656, 517, 571, 609,
645 671, 672, 673, 696, 292, 293, 310, 446, 311, 312,
646 313, 212, 213, 314, 315, 359, 97
649 static const short yypact
[] = { 74,
650 77, 2389, 2389, 126,-32768,-32768,-32768,-32768, 73, 73,
651 73, 84, 88, 98,-32768,-32768,-32768,-32768,-32768, 361,
652 35, 1677, 248,-32768, 73,-32768, 55, 76, 91,-32768,
653 2389,-32768,-32768,-32768, 73, 73, 73, 2205, 2115, 111,
654 -32768,-32768, 361, 65,-32768, 73, 1485,-32768, 629,-32768,
655 361, 248,-32768, 73,-32768,-32768, 329,-32768,-32768,-32768,
656 -32768, 44,-32768, 106,-32768, 134,-32768,-32768,-32768,-32768,
657 -32768,-32768, 2205, 2205, 121, 426,-32768,-32768,-32768, 2205,
658 -32768,-32768, 732,-32768,-32768, 2205, 163, 180,-32768, 2240,
659 2295,-32768, 2520, 656, 235, 820, 2205,-32768, 187, 206,
660 -32768, 222, 381, 545, 292, 219,-32768, 629, 361,-32768,
661 241,-32768, 1521, 648, 73,-32768,-32768, 629, 114,-32768,
662 73, 319, 444, 451, 151, 1513, 329,-32768,-32768,-32768,
663 -32768, 73,-32768, 227, 483,-32768, 234,-32768, 552,-32768,
664 -32768,-32768, 2205,-32768,-32768, 249,-32768, 252, 259,-32768,
665 261, 2205, 732,-32768, 732,-32768, 2205, 2205, 311,-32768,
666 -32768, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
667 2205, 2205, 2205,-32768,-32768, 426, 426, 2205, 2205,-32768,
668 283,-32768, 358, 321,-32768,-32768,-32768, 206, 1576, 73,
669 -32768, 463, 457,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
670 -32768, 125,-32768, 354,-32768, 451,-32768,-32768, 393, 451,
671 423,-32768, 1043, 1614,-32768, 349, 360,-32768, 595, 66,
672 -32768,-32768, 403, 73, 614, 267,-32768, 629, 629,-32768,
673 648, 73,-32768, 1669,-32768,-32768, 648, 73,-32768,-32768,
674 -32768, 365, 233, 1209,-32768, 73,-32768,-32768, 410, 373,
675 -32768, 552, 2455,-32768,-32768, 2000,-32768, 2520, 387, 389,
676 2520, 2520, 2205, 435, 2205, 2205, 2377, 2085, 2437, 1081,
677 1090, 718, 718, 429, 429,-32768,-32768,-32768,-32768,-32768,
678 408, 180, 406,-32768, 426, 984, 358,-32768,-32768, 242,
679 396,-32768, 790,-32768, 409, 206,-32768, 1707,-32768, 457,
680 420, 545, 2330, 53, 422,-32768,-32768,-32768, 1917,-32768,
681 438, 195,-32768,-32768, 137,-32768,-32768,-32768, 46,-32768,
682 -32768,-32768, 884,-32768, 444,-32768,-32768, 444,-32768, 450,
683 -32768,-32768, 433,-32768,-32768,-32768,-32768,-32768,-32768, 427,
684 -32768, 447, 2205, 426, 456, 373, 966,-32768,-32768,-32768,
685 -32768, 491, 2205, 2265, 2174,-32768,-32768,-32768, 210, 460,
686 902, 464, 480, 1066,-32768,-32768,-32768,-32768, 463,-32768,
687 -32768,-32768, 463,-32768,-32768, 488,-32768,-32768, 143, 501,
688 -32768,-32768, 224, 161,-32768,-32768, 936,-32768, 578, 503,
689 -32768,-32768, 517,-32768,-32768, 525, 172,-32768, 669, 46,
690 -32768,-32768, 46, 528,-32768,-32768, 528,-32768, 73, 73,
691 2520,-32768, 73, 533, 536, 1265,-32768, 1907,-32768, 426,
692 -32768,-32768,-32768,-32768, 540,-32768,-32768,-32768,-32768, 1883,
693 -32768,-32768, 2205,-32768,-32768,-32768, 161, 73, 208, 247,
694 73,-32768, 73, 247, 73, 790,-32768,-32768,-32768,-32768,
695 -32768,-32768, 629,-32768, 361,-32768, 679,-32768,-32768, 2520,
696 -32768,-32768, 669,-32768,-32768, 582, 582,-32768,-32768,-32768,
697 73,-32768,-32768, 588, 426, 2205,-32768, 591, 2520, 555,
698 553,-32768,-32768, 150, 1389, 2205,-32768,-32768, 1965, 598,
699 579,-32768,-32768, 581, 584, 2205, 606, 569, 571, 2150,
700 82, 650,-32768, 618, 585,-32768, 586, 1770,-32768, 647,
701 1148, 59,-32768,-32768,-32768,-32768,-32768, 2059, 223, 554,
702 224,-32768, 1762,-32768,-32768,-32768, 398, 161,-32768,-32768,
703 -32768, 317, 325, 75, 679,-32768,-32768, 1265,-32768,-32768,
704 2205,-32768, 67, 58,-32768,-32768, 2428, 1265,-32768,-32768,
705 1327,-32768, 1427,-32768,-32768, 1907, 2205, 607,-32768, 2205,
706 2205, 1826,-32768,-32768,-32768,-32768, 590, 2205, 592,-32768,
707 612, 73,-32768,-32768, 629,-32768, 361, 1230,-32768,-32768,
708 -32768,-32768, 2205,-32768,-32768, 504, 504,-32768, 1800,-32768,
709 597,-32768,-32768, 587, 2480, 2205,-32768, 2205,-32768, 603,
710 1427,-32768,-32768, 610, 2205, 672,-32768, 515, 615, 617,
711 2205,-32768,-32768, 620,-32768, 2205,-32768, 327,-32768, 205,
712 335,-32768, 1075,-32768,-32768, 1965, 623,-32768,-32768,-32768,
713 -32768, 2480, 2410,-32768,-32768,-32768, 627,-32768,-32768,-32768,
714 -32768, 2502,-32768, 29,-32768, 648,-32768, 648,-32768,-32768,
715 -32768, 630,-32768,-32768,-32768,-32768, 2205,-32768,-32768, 697,
716 631,-32768,-32768,-32768,-32768,-32768,-32768, 643,-32768, 662,
717 43, 625,-32768,-32768, 503, 503,-32768,-32768, 2205, 697,
718 645, 697,-32768,-32768, 2205, 649, 49,-32768,-32768, 653,
719 -32768, 423, 655,-32768, 235, 289,-32768,-32768, 658, 423,
720 -32768,-32768, 235, 728, 742,-32768
723 static const short yypgoto
[] = {-32768,
724 -32768,-32768,-32768, 93,-32768,-32768,-32768,-32768,-32768,-32768,
725 -32768,-32768, -23,-32768, -38, 445, -137, 478,-32768,-32768,
726 -57,-32768, 211,-32768,-32768,-32768,-32768,-32768, 194, -199,
727 -193, 527,-32768,-32768, 394,-32768, 30, -3, 237, 17,
728 705,-32768, 320, 24, -4, -89, 577, 39, -165, -417,
729 -43, -100, -59,-32768,-32768,-32768, 185, 62, -22,-32768,
730 473,-32768, 315,-32768, -430,-32768, 228,-32768, -428,-32768,
731 -32768, 297,-32768,-32768,-32768,-32768,-32768,-32768, -42, -73,
732 71, -18,-32768,-32768,-32768, 11,-32768,-32768,-32768,-32768,
733 -32768, 439, -28,-32768, 542, 449, 333, 538, 448, -49,
734 -66, -81, -86, -48, 437,-32768,-32768, -163,-32768,-32768,
735 -32768, 514, -337,-32768, 412,-32768, -360,-32768,-32768,-32768,
736 -32768, -105, -316, -442, 442,-32768, 182,-32768,-32768,-32768,
737 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 184,-32768, -524,
738 131,-32768, 133,-32768, 522,-32768, -251,-32768,-32768,-32768,
739 443, -212,-32768,-32768,-32768,-32768, 8
746 static const short yytable
[] = { 87,
747 99, 47, 58, 62, 64, 66, 122, 125, 222, 31,
748 31, 304, 58, 58, 58, 141, 142, 52, 21, 21,
749 331, 232, 145, 58, 106, 22, 22, 299, 150, 450,
750 225, 58, 126, 149, 137, 532, 197, 329, 31, 185,
751 282, 371, 109, 334, 226, 241, 390, 21, 208, 430,
752 49, 51, 144, 243, 22, 320, 555, 59, 60, 582,
753 53, 180, 462, 25, 25, 464, -103, 133, 660, 509,
754 35, 36, 37, -1, 216, 321, -2, 101, 59, 60,
755 201, 46, 680, 54, 59, 60, 206, 14, 692, 466,
756 210, 467, 25, 59, 60, 32, 14, 596, 58, 106,
757 290, 111, 14, 259, 46, 260, 661, 594, 232, 58,
758 121, 489, 46, 48, 222, 249, 606, 600, 132, 583,
759 681, 101, 365, 67, 603, 222, 693, 136, 509, 391,
760 381, 222, 668, 568, 299, 112, 113, 133, 61, 291,
761 283, 196, 244, 107, 38, -172, -172, 108, 39, -103,
762 295, 325, 279, 280, 241, 328, 145, 618, 40, 63,
763 690, 190, 243, 41, 190, 282, 46, 58, 327, 121,
764 46, 104, 635, 101, 65, 5, 55, 7, 56, 121,
765 366, 143, 649, 9, 10, 11, 296, 553, 132, 138,
766 14, 101, 227, 101, 531, 333, 228, 422, 349, 13,
767 427, 58, 301, 133, 33, 34, 206, 302, 664, 475,
768 210, 476, 442, 667, 388, 669, 340, 140, 342, 389,
769 432, 437, 189, 677, 352, 433, 41, 435, 249, 235,
770 406, 111, 408, 108, -163, 14, 5, 14, 7, 195,
771 151, 369, -163, 180, 9, 10, 11, 373, 205, 190,
772 454, 244, 55, 14, 56, 701, 366, 187, 428, 376,
773 13, 358, 152, 626, 186, 509, 188, 189, 522, 523,
774 336, 14, 338, 386, 25, 436, 14, 387, 201, 112,
775 113, 196, 101, -163, 437, 189, 121, -163, 419, 121,
776 121, 537, 420, 187, 41, 519, 207, 415, 205, 194,
777 585, 211, 188, 189, 52, 152, 238, 112, 113, 588,
778 133, -270, -270, 246, 683, 684, 441, 445, 397, 230,
779 249, 14, -19, -19, -19, -19, 254, 233, 234, 255,
780 -19, -19, -19, 128, 129, 130, 256, 383, 384, 257,
781 9, 10, 11, 42, 326, 111, -19, 53, -163, 520,
782 -83, 190, 43, 253, 25, 527, -163, 190, 14, 408,
783 284, 398, 258, 41, 440, 444, 699, 261, 262, 537,
784 54, 700, 267, 268, 269, 270, 271, 272, 273, 274,
785 275, 276, 277, 278, 5, 101, 7, 195, 291, 285,
786 14, 505, 9, 10, 11, 592, 487, -163, 289, 228,
787 41, -163, -19, 593, 205, 645, 504, 108, 13, 228,
788 14, 533, 42, 647, 303, 58, 330, 108, 106, 111,
789 58, 43, 335, 544, 544, 453, 455, 14, 59, 60,
790 341, 70, 187, 317, 521, 456, 534, 518, 318, 528,
791 324, 188, 189, 337, 438, 443, 507, 343, 25, 442,
792 505, 546, 662, 508, 663, 344, 297, 298, 437, 189,
793 185, 567, 129, 130, 350, 504, 351, 133, 9, 10,
794 11, 369, 373, 370, 353, 354, 355, 569, 369, 373,
795 171, 172, 173, 239, 591, 356, 5, 401, 7, 98,
796 357, 25, 695, 372, 9, 10, 11, 377, 443, 382,
797 703, 206, 210, 52, 233, 234, 409, 25, 206, 210,
798 13, 112, 113, 15, 121, 385, 46, 402, 604, 232,
799 58, 607, 610, 297, 298, 518, 410, 543, 121, 614,
800 417, 145, 620, 621, 507, 413, 575, 577, 318, 421,
801 222, 508, 222, -305, 627, 133, 53, 59, 60, 198,
802 199, 200, 248, 411, 59, 60, 41, 435, 623, 426,
803 205, 240, -262, 418, 522, 523, 637, 154, 156, 54,
804 174, 175, 431, 176, 177, 178, 179, 644, 434, 25,
805 449, 438, 438, 14, 41, 116, 391, 505, 443, 443,
806 586, 587, 639, 468, 469, 217, 182, 470, -106, -106,
807 -106, -106, 504, 452, -106, 436, -106, -106, -106, 460,
808 465, 14, 471, 472, 437, 189, 41, 116, 607, 488,
809 205, 541, -106, 524, 525, 526, 479, -31, 529, 530,
810 549, 41, 116, 117, 550, 551, 121, -32, 46, 557,
811 686, 560, 118, 14, 561, 563, 607, 564, 217, 565,
812 542, -328, -328, -328, -328, 545, 570, 572, 14, -328,
813 -328, -328, 578, 573, 574, 117, 630, 605, 613, 458,
814 615, 68, 616, 460, 118, -328, 69, 70, -106, 71,
815 117, 629, 634, 536, 129, 130, 547, 636, 638, 118,
816 9, 10, 11, 640, 641, 479, 556, 72, 643, 15,
817 652, 73, 74, 75, 655, 670, 562, 682, 665, 674,
818 76, 174, 175, 77, 176, 177, 178, 179, 78, 79,
819 80, 678, 679, 688, 81, 82, 691, 705, 597, 83,
820 694, -102, 146, 697, 68, 5, 702, 7, 98, 69,
821 70, 706, 71, 9, 10, 11, 322, 380, 479, 84,
822 85, 595, 459, 608, 584, 423, 617, 127, 479, 13,
823 72, 479, 15, 479, 73, 74, 75, 169, 170, 171,
824 172, 173, 300, 76, 378, 535, 77, 539, 602, 631,
825 554, 78, 79, 80, 414, 339, 407, 81, 82, 346,
826 305, 412, 83, 5, 6, 7, 8, 540, 424, 307,
827 368, 9, 10, 11, 451, 429, 632, 650, 633, 651,
828 687, 479, 84, 85, 689, 147, 653, 13, 374, 14,
829 181, 642, -308, -308, -308, -308, -308, -308, -308, 448,
830 -308, -308, -308, -308, -308, 0, -308, -308, -308, -308,
831 -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
832 -308, -308, -308, -308, -308, 0, 0, 0, 0, 0,
833 0, -308, 0, 0, -308, 0, 0, -388, 0, -308,
834 -308, -308, 0, 0, 0, -308, -308, 0, 0, 0,
835 -308, 0, 0, 0, 0, 0, 0, 5, 6, 7,
836 8, 0, 0, 0, 0, 9, 10, 11, -308, 182,
837 -308, -308, 217, -308, -115, -115, -115, -115, -115, -115,
838 -115, 13, -115, -115, -115, -115, -115, 0, -115, -115,
839 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
840 -115, -115, -115, 0, -115, -115, -115, 0, 0, 5,
841 6, 7, 8, -115, 0, 447, -115, 9, 10, 11,
842 0, -115, -115, -115, 0, 0, 0, -115, -115, 0,
843 0, 0, -115, 13, 0, 14, 0, 0, 0, 5,
844 0, 7, 98, 0, 0, 0, 0, 9, 10, 11,
845 -115, -115, -115, -115, 360, -115, -328, -328, -328, -328,
846 -328, -328, -328, 13, -328, -328, -328, -328, -328, 0,
847 -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
848 -328, -328, -328, -328, -328, 0, -328, -328, -328, 0,
849 0, 0, 0, 0, 0, -328, 0, 0, -328, 0,
850 0, 0, 0, -328, -328, -328, 0, 0, 0, -328,
851 -328, 0, 0, 305, -328, 306, 5, 6, 7, 8,
852 0, 0, 307, 0, 9, 10, 11, 0, 0, 0,
853 0, 0, -328, 0, -328, -328, 217, -328, -328, -328,
854 13, 0, 14, -328, -328, 0, -328, 0, 0, 0,
855 -328, 0, -328, -328, -328, -328, -328, -328, -328, -328,
856 -328, -328, -328, 0, -328, 0, -328, 0, -328, -328,
857 -328, 111, 0, 0, -163, 0, 0, -328, 0, 0,
858 -328, 0, -163, 0, 0, -328, -328, -328, 0, 0,
859 -388, -328, -328, 0, 0, 0, -328, 166, 167, 168,
860 169, 170, 171, 172, 173, 112, 113, 167, 168, 169,
861 170, 171, 172, 173, -328, -301, -328, -328, 579, -328,
862 -328, -328, 0, -163, 0, -328, -328, -163, -328, 0,
863 0, 0, -328, 0, -328, -328, -328, -328, -328, -328,
864 -328, -328, -328, -328, -328, 0, -328, 0, -328, 0,
865 -328, -328, -328, 0, 0, 0, 0, 0, 0, -328,
866 0, 0, -328, 0, 0, 0, 0, -328, -328, -328,
867 0, 0, 0, -328, -328, 0, 0, 0, -328, 239,
868 0, 0, 5, 0, 7, 98, 0, 0, 0, 0,
869 9, 10, 11, 0, 0, 0, -328, 0, -328, -328,
870 624, -328, -338, -338, 0, 0, 13, -338, -338, 15,
871 -338, 0, 0, 0, -338, 0, -338, -338, -338, -338,
872 -338, -338, -338, -338, -338, -338, -338, 0, -338, 0,
873 -338, 0, -338, -338, -338, 473, 0, 474, 60, 0,
874 0, -338, 69, 70, -338, 71, 0, 0, 0, -338,
875 -338, -338, 0, 0, 0, -338, -338, 0, 0, 0,
876 -338, 0, 0, 72, 0, 15, 0, 73, 74, 75,
877 0, 0, 0, 0, 0, 0, 76, 0, -338, 77,
878 -338, -338, 0, -338, 78, 79, 80, 0, 0, 0,
879 81, 82, 0, 0, 475, 83, 476, 473, 0, 474,
880 60, 0, 0, 0, 69, 70, 0, 71, 0, 0,
881 0, 0, 0, 0, -191, 84, 85, 0, 477, 0,
882 0, 0, 0, 0, 0, 72, 0, 15, 0, 73,
883 74, 75, 0, 0, 0, 0, 0, 0, 76, 0,
884 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
885 0, 0, 81, 82, 0, 0, 475, 83, 476, 473,
886 0, 68, 0, 0, 0, 0, 69, 70, 0, 71,
887 0, 0, 0, 0, 0, 0, -259, 84, 85, 0,
888 477, 0, 0, 0, 0, 0, 0, 72, 0, 15,
889 0, 73, 74, 75, 0, 0, -204, 473, 0, 68,
890 76, 0, 0, 77, 69, 70, 0, 71, 78, 79,
891 80, 0, 0, 0, 81, 82, 0, 0, -204, 83,
892 -204, 0, 0, 0, 0, 72, 0, 15, 0, 73,
893 74, 75, 0, 0, 0, 0, 0, 0, 76, 84,
894 85, 77, 477, 0, 0, 0, 78, 79, 80, 0,
895 0, 0, 81, 82, 0, 110, 0, 83, -27, -27,
896 -27, -27, 0, 0, 0, 0, -27, -27, -27, 0,
897 0, 0, 0, 0, 0, 0, 0, 84, 85, 0,
898 477, 111, -27, 236, -163, 0, -23, -23, -23, -23,
899 0, 0, -163, 68, -23, -23, -23, 0, 69, 70,
900 0, 71, 0, 0, 0, 0, 0, 0, 0, 111,
901 -23, 0, -163, 0, 0, 112, 113, 0, 0, 72,
902 -163, 15, 0, 73, 74, 75, 0, 0, 0, 0,
903 0, 0, 76, -163, 0, 77, 0, -163, -27, 0,
904 78, 79, 214, 112, 113, 0, 81, 82, 68, 0,
905 0, 83, 0, 69, 70, 0, 71, 0, 0, 0,
906 0, -163, 0, 0, 0, -163, -23, 0, 0, 0,
907 0, 84, 85, 0, 72, 215, 15, 0, 73, 74,
908 75, 0, 0, 0, 0, 0, 68, 76, 0, 0,
909 77, 69, 70, 0, 71, 78, 79, 80, 0, 0,
910 0, 81, 82, 0, 0, 0, 83, 0, 0, 0,
911 0, 0, 72, 0, 15, 0, 73, 74, 75, 0,
912 0, 0, 0, 0, 0, 76, 84, 85, 77, 0,
913 294, 0, 0, 78, 79, 80, 0, 0, 0, 81,
914 82, 68, 0, 0, 83, 0, 69, 70, 0, 71,
915 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
916 11, 0, 0, 0, 84, 85, 0, 72, 316, 15,
917 0, 73, 74, 75, 13, 0, 14, 0, 0, 68,
918 76, 0, 0, 77, 69, 70, 0, 71, 78, 79,
919 80, 0, 0, 0, 81, 82, 0, 0, 0, 83,
920 0, 0, 0, 0, 0, 72, 0, 15, 0, 73,
921 74, 75, 0, 0, 0, 0, 0, 0, 76, 84,
922 85, 77, 0, 332, 0, 50, 78, 79, 80, 0,
923 0, 0, 81, 82, 68, 0, 0, 83, 0, 69,
924 70, 0, 71, 5, 6, 7, 8, 0, 0, 0,
925 0, 9, 10, 11, 0, 0, 0, 84, 85, 0,
926 72, 375, 15, 0, 73, 74, 75, 13, 0, 14,
927 0, 0, 68, 76, 0, 0, 77, 69, 70, 0,
928 71, 78, 79, 589, 0, 0, 0, 81, 82, 0,
929 0, 0, 83, 0, 0, 0, 0, 0, 72, 0,
930 15, 0, 73, 74, 75, 611, 0, 0, 0, 0,
931 0, 76, 84, 85, 77, 0, 590, 0, 576, 78,
932 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
933 83, 0, 157, 158, 159, 612, 160, 161, 162, 163,
934 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
935 84, 85, 0, 0, 628, 474, 490, 6, 7, 8,
936 69, 70, 0, 71, 9, 10, 11, 491, 0, 492,
937 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
938 13, 72, 14, 15, 0, 73, 74, 75, 0, 0,
939 5, 6, 7, 8, 76, 0, 0, 77, 9, 10,
940 11, 0, 78, 79, 80, 0, 0, 0, 81, 82,
941 0, 0, 0, 83, 13, 159, 14, 160, 161, 162,
942 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
943 173, 503, 0, 84, 85, 0, 391, 474, 60, 0,
944 0, 0, 69, 70, 0, 71, 0, 0, 0, 491,
945 0, 492, 493, 494, 495, 496, 497, 498, 499, 500,
946 501, 502, 0, 72, 0, 15, 0, 73, 74, 75,
947 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
948 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
949 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
950 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
951 0, 76, 0, 503, 77, 84, 85, 0, 391, 78,
952 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
953 83, 68, 5, 6, 7, 8, 69, 70, 0, 71,
954 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
955 84, 85, 0, 348, 0, 0, 13, 72, 14, 15,
956 0, 73, 74, 75, 0, 0, 0, 0, 0, 0,
957 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
958 80, 0, 0, 0, 81, 82, 0, 68, 5, 83,
959 7, 98, 69, 70, 0, 71, 9, 10, 11, 164,
960 165, 166, 167, 168, 169, 170, 171, 172, 173, 84,
961 85, 0, 13, 72, 0, 15, 0, 73, 74, 75,
962 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
963 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
964 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
965 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
966 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
967 79, 80, 0, 0, 0, 81, 82, 68, 0, 0,
968 83, 0, 69, 70, 0, 71, 162, 163, 164, 165,
969 166, 167, 168, 169, 170, 171, 172, 173, 566, 0,
970 84, 85, 0, 72, 0, 15, 0, 73, 74, 75,
971 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
972 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
973 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
974 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
975 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
976 79, 80, 0, 0, 0, 81, 82, 68, 0, 0,
977 153, 0, 69, 70, 0, 71, 161, 162, 163, 164,
978 165, 166, 167, 168, 169, 170, 171, 172, 173, 0,
979 84, 85, 0, 72, 0, 15, 0, 73, 74, 75,
980 0, 0, 379, 0, 0, 0, 76, 69, 70, 77,
981 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
982 81, 82, 0, 0, 0, 155, 0, 0, 72, 0,
983 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
984 0, 76, 0, 0, 77, 84, 85, 0, 0, 78,
985 79, 80, 0, 0, 0, 81, 82, 0, 0, 4,
986 83, -119, 5, 6, 7, 8, 0, 0, 0, 0,
987 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
988 84, 85, 0, 0, 0, 12, 13, 0, 14, 15,
989 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
990 173, 0, 0, 0, 0, 0, 0, 598, 0, 0,
991 -119, 0, 0, 0, 0, 0, 157, 158, 159, -119,
992 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
993 170, 171, 172, 173, 157, 158, 159, 16, 160, 161,
994 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
995 172, 173, 165, 166, 167, 168, 169, 170, 171, 172,
996 173, 157, 158, 159, 654, 160, 161, 162, 163, 164,
997 165, 166, 167, 168, 169, 170, 171, 172, 173, 14,
998 0, 0, 599, 0, 0, 0, 157, 158, 159, 0,
999 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1000 170, 171, 172, 173, 0, 0, 0, 347, 157, 158,
1001 159, 659, 160, 161, 162, 163, 164, 165, 166, 167,
1002 168, 169, 170, 171, 172, 173, 157, 158, 159, 0,
1003 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1007 static const short yycheck
[] = { 38,
1008 39, 20, 25, 27, 28, 29, 49, 51, 114, 2,
1009 3, 211, 35, 36, 37, 73, 74, 22, 2, 3,
1010 233, 122, 80, 46, 43, 2, 3, 193, 86, 390,
1011 117, 54, 51, 83, 63, 453, 103, 231, 31, 97,
1012 178, 293, 46, 237, 118, 135, 1, 31, 108, 366,
1013 21, 22, 76, 135, 31, 219, 485, 3, 4, 1,
1014 22, 9, 400, 2, 3, 403, 1, 57, 40, 430,
1015 9, 10, 11, 0, 113, 10, 0, 39, 3, 4,
1016 104, 20, 40, 22, 3, 4, 105, 30, 40, 406,
1017 109, 408, 31, 3, 4, 3, 30, 40, 121, 118,
1018 187, 27, 30, 153, 43, 155, 78, 538, 209, 132,
1019 49, 428, 51, 79, 220, 139, 559, 548, 57, 61,
1020 78, 83, 286, 31, 553, 231, 78, 84, 489, 84,
1021 78, 237, 657, 52, 300, 61, 62, 127, 84, 188,
1022 179, 103, 135, 79, 61, 79, 80, 83, 61, 84,
1023 189, 225, 176, 177, 244, 229, 214, 575, 61, 84,
1024 685, 100, 244, 3, 103, 303, 105, 190, 228, 108,
1025 109, 61, 601, 135, 84, 4, 5, 6, 7, 118,
1026 286, 61, 625, 12, 13, 14, 190, 38, 127, 84,
1027 30, 153, 79, 155, 446, 234, 83, 361, 256, 28,
1028 364, 224, 78, 193, 79, 80, 225, 83, 651, 60,
1029 229, 62, 52, 656, 78, 658, 245, 84, 247, 83,
1030 78, 61, 62, 666, 263, 83, 3, 4, 252, 79,
1031 336, 27, 338, 83, 30, 30, 4, 30, 6, 7,
1032 78, 290, 38, 9, 12, 13, 14, 296, 7, 188,
1033 79, 244, 5, 30, 7, 698, 362, 52, 364, 298,
1034 28, 285, 83, 580, 78, 626, 61, 62, 61, 62,
1035 241, 30, 243, 79, 213, 52, 30, 83, 302, 61,
1036 62, 243, 244, 79, 61, 62, 225, 83, 79, 228,
1037 229, 457, 83, 52, 3, 433, 78, 347, 7, 78,
1038 78, 61, 61, 62, 309, 83, 80, 61, 62, 522,
1039 300, 79, 80, 80, 675, 676, 383, 384, 323, 1,
1040 344, 30, 4, 5, 6, 7, 78, 61, 62, 78,
1041 12, 13, 14, 5, 6, 7, 78, 308, 309, 79,
1042 12, 13, 14, 52, 78, 27, 28, 309, 30, 436,
1043 40, 290, 61, 143, 293, 442, 38, 296, 30, 465,
1044 78, 323, 152, 3, 383, 384, 78, 157, 158, 535,
1045 309, 83, 162, 163, 164, 165, 166, 167, 168, 169,
1046 170, 171, 172, 173, 4, 347, 6, 7, 437, 32,
1047 30, 430, 12, 13, 14, 79, 420, 79, 78, 83,
1048 3, 83, 84, 79, 7, 79, 430, 83, 28, 83,
1049 30, 455, 52, 79, 61, 438, 232, 83, 437, 27,
1050 443, 61, 238, 466, 467, 396, 397, 30, 3, 4,
1051 246, 9, 52, 85, 438, 397, 455, 430, 79, 443,
1052 38, 61, 62, 79, 383, 384, 430, 38, 387, 52,
1053 489, 475, 646, 430, 648, 83, 61, 62, 61, 62,
1054 518, 500, 6, 7, 78, 489, 78, 457, 12, 13,
1055 14, 520, 521, 78, 40, 265, 266, 501, 527, 528,
1056 52, 53, 54, 1, 523, 78, 4, 38, 6, 7,
1057 85, 430, 692, 85, 12, 13, 14, 78, 437, 78,
1058 700, 520, 521, 508, 61, 62, 80, 446, 527, 528,
1059 28, 61, 62, 31, 453, 78, 455, 85, 557, 620,
1060 543, 560, 561, 61, 62, 518, 80, 466, 467, 568,
1061 40, 589, 575, 577, 518, 80, 507, 508, 79, 80,
1062 646, 518, 648, 80, 583, 535, 508, 3, 4, 5,
1063 6, 7, 1, 343, 3, 4, 3, 4, 577, 80,
1064 7, 79, 80, 353, 61, 62, 605, 90, 91, 508,
1065 56, 57, 85, 59, 60, 61, 62, 616, 78, 518,
1066 3, 520, 521, 30, 3, 4, 84, 626, 527, 528,
1067 520, 521, 78, 409, 410, 1, 80, 413, 4, 5,
1068 6, 7, 626, 79, 10, 52, 12, 13, 14, 399,
1069 83, 30, 80, 78, 61, 62, 3, 4, 657, 80,
1070 7, 40, 28, 439, 440, 441, 416, 40, 444, 445,
1071 40, 3, 4, 52, 80, 83, 575, 40, 577, 61,
1072 679, 61, 61, 30, 61, 40, 685, 79, 1, 79,
1073 466, 4, 5, 6, 7, 471, 7, 40, 30, 12,
1074 13, 14, 16, 79, 79, 52, 80, 61, 79, 1,
1075 79, 3, 61, 463, 61, 28, 8, 9, 84, 11,
1076 52, 85, 80, 5, 6, 7, 476, 78, 17, 61,
1077 12, 13, 14, 79, 78, 485, 486, 29, 79, 31,
1078 78, 33, 34, 35, 78, 9, 496, 83, 79, 79,
1079 42, 56, 57, 45, 59, 60, 61, 62, 50, 51,
1080 52, 79, 61, 79, 56, 57, 78, 0, 544, 61,
1081 78, 84, 1, 79, 3, 4, 79, 6, 7, 8,
1082 9, 0, 11, 12, 13, 14, 220, 303, 538, 81,
1083 82, 541, 84, 560, 518, 362, 572, 53, 548, 28,
1084 29, 551, 31, 553, 33, 34, 35, 50, 51, 52,
1085 53, 54, 196, 42, 302, 456, 45, 463, 551, 595,
1086 484, 50, 51, 52, 346, 244, 338, 56, 57, 252,
1087 1, 344, 61, 4, 5, 6, 7, 465, 362, 10,
1088 287, 12, 13, 14, 393, 364, 596, 626, 598, 626,
1089 680, 601, 81, 82, 682, 84, 632, 28, 297, 30,
1090 1, 611, 3, 4, 5, 6, 7, 8, 9, 387,
1091 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
1092 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1093 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
1094 -1, 42, -1, -1, 45, -1, -1, 78, -1, 50,
1095 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1096 61, -1, -1, -1, -1, -1, -1, 4, 5, 6,
1097 7, -1, -1, -1, -1, 12, 13, 14, 79, 80,
1098 81, 82, 1, 84, 3, 4, 5, 6, 7, 8,
1099 9, 28, 11, 12, 13, 14, 15, -1, 17, 18,
1100 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1101 29, 30, 31, -1, 33, 34, 35, -1, -1, 4,
1102 5, 6, 7, 42, -1, 10, 45, 12, 13, 14,
1103 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1104 -1, -1, 61, 28, -1, 30, -1, -1, -1, 4,
1105 -1, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1106 79, 80, 81, 82, 1, 84, 3, 4, 5, 6,
1107 7, 8, 9, 28, 11, 12, 13, 14, 15, -1,
1108 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1109 27, 28, 29, 30, 31, -1, 33, 34, 35, -1,
1110 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1111 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1112 57, -1, -1, 1, 61, 3, 4, 5, 6, 7,
1113 -1, -1, 10, -1, 12, 13, 14, -1, -1, -1,
1114 -1, -1, 79, -1, 81, 82, 1, 84, 3, 4,
1115 28, -1, 30, 8, 9, -1, 11, -1, -1, -1,
1116 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1117 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1118 35, 27, -1, -1, 30, -1, -1, 42, -1, -1,
1119 45, -1, 38, -1, -1, 50, 51, 52, -1, -1,
1120 78, 56, 57, -1, -1, -1, 61, 47, 48, 49,
1121 50, 51, 52, 53, 54, 61, 62, 48, 49, 50,
1122 51, 52, 53, 54, 79, 80, 81, 82, 1, 84,
1123 3, 4, -1, 79, -1, 8, 9, 83, 11, -1,
1124 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1125 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1126 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1127 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1128 -1, -1, -1, 56, 57, -1, -1, -1, 61, 1,
1129 -1, -1, 4, -1, 6, 7, -1, -1, -1, -1,
1130 12, 13, 14, -1, -1, -1, 79, -1, 81, 82,
1131 1, 84, 3, 4, -1, -1, 28, 8, 9, 31,
1132 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1133 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1134 31, -1, 33, 34, 35, 1, -1, 3, 4, -1,
1135 -1, 42, 8, 9, 45, 11, -1, -1, -1, 50,
1136 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1137 61, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1138 -1, -1, -1, -1, -1, -1, 42, -1, 79, 45,
1139 81, 82, -1, 84, 50, 51, 52, -1, -1, -1,
1140 56, 57, -1, -1, 60, 61, 62, 1, -1, 3,
1141 4, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1142 -1, -1, -1, -1, 80, 81, 82, -1, 84, -1,
1143 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1144 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1145 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1146 -1, -1, 56, 57, -1, -1, 60, 61, 62, 1,
1147 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1148 -1, -1, -1, -1, -1, -1, 80, 81, 82, -1,
1149 84, -1, -1, -1, -1, -1, -1, 29, -1, 31,
1150 -1, 33, 34, 35, -1, -1, 38, 1, -1, 3,
1151 42, -1, -1, 45, 8, 9, -1, 11, 50, 51,
1152 52, -1, -1, -1, 56, 57, -1, -1, 60, 61,
1153 62, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1154 34, 35, -1, -1, -1, -1, -1, -1, 42, 81,
1155 82, 45, 84, -1, -1, -1, 50, 51, 52, -1,
1156 -1, -1, 56, 57, -1, 1, -1, 61, 4, 5,
1157 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1158 -1, -1, -1, -1, -1, -1, -1, 81, 82, -1,
1159 84, 27, 28, 1, 30, -1, 4, 5, 6, 7,
1160 -1, -1, 38, 3, 12, 13, 14, -1, 8, 9,
1161 -1, 11, -1, -1, -1, -1, -1, -1, -1, 27,
1162 28, -1, 30, -1, -1, 61, 62, -1, -1, 29,
1163 38, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1164 -1, -1, 42, 79, -1, 45, -1, 83, 84, -1,
1165 50, 51, 52, 61, 62, -1, 56, 57, 3, -1,
1166 -1, 61, -1, 8, 9, -1, 11, -1, -1, -1,
1167 -1, 79, -1, -1, -1, 83, 84, -1, -1, -1,
1168 -1, 81, 82, -1, 29, 85, 31, -1, 33, 34,
1169 35, -1, -1, -1, -1, -1, 3, 42, -1, -1,
1170 45, 8, 9, -1, 11, 50, 51, 52, -1, -1,
1171 -1, 56, 57, -1, -1, -1, 61, -1, -1, -1,
1172 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1173 -1, -1, -1, -1, -1, 42, 81, 82, 45, -1,
1174 85, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1175 57, 3, -1, -1, 61, -1, 8, 9, -1, 11,
1176 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1177 14, -1, -1, -1, 81, 82, -1, 29, 85, 31,
1178 -1, 33, 34, 35, 28, -1, 30, -1, -1, 3,
1179 42, -1, -1, 45, 8, 9, -1, 11, 50, 51,
1180 52, -1, -1, -1, 56, 57, -1, -1, -1, 61,
1181 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1182 34, 35, -1, -1, -1, -1, -1, -1, 42, 81,
1183 82, 45, -1, 85, -1, 79, 50, 51, 52, -1,
1184 -1, -1, 56, 57, 3, -1, -1, 61, -1, 8,
1185 9, -1, 11, 4, 5, 6, 7, -1, -1, -1,
1186 -1, 12, 13, 14, -1, -1, -1, 81, 82, -1,
1187 29, 85, 31, -1, 33, 34, 35, 28, -1, 30,
1188 -1, -1, 3, 42, -1, -1, 45, 8, 9, -1,
1189 11, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1190 -1, -1, 61, -1, -1, -1, -1, -1, 29, -1,
1191 31, -1, 33, 34, 35, 10, -1, -1, -1, -1,
1192 -1, 42, 81, 82, 45, -1, 85, -1, 79, 50,
1193 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1194 61, -1, 37, 38, 39, 40, 41, 42, 43, 44,
1195 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1196 81, 82, -1, -1, 85, 3, 4, 5, 6, 7,
1197 8, 9, -1, 11, 12, 13, 14, 15, -1, 17,
1198 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1199 28, 29, 30, 31, -1, 33, 34, 35, -1, -1,
1200 4, 5, 6, 7, 42, -1, -1, 45, 12, 13,
1201 14, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1202 -1, -1, -1, 61, 28, 39, 30, 41, 42, 43,
1203 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1204 54, 79, -1, 81, 82, -1, 84, 3, 4, -1,
1205 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1206 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1207 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1208 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1209 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1210 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1211 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1212 -1, 42, -1, 79, 45, 81, 82, -1, 84, 50,
1213 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1214 61, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1215 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1216 81, 82, -1, 84, -1, -1, 28, 29, 30, 31,
1217 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1218 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1219 52, -1, -1, -1, 56, 57, -1, 3, 4, 61,
1220 6, 7, 8, 9, -1, 11, 12, 13, 14, 45,
1221 46, 47, 48, 49, 50, 51, 52, 53, 54, 81,
1222 82, -1, 28, 29, -1, 31, -1, 33, 34, 35,
1223 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1224 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1225 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1226 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1227 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1228 51, 52, -1, -1, -1, 56, 57, 3, -1, -1,
1229 61, -1, 8, 9, -1, 11, 43, 44, 45, 46,
1230 47, 48, 49, 50, 51, 52, 53, 54, 79, -1,
1231 81, 82, -1, 29, -1, 31, -1, 33, 34, 35,
1232 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1233 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1234 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1235 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1236 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1237 51, 52, -1, -1, -1, 56, 57, 3, -1, -1,
1238 61, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1239 46, 47, 48, 49, 50, 51, 52, 53, 54, -1,
1240 81, 82, -1, 29, -1, 31, -1, 33, 34, 35,
1241 -1, -1, 3, -1, -1, -1, 42, 8, 9, 45,
1242 11, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1243 56, 57, -1, -1, -1, 61, -1, -1, 29, -1,
1244 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1245 -1, 42, -1, -1, 45, 81, 82, -1, -1, 50,
1246 51, 52, -1, -1, -1, 56, 57, -1, -1, 1,
1247 61, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1248 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1249 81, 82, -1, -1, -1, 27, 28, -1, 30, 31,
1250 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1251 54, -1, -1, -1, -1, -1, -1, 10, -1, -1,
1252 52, -1, -1, -1, -1, -1, 37, 38, 39, 61,
1253 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1254 51, 52, 53, 54, 37, 38, 39, 79, 41, 42,
1255 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1256 53, 54, 46, 47, 48, 49, 50, 51, 52, 53,
1257 54, 37, 38, 39, 85, 41, 42, 43, 44, 45,
1258 46, 47, 48, 49, 50, 51, 52, 53, 54, 30,
1259 -1, -1, 85, -1, -1, -1, 37, 38, 39, -1,
1260 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1261 51, 52, 53, 54, -1, -1, -1, 83, 37, 38,
1262 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1263 49, 50, 51, 52, 53, 54, 37, 38, 39, -1,
1264 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1267 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1268 #line 3 "/usr/share/misc/bison.simple"
1269 /* This file comes from bison-1.28. */
1271 /* Skeleton output parser for bison,
1272 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1274 This program is free software; you can redistribute it and/or modify
1275 it under the terms of the GNU General Public License as published by
1276 the Free Software Foundation; either version 2, or (at your option)
1279 This program is distributed in the hope that it will be useful,
1280 but WITHOUT ANY WARRANTY; without even the implied warranty of
1281 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1282 GNU General Public License for more details.
1284 You should have received a copy of the GNU General Public License
1285 along with this program; if not, write to the Free Software
1286 Foundation, Inc., 59 Temple Place - Suite 330,
1287 Boston, MA 02111-1307, USA. */
1289 /* As a special exception, when this file is copied by Bison into a
1290 Bison output file, you may use that output file without restriction.
1291 This special exception was added by the Free Software Foundation
1292 in version 1.24 of Bison. */
1294 /* This is the parser code that is written into each bison parser
1295 when the %semantic_parser declaration is not specified in the grammar.
1296 It was written by Richard Stallman by simplifying the hairy parser
1297 used when %semantic_parser is specified. */
1299 #ifndef YYSTACK_USE_ALLOCA
1301 #define YYSTACK_USE_ALLOCA
1302 #else /* alloca not defined */
1304 #define YYSTACK_USE_ALLOCA
1305 #define alloca __builtin_alloca
1306 #else /* not GNU C. */
1307 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1308 #define YYSTACK_USE_ALLOCA
1310 #else /* not sparc */
1311 /* We think this test detects Watcom and Microsoft C. */
1312 /* This used to test MSDOS, but that is a bad idea
1313 since that symbol is in the user namespace. */
1314 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1315 #if 0 /* No need for malloc.h, which pollutes the namespace;
1316 instead, just don't use alloca. */
1319 #else /* not MSDOS, or __TURBOC__ */
1321 /* I don't know what this was needed for, but it pollutes the namespace.
1322 So I turned it off. rms, 2 May 1997. */
1323 /* #include <malloc.h> */
1325 #define YYSTACK_USE_ALLOCA
1326 #else /* not MSDOS, or __TURBOC__, or _AIX */
1328 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1329 and on HPUX 10. Eventually we can turn this on. */
1330 #define YYSTACK_USE_ALLOCA
1331 #define alloca __builtin_alloca
1334 #endif /* not _AIX */
1335 #endif /* not MSDOS, or __TURBOC__ */
1336 #endif /* not sparc */
1337 #endif /* not GNU C */
1338 #endif /* alloca not defined */
1339 #endif /* YYSTACK_USE_ALLOCA not defined */
1341 #ifdef YYSTACK_USE_ALLOCA
1342 #define YYSTACK_ALLOC alloca
1344 #define YYSTACK_ALLOC malloc
1347 /* Note: there must be only one dollar sign in this file.
1348 It is replaced by the list of actions, each action
1349 as one case of the switch. */
1351 #define yyerrok (yyerrstatus = 0)
1352 #define yyclearin (yychar = YYEMPTY)
1355 #define YYACCEPT goto yyacceptlab
1356 #define YYABORT goto yyabortlab
1357 #define YYERROR goto yyerrlab1
1358 /* Like YYERROR except do call yyerror.
1359 This remains here temporarily to ease the
1360 transition to the new meaning of YYERROR, for GCC.
1361 Once GCC version 2 has supplanted version 1, this can go. */
1362 #define YYFAIL goto yyerrlab
1363 #define YYRECOVERING() (!!yyerrstatus)
1364 #define YYBACKUP(token, value) \
1366 if (yychar == YYEMPTY && yylen == 1) \
1367 { yychar = (token), yylval = (value); \
1368 yychar1 = YYTRANSLATE (yychar); \
1373 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1377 #define YYERRCODE 256
1380 #define YYLEX yylex()
1386 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1388 #define YYLEX yylex(&yylval, &yylloc)
1390 #else /* not YYLSP_NEEDED */
1392 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1394 #define YYLEX yylex(&yylval)
1396 #endif /* not YYLSP_NEEDED */
1399 /* If nonreentrant, generate the variables here */
1403 int yychar
; /* the lookahead symbol */
1404 YYSTYPE yylval
; /* the semantic value of the */
1405 /* lookahead symbol */
1408 YYLTYPE yylloc
; /* location data for the lookahead */
1412 int yynerrs
; /* number of parse errors so far */
1413 #endif /* not YYPURE */
1416 int yydebug
; /* nonzero means print parse trace */
1417 /* Since this is uninitialized, it does not stop multiple parsers
1421 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1424 #define YYINITDEPTH 200
1427 /* YYMAXDEPTH is the maximum size the stacks can grow to
1428 (effective only if the built-in stack extension method is used). */
1435 #define YYMAXDEPTH 10000
1438 /* Define __yy_memcpy. Note that the size argument
1439 should be passed with type unsigned int, because that is what the non-GCC
1440 definitions require. With GCC, __builtin_memcpy takes an arg
1441 of type size_t, but it can handle unsigned int. */
1443 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1444 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1445 #else /* not GNU C or C++ */
1448 /* This is the most reliable way to avoid incompatibilities
1449 in available built-in functions on various systems. */
1451 __yy_memcpy (to
, from
, count
)
1456 register char *f
= from
;
1457 register char *t
= to
;
1458 register int i
= count
;
1464 #else /* __cplusplus */
1466 /* This is the most reliable way to avoid incompatibilities
1467 in available built-in functions on various systems. */
1469 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1471 register char *t
= to
;
1472 register char *f
= from
;
1473 register int i
= count
;
1482 #line 217 "/usr/share/misc/bison.simple"
1484 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1485 into yyparse. The argument should have type void *.
1486 It should actually point to an object.
1487 Grammar actions can access the variable by casting it
1488 to the proper pointer type. */
1490 #ifdef YYPARSE_PARAM
1492 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1493 #define YYPARSE_PARAM_DECL
1494 #else /* not __cplusplus */
1495 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1496 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1497 #endif /* not __cplusplus */
1498 #else /* not YYPARSE_PARAM */
1499 #define YYPARSE_PARAM_ARG
1500 #define YYPARSE_PARAM_DECL
1501 #endif /* not YYPARSE_PARAM */
1503 /* Prevent warning if -Wstrict-prototypes. */
1505 #ifdef YYPARSE_PARAM
1506 int yyparse (void *);
1513 yyparse(YYPARSE_PARAM_ARG
)
1516 register int yystate
;
1518 register short *yyssp
;
1519 register YYSTYPE
*yyvsp
;
1520 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1521 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1523 short yyssa
[YYINITDEPTH
]; /* the state stack */
1524 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1526 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1527 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1530 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1531 YYLTYPE
*yyls
= yylsa
;
1534 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1536 #define YYPOPSTACK (yyvsp--, yyssp--)
1539 int yystacksize
= YYINITDEPTH
;
1540 int yyfree_stacks
= 0;
1551 YYSTYPE yyval
; /* the variable used to return */
1552 /* semantic values from the action */
1559 fprintf(stderr
, "Starting parse\n");
1565 yychar
= YYEMPTY
; /* Cause a token to be read. */
1567 /* Initialize stack pointers.
1568 Waste one element of value and location stack
1569 so that they stay on the same level as the state stack.
1570 The wasted elements are never initialized. */
1578 /* Push a new state, which is found in yystate . */
1579 /* In all cases, when you get here, the value and location stacks
1580 have just been pushed. so pushing a state here evens the stacks. */
1585 if (yyssp
>= yyss
+ yystacksize
- 1)
1587 /* Give user a chance to reallocate the stack */
1588 /* Use copies of these so that the &'s don't force the real ones into memory. */
1589 YYSTYPE
*yyvs1
= yyvs
;
1590 short *yyss1
= yyss
;
1592 YYLTYPE
*yyls1
= yyls
;
1595 /* Get the current used size of the three stacks, in elements. */
1596 int size
= yyssp
- yyss
+ 1;
1599 /* Each stack pointer address is followed by the size of
1600 the data in use in that stack, in bytes. */
1602 /* This used to be a conditional around just the two extra args,
1603 but that might be undefined if yyoverflow is a macro. */
1604 yyoverflow("parser stack overflow",
1605 &yyss1
, size
* sizeof (*yyssp
),
1606 &yyvs1
, size
* sizeof (*yyvsp
),
1607 &yyls1
, size
* sizeof (*yylsp
),
1610 yyoverflow("parser stack overflow",
1611 &yyss1
, size
* sizeof (*yyssp
),
1612 &yyvs1
, size
* sizeof (*yyvsp
),
1616 yyss
= yyss1
; yyvs
= yyvs1
;
1620 #else /* no yyoverflow */
1621 /* Extend the stack our own way. */
1622 if (yystacksize
>= YYMAXDEPTH
)
1624 yyerror("parser stack overflow");
1636 if (yystacksize
> YYMAXDEPTH
)
1637 yystacksize
= YYMAXDEPTH
;
1638 #ifndef YYSTACK_USE_ALLOCA
1641 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
1642 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
1643 size
* (unsigned int) sizeof (*yyssp
));
1644 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
1645 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
1646 size
* (unsigned int) sizeof (*yyvsp
));
1648 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
1649 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
1650 size
* (unsigned int) sizeof (*yylsp
));
1652 #endif /* no yyoverflow */
1654 yyssp
= yyss
+ size
- 1;
1655 yyvsp
= yyvs
+ size
- 1;
1657 yylsp
= yyls
+ size
- 1;
1662 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1665 if (yyssp
>= yyss
+ yystacksize
- 1)
1671 fprintf(stderr
, "Entering state %d\n", yystate
);
1677 /* Do appropriate processing given the current state. */
1678 /* Read a lookahead token if we need one and don't already have one. */
1681 /* First try to decide what to do without reference to lookahead token. */
1683 yyn
= yypact
[yystate
];
1687 /* Not known => get a lookahead token if don't already have one. */
1689 /* yychar is either YYEMPTY or YYEOF
1690 or a valid token in external form. */
1692 if (yychar
== YYEMPTY
)
1696 fprintf(stderr
, "Reading a token: ");
1701 /* Convert token to internal form (in yychar1) for indexing tables with */
1703 if (yychar
<= 0) /* This means end of input. */
1706 yychar
= YYEOF
; /* Don't call YYLEX any more */
1710 fprintf(stderr
, "Now at end of input.\n");
1715 yychar1
= YYTRANSLATE(yychar
);
1720 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1721 /* Give the individual parser a way to print the precise meaning
1722 of a token, for further debugging info. */
1724 YYPRINT (stderr
, yychar
, yylval
);
1726 fprintf (stderr
, ")\n");
1732 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1737 /* yyn is what to do for this token type in this state.
1738 Negative => reduce, -yyn is rule number.
1739 Positive => shift, yyn is new state.
1740 New state is final state => don't bother to shift,
1741 just return success.
1742 0, or most negative number => error. */
1757 /* Shift the lookahead token. */
1761 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1764 /* Discard the token being shifted unless it is eof. */
1765 if (yychar
!= YYEOF
)
1773 /* count tokens shifted since error; after three, turn off error status. */
1774 if (yyerrstatus
) yyerrstatus
--;
1779 /* Do the default action for the current state. */
1782 yyn
= yydefact
[yystate
];
1786 /* Do a reduction. yyn is the number of a rule to reduce with. */
1790 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1797 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1800 /* Print the symbols being reduced, and their result. */
1801 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1802 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1803 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1811 #line 235 "c-parse.y"
1813 pedwarn ("ANSI C forbids an empty source file");
1818 #line 240 "c-parse.y"
1820 /* In case there were missing closebraces,
1821 get us back to the global binding level. */
1822 while (! global_bindings_p ())
1828 #line 254 "c-parse.y"
1829 {yyval
.ttype
= NULL_TREE
; ;
1832 #line 255 "c-parse.y"
1833 {yyval
.ttype
= NULL_TREE
; ;
1836 #line 262 "c-parse.y"
1837 { STRIP_NOPS (yyvsp
[-2].ttype
);
1838 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1839 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1840 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1841 assemble_asm (yyvsp
[-2].ttype
);
1843 error ("argument of `asm' is not a constant string"); ;
1846 #line 270 "c-parse.y"
1847 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
1850 #line 275 "c-parse.y"
1852 error ("ANSI C forbids data definition with no type or storage class");
1853 else if (!flag_traditional
)
1854 warning ("data definition has no type or storage class");
1856 current_declspecs
= TREE_VALUE (declspec_stack
);
1857 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1858 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1861 #line 284 "c-parse.y"
1862 { current_declspecs
= TREE_VALUE (declspec_stack
);
1863 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1864 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1867 #line 288 "c-parse.y"
1868 { current_declspecs
= TREE_VALUE (declspec_stack
);
1869 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1870 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1873 #line 292 "c-parse.y"
1874 { pedwarn ("empty declaration"); ;
1877 #line 294 "c-parse.y"
1878 { shadow_tag (yyvsp
[-1].ttype
); ;
1881 #line 298 "c-parse.y"
1883 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1886 #line 304 "c-parse.y"
1887 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1888 prefix_attributes
, NULL_TREE
))
1890 reinit_parse_for_function (); ;
1893 #line 309 "c-parse.y"
1894 { store_parm_decls (); ;
1897 #line 311 "c-parse.y"
1898 { finish_function (0);
1899 current_declspecs
= TREE_VALUE (declspec_stack
);
1900 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1901 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1904 #line 316 "c-parse.y"
1905 { current_declspecs
= TREE_VALUE (declspec_stack
);
1906 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1907 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1910 #line 320 "c-parse.y"
1911 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1912 prefix_attributes
, NULL_TREE
))
1914 reinit_parse_for_function (); ;
1917 #line 325 "c-parse.y"
1918 { store_parm_decls (); ;
1921 #line 327 "c-parse.y"
1922 { finish_function (0);
1923 current_declspecs
= TREE_VALUE (declspec_stack
);
1924 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1925 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1928 #line 332 "c-parse.y"
1929 { current_declspecs
= TREE_VALUE (declspec_stack
);
1930 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1931 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1934 #line 336 "c-parse.y"
1935 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1936 prefix_attributes
, NULL_TREE
))
1938 reinit_parse_for_function (); ;
1941 #line 341 "c-parse.y"
1942 { store_parm_decls (); ;
1945 #line 343 "c-parse.y"
1946 { finish_function (0);
1947 current_declspecs
= TREE_VALUE (declspec_stack
);
1948 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1949 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1952 #line 348 "c-parse.y"
1953 { current_declspecs
= TREE_VALUE (declspec_stack
);
1954 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1955 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1958 #line 359 "c-parse.y"
1959 { yyval
.code
= ADDR_EXPR
; ;
1962 #line 361 "c-parse.y"
1963 { yyval
.code
= NEGATE_EXPR
; ;
1966 #line 363 "c-parse.y"
1967 { yyval
.code
= CONVERT_EXPR
; ;
1970 #line 365 "c-parse.y"
1971 { yyval
.code
= PREINCREMENT_EXPR
; ;
1974 #line 367 "c-parse.y"
1975 { yyval
.code
= PREDECREMENT_EXPR
; ;
1978 #line 369 "c-parse.y"
1979 { yyval
.code
= BIT_NOT_EXPR
; ;
1982 #line 371 "c-parse.y"
1983 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1986 #line 375 "c-parse.y"
1987 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1990 #line 380 "c-parse.y"
1991 { yyval
.ttype
= NULL_TREE
; ;
1994 #line 386 "c-parse.y"
1995 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1998 #line 388 "c-parse.y"
1999 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2002 #line 394 "c-parse.y"
2003 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2006 #line 397 "c-parse.y"
2007 { yyval
.ttype
= yyvsp
[0].ttype
;
2008 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2011 #line 400 "c-parse.y"
2012 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2013 overflow_warning (yyval
.ttype
); ;
2016 #line 404 "c-parse.y"
2017 { tree label
= lookup_label (yyvsp
[0].ttype
);
2019 pedwarn ("ANSI C forbids `&&'");
2021 yyval
.ttype
= null_pointer_node
;
2024 TREE_USED (label
) = 1;
2025 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2026 TREE_CONSTANT (yyval
.ttype
) = 1;
2031 #line 432 "c-parse.y"
2032 { skip_evaluation
--;
2033 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2034 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2035 error ("`sizeof' applied to a bit-field");
2036 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2039 #line 438 "c-parse.y"
2040 { skip_evaluation
--;
2041 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2044 #line 441 "c-parse.y"
2045 { skip_evaluation
--;
2046 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2049 #line 444 "c-parse.y"
2050 { skip_evaluation
--;
2051 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2054 #line 447 "c-parse.y"
2055 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2058 #line 449 "c-parse.y"
2059 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2062 #line 451 "c-parse.y"
2063 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2066 #line 455 "c-parse.y"
2067 { skip_evaluation
++; ;
2070 #line 459 "c-parse.y"
2071 { skip_evaluation
++; ;
2074 #line 465 "c-parse.y"
2075 { tree type
= groktypename (yyvsp
[-2].ttype
);
2076 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2079 #line 468 "c-parse.y"
2080 { start_init (NULL_TREE
, NULL
, 0);
2081 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2082 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2085 #line 472 "c-parse.y"
2087 tree result
= pop_init_level (0);
2088 tree type
= yyvsp
[-5].ttype
;
2091 if (pedantic
&& ! flag_isoc99
)
2092 pedwarn ("ANSI C forbids constructor expressions");
2093 if (TYPE_NAME (type
) != 0)
2095 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2096 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2098 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2102 yyval
.ttype
= result
;
2103 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2105 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2112 #line 501 "c-parse.y"
2113 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2116 #line 503 "c-parse.y"
2117 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2120 #line 505 "c-parse.y"
2121 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2124 #line 507 "c-parse.y"
2125 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2128 #line 509 "c-parse.y"
2129 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2132 #line 511 "c-parse.y"
2133 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2136 #line 513 "c-parse.y"
2137 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2140 #line 515 "c-parse.y"
2141 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2144 #line 517 "c-parse.y"
2145 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2148 #line 519 "c-parse.y"
2149 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2152 #line 521 "c-parse.y"
2153 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2156 #line 523 "c-parse.y"
2157 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2160 #line 525 "c-parse.y"
2161 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2162 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2165 #line 528 "c-parse.y"
2166 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2167 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2170 #line 531 "c-parse.y"
2171 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2172 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2175 #line 534 "c-parse.y"
2176 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2177 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2180 #line 537 "c-parse.y"
2181 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2182 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2185 #line 540 "c-parse.y"
2186 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2187 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2190 #line 543 "c-parse.y"
2191 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2192 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2195 #line 546 "c-parse.y"
2197 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2198 /* Make sure first operand is calculated only once. */
2199 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2200 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2201 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2204 #line 553 "c-parse.y"
2205 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2206 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2209 #line 556 "c-parse.y"
2211 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2212 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2213 if (class == 'e' || class == '1'
2214 || class == '2' || class == '<')
2215 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2219 #line 564 "c-parse.y"
2221 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2222 /* This inhibits warnings in truthvalue_conversion. */
2223 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2224 if (class == 'e' || class == '1'
2225 || class == '2' || class == '<')
2226 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2230 #line 576 "c-parse.y"
2232 yyval
.ttype
= lastiddecl
;
2233 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2235 if (yychar
== YYEMPTY
)
2240 /* Ordinary implicit function declaration. */
2241 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2242 assemble_external (yyval
.ttype
);
2243 TREE_USED (yyval
.ttype
) = 1;
2246 else if (current_function_decl
== 0)
2248 error ("`%s' undeclared here (not in a function)",
2249 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2250 yyval
.ttype
= error_mark_node
;
2255 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2256 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2258 error ("`%s' undeclared (first use in this function)",
2259 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2261 if (! undeclared_variable_notice
)
2263 error ("(Each undeclared identifier is reported only once");
2264 error ("for each function it appears in.)");
2265 undeclared_variable_notice
= 1;
2268 yyval
.ttype
= error_mark_node
;
2269 /* Prevent repeated error messages. */
2270 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2271 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2275 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2276 yyval
.ttype
= error_mark_node
;
2277 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2279 /* The first time we see a build-in function used,
2280 if it has not been declared. */
2281 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2282 if (yychar
== YYEMPTY
)
2286 /* Omit the implicit declaration we
2287 would ordinarily do, so we don't lose
2288 the actual built in type.
2289 But print a diagnostic for the mismatch. */
2290 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2291 error ("`%s' implicitly declared as function",
2292 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2293 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2294 != TYPE_MODE (integer_type_node
))
2295 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2297 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2298 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2299 /* If it really returns void, change that to int. */
2300 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2301 TREE_TYPE (yyval
.ttype
)
2302 = build_function_type (integer_type_node
,
2303 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2306 pedwarn ("built-in function `%s' used without declaration",
2307 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2309 /* Do what we would ordinarily do when a fn is used. */
2310 assemble_external (yyval
.ttype
);
2311 TREE_USED (yyval
.ttype
) = 1;
2315 assemble_external (yyval
.ttype
);
2316 TREE_USED (yyval
.ttype
) = 1;
2319 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2321 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2322 /* This is to prevent an enum whose value is 0
2323 from being considered a null pointer constant. */
2324 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2325 TREE_CONSTANT (yyval
.ttype
) = 1;
2330 #line 675 "c-parse.y"
2331 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2334 #line 677 "c-parse.y"
2335 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2336 if (class == 'e' || class == '1'
2337 || class == '2' || class == '<')
2338 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2339 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2342 #line 683 "c-parse.y"
2343 { yyval
.ttype
= error_mark_node
; ;
2346 #line 685 "c-parse.y"
2349 pedwarn ("ANSI C forbids braced-groups within expressions");
2350 pop_iterator_stack ();
2352 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2353 /* The statements have side effects, so the group does. */
2354 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2356 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2358 /* Make a BIND_EXPR for the BLOCK already made. */
2359 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2360 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2361 /* Remove the block from the tree at this point.
2362 It gets put back at the proper place
2363 when the BIND_EXPR is expanded. */
2364 delete_block (yyvsp
[-1].ttype
);
2367 yyval
.ttype
= yyvsp
[-1].ttype
;
2371 #line 708 "c-parse.y"
2373 /* Make sure we call expand_end_stmt_expr. Otherwise
2374 we are likely to lose sequences and crash later. */
2375 pop_iterator_stack ();
2377 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2378 yyval
.ttype
= error_mark_node
;
2382 #line 717 "c-parse.y"
2383 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2386 #line 719 "c-parse.y"
2387 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2390 #line 721 "c-parse.y"
2392 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2396 #line 725 "c-parse.y"
2398 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2400 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2404 #line 731 "c-parse.y"
2405 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2408 #line 733 "c-parse.y"
2409 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2412 #line 740 "c-parse.y"
2413 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2414 if (warn_traditional
&& !in_system_header
)
2415 warning ("Use of ANSI string concatenation");
2419 #line 752 "c-parse.y"
2420 { c_mark_varargs ();
2422 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2425 #line 762 "c-parse.y"
2429 #line 778 "c-parse.y"
2430 { current_declspecs
= TREE_VALUE (declspec_stack
);
2431 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2432 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2435 #line 782 "c-parse.y"
2436 { current_declspecs
= TREE_VALUE (declspec_stack
);
2437 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2438 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2441 #line 786 "c-parse.y"
2442 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2443 pedwarn ("empty declaration"); ;
2446 #line 789 "c-parse.y"
2447 { pedwarn ("empty declaration"); ;
2450 #line 798 "c-parse.y"
2454 #line 813 "c-parse.y"
2455 { pending_xref_error ();
2456 declspec_stack
= tree_cons (prefix_attributes
,
2459 split_specs_attrs (yyvsp
[0].ttype
,
2460 ¤t_declspecs
, &prefix_attributes
); ;
2463 #line 823 "c-parse.y"
2464 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2467 #line 828 "c-parse.y"
2468 { current_declspecs
= TREE_VALUE (declspec_stack
);
2469 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2470 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2473 #line 832 "c-parse.y"
2474 { current_declspecs
= TREE_VALUE (declspec_stack
);
2475 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2476 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2479 #line 836 "c-parse.y"
2480 { current_declspecs
= TREE_VALUE (declspec_stack
);
2481 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2482 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2485 #line 840 "c-parse.y"
2486 { current_declspecs
= TREE_VALUE (declspec_stack
);
2487 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2488 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2491 #line 844 "c-parse.y"
2492 { shadow_tag (yyvsp
[-1].ttype
); ;
2495 #line 846 "c-parse.y"
2496 { pedwarn ("empty declaration"); ;
2499 #line 848 "c-parse.y"
2500 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2503 #line 858 "c-parse.y"
2504 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2507 #line 860 "c-parse.y"
2508 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2511 #line 864 "c-parse.y"
2512 { yyval
.ttype
= NULL_TREE
; ;
2515 #line 866 "c-parse.y"
2516 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2519 #line 868 "c-parse.y"
2520 { if (extra_warnings
)
2521 warning ("`%s' is not at beginning of declaration",
2522 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2523 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2526 #line 873 "c-parse.y"
2527 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2530 #line 878 "c-parse.y"
2531 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2534 #line 880 "c-parse.y"
2535 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2538 #line 885 "c-parse.y"
2539 { yyval
.ttype
= NULL_TREE
; ;
2542 #line 887 "c-parse.y"
2543 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2546 #line 889 "c-parse.y"
2547 { if (extra_warnings
)
2548 warning ("`%s' is not at beginning of declaration",
2549 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2550 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2553 #line 902 "c-parse.y"
2554 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2557 #line 904 "c-parse.y"
2558 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2561 #line 906 "c-parse.y"
2562 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2565 #line 908 "c-parse.y"
2566 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2569 #line 913 "c-parse.y"
2570 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2571 TREE_STATIC (yyval
.ttype
) = 1; ;
2574 #line 916 "c-parse.y"
2575 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2578 #line 918 "c-parse.y"
2579 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2580 TREE_STATIC (yyval
.ttype
) = 1; ;
2583 #line 921 "c-parse.y"
2584 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2585 warning ("`%s' is not at beginning of declaration",
2586 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2587 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2588 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2591 #line 935 "c-parse.y"
2592 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2595 #line 937 "c-parse.y"
2596 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2599 #line 941 "c-parse.y"
2600 { yyval
.ttype
= NULL_TREE
; ;
2603 #line 943 "c-parse.y"
2604 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2607 #line 953 "c-parse.y"
2608 { /* For a typedef name, record the meaning, not the name.
2609 In case of `foo foo, bar;'. */
2610 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2613 #line 957 "c-parse.y"
2614 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2617 #line 959 "c-parse.y"
2618 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2621 #line 981 "c-parse.y"
2622 { yyval
.ttype
= NULL_TREE
; ;
2625 #line 983 "c-parse.y"
2626 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2627 yyval
.ttype
= yyvsp
[-1].ttype
;
2631 #line 990 "c-parse.y"
2632 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2633 yyvsp
[-1].ttype
, prefix_attributes
);
2634 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2637 #line 995 "c-parse.y"
2639 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2642 #line 998 "c-parse.y"
2643 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2644 yyvsp
[0].ttype
, prefix_attributes
);
2645 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2649 #line 1006 "c-parse.y"
2650 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2651 yyvsp
[-1].ttype
, prefix_attributes
);
2652 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2655 #line 1011 "c-parse.y"
2657 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2658 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2661 #line 1015 "c-parse.y"
2662 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2663 yyvsp
[0].ttype
, prefix_attributes
);
2664 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2667 #line 1023 "c-parse.y"
2668 { yyval
.ttype
= NULL_TREE
; ;
2671 #line 1025 "c-parse.y"
2672 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2675 #line 1030 "c-parse.y"
2676 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2679 #line 1032 "c-parse.y"
2680 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2683 #line 1037 "c-parse.y"
2684 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2687 #line 1042 "c-parse.y"
2688 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2691 #line 1044 "c-parse.y"
2692 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2695 #line 1049 "c-parse.y"
2696 { yyval
.ttype
= NULL_TREE
; ;
2699 #line 1051 "c-parse.y"
2700 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2703 #line 1053 "c-parse.y"
2704 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2707 #line 1055 "c-parse.y"
2708 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2711 #line 1057 "c-parse.y"
2712 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2715 #line 1075 "c-parse.y"
2716 { really_start_incremental_init (NULL_TREE
); ;
2719 #line 1077 "c-parse.y"
2720 { yyval
.ttype
= pop_init_level (0); ;
2723 #line 1079 "c-parse.y"
2724 { yyval
.ttype
= error_mark_node
; ;
2727 #line 1085 "c-parse.y"
2729 pedwarn ("ANSI C forbids empty initializer braces"); ;
2732 #line 1101 "c-parse.y"
2733 { set_init_label (yyvsp
[-1].ttype
); ;
2736 #line 1108 "c-parse.y"
2737 { push_init_level (0); ;
2740 #line 1110 "c-parse.y"
2741 { process_init_element (pop_init_level (0)); ;
2744 #line 1112 "c-parse.y"
2745 { process_init_element (yyvsp
[0].ttype
); ;
2748 #line 1123 "c-parse.y"
2749 { set_init_label (yyvsp
[0].ttype
); ;
2752 #line 1128 "c-parse.y"
2753 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2756 #line 1130 "c-parse.y"
2757 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2760 #line 1135 "c-parse.y"
2762 pedwarn ("ANSI C forbids nested functions");
2764 push_function_context ();
2765 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2766 prefix_attributes
, NULL_TREE
))
2768 pop_function_context ();
2771 reinit_parse_for_function (); ;
2774 #line 1147 "c-parse.y"
2775 { store_parm_decls (); ;
2778 #line 1155 "c-parse.y"
2779 { finish_function (1);
2780 pop_function_context (); ;
2783 #line 1161 "c-parse.y"
2785 pedwarn ("ANSI C forbids nested functions");
2787 push_function_context ();
2788 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2789 prefix_attributes
, NULL_TREE
))
2791 pop_function_context ();
2794 reinit_parse_for_function (); ;
2797 #line 1173 "c-parse.y"
2798 { store_parm_decls (); ;
2801 #line 1181 "c-parse.y"
2802 { finish_function (1);
2803 pop_function_context (); ;
2806 #line 1197 "c-parse.y"
2807 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2810 #line 1199 "c-parse.y"
2811 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2814 #line 1204 "c-parse.y"
2815 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2818 #line 1206 "c-parse.y"
2819 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2822 #line 1208 "c-parse.y"
2823 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2826 #line 1215 "c-parse.y"
2827 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2830 #line 1226 "c-parse.y"
2831 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2834 #line 1231 "c-parse.y"
2835 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2837 error ("`[*]' in parameter declaration only allowed in ISO C 99");
2841 #line 1236 "c-parse.y"
2842 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2845 #line 1238 "c-parse.y"
2846 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2849 #line 1240 "c-parse.y"
2850 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2853 #line 1247 "c-parse.y"
2854 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2857 #line 1256 "c-parse.y"
2858 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2861 #line 1261 "c-parse.y"
2862 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2865 #line 1263 "c-parse.y"
2866 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2869 #line 1265 "c-parse.y"
2870 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2872 error ("`[*]' in parameter declaration only allowed in ISO C 99");
2876 #line 1270 "c-parse.y"
2877 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2880 #line 1272 "c-parse.y"
2881 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2884 #line 1279 "c-parse.y"
2885 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2888 #line 1285 "c-parse.y"
2889 { yyval
.ttype
= NULL_TREE
; ;
2892 #line 1287 "c-parse.y"
2893 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2896 #line 1292 "c-parse.y"
2897 { yyval
.ttype
= NULL_TREE
; ;
2900 #line 1294 "c-parse.y"
2901 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2904 #line 1299 "c-parse.y"
2905 { yyval
.ttype
= NULL_TREE
; ;
2908 #line 1301 "c-parse.y"
2909 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2912 #line 1306 "c-parse.y"
2913 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2914 /* Start scope of tag before parsing components. */
2918 #line 1310 "c-parse.y"
2919 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2922 #line 1312 "c-parse.y"
2923 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2924 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2928 #line 1316 "c-parse.y"
2929 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2932 #line 1318 "c-parse.y"
2933 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2936 #line 1320 "c-parse.y"
2937 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2940 #line 1322 "c-parse.y"
2941 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2942 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2946 #line 1326 "c-parse.y"
2947 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2950 #line 1328 "c-parse.y"
2951 { yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2954 #line 1330 "c-parse.y"
2955 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
2956 chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
)); ;
2959 #line 1333 "c-parse.y"
2960 { yyval
.ttype
= start_enum (NULL_TREE
); ;
2963 #line 1335 "c-parse.y"
2964 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
2965 chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2968 #line 1338 "c-parse.y"
2969 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2972 #line 1349 "c-parse.y"
2973 { if (pedantic
&& ! flag_isoc99
)
2974 pedwarn ("comma at end of enumerator list"); ;
2977 #line 1355 "c-parse.y"
2978 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2981 #line 1357 "c-parse.y"
2982 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2983 pedwarn ("no semicolon at end of struct or union"); ;
2986 #line 1362 "c-parse.y"
2987 { yyval
.ttype
= NULL_TREE
; ;
2990 #line 1364 "c-parse.y"
2991 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2994 #line 1366 "c-parse.y"
2996 pedwarn ("extra semicolon in struct or union specified"); ;
2999 #line 1381 "c-parse.y"
3000 { yyval
.ttype
= yyvsp
[0].ttype
;
3001 current_declspecs
= TREE_VALUE (declspec_stack
);
3002 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3003 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3006 #line 1386 "c-parse.y"
3008 /* Support for unnamed structs or unions as members of
3009 structs or unions (which is [a] useful and [b] supports
3012 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3014 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
3015 current_declspecs
= TREE_VALUE (declspec_stack
);
3016 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3017 declspec_stack
= TREE_CHAIN (declspec_stack
);
3021 #line 1399 "c-parse.y"
3022 { yyval
.ttype
= yyvsp
[0].ttype
;
3023 current_declspecs
= TREE_VALUE (declspec_stack
);
3024 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3025 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3028 #line 1404 "c-parse.y"
3030 pedwarn ("ANSI C forbids member declarations with no members");
3031 shadow_tag(yyvsp
[0].ttype
);
3032 yyval
.ttype
= NULL_TREE
; ;
3035 #line 1409 "c-parse.y"
3036 { yyval
.ttype
= NULL_TREE
; ;
3039 #line 1411 "c-parse.y"
3040 { yyval
.ttype
= yyvsp
[0].ttype
;
3041 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3044 #line 1418 "c-parse.y"
3045 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3048 #line 1423 "c-parse.y"
3049 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3050 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3053 #line 1427 "c-parse.y"
3054 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3055 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3058 #line 1430 "c-parse.y"
3059 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3060 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3063 #line 1442 "c-parse.y"
3064 { if (yyvsp
[-2].ttype
== error_mark_node
)
3065 yyval
.ttype
= yyvsp
[-2].ttype
;
3067 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3070 #line 1447 "c-parse.y"
3071 { yyval
.ttype
= error_mark_node
; ;
3074 #line 1453 "c-parse.y"
3075 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3078 #line 1455 "c-parse.y"
3079 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3082 #line 1460 "c-parse.y"
3083 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3086 #line 1462 "c-parse.y"
3087 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3090 #line 1467 "c-parse.y"
3091 { yyval
.ttype
= NULL_TREE
; ;
3094 #line 1473 "c-parse.y"
3095 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3098 #line 1475 "c-parse.y"
3099 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3102 #line 1480 "c-parse.y"
3103 { yyval
.ttype
= NULL_TREE
; ;
3106 #line 1482 "c-parse.y"
3107 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3110 #line 1487 "c-parse.y"
3111 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3114 #line 1490 "c-parse.y"
3115 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3118 #line 1492 "c-parse.y"
3119 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3122 #line 1494 "c-parse.y"
3123 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3126 #line 1496 "c-parse.y"
3127 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3130 #line 1498 "c-parse.y"
3131 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3134 #line 1500 "c-parse.y"
3135 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3138 #line 1502 "c-parse.y"
3139 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3142 #line 1504 "c-parse.y"
3143 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3146 #line 1508 "c-parse.y"
3147 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3150 #line 1517 "c-parse.y"
3152 if (pedantic
&& yyvsp
[0].ends_in_label
)
3153 pedwarn ("ANSI C forbids label at end of compound statement");
3157 #line 1526 "c-parse.y"
3158 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3161 #line 1528 "c-parse.y"
3162 { yyval
.ends_in_label
= 0; ;
3165 #line 1540 "c-parse.y"
3166 { emit_line_note (input_filename
, lineno
);
3169 expand_start_bindings (0);
3173 #line 1552 "c-parse.y"
3175 pedwarn ("ANSI C forbids label declarations"); ;
3178 #line 1563 "c-parse.y"
3180 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3182 tree label
= shadow_label (TREE_VALUE (link
));
3183 C_DECLARED_LABEL_FLAG (label
) = 1;
3184 declare_nonlocal_label (label
);
3189 #line 1577 "c-parse.y"
3193 #line 1581 "c-parse.y"
3194 { compstmt_count
++; ;
3197 #line 1584 "c-parse.y"
3198 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3201 #line 1586 "c-parse.y"
3202 { emit_line_note (input_filename
, lineno
);
3203 expand_end_bindings (getdecls (), 1, 0);
3204 yyval
.ttype
= poplevel (1, 1, 0); ;
3207 #line 1590 "c-parse.y"
3208 { emit_line_note (input_filename
, lineno
);
3209 expand_end_bindings (getdecls (), kept_level_p (), 0);
3210 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3213 #line 1594 "c-parse.y"
3214 { emit_line_note (input_filename
, lineno
);
3215 expand_end_bindings (getdecls (), kept_level_p (), 0);
3216 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3219 #line 1601 "c-parse.y"
3220 { if (current_function_decl
== 0)
3222 error ("braced-group within expression allowed only inside a function");
3225 /* We must force a BLOCK for this level
3226 so that, if it is not expanded later,
3227 there is a way to turn off the entire subtree of blocks
3228 that are contained in it. */
3230 push_iterator_stack ();
3231 push_label_level ();
3232 yyval
.ttype
= expand_start_stmt_expr ();
3237 #line 1618 "c-parse.y"
3238 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3241 #line 1632 "c-parse.y"
3242 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3243 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3245 yyval
.itype
= stmt_count
;
3246 if_stmt_file
= yyvsp
[-5].filename
;
3247 if_stmt_line
= yyvsp
[-4].lineno
;
3248 position_after_white_space (); ;
3251 #line 1646 "c-parse.y"
3254 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3255 /* See comment in `while' alternative, above. */
3257 expand_start_loop_continue_elsewhere (1);
3258 position_after_white_space (); ;
3261 #line 1654 "c-parse.y"
3262 { expand_loop_continue_here (); ;
3265 #line 1658 "c-parse.y"
3266 { yyval
.filename
= input_filename
; ;
3269 #line 1662 "c-parse.y"
3270 { yyval
.lineno
= lineno
; ;
3273 #line 1667 "c-parse.y"
3277 #line 1672 "c-parse.y"
3281 #line 1677 "c-parse.y"
3282 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3285 #line 1682 "c-parse.y"
3286 { yyval
.ends_in_label
= 0; ;
3289 #line 1684 "c-parse.y"
3290 { yyval
.ends_in_label
= 1; ;
3293 #line 1690 "c-parse.y"
3297 #line 1693 "c-parse.y"
3299 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3300 /* It appears that this should not be done--that a non-lvalue array
3301 shouldn't get an error if the value isn't used.
3302 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3303 if it appears as a top-level expression,
3304 but says nothing about non-lvalue arrays. */
3306 /* Call default_conversion to get an error
3307 on referring to a register array if pedantic. */
3308 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3309 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3310 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3312 iterator_expand (yyvsp
[-1].ttype
); ;
3315 #line 1709 "c-parse.y"
3316 { c_expand_start_else ();
3317 yyvsp
[-1].itype
= stmt_count
;
3318 position_after_white_space (); ;
3321 #line 1713 "c-parse.y"
3322 { c_expand_end_cond ();
3323 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3324 warning ("empty body in an else-statement"); ;
3327 #line 1717 "c-parse.y"
3328 { c_expand_end_cond ();
3329 /* This warning is here instead of in simple_if, because we
3330 do not want a warning if an empty if is followed by an
3331 else statement. Increment stmt_count so we don't
3332 give a second error if this is a nested `if'. */
3333 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3334 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3335 "empty body in an if-statement"); ;
3338 #line 1729 "c-parse.y"
3339 { c_expand_end_cond (); ;
3342 #line 1731 "c-parse.y"
3344 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3345 /* The emit_nop used to come before emit_line_note,
3346 but that made the nop seem like part of the preceding line.
3347 And that was confusing when the preceding line was
3348 inside of an if statement and was not really executed.
3349 I think it ought to work to put the nop after the line number.
3350 We will see. --rms, July 15, 1991. */
3354 #line 1741 "c-parse.y"
3355 { /* Don't start the loop till we have succeeded
3356 in parsing the end test. This is to make sure
3357 that we end every loop we start. */
3358 expand_start_loop (1);
3359 emit_line_note (input_filename
, lineno
);
3360 expand_exit_loop_if_false (NULL_PTR
,
3361 truthvalue_conversion (yyvsp
[-1].ttype
));
3362 position_after_white_space (); ;
3365 #line 1750 "c-parse.y"
3366 { expand_end_loop (); ;
3369 #line 1753 "c-parse.y"
3370 { emit_line_note (input_filename
, lineno
);
3371 expand_exit_loop_if_false (NULL_PTR
,
3372 truthvalue_conversion (yyvsp
[-2].ttype
));
3373 expand_end_loop (); ;
3376 #line 1759 "c-parse.y"
3377 { expand_end_loop (); ;
3380 #line 1762 "c-parse.y"
3382 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3383 /* See comment in `while' alternative, above. */
3385 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3386 /* Next step is to call expand_start_loop_continue_elsewhere,
3387 but wait till after we parse the entire for (...).
3388 Otherwise, invalid input might cause us to call that
3389 fn without calling expand_end_loop. */
3393 #line 1774 "c-parse.y"
3394 { yyvsp
[0].lineno
= lineno
;
3395 yyval
.filename
= input_filename
; ;
3398 #line 1777 "c-parse.y"
3400 /* Start the loop. Doing this after parsing
3401 all the expressions ensures we will end the loop. */
3402 expand_start_loop_continue_elsewhere (1);
3403 /* Emit the end-test, with a line number. */
3404 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3405 if (yyvsp
[-4].ttype
)
3406 expand_exit_loop_if_false (NULL_PTR
,
3407 truthvalue_conversion (yyvsp
[-4].ttype
));
3408 yyvsp
[-3].lineno
= lineno
;
3409 yyvsp
[-2].filename
= input_filename
;
3410 position_after_white_space (); ;
3413 #line 1790 "c-parse.y"
3414 { /* Emit the increment expression, with a line number. */
3415 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3416 expand_loop_continue_here ();
3417 if (yyvsp
[-3].ttype
)
3418 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3419 expand_end_loop (); ;
3422 #line 1797 "c-parse.y"
3424 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3425 c_expand_start_case (yyvsp
[-1].ttype
);
3426 position_after_white_space (); ;
3429 #line 1802 "c-parse.y"
3430 { expand_end_case (yyvsp
[-3].ttype
); ;
3433 #line 1804 "c-parse.y"
3435 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3436 if ( ! expand_exit_something ())
3437 error ("break statement not within loop or switch"); ;
3440 #line 1809 "c-parse.y"
3442 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3443 if (! expand_continue_loop (NULL_PTR
))
3444 error ("continue statement not within a loop"); ;
3447 #line 1814 "c-parse.y"
3449 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3450 c_expand_return (NULL_TREE
); ;
3453 #line 1818 "c-parse.y"
3455 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3456 c_expand_return (yyvsp
[-1].ttype
); ;
3459 #line 1822 "c-parse.y"
3461 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3462 STRIP_NOPS (yyvsp
[-2].ttype
);
3463 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3464 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3465 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3466 expand_asm (yyvsp
[-2].ttype
);
3468 error ("argument of `asm' is not a constant string"); ;
3471 #line 1833 "c-parse.y"
3473 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3474 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3475 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3476 input_filename
, lineno
); ;
3479 #line 1840 "c-parse.y"
3481 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3482 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3483 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3484 input_filename
, lineno
); ;
3487 #line 1848 "c-parse.y"
3489 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3490 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3491 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3492 input_filename
, lineno
); ;
3495 #line 1854 "c-parse.y"
3498 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3499 decl
= lookup_label (yyvsp
[-1].ttype
);
3502 TREE_USED (decl
) = 1;
3508 #line 1865 "c-parse.y"
3510 pedwarn ("ANSI C forbids `goto *expr;'");
3512 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3513 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3516 #line 1880 "c-parse.y"
3518 /* The value returned by this action is */
3519 /* 1 if everything is OK */
3520 /* 0 in case of error or already bound iterator */
3523 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3524 error ("invalid `for (ITERATOR)' syntax");
3525 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3526 error ("`%s' is not an iterator",
3527 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3528 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3529 error ("`for (%s)' inside expansion of same iterator",
3530 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3534 iterator_for_loop_start (yyvsp
[-1].ttype
);
3539 #line 1901 "c-parse.y"
3541 if (yyvsp
[-1].itype
)
3542 iterator_for_loop_end (yyvsp
[-3].ttype
);
3546 #line 1932 "c-parse.y"
3547 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3549 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3553 if (value
!= error_mark_node
)
3558 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3559 pedwarn ("label must have integral type in ANSI C");
3561 success
= pushcase (value
, convert_and_check
,
3565 error ("case label not within a switch statement");
3566 else if (success
== 2)
3568 error ("duplicate case value");
3569 error_with_decl (duplicate
, "this is the first entry for that value");
3571 else if (success
== 3)
3572 warning ("case value out of range");
3573 else if (success
== 5)
3574 error ("case label within scope of cleanup or variable array");
3576 position_after_white_space (); ;
3579 #line 1963 "c-parse.y"
3580 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3581 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3583 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3586 pedwarn ("ANSI C forbids case ranges");
3589 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3592 int success
= pushcase_range (value1
, value2
,
3593 convert_and_check
, label
,
3596 error ("case label not within a switch statement");
3597 else if (success
== 2)
3599 error ("duplicate case value");
3600 error_with_decl (duplicate
, "this is the first entry for that value");
3602 else if (success
== 3)
3603 warning ("case value out of range");
3604 else if (success
== 4)
3605 warning ("empty case range");
3606 else if (success
== 5)
3607 error ("case label within scope of cleanup or variable array");
3609 position_after_white_space (); ;
3612 #line 1994 "c-parse.y"
3616 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3617 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3620 error ("default label not within a switch statement");
3621 else if (success
== 2)
3623 error ("multiple default labels in one switch");
3624 error_with_decl (duplicate
, "this is the first default label");
3626 position_after_white_space (); ;
3629 #line 2009 "c-parse.y"
3630 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3635 expand_label (label
);
3636 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3638 position_after_white_space (); ;
3641 #line 2024 "c-parse.y"
3642 { emit_line_note (input_filename
, lineno
);
3643 yyval
.ttype
= NULL_TREE
; ;
3646 #line 2027 "c-parse.y"
3647 { emit_line_note (input_filename
, lineno
); ;
3650 #line 2032 "c-parse.y"
3651 { yyval
.ttype
= NULL_TREE
; ;
3654 #line 2039 "c-parse.y"
3655 { yyval
.ttype
= NULL_TREE
; ;
3658 #line 2046 "c-parse.y"
3659 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3662 #line 2051 "c-parse.y"
3663 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3666 #line 2056 "c-parse.y"
3667 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3670 #line 2058 "c-parse.y"
3671 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3674 #line 2064 "c-parse.y"
3676 clear_parm_order ();
3677 declare_parm_level (0); ;
3680 #line 2068 "c-parse.y"
3681 { yyval
.ttype
= yyvsp
[0].ttype
;
3682 parmlist_tags_warning ();
3683 poplevel (0, 0, 0); ;
3686 #line 2076 "c-parse.y"
3689 pedwarn ("ANSI C forbids forward parameter declarations");
3690 /* Mark the forward decls as such. */
3691 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3692 TREE_ASM_WRITTEN (parm
) = 1;
3693 clear_parm_order (); ;
3696 #line 2084 "c-parse.y"
3697 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3700 #line 2086 "c-parse.y"
3701 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3704 #line 2092 "c-parse.y"
3705 { yyval
.ttype
= get_parm_info (0); ;
3708 #line 2094 "c-parse.y"
3709 { yyval
.ttype
= get_parm_info (0);
3710 /* Gcc used to allow this as an extension. However, it does
3711 not work for all targets, and thus has been disabled.
3712 Also, since func (...) and func () are indistinguishable,
3713 it caused problems with the code in expand_builtin which
3714 tries to verify that BUILT_IN_NEXT_ARG is being used
3716 error ("ANSI C requires a named argument before `...'");
3720 #line 2104 "c-parse.y"
3721 { yyval
.ttype
= get_parm_info (1); ;
3724 #line 2106 "c-parse.y"
3725 { yyval
.ttype
= get_parm_info (0); ;
3728 #line 2111 "c-parse.y"
3729 { push_parm_decl (yyvsp
[0].ttype
); ;
3732 #line 2113 "c-parse.y"
3733 { push_parm_decl (yyvsp
[0].ttype
); ;
3736 #line 2120 "c-parse.y"
3737 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3739 build_tree_list (prefix_attributes
,
3741 current_declspecs
= TREE_VALUE (declspec_stack
);
3742 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3743 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3746 #line 2128 "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
); ;
3756 #line 2136 "c-parse.y"
3757 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3759 build_tree_list (prefix_attributes
,
3761 current_declspecs
= TREE_VALUE (declspec_stack
);
3762 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3763 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3766 #line 2144 "c-parse.y"
3767 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3769 build_tree_list (prefix_attributes
,
3771 current_declspecs
= TREE_VALUE (declspec_stack
);
3772 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3773 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3776 #line 2153 "c-parse.y"
3777 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3779 build_tree_list (prefix_attributes
,
3781 current_declspecs
= TREE_VALUE (declspec_stack
);
3782 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3783 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3786 #line 2166 "c-parse.y"
3788 clear_parm_order ();
3789 declare_parm_level (1); ;
3792 #line 2170 "c-parse.y"
3793 { yyval
.ttype
= yyvsp
[0].ttype
;
3794 parmlist_tags_warning ();
3795 poplevel (0, 0, 0); ;
3798 #line 2178 "c-parse.y"
3800 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3801 if (TREE_VALUE (t
) == NULL_TREE
)
3802 error ("`...' in old-style identifier list");
3803 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3806 #line 2188 "c-parse.y"
3807 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3810 #line 2190 "c-parse.y"
3811 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3814 #line 2196 "c-parse.y"
3815 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3818 #line 2198 "c-parse.y"
3819 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3822 #line 2203 "c-parse.y"
3823 { yyval
.ttype
= SAVE_WARN_FLAGS();
3825 warn_pointer_arith
= 0; ;
3828 /* the action file gets copied in in place of this dollarsign */
3829 #line 543 "/usr/share/misc/bison.simple"
3840 short *ssp1
= yyss
- 1;
3841 fprintf (stderr
, "state stack now");
3842 while (ssp1
!= yyssp
)
3843 fprintf (stderr
, " %d", *++ssp1
);
3844 fprintf (stderr
, "\n");
3854 yylsp
->first_line
= yylloc
.first_line
;
3855 yylsp
->first_column
= yylloc
.first_column
;
3856 yylsp
->last_line
= (yylsp
-1)->last_line
;
3857 yylsp
->last_column
= (yylsp
-1)->last_column
;
3862 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3863 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3867 /* Now "shift" the result of the reduction.
3868 Determine what state that goes to,
3869 based on the state we popped back to
3870 and the rule number reduced by. */
3874 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3875 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3876 yystate
= yytable
[yystate
];
3878 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3882 yyerrlab
: /* here on detecting error */
3885 /* If not already recovering from an error, report this error. */
3889 #ifdef YYERROR_VERBOSE
3890 yyn
= yypact
[yystate
];
3892 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3899 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3900 for (x
= (yyn
< 0 ? -yyn
: 0);
3901 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3902 if (yycheck
[x
+ yyn
] == x
)
3903 size
+= strlen(yytname
[x
]) + 15, count
++;
3904 msg
= (char *) malloc(size
+ 15);
3907 strcpy(msg
, "parse error");
3912 for (x
= (yyn
< 0 ? -yyn
: 0);
3913 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3914 if (yycheck
[x
+ yyn
] == x
)
3916 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3917 strcat(msg
, yytname
[x
]);
3926 yyerror ("parse error; also virtual memory exceeded");
3929 #endif /* YYERROR_VERBOSE */
3930 yyerror("parse error");
3934 yyerrlab1
: /* here on error raised explicitly by an action */
3936 if (yyerrstatus
== 3)
3938 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3940 /* return failure if at end of input */
3941 if (yychar
== YYEOF
)
3946 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3952 /* Else will try to reuse lookahead token
3953 after shifting the error token. */
3955 yyerrstatus
= 3; /* Each real token shifted decrements this */
3959 yyerrdefault
: /* current state does not do anything special for the error token. */
3962 /* This is wrong; only states that explicitly want error tokens
3963 should shift them. */
3964 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3965 if (yyn
) goto yydefault
;
3968 yyerrpop
: /* pop the current state because it cannot handle the error token */
3970 if (yyssp
== yyss
) YYABORT
;
3980 short *ssp1
= yyss
- 1;
3981 fprintf (stderr
, "Error: state stack now");
3982 while (ssp1
!= yyssp
)
3983 fprintf (stderr
, " %d", *++ssp1
);
3984 fprintf (stderr
, "\n");
3990 yyn
= yypact
[yystate
];
3995 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
4014 fprintf(stderr
, "Shifting error token, ");
4026 /* YYACCEPT comes here. */
4038 /* YYABORT comes here. */
4049 #line 2208 "c-parse.y"