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 185 "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 235, 240, 254, 256, 256, 257, 259, 261, 262, 270,
384 274, 284, 288, 292, 294, 296, 297, 298, 303, 310,
385 312, 316, 320, 326, 328, 332, 336, 342, 344, 348,
386 354, 356, 359, 361, 363, 365, 367, 369, 371, 375,
387 379, 382, 385, 388, 392, 394, 397, 400, 404, 432,
388 438, 441, 444, 447, 449, 451, 455, 459, 463, 465,
389 468, 472, 499, 501, 503, 505, 507, 509, 511, 513,
390 515, 517, 519, 521, 523, 525, 529, 531, 535, 537,
391 540, 544, 546, 553, 556, 564, 575, 674, 675, 677,
392 683, 685, 708, 717, 719, 721, 725, 731, 733, 738,
393 740, 748, 750, 751, 761, 766, 768, 769, 770, 777,
394 782, 786, 789, 797, 802, 804, 805, 806, 813, 823,
395 827, 832, 836, 840, 844, 846, 848, 857, 860, 864,
396 866, 868, 873, 877, 880, 884, 887, 889, 901, 904,
397 906, 908, 912, 916, 918, 921, 934, 937, 941, 943,
398 951, 952, 953, 957, 959, 965, 966, 967, 970, 972,
399 975, 977, 980, 983, 989, 996, 998, 1005, 1012, 1015,
400 1022, 1025, 1029, 1032, 1036, 1041, 1044, 1048, 1051, 1053,
401 1055, 1057, 1064, 1066, 1067, 1068, 1073, 1075, 1077, 1079,
402 1084, 1088, 1091, 1093, 1098, 1100, 1101, 1104, 1104, 1107,
403 1110, 1112, 1114, 1117, 1119, 1122, 1128, 1130, 1134, 1148,
404 1156, 1160, 1174, 1182, 1189, 1191, 1196, 1199, 1204, 1206,
405 1208, 1215, 1217, 1225, 1231, 1236, 1238, 1240, 1247, 1249,
406 1255, 1261, 1263, 1265, 1270, 1272, 1279, 1281, 1284, 1287,
407 1291, 1294, 1298, 1301, 1305, 1310, 1312, 1316, 1318, 1320,
408 1322, 1326, 1328, 1330, 1333, 1335, 1338, 1342, 1344, 1347,
409 1349, 1354, 1357, 1362, 1364, 1366, 1380, 1386, 1399, 1404,
410 1409, 1411, 1416, 1418, 1422, 1426, 1430, 1440, 1442, 1447,
411 1452, 1455, 1459, 1462, 1466, 1469, 1472, 1475, 1479, 1482,
412 1486, 1490, 1492, 1494, 1496, 1498, 1500, 1502, 1504, 1508,
413 1516, 1524, 1526, 1528, 1532, 1534, 1537, 1540, 1550, 1552,
414 1557, 1559, 1562, 1576, 1579, 1582, 1584, 1586, 1590, 1594,
415 1600, 1618, 1623, 1628, 1631, 1645, 1654, 1658, 1662, 1666,
416 1672, 1676, 1681, 1684, 1689, 1692, 1693, 1709, 1714, 1717,
417 1729, 1731, 1741, 1751, 1752, 1759, 1761, 1773, 1777, 1791,
418 1797, 1803, 1804, 1809, 1814, 1818, 1822, 1833, 1840, 1847,
419 1854, 1865, 1871, 1874, 1879, 1902, 1932, 1963, 1994, 2009,
420 2023, 2027, 2031, 2034, 2039, 2041, 2044, 2046, 2050, 2055,
421 2058, 2064, 2069, 2074, 2076, 2085, 2086, 2092, 2094, 2104,
422 2106, 2110, 2113, 2119, 2128, 2136, 2144, 2153, 2166, 2171,
423 2176, 2178, 2187, 2190, 2195, 2198, 2202
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/lib/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/lib/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 236 "c-parse.y"
1813 pedwarn ("ANSI C forbids an empty source file");
1818 #line 241 "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 255 "c-parse.y"
1829 {yyval
.ttype
= NULL_TREE
; ;
1832 #line 256 "c-parse.y"
1833 {yyval
.ttype
= NULL_TREE
; ;
1836 #line 263 "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 271 "c-parse.y"
1847 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
1850 #line 276 "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 285 "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 289 "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 293 "c-parse.y"
1874 { pedwarn ("empty declaration"); ;
1877 #line 295 "c-parse.y"
1878 { shadow_tag (yyvsp
[-1].ttype
); ;
1881 #line 299 "c-parse.y"
1883 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1886 #line 305 "c-parse.y"
1887 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1888 prefix_attributes
, NULL_TREE
))
1890 reinit_parse_for_function (); ;
1893 #line 310 "c-parse.y"
1894 { store_parm_decls (); ;
1897 #line 312 "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 317 "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 321 "c-parse.y"
1911 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1912 prefix_attributes
, NULL_TREE
))
1914 reinit_parse_for_function (); ;
1917 #line 326 "c-parse.y"
1918 { store_parm_decls (); ;
1921 #line 328 "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 333 "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 337 "c-parse.y"
1935 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1936 prefix_attributes
, NULL_TREE
))
1938 reinit_parse_for_function (); ;
1941 #line 342 "c-parse.y"
1942 { store_parm_decls (); ;
1945 #line 344 "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 349 "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 360 "c-parse.y"
1959 { yyval
.code
= ADDR_EXPR
; ;
1962 #line 362 "c-parse.y"
1963 { yyval
.code
= NEGATE_EXPR
; ;
1966 #line 364 "c-parse.y"
1967 { yyval
.code
= CONVERT_EXPR
; ;
1970 #line 366 "c-parse.y"
1971 { yyval
.code
= PREINCREMENT_EXPR
; ;
1974 #line 368 "c-parse.y"
1975 { yyval
.code
= PREDECREMENT_EXPR
; ;
1978 #line 370 "c-parse.y"
1979 { yyval
.code
= BIT_NOT_EXPR
; ;
1982 #line 372 "c-parse.y"
1983 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1986 #line 376 "c-parse.y"
1987 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1990 #line 381 "c-parse.y"
1991 { yyval
.ttype
= NULL_TREE
; ;
1994 #line 387 "c-parse.y"
1995 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1998 #line 389 "c-parse.y"
1999 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2002 #line 395 "c-parse.y"
2003 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2006 #line 398 "c-parse.y"
2007 { yyval
.ttype
= yyvsp
[0].ttype
;
2008 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2011 #line 401 "c-parse.y"
2012 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2013 overflow_warning (yyval
.ttype
); ;
2016 #line 405 "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 433 "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 439 "c-parse.y"
2040 { skip_evaluation
--;
2041 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2044 #line 442 "c-parse.y"
2045 { skip_evaluation
--;
2046 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2049 #line 445 "c-parse.y"
2050 { skip_evaluation
--;
2051 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2054 #line 448 "c-parse.y"
2055 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2058 #line 450 "c-parse.y"
2059 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2062 #line 452 "c-parse.y"
2063 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2066 #line 456 "c-parse.y"
2067 { skip_evaluation
++; ;
2070 #line 460 "c-parse.y"
2071 { skip_evaluation
++; ;
2074 #line 466 "c-parse.y"
2075 { tree type
= groktypename (yyvsp
[-2].ttype
);
2076 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2079 #line 469 "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 473 "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 502 "c-parse.y"
2113 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2116 #line 504 "c-parse.y"
2117 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2120 #line 506 "c-parse.y"
2121 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2124 #line 508 "c-parse.y"
2125 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2128 #line 510 "c-parse.y"
2129 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2132 #line 512 "c-parse.y"
2133 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2136 #line 514 "c-parse.y"
2137 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2140 #line 516 "c-parse.y"
2141 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2144 #line 518 "c-parse.y"
2145 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2148 #line 520 "c-parse.y"
2149 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2152 #line 522 "c-parse.y"
2153 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2156 #line 524 "c-parse.y"
2157 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2160 #line 526 "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 529 "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 532 "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 535 "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 538 "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 541 "c-parse.y"
2186 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2187 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2190 #line 544 "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 547 "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 554 "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 557 "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 565 "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 577 "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 676 "c-parse.y"
2331 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2334 #line 678 "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 684 "c-parse.y"
2343 { yyval
.ttype
= error_mark_node
; ;
2346 #line 686 "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 709 "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 718 "c-parse.y"
2383 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2386 #line 720 "c-parse.y"
2387 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2390 #line 722 "c-parse.y"
2392 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2396 #line 726 "c-parse.y"
2398 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2400 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2404 #line 732 "c-parse.y"
2405 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2408 #line 734 "c-parse.y"
2409 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2412 #line 741 "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 753 "c-parse.y"
2420 { c_mark_varargs ();
2422 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2425 #line 763 "c-parse.y"
2429 #line 779 "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 783 "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 787 "c-parse.y"
2442 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2443 pedwarn ("empty declaration"); ;
2446 #line 790 "c-parse.y"
2447 { pedwarn ("empty declaration"); ;
2450 #line 799 "c-parse.y"
2454 #line 814 "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 824 "c-parse.y"
2464 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2467 #line 829 "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 833 "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 837 "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 841 "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 845 "c-parse.y"
2492 { shadow_tag (yyvsp
[-1].ttype
); ;
2495 #line 847 "c-parse.y"
2496 { pedwarn ("empty declaration"); ;
2499 #line 849 "c-parse.y"
2500 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2503 #line 859 "c-parse.y"
2504 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2507 #line 861 "c-parse.y"
2508 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2511 #line 865 "c-parse.y"
2512 { yyval
.ttype
= NULL_TREE
; ;
2515 #line 867 "c-parse.y"
2516 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2519 #line 869 "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 874 "c-parse.y"
2527 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2530 #line 879 "c-parse.y"
2531 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2534 #line 881 "c-parse.y"
2535 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2538 #line 886 "c-parse.y"
2539 { yyval
.ttype
= NULL_TREE
; ;
2542 #line 888 "c-parse.y"
2543 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2546 #line 890 "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 903 "c-parse.y"
2554 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2557 #line 905 "c-parse.y"
2558 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2561 #line 907 "c-parse.y"
2562 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2565 #line 909 "c-parse.y"
2566 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2569 #line 914 "c-parse.y"
2570 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2571 TREE_STATIC (yyval
.ttype
) = 1; ;
2574 #line 917 "c-parse.y"
2575 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2578 #line 919 "c-parse.y"
2579 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2580 TREE_STATIC (yyval
.ttype
) = 1; ;
2583 #line 922 "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 936 "c-parse.y"
2592 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2595 #line 938 "c-parse.y"
2596 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2599 #line 942 "c-parse.y"
2600 { yyval
.ttype
= NULL_TREE
; ;
2603 #line 944 "c-parse.y"
2604 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2607 #line 954 "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 958 "c-parse.y"
2614 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2617 #line 960 "c-parse.y"
2618 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2621 #line 982 "c-parse.y"
2622 { yyval
.ttype
= NULL_TREE
; ;
2625 #line 984 "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 991 "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 996 "c-parse.y"
2639 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2642 #line 999 "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 1007 "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 1012 "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 1016 "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 1024 "c-parse.y"
2668 { yyval
.ttype
= NULL_TREE
; ;
2671 #line 1026 "c-parse.y"
2672 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2675 #line 1031 "c-parse.y"
2676 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2679 #line 1033 "c-parse.y"
2680 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2683 #line 1038 "c-parse.y"
2684 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2687 #line 1043 "c-parse.y"
2688 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2691 #line 1045 "c-parse.y"
2692 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2695 #line 1050 "c-parse.y"
2696 { yyval
.ttype
= NULL_TREE
; ;
2699 #line 1052 "c-parse.y"
2700 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2703 #line 1054 "c-parse.y"
2704 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2707 #line 1056 "c-parse.y"
2708 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2711 #line 1058 "c-parse.y"
2712 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2715 #line 1076 "c-parse.y"
2716 { really_start_incremental_init (NULL_TREE
); ;
2719 #line 1078 "c-parse.y"
2720 { yyval
.ttype
= pop_init_level (0); ;
2723 #line 1080 "c-parse.y"
2724 { yyval
.ttype
= error_mark_node
; ;
2727 #line 1086 "c-parse.y"
2729 pedwarn ("ANSI C forbids empty initializer braces"); ;
2732 #line 1102 "c-parse.y"
2733 { set_init_label (yyvsp
[-1].ttype
); ;
2736 #line 1109 "c-parse.y"
2737 { push_init_level (0); ;
2740 #line 1111 "c-parse.y"
2741 { process_init_element (pop_init_level (0)); ;
2744 #line 1113 "c-parse.y"
2745 { process_init_element (yyvsp
[0].ttype
); ;
2748 #line 1124 "c-parse.y"
2749 { set_init_label (yyvsp
[0].ttype
); ;
2752 #line 1129 "c-parse.y"
2753 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2756 #line 1131 "c-parse.y"
2757 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2760 #line 1136 "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 1148 "c-parse.y"
2775 { store_parm_decls (); ;
2778 #line 1156 "c-parse.y"
2779 { finish_function (1);
2780 pop_function_context (); ;
2783 #line 1162 "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 1174 "c-parse.y"
2798 { store_parm_decls (); ;
2801 #line 1182 "c-parse.y"
2802 { finish_function (1);
2803 pop_function_context (); ;
2806 #line 1198 "c-parse.y"
2807 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2810 #line 1200 "c-parse.y"
2811 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2814 #line 1205 "c-parse.y"
2815 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2818 #line 1207 "c-parse.y"
2819 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2822 #line 1209 "c-parse.y"
2823 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2826 #line 1216 "c-parse.y"
2827 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2830 #line 1227 "c-parse.y"
2831 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2834 #line 1232 "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 1237 "c-parse.y"
2842 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2845 #line 1239 "c-parse.y"
2846 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2849 #line 1241 "c-parse.y"
2850 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2853 #line 1248 "c-parse.y"
2854 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2857 #line 1257 "c-parse.y"
2858 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2861 #line 1262 "c-parse.y"
2862 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2865 #line 1264 "c-parse.y"
2866 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2869 #line 1266 "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 1271 "c-parse.y"
2877 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2880 #line 1273 "c-parse.y"
2881 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2884 #line 1280 "c-parse.y"
2885 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2888 #line 1286 "c-parse.y"
2889 { yyval
.ttype
= NULL_TREE
; ;
2892 #line 1288 "c-parse.y"
2893 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2896 #line 1293 "c-parse.y"
2897 { yyval
.ttype
= NULL_TREE
; ;
2900 #line 1295 "c-parse.y"
2901 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2904 #line 1300 "c-parse.y"
2905 { yyval
.ttype
= NULL_TREE
; ;
2908 #line 1302 "c-parse.y"
2909 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2912 #line 1307 "c-parse.y"
2913 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2914 /* Start scope of tag before parsing components. */
2918 #line 1311 "c-parse.y"
2919 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2922 #line 1313 "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 1317 "c-parse.y"
2929 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2932 #line 1319 "c-parse.y"
2933 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2936 #line 1321 "c-parse.y"
2937 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2940 #line 1323 "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 1327 "c-parse.y"
2947 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2950 #line 1329 "c-parse.y"
2951 { yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2954 #line 1331 "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 1334 "c-parse.y"
2960 { yyval
.ttype
= start_enum (NULL_TREE
); ;
2963 #line 1336 "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 1339 "c-parse.y"
2969 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2972 #line 1350 "c-parse.y"
2973 { if (pedantic
&& ! flag_isoc99
)
2974 pedwarn ("comma at end of enumerator list"); ;
2977 #line 1356 "c-parse.y"
2978 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2981 #line 1358 "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 1363 "c-parse.y"
2987 { yyval
.ttype
= NULL_TREE
; ;
2990 #line 1365 "c-parse.y"
2991 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2994 #line 1367 "c-parse.y"
2996 pedwarn ("extra semicolon in struct or union specified"); ;
2999 #line 1382 "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 1387 "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 1400 "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 1405 "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 1410 "c-parse.y"
3036 { yyval
.ttype
= NULL_TREE
; ;
3039 #line 1412 "c-parse.y"
3040 { yyval
.ttype
= yyvsp
[0].ttype
;
3041 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3044 #line 1419 "c-parse.y"
3045 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3048 #line 1424 "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 1428 "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 1431 "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 1443 "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 1448 "c-parse.y"
3071 { yyval
.ttype
= error_mark_node
; ;
3074 #line 1454 "c-parse.y"
3075 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3078 #line 1456 "c-parse.y"
3079 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3082 #line 1461 "c-parse.y"
3083 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3086 #line 1463 "c-parse.y"
3087 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3090 #line 1468 "c-parse.y"
3091 { yyval
.ttype
= NULL_TREE
; ;
3094 #line 1474 "c-parse.y"
3095 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3098 #line 1476 "c-parse.y"
3099 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3102 #line 1481 "c-parse.y"
3103 { yyval
.ttype
= NULL_TREE
; ;
3106 #line 1483 "c-parse.y"
3107 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3110 #line 1488 "c-parse.y"
3111 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3114 #line 1491 "c-parse.y"
3115 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3118 #line 1493 "c-parse.y"
3119 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3122 #line 1495 "c-parse.y"
3123 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3126 #line 1497 "c-parse.y"
3127 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3130 #line 1499 "c-parse.y"
3131 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3134 #line 1501 "c-parse.y"
3135 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3138 #line 1503 "c-parse.y"
3139 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3142 #line 1505 "c-parse.y"
3143 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3146 #line 1509 "c-parse.y"
3147 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3150 #line 1518 "c-parse.y"
3152 if (pedantic
&& yyvsp
[0].ends_in_label
)
3153 pedwarn ("ANSI C forbids label at end of compound statement");
3157 #line 1527 "c-parse.y"
3158 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3161 #line 1529 "c-parse.y"
3162 { yyval
.ends_in_label
= 0; ;
3165 #line 1541 "c-parse.y"
3166 { emit_line_note (input_filename
, lineno
);
3169 expand_start_bindings (0);
3173 #line 1553 "c-parse.y"
3175 pedwarn ("ANSI C forbids label declarations"); ;
3178 #line 1564 "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 1578 "c-parse.y"
3193 #line 1582 "c-parse.y"
3194 { compstmt_count
++; ;
3197 #line 1585 "c-parse.y"
3198 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3201 #line 1587 "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 1591 "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 1595 "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 1602 "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 1619 "c-parse.y"
3238 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3241 #line 1633 "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 1647 "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 1655 "c-parse.y"
3262 { expand_loop_continue_here (); ;
3265 #line 1659 "c-parse.y"
3266 { yyval
.filename
= input_filename
; ;
3269 #line 1663 "c-parse.y"
3270 { yyval
.lineno
= lineno
; ;
3273 #line 1668 "c-parse.y"
3277 #line 1673 "c-parse.y"
3281 #line 1678 "c-parse.y"
3282 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3285 #line 1683 "c-parse.y"
3286 { yyval
.ends_in_label
= 0; ;
3289 #line 1685 "c-parse.y"
3290 { yyval
.ends_in_label
= 1; ;
3293 #line 1691 "c-parse.y"
3297 #line 1694 "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 1710 "c-parse.y"
3316 { c_expand_start_else ();
3317 yyvsp
[-1].itype
= stmt_count
;
3318 position_after_white_space (); ;
3321 #line 1714 "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 1718 "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 1730 "c-parse.y"
3339 { c_expand_end_cond (); ;
3342 #line 1732 "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 1742 "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 1751 "c-parse.y"
3366 { expand_end_loop (); ;
3369 #line 1754 "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 1760 "c-parse.y"
3377 { expand_end_loop (); ;
3380 #line 1763 "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 1775 "c-parse.y"
3394 { yyvsp
[0].lineno
= lineno
;
3395 yyval
.filename
= input_filename
; ;
3398 #line 1778 "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 1791 "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 1798 "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 1803 "c-parse.y"
3430 { expand_end_case (yyvsp
[-3].ttype
); ;
3433 #line 1805 "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 1810 "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 1815 "c-parse.y"
3449 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3450 c_expand_return (NULL_TREE
); ;
3453 #line 1819 "c-parse.y"
3455 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3456 c_expand_return (yyvsp
[-1].ttype
); ;
3459 #line 1823 "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 1834 "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 1841 "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 1849 "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 1855 "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 1866 "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 1881 "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 1902 "c-parse.y"
3541 if (yyvsp
[-1].itype
)
3542 iterator_for_loop_end (yyvsp
[-3].ttype
);
3546 #line 1933 "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 1964 "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 1995 "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 2010 "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 2025 "c-parse.y"
3642 { emit_line_note (input_filename
, lineno
);
3643 yyval
.ttype
= NULL_TREE
; ;
3646 #line 2028 "c-parse.y"
3647 { emit_line_note (input_filename
, lineno
); ;
3650 #line 2033 "c-parse.y"
3651 { yyval
.ttype
= NULL_TREE
; ;
3654 #line 2040 "c-parse.y"
3655 { yyval
.ttype
= NULL_TREE
; ;
3658 #line 2047 "c-parse.y"
3659 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3662 #line 2052 "c-parse.y"
3663 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3666 #line 2057 "c-parse.y"
3667 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3670 #line 2059 "c-parse.y"
3671 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3674 #line 2065 "c-parse.y"
3676 clear_parm_order ();
3677 declare_parm_level (0); ;
3680 #line 2069 "c-parse.y"
3681 { yyval
.ttype
= yyvsp
[0].ttype
;
3682 parmlist_tags_warning ();
3683 poplevel (0, 0, 0); ;
3686 #line 2077 "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 2085 "c-parse.y"
3697 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3700 #line 2087 "c-parse.y"
3701 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3704 #line 2093 "c-parse.y"
3705 { yyval
.ttype
= get_parm_info (0); ;
3708 #line 2095 "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 2105 "c-parse.y"
3721 { yyval
.ttype
= get_parm_info (1); ;
3724 #line 2107 "c-parse.y"
3725 { yyval
.ttype
= get_parm_info (0); ;
3728 #line 2112 "c-parse.y"
3729 { push_parm_decl (yyvsp
[0].ttype
); ;
3732 #line 2114 "c-parse.y"
3733 { push_parm_decl (yyvsp
[0].ttype
); ;
3736 #line 2121 "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 2129 "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 2137 "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 2145 "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 2154 "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 2167 "c-parse.y"
3788 clear_parm_order ();
3789 declare_parm_level (1); ;
3792 #line 2171 "c-parse.y"
3793 { yyval
.ttype
= yyvsp
[0].ttype
;
3794 parmlist_tags_warning ();
3795 poplevel (0, 0, 0); ;
3798 #line 2179 "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 2189 "c-parse.y"
3807 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3810 #line 2191 "c-parse.y"
3811 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3814 #line 2197 "c-parse.y"
3815 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3818 #line 2199 "c-parse.y"
3819 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3822 #line 2204 "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/lib/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 2209 "c-parse.y"