2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
82 #ifdef MULTIBYTE_CHARS
87 /* Since parsers are distinct for each language, put the language string
89 char *language_string = "GNU C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
98 typedef union {long itype; tree ttype; enum tree_code code;
99 char *filename; int lineno; int ends_in_label; } YYSTYPE;
100 #line 204 "c-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
104 static int stmt_count;
105 static int compstmt_count;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file;
110 static int if_stmt_line;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs = NULL_TREE;
114 static tree prefix_attributes = NULL_TREE;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice;
123 /* Tell yyparse how to print a token's value, if yydebug is set. */
125 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
126 extern void yyprint PROTO ((FILE *, int, YYSTYPE));
138 #define YYFLAG -32768
141 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241)
143 static const char yytranslate[] = { 0,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
148 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
150 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 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, 2, 2, 2, 1, 2, 3, 4, 5,
170 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
171 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
172 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
173 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
174 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
175 70, 71, 72, 73, 74, 75
179 static const short yyprhs[] = { 0,
180 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
181 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
182 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
183 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
184 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
185 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
186 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
187 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
188 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
189 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
190 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
191 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
192 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
193 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
194 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
195 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
196 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
197 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
198 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
199 582, 585, 587, 591, 595, 598, 599, 604, 606, 607,
200 612, 614, 616, 618, 621, 624, 630, 634, 635, 636,
201 642, 643, 644, 650, 652, 654, 658, 662, 667, 671,
202 675, 679, 681, 685, 690, 695, 699, 703, 707, 709,
203 713, 717, 721, 726, 731, 735, 739, 741, 743, 746,
204 748, 751, 753, 756, 757, 765, 771, 774, 775, 783,
205 789, 792, 793, 802, 803, 811, 814, 815, 817, 818,
206 820, 822, 825, 826, 830, 833, 837, 839, 843, 845,
207 847, 850, 852, 856, 861, 868, 874, 876, 880, 882,
208 884, 888, 891, 894, 895, 897, 899, 902, 903, 906,
209 910, 914, 917, 921, 926, 930, 933, 937, 940, 942,
210 944, 947, 950, 951, 953, 956, 957, 958, 960, 962,
211 965, 969, 971, 974, 976, 979, 986, 992, 998, 1001,
212 1004, 1009, 1010, 1015, 1016, 1017, 1021, 1026, 1030, 1032,
213 1034, 1036, 1038, 1041, 1042, 1047, 1049, 1053, 1054, 1055,
214 1063, 1069, 1072, 1073, 1074, 1075, 1088, 1089, 1096, 1099,
215 1102, 1105, 1109, 1116, 1125, 1136, 1149, 1153, 1158, 1160,
216 1162, 1163, 1170, 1174, 1180, 1183, 1187, 1188, 1190, 1191,
217 1193, 1194, 1196, 1198, 1202, 1207, 1209, 1213, 1214, 1217,
218 1220, 1221, 1226, 1229, 1230, 1232, 1234, 1238, 1240, 1244,
219 1249, 1254, 1259, 1264, 1269, 1270, 1273, 1275, 1278, 1280,
223 static const short yyrhs[] = { -1,
224 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
225 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
226 0, 240, 88, 0, 122, 136, 77, 0, 129, 122,
227 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
228 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
229 77, 0, 0, 0, 125, 122, 164, 91, 116, 92,
230 198, 0, 125, 122, 164, 1, 0, 0, 0, 129,
231 122, 167, 93, 116, 94, 198, 0, 129, 122, 167,
232 1, 0, 0, 0, 122, 167, 95, 116, 96, 198,
233 0, 122, 167, 1, 0, 3, 0, 4, 0, 43,
234 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
235 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
236 101, 81, 107, 0, 113, 0, 50, 105, 0, 240,
237 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
238 0, 103, 59, 185, 76, 0, 104, 102, 0, 104,
239 59, 185, 76, 0, 33, 105, 0, 34, 105, 0,
240 11, 0, 29, 0, 102, 0, 59, 185, 76, 105,
241 0, 0, 59, 185, 76, 82, 106, 150, 78, 0,
242 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
243 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
244 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
245 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
246 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
247 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
248 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
249 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
250 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
251 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
252 0, 0, 59, 114, 200, 76, 0, 113, 59, 100,
253 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
254 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
255 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
256 10, 0, 205, 206, 119, 0, 117, 0, 193, 0,
257 118, 117, 0, 117, 193, 0, 127, 122, 135, 77,
258 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
259 77, 0, 205, 206, 124, 0, 120, 0, 193, 0,
260 121, 120, 0, 120, 193, 0, 0, 0, 125, 122,
261 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
262 158, 0, 129, 122, 161, 0, 125, 77, 0, 129,
263 77, 0, 240, 124, 0, 133, 126, 0, 129, 133,
264 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
265 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
266 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
267 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
268 130, 7, 0, 130, 5, 0, 133, 132, 0, 187,
269 133, 132, 0, 0, 132, 134, 0, 6, 0, 171,
270 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
271 185, 76, 0, 6, 0, 7, 0, 171, 0, 138,
272 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
273 0, 0, 27, 59, 115, 76, 0, 0, 164, 137,
274 142, 36, 139, 148, 0, 164, 137, 142, 0, 0,
275 167, 137, 142, 36, 141, 148, 0, 167, 137, 142,
276 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
277 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
278 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
279 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
280 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
281 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
282 0, 151, 176, 0, 152, 0, 151, 81, 152, 0,
283 156, 36, 154, 0, 157, 154, 0, 0, 97, 38,
284 153, 154, 0, 154, 0, 0, 82, 155, 150, 78,
285 0, 107, 0, 1, 0, 157, 0, 156, 157, 0,
286 58, 97, 0, 60, 107, 10, 107, 83, 0, 60,
287 107, 83, 0, 0, 0, 164, 159, 116, 160, 200,
288 0, 0, 0, 167, 162, 116, 163, 200, 0, 165,
289 0, 167, 0, 59, 165, 76, 0, 165, 59, 235,
290 0, 165, 60, 99, 83, 0, 165, 60, 83, 0,
291 50, 188, 165, 0, 143, 123, 165, 0, 4, 0,
292 166, 59, 235, 0, 166, 60, 50, 83, 0, 166,
293 60, 99, 83, 0, 166, 60, 83, 0, 50, 188,
294 166, 0, 143, 123, 166, 0, 4, 0, 167, 59,
295 235, 0, 59, 167, 76, 0, 50, 188, 167, 0,
296 167, 60, 50, 83, 0, 167, 60, 99, 83, 0,
297 167, 60, 83, 0, 143, 123, 167, 0, 3, 0,
298 13, 0, 13, 143, 0, 14, 0, 14, 143, 0,
299 12, 0, 12, 143, 0, 0, 168, 97, 82, 172,
300 178, 78, 142, 0, 168, 82, 178, 78, 142, 0,
301 168, 97, 0, 0, 169, 97, 82, 173, 178, 78,
302 142, 0, 169, 82, 178, 78, 142, 0, 169, 97,
303 0, 0, 170, 97, 82, 174, 183, 177, 78, 142,
304 0, 0, 170, 82, 175, 183, 177, 78, 142, 0,
305 170, 97, 0, 0, 81, 0, 0, 81, 0, 179,
306 0, 179, 180, 0, 0, 179, 180, 77, 0, 179,
307 77, 0, 131, 122, 181, 0, 131, 0, 187, 122,
308 181, 0, 187, 0, 1, 0, 240, 180, 0, 182,
309 0, 181, 81, 182, 0, 205, 206, 164, 142, 0,
310 205, 206, 164, 38, 107, 142, 0, 205, 206, 38,
311 107, 142, 0, 184, 0, 183, 81, 184, 0, 1,
312 0, 97, 0, 97, 36, 107, 0, 131, 186, 0,
313 187, 186, 0, 0, 189, 0, 7, 0, 187, 7,
314 0, 0, 188, 7, 0, 59, 189, 76, 0, 50,
315 188, 189, 0, 50, 188, 0, 189, 59, 228, 0,
316 189, 60, 99, 83, 0, 189, 60, 83, 0, 59,
317 228, 0, 60, 99, 83, 0, 60, 83, 0, 191,
318 0, 208, 0, 191, 208, 0, 191, 193, 0, 0,
319 190, 0, 1, 77, 0, 0, 0, 196, 0, 197,
320 0, 196, 197, 0, 32, 239, 77, 0, 200, 0,
321 1, 200, 0, 82, 0, 199, 78, 0, 199, 194,
322 195, 121, 192, 78, 0, 199, 194, 195, 1, 78,
323 0, 199, 194, 195, 190, 78, 0, 202, 207, 0,
324 202, 1, 0, 15, 59, 99, 76, 0, 0, 18,
325 204, 207, 17, 0, 0, 0, 205, 206, 210, 0,
326 205, 206, 221, 207, 0, 205, 206, 209, 0, 210,
327 0, 221, 0, 200, 0, 218, 0, 99, 77, 0,
328 0, 201, 16, 211, 207, 0, 201, 0, 201, 16,
329 1, 0, 0, 0, 17, 212, 59, 99, 76, 213,
330 207, 0, 203, 59, 99, 76, 77, 0, 203, 1,
331 0, 0, 0, 0, 19, 59, 223, 77, 214, 223,
332 77, 215, 223, 76, 216, 207, 0, 0, 20, 59,
333 99, 76, 217, 207, 0, 23, 77, 0, 24, 77,
334 0, 25, 77, 0, 25, 99, 77, 0, 27, 222,
335 59, 99, 76, 77, 0, 27, 222, 59, 99, 38,
336 224, 76, 77, 0, 27, 222, 59, 99, 38, 224,
337 38, 224, 76, 77, 0, 27, 222, 59, 99, 38,
338 224, 38, 224, 38, 227, 76, 77, 0, 26, 97,
339 77, 0, 26, 50, 99, 77, 0, 77, 0, 219,
340 0, 0, 19, 59, 113, 76, 220, 207, 0, 21,
341 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
342 38, 0, 97, 38, 142, 0, 0, 7, 0, 0,
343 99, 0, 0, 225, 0, 226, 0, 225, 81, 226,
344 0, 9, 59, 99, 76, 0, 115, 0, 227, 81,
345 115, 0, 0, 229, 230, 0, 232, 76, 0, 0,
346 233, 77, 231, 230, 0, 1, 76, 0, 0, 10,
347 0, 233, 0, 233, 81, 10, 0, 234, 0, 233,
348 81, 234, 0, 125, 122, 166, 142, 0, 125, 122,
349 167, 142, 0, 125, 122, 186, 142, 0, 129, 122,
350 167, 142, 0, 129, 122, 186, 142, 0, 0, 236,
351 237, 0, 230, 0, 238, 76, 0, 3, 0, 238,
352 81, 3, 0, 97, 0, 239, 81, 97, 0, 31,
359 static const short yyrline[] = { 0,
360 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
361 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
362 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
363 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
364 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
365 445, 448, 451, 454, 456, 460, 464, 468, 470, 473,
366 477, 504, 506, 508, 510, 512, 514, 516, 518, 520,
367 522, 524, 526, 528, 530, 534, 536, 540, 542, 545,
368 549, 551, 558, 561, 564, 570, 669, 670, 672, 678,
369 680, 694, 717, 719, 721, 725, 731, 733, 738, 740,
370 745, 747, 748, 758, 763, 765, 766, 767, 774, 780,
371 785, 788, 796, 801, 803, 804, 805, 812, 823, 827,
372 833, 838, 843, 848, 850, 852, 861, 864, 868, 870,
373 872, 877, 881, 884, 888, 891, 893, 905, 908, 910,
374 912, 916, 920, 922, 925, 938, 941, 945, 947, 955,
375 956, 957, 961, 963, 969, 970, 971, 974, 976, 979,
376 981, 984, 987, 993, 1000, 1002, 1009, 1016, 1019, 1026,
377 1029, 1033, 1036, 1040, 1045, 1048, 1052, 1055, 1057, 1059,
378 1061, 1068, 1070, 1071, 1072, 1077, 1079, 1084, 1092, 1097,
379 1101, 1104, 1106, 1111, 1113, 1114, 1117, 1117, 1120, 1123,
380 1125, 1127, 1130, 1132, 1135, 1141, 1143, 1147, 1158, 1166,
381 1170, 1181, 1189, 1196, 1198, 1203, 1206, 1211, 1213, 1215,
382 1222, 1224, 1232, 1238, 1243, 1245, 1247, 1254, 1256, 1262,
383 1268, 1270, 1272, 1277, 1279, 1286, 1288, 1291, 1294, 1298,
384 1301, 1305, 1308, 1312, 1317, 1319, 1323, 1325, 1327, 1329,
385 1333, 1335, 1338, 1341, 1344, 1347, 1351, 1353, 1356, 1358,
386 1363, 1366, 1371, 1373, 1375, 1389, 1396, 1401, 1407, 1412,
387 1414, 1419, 1421, 1425, 1429, 1433, 1443, 1445, 1450, 1455,
388 1458, 1462, 1465, 1469, 1472, 1475, 1478, 1482, 1485, 1489,
389 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1517, 1525,
390 1527, 1529, 1533, 1535, 1538, 1541, 1552, 1554, 1559, 1561,
391 1564, 1578, 1581, 1584, 1586, 1588, 1596, 1604, 1615, 1620,
392 1623, 1637, 1646, 1650, 1654, 1658, 1664, 1668, 1673, 1676,
393 1681, 1684, 1685, 1702, 1707, 1710, 1722, 1724, 1734, 1744,
394 1745, 1753, 1756, 1768, 1772, 1789, 1799, 1808, 1813, 1818,
395 1823, 1827, 1831, 1842, 1849, 1856, 1863, 1874, 1880, 1883,
396 1888, 1911, 1945, 1976, 2007, 2022, 2036, 2040, 2044, 2047,
397 2052, 2054, 2057, 2059, 2063, 2068, 2071, 2077, 2082, 2087,
398 2089, 2098, 2099, 2105, 2107, 2117, 2119, 2123, 2126, 2132,
399 2142, 2151, 2160, 2170, 2184, 2189, 2194, 2196, 2205, 2208,
405 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
407 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
408 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
409 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
410 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
411 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
412 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
413 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
414 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
415 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
416 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
417 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
418 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
419 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
420 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
421 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
422 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
423 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
424 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
425 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
426 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
427 "@19","initval","@20","designator_list","designator","nested_function","@21",
428 "@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
429 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
430 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
431 "component_decl_list2","component_decl","components","component_declarator",
432 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
433 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
434 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
435 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
436 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
437 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
438 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
439 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
440 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
444 static const short yyr1[] = { 0,
445 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
446 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
447 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
448 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
449 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
450 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
451 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
452 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
453 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
454 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
455 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
456 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
457 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
458 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
459 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
460 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
461 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
462 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
463 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
464 150, 151, 151, 152, 152, 153, 152, 152, 155, 154,
465 154, 154, 156, 156, 157, 157, 157, 159, 160, 158,
466 162, 163, 161, 164, 164, 165, 165, 165, 165, 165,
467 165, 165, 166, 166, 166, 166, 166, 166, 166, 167,
468 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
469 169, 170, 170, 172, 171, 171, 171, 173, 171, 171,
470 171, 174, 171, 175, 171, 171, 176, 176, 177, 177,
471 178, 178, 179, 179, 179, 180, 180, 180, 180, 180,
472 180, 181, 181, 182, 182, 182, 183, 183, 183, 184,
473 184, 185, 185, 186, 186, 187, 187, 188, 188, 189,
474 189, 189, 189, 189, 189, 189, 189, 189, 190, 191,
475 191, 191, 192, 192, 193, 194, 195, 195, 196, 196,
476 197, 198, 198, 199, 200, 200, 200, 200, 201, 201,
477 202, 204, 203, 205, 206, 207, 207, 208, 209, 209,
478 210, 210, 210, 211, 210, 210, 210, 212, 213, 210,
479 210, 210, 214, 215, 216, 210, 217, 210, 210, 210,
480 210, 210, 210, 210, 210, 210, 210, 210, 210, 218,
481 220, 219, 221, 221, 221, 221, 222, 222, 223, 223,
482 224, 224, 225, 225, 226, 227, 227, 229, 228, 230,
483 231, 230, 230, 232, 232, 232, 232, 233, 233, 234,
484 234, 234, 234, 234, 236, 235, 237, 237, 238, 238,
488 static const short yyr2[] = { 0,
489 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
490 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
491 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
494 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
495 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
496 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
497 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
498 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
499 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
500 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
501 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
502 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
503 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
504 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
505 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
506 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
507 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
508 2, 1, 3, 3, 2, 0, 4, 1, 0, 4,
509 1, 1, 1, 2, 2, 5, 3, 0, 0, 5,
510 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
511 3, 1, 3, 4, 4, 3, 3, 3, 1, 3,
512 3, 3, 4, 4, 3, 3, 1, 1, 2, 1,
513 2, 1, 2, 0, 7, 5, 2, 0, 7, 5,
514 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
515 1, 2, 0, 3, 2, 3, 1, 3, 1, 1,
516 2, 1, 3, 4, 6, 5, 1, 3, 1, 1,
517 3, 2, 2, 0, 1, 1, 2, 0, 2, 3,
518 3, 2, 3, 4, 3, 2, 3, 2, 1, 1,
519 2, 2, 0, 1, 2, 0, 0, 1, 1, 2,
520 3, 1, 2, 1, 2, 6, 5, 5, 2, 2,
521 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
522 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
523 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
524 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
525 0, 6, 3, 5, 2, 3, 0, 1, 0, 1,
526 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
527 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
528 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
532 static const short yydefact[] = { 3,
533 5, 0, 0, 0, 152, 143, 150, 142, 242, 238,
534 240, 0, 0, 0, 403, 18, 4, 8, 7, 0,
535 118, 118, 138, 129, 139, 172, 0, 0, 0, 151,
536 0, 6, 16, 17, 243, 239, 241, 0, 0, 0,
537 237, 288, 0, 0, 160, 119, 0, 15, 0, 14,
538 0, 140, 129, 141, 145, 144, 127, 173, 31, 32,
539 263, 247, 263, 251, 254, 256, 10, 86, 87, 99,
540 56, 57, 0, 0, 0, 33, 35, 34, 0, 36,
541 37, 0, 38, 39, 0, 0, 40, 58, 0, 0,
542 62, 43, 45, 88, 0, 286, 0, 284, 148, 0,
543 284, 177, 0, 0, 11, 0, 0, 30, 0, 395,
544 0, 0, 170, 222, 288, 0, 0, 158, 119, 0,
545 214, 215, 0, 0, 128, 131, 155, 156, 130, 132,
546 157, 0, 0, 244, 0, 248, 0, 252, 54, 55,
547 49, 46, 0, 0, 0, 0, 48, 0, 0, 0,
548 50, 0, 52, 0, 0, 79, 77, 75, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550 97, 98, 0, 0, 41, 0, 100, 47, 153, 288,
551 378, 0, 282, 285, 146, 154, 287, 148, 283, 183,
552 184, 185, 182, 0, 175, 178, 289, 232, 231, 161,
553 162, 236, 0, 230, 0, 0, 235, 0, 0, 28,
554 0, 324, 106, 325, 169, 171, 0, 0, 13, 0,
555 0, 22, 0, 170, 395, 0, 12, 26, 0, 170,
556 270, 265, 118, 262, 118, 0, 263, 170, 263, 279,
557 280, 259, 277, 0, 90, 89, 314, 306, 0, 0,
558 9, 44, 0, 0, 85, 84, 0, 0, 0, 0,
559 73, 74, 72, 71, 70, 68, 69, 63, 64, 65,
560 66, 67, 96, 95, 0, 42, 0, 292, 0, 296,
561 0, 298, 0, 378, 0, 149, 147, 0, 177, 41,
562 0, 0, 399, 385, 118, 118, 397, 0, 386, 388,
563 396, 0, 233, 234, 305, 0, 108, 103, 107, 0,
564 167, 220, 216, 159, 221, 20, 166, 217, 219, 0,
565 24, 246, 324, 264, 324, 271, 0, 250, 0, 0,
566 260, 0, 259, 315, 307, 92, 60, 59, 51, 53,
567 0, 0, 78, 76, 93, 94, 291, 290, 379, 297,
568 293, 295, 0, 174, 176, 86, 0, 163, 383, 284,
569 284, 380, 381, 0, 398, 0, 0, 29, 312, 104,
570 118, 118, 135, 0, 0, 164, 218, 0, 266, 272,
571 325, 268, 170, 170, 281, 278, 170, 0, 0, 0,
572 308, 309, 0, 80, 83, 294, 179, 0, 181, 229,
573 288, 378, 119, 170, 170, 170, 288, 170, 170, 0,
574 387, 389, 400, 313, 111, 0, 112, 0, 135, 133,
575 189, 187, 186, 168, 21, 0, 25, 324, 0, 245,
576 249, 255, 170, 401, 0, 0, 0, 324, 0, 0,
577 115, 325, 300, 310, 202, 86, 0, 0, 199, 0,
578 201, 0, 257, 192, 198, 0, 0, 0, 0, 292,
579 0, 395, 0, 390, 391, 392, 292, 393, 394, 382,
580 0, 0, 162, 134, 137, 136, 0, 165, 273, 0,
581 170, 253, 311, 0, 317, 117, 116, 304, 0, 318,
582 302, 325, 301, 0, 205, 0, 0, 196, 61, 0,
583 191, 0, 204, 195, 81, 180, 227, 288, 228, 223,
584 0, 226, 0, 109, 110, 0, 170, 0, 274, 402,
585 316, 0, 152, 0, 338, 322, 0, 0, 0, 0,
586 0, 0, 0, 0, 367, 359, 0, 0, 113, 118,
587 118, 331, 336, 0, 0, 328, 329, 332, 360, 330,
588 0, 0, 207, 0, 0, 193, 194, 0, 224, 225,
589 188, 276, 170, 0, 0, 324, 369, 0, 0, 365,
590 349, 350, 351, 0, 0, 0, 368, 0, 170, 333,
591 124, 0, 125, 0, 0, 320, 325, 319, 342, 0,
592 126, 0, 200, 197, 275, 0, 0, 0, 370, 45,
593 0, 0, 0, 363, 352, 0, 357, 0, 366, 0,
594 122, 208, 0, 123, 211, 337, 324, 0, 0, 206,
595 321, 0, 323, 361, 343, 347, 0, 358, 0, 120,
596 0, 121, 0, 335, 326, 324, 0, 339, 324, 369,
597 324, 364, 371, 0, 209, 212, 327, 341, 324, 362,
598 0, 348, 0, 0, 372, 373, 353, 0, 0, 340,
599 344, 0, 371, 0, 0, 210, 213, 369, 0, 0,
600 354, 374, 0, 375, 0, 0, 345, 376, 0, 355,
601 324, 0, 0, 346, 356, 377, 0, 0, 0
604 static const short yydefgoto[] = { 687,
605 1, 2, 3, 17, 18, 19, 223, 375, 229, 378,
606 112, 306, 450, 85, 144, 275, 87, 88, 89, 90,
607 91, 393, 92, 260, 259, 257, 458, 258, 93, 145,
608 94, 210, 211, 212, 370, 437, 438, 20, 107, 539,
609 295, 57, 371, 420, 296, 23, 98, 185, 24, 129,
610 117, 44, 113, 118, 426, 45, 374, 215, 216, 26,
611 194, 195, 196, 424, 477, 452, 453, 454, 555, 455,
612 497, 456, 457, 611, 631, 658, 614, 633, 659, 201,
613 121, 507, 122, 27, 28, 29, 30, 237, 239, 244,
614 137, 501, 332, 132, 133, 234, 379, 380, 242, 243,
615 100, 183, 101, 103, 184, 439, 440, 489, 213, 335,
616 390, 391, 392, 368, 248, 369, 543, 544, 545, 566,
617 587, 310, 588, 443, 546, 547, 617, 565, 649, 640,
618 668, 681, 641, 548, 549, 639, 550, 578, 601, 654,
619 655, 656, 679, 280, 281, 297, 410, 298, 299, 300,
620 204, 205, 301, 302, 435, 95
623 static const short yypact[] = { 74,
624 97, 2227, 2227, 54,-32768,-32768,-32768,-32768, 17, 17,
625 17, 87, 94, 134,-32768,-32768,-32768,-32768,-32768, 369,
626 5, 476, 261,-32768, 17,-32768, 59, 61, 90,-32768,
627 2227,-32768,-32768,-32768, 17, 17, 17, 2089, 2023, 189,
628 -32768,-32768, 369, 129,-32768, 17, 320,-32768, 519,-32768,
629 369, 261,-32768, 17,-32768,-32768, 793,-32768,-32768,-32768,
630 -32768, 114,-32768, 181,-32768, 191,-32768,-32768,-32768,-32768,
631 -32768,-32768, 2089, 2089, 241,-32768,-32768,-32768, 2089,-32768,
632 -32768, 708,-32768,-32768, 2089, 40, 211,-32768, 2116, 2143,
633 -32768, 2293, 1062, 286, 2089,-32768, 247, 210,-32768, 254,
634 1674, 639, 272, 276,-32768, 519, 369,-32768, 238,-32768,
635 1451, 357, 17,-32768,-32768, 519, 137,-32768, 17, 1438,
636 378, 395, 232, 1376, 793,-32768,-32768,-32768,-32768, 17,
637 -32768, 259, 870,-32768, 282,-32768, 228,-32768,-32768,-32768,
638 -32768,-32768, 305, 307, 328, 337,-32768, 277, 2089, 708,
639 -32768, 708,-32768, 2089, 2089, 355,-32768,-32768, 2089, 2089,
640 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
641 -32768,-32768, 241, 241, 2089, 2089,-32768,-32768,-32768,-32768,
642 210, 1478,-32768, 398, 438,-32768,-32768,-32768,-32768,-32768,
643 -32768,-32768,-32768, 14,-32768, 361,-32768, 395,-32768,-32768,
644 400, 395, 426,-32768, 402, 1533,-32768, 363, 371,-32768,
645 767, 48,-32768,-32768, 430, 17, 461, 281,-32768, 519,
646 519,-32768, 357, 17,-32768, 1560,-32768,-32768, 357, 17,
647 -32768,-32768, 385, 392, 209, 1323,-32768, 17,-32768,-32768,
648 457, 393,-32768, 228,-32768,-32768,-32768, 416, 420, 1912,
649 -32768, 2293, 421, 423, 2293, 2293, 2089, 463, 2089, 2089,
650 1667, 1881, 2060, 936, 1098, 760, 760, 294, 294,-32768,
651 -32768,-32768,-32768,-32768, 432, 211, 419, 246, 315,-32768,
652 1052,-32768, 431,-32768, 1615,-32768, 438, 433, 639, 2170,
653 44, 437,-32768,-32768,-32768, 1542,-32768, 439, 239,-32768,
654 -32768, 66,-32768,-32768,-32768, 47,-32768,-32768,-32768, 1027,
655 -32768, 378,-32768,-32768, 378,-32768, 480,-32768,-32768, 436,
656 -32768,-32768,-32768,-32768,-32768,-32768, 443,-32768, 447, 2089,
657 241, 449, 393,-32768, 496,-32768,-32768,-32768,-32768,-32768,
658 493, 2089, 2328, 1586,-32768,-32768, 398,-32768,-32768,-32768,
659 -32768,-32768, 455,-32768,-32768, 99, 465,-32768,-32768, 221,
660 374,-32768,-32768, 1465,-32768, 543, 328,-32768,-32768,-32768,
661 471, 172,-32768, 1312, 47,-32768,-32768, 47, 469,-32768,
662 -32768, 469, 17, 17, 2293,-32768, 17, 477, 241, 813,
663 496,-32768, 1132,-32768, 2222,-32768,-32768, 2089,-32768,-32768,
664 -32768, 374, 17, 135, 258, 17,-32768, 258, 17, 1052,
665 -32768,-32768,-32768,-32768,-32768, 519,-32768, 369,-32768, 845,
666 -32768,-32768, 2293,-32768,-32768, 1312,-32768,-32768, 205,-32768,
667 -32768,-32768, 17,-32768, 278, 394, 646, 478, 483, 912,
668 -32768,-32768,-32768,-32768,-32768, 516, 241, 2089,-32768, 520,
669 2293, 485, 484,-32768,-32768, 123, 1252, 2089, 111, 167,
670 688,-32768, 1642,-32768,-32768,-32768, 269,-32768,-32768,-32768,
671 301, 311, 225, 845,-32768,-32768, 1132,-32768,-32768, 2089,
672 160,-32768,-32768, 241,-32768,-32768,-32768,-32768, 486,-32768,
673 -32768,-32768,-32768, 1778,-32768, 2266, 1132,-32768,-32768, 1192,
674 -32768, 1367,-32768,-32768, 2222,-32768, 417,-32768, 417,-32768,
675 1697,-32768, 489,-32768,-32768, 490, 1799, 2089,-32768,-32768,
676 -32768, 1858, 529, 514,-32768,-32768, 515, 534, 2089, 537,
677 502, 518, 2036, 52, 589,-32768, 559, 522,-32768, 523,
678 607,-32768, 585, 995, 45,-32768,-32768,-32768,-32768,-32768,
679 1969, 2089,-32768, 525, 1367,-32768,-32768, 950,-32768,-32768,
680 -32768,-32768, 1799, 2089, 545,-32768, 2089, 2089, 1722,-32768,
681 -32768,-32768,-32768, 528, 2089, 532,-32768, 557, 17,-32768,
682 -32768, 519,-32768, 369, 1075,-32768,-32768,-32768,-32768, 2089,
683 -32768, 2248,-32768,-32768,-32768, 541, 2089, 601,-32768, 849,
684 546, 549, 2089,-32768,-32768, 556,-32768, 2089,-32768, 317,
685 -32768, 359, 345,-32768, 672,-32768,-32768, 1858, 550,-32768,
686 -32768, 558,-32768,-32768,-32768,-32768, 2315,-32768, 23,-32768,
687 357,-32768, 357,-32768,-32768,-32768, 561,-32768,-32768, 2089,
688 -32768,-32768, 613, 563,-32768,-32768,-32768,-32768,-32768,-32768,
689 571,-32768, 577, 33, 581,-32768,-32768, 328, 328,-32768,
690 -32768, 2089, 613, 606, 613,-32768,-32768, 2089, 602, 34,
691 -32768,-32768, 609,-32768, 426, 610,-32768, 286, 157,-32768,
692 -32768, 611, 426,-32768,-32768, 286, 690, 693,-32768
695 static const short yypgoto[] = {-32768,
696 -32768,-32768,-32768, 81,-32768,-32768,-32768,-32768,-32768,-32768,
697 -32768,-32768, -24,-32768, -38, 407, -139, 193,-32768,-32768,
698 -4,-32768, 422,-32768,-32768,-32768,-32768,-32768, 131,-32768,
699 -196, -202, 491,-32768,-32768, 268,-32768, -5, -91, 156,
700 9, 657,-32768, 308, 11, -7, -88, 542, 4, -163,
701 -378, -45, -100, -65,-32768,-32768,-32768, 223, 57, 82,
702 -32768, 424,-32768, 303,-32768, -401,-32768, 233,-32768, -422,
703 -32768,-32768, 279,-32768,-32768,-32768,-32768,-32768,-32768, -39,
704 -59, -316, -18,-32768,-32768,-32768, -33,-32768,-32768,-32768,
705 -32768,-32768, 401, -32,-32768, 507, 425, 316, 501, 415,
706 39, -67, -79, -97, -152, 321,-32768,-32768, -179,-32768,
707 -32768,-32768, 364, -209,-32768, -126,-32768,-32768,-32768,-32768,
708 -89, -331, -514, 314,-32768, 142,-32768,-32768,-32768,-32768,
709 -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, -553, 102,
710 -32768, 101,-32768, 492,-32768, -242,-32768,-32768,-32768, 405,
711 -195,-32768,-32768,-32768,-32768, 6
718 static const short yytable[] = { 86,
719 97, 47, 62, 64, 66, 123, 291, 31, 31, 120,
720 21, 21, 22, 22, 52, 49, 51, 217, 249, 224,
721 316, 286, 214, 131, 104, 53, 321, 221, 279, 318,
722 135, 307, 124, 189, 504, 276, 31, 471, 349, 21,
723 200, 22, 99, 404, 233, 589, 14, 367, -102, 429,
724 141, 598, 177, 235, 59, 60, 218, 308, 25, 25,
725 643, 59, 60, 59, 60, 35, 36, 37, 139, 140,
726 663, 675, 208, -1, 142, 516, 46, 193, 54, 557,
727 147, 48, 278, 32, 198, 99, 651, 25, 202, 288,
728 178, 131, 59, 60, 289, 554, -2, 104, 644, 46,
729 224, 575, 634, 590, 188, 119, 58, 46, 664, 676,
730 494, 67, 241, 130, 673, 148, 58, 58, 58, 358,
731 146, 647, 214, 286, 650, 347, 652, 58, 247, -102,
732 33, 34, 594, 214, 660, 58, 99, 277, 236, 214,
733 61, 365, 63, 283, 509, 38, 366, 233, 273, 274,
734 276, 131, 39, 99, 314, 99, 235, 312, 502, 46,
735 522, 315, 119, 46, 14, 425, 684, 470, 427, 41,
736 400, 65, 119, 197, 397, 5, 55, 7, 56, 398,
737 447, 130, 448, 9, 10, 11, 506, 320, 253, 14,
738 254, 149, 40, 462, 463, 134, 14, 518, 198, 13,
739 58, 142, 202, 610, 327, 105, 329, 41, 114, 106,
740 441, 58, 5, 219, 7, 187, 401, 220, 341, 241,
741 9, 10, 11, 41, 400, 402, 182, 323, 240, 325,
742 59, 60, 682, 381, 14, 381, 13, 683, 188, 99,
743 414, 236, 480, 59, 60, 338, 353, 102, 417, 279,
744 14, 109, 197, 131, 115, 618, 476, 486, 459, 180,
745 491, 25, 136, 116, 193, 55, 510, 56, 181, 182,
746 401, 41, 138, 119, 41, 197, 119, 119, 197, 402,
747 182, 151, 153, 110, 111, -269, -269, 14, 52, 360,
748 361, 149, 406, 409, 177, 180, 203, 58, 14, 53,
749 442, 14, 372, 460, 181, 182, 241, 347, 227, 467,
750 476, 461, 106, 373, 347, 363, 110, 111, 407, 364,
751 108, 42, 179, -27, -27, -27, -27, 402, 182, 186,
752 43, -27, -27, -27, 110, 111, 230, 25, 381, 225,
753 226, 405, 408, 168, 169, 170, 109, -27, 442, -162,
754 492, 199, 54, 251, 483, -162, 313, 209, 484, 238,
755 -324, -324, -324, -324, 434, 416, 418, 542, -324, -324,
756 -324, 41, 472, 284, 285, 419, 41, 514, 110, 111,
757 245, 220, 246, 104, -324, 109, 131, 515, -162, 481,
758 348, 106, -82, 630, -162, 542, -162, 220, 14, 473,
759 -162, -27, 292, 14, 293, 5, 6, 7, 8, 247,
760 558, 294, 250, 9, 10, 11, 403, 46, 42, 290,
761 25, 632, 495, 407, 513, 106, 109, 43, 645, 13,
762 646, 14, 402, 182, 70, -162, 225, 226, -101, -162,
763 131, 198, 202, 127, 128, 304, 317, 305, 198, 9,
764 10, 11, 322, 110, 111, 538, 284, 285, 46, 520,
765 328, -267, -267, 41, 114, 311, 25, 197, 324, 537,
766 305, 485, 119, 331, 46, 462, 463, -384, 678, 5,
767 6, 7, 8, 538, 58, 119, 686, 9, 10, 11,
768 14, 542, 330, 334, 574, 336, 339, 537, 340, 551,
769 342, 346, 540, 13, 541, 14, 142, 345, 354, 576,
770 115, 224, 359, 350, 362, 376, 403, 403, 377, 116,
771 383, 41, 114, 46, 384, 596, 387, 389, 599, 602,
772 394, 666, 667, 52, 582, 584, 606, 396, 613, 198,
773 399, 214, 612, 214, 53, 413, 178, 415, 14, 428,
774 25, 619, 50, -31, 433, -303, 551, 498, 622, 540,
775 490, 541, 499, 521, 500, 615, -32, 561, 115, 629,
776 252, 560, 564, 567, 570, 255, 256, 116, 571, 538,
777 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
778 271, 272, 568, 537, 572, 577, 579, 54, 580, 581,
779 585, 599, 593, 597, 605, 430, 431, 25, 607, 432,
780 5, 6, 7, 8, 403, 608, 621, 623, 9, 10,
781 11, 653, 625, 669, 626, 637, 464, 465, 466, 599,
782 468, 469, 628, 638, 13, 662, 14, 648, 119, 657,
783 46, 59, 60, 190, 191, 192, 209, 661, -114, -114,
784 -114, -114, -114, -114, -114, 482, -114, -114, -114, -114,
785 -114, 665, -114, -114, -114, -114, -114, -114, -114, -114,
786 -114, -114, -114, -114, -114, -114, -114, 674, -114, -114,
787 343, 344, 671, 583, 677, -114, 680, 685, -114, 688,
788 41, 400, 689, -114, -114, -114, 357, 600, 109, -114,
789 -114, -162, 309, 519, -114, 487, 591, -162, 143, 125,
790 68, 5, 355, 7, 96, 69, 70, 14, 71, 9,
791 10, 11, -114, -114, -114, -114, 474, -114, 478, 287,
792 110, 111, 556, 388, 503, 13, 72, 508, 15, 562,
793 73, 74, 326, 479, 333, 386, 43, 75, -162, 382,
794 76, 385, -162, 493, 444, 77, 78, 79, 488, 635,
795 636, 80, 81, 395, 670, 672, 82, 209, 412, 0,
796 -105, -105, -105, -105, 0, 351, -105, 0, -105, -105,
797 -105, 0, 0, 0, 0, 595, 83, 84, 0, -91,
798 0, 0, 0, 0, -105, 423, 0, 126, 127, 128,
799 0, 609, 0, 0, 9, 10, 11, 166, 167, 168,
800 169, 170, 0, 436, 451, -324, -324, -324, -324, -324,
801 -324, -324, 14, -324, -324, -324, -324, -324, 0, -324,
802 -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
803 -324, -324, -324, -324, 0, -324, -324, 423, -105, 475,
804 127, 128, -324, 0, 0, -324, 9, 10, 11, 0,
805 -324, -324, -324, 0, 0, 0, -324, -324, 0, 496,
806 231, -324, 0, 5, 0, 7, 96, 0, 451, 505,
807 0, 9, 10, 11, 0, 0, 0, 0, 0, -324,
808 0, -324, -324, 0, -324, 0, 0, 13, 451, 0,
809 15, 517, 171, 172, 0, 173, 174, 175, 176, 0,
810 0, 0, 209, 0, -324, -324, 0, 0, 451, -324,
811 -324, 451, -324, 451, 624, 0, -324, 0, -324, -324,
812 -324, -324, -324, -324, -324, -324, -324, -324, -324, 563,
813 -324, 0, -324, 0, -324, -324, 232, -261, 0, 0,
814 569, -324, 41, 400, -324, 0, 197, 0, 0, -324,
815 -324, -324, 0, 0, 0, -324, -324, 0, 0, 0,
816 -324, 0, 0, 592, 0, 0, 451, 0, 0, 14,
817 163, 164, 165, 166, 167, 168, 169, 170, -324, -299,
818 -324, -324, 0, -324, 0, 586, 0, -324, -324, 508,
819 0, 0, -324, -324, 0, -324, 0, 0, 43, -324,
820 0, -324, -324, -324, -324, -324, -324, -324, -324, -324,
821 -324, -324, 0, -324, 627, -324, 0, -324, -324, 0,
822 5, 6, 7, 8, -324, 0, 0, -324, 9, 10,
823 11, 0, -324, -324, -324, 0, 0, 0, -324, -324,
824 0, 0, 292, -324, 13, 5, 6, 7, 8, 0,
825 0, 294, 0, 9, 10, 11, 0, 0, 0, 0,
826 0, -324, 0, -324, -324, 616, -324, -334, -334, 13,
827 0, 14, -334, -334, 0, -334, 0, 0, 0, -334,
828 0, -334, -334, -334, -334, -334, -334, -334, -334, -334,
829 -334, -334, 0, -334, 0, -334, 0, -334, -334, 0,
830 0, 0, 0, 0, -334, 171, 172, -334, 173, 174,
831 175, 176, -334, -334, -334, 0, 0, -384, -334, -334,
832 0, 0, 445, -334, 446, 60, 0, 0, 0, 69,
833 70, 0, 71, 164, 165, 166, 167, 168, 169, 170,
834 0, -334, 0, -334, -334, 0, -334, 0, 0, 0,
835 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
836 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
837 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
838 82, 448, 445, 0, 446, 60, 0, 0, 0, 69,
839 70, 0, 71, 0, 0, 0, 0, 0, 0, -190,
840 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
841 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
842 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
843 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
844 82, 448, 445, 0, 68, 0, 0, 0, 0, 69,
845 70, 0, 71, 0, 0, 0, 0, 0, 0, -258,
846 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
847 72, 0, 15, 0, 73, 74, 0, -203, 0, 0,
848 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
849 78, 79, 0, 0, 0, 80, 81, 0, 0, -203,
850 82, -203, 421, 0, 68, 0, 0, 0, 0, 69,
851 70, 0, 71, 231, 0, 0, 5, 0, 7, 96,
852 83, 84, 0, 449, 9, 10, 11, 0, 0, 0,
853 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
854 13, 75, 0, 15, 76, 0, 0, 0, 0, 77,
855 78, 79, 0, 0, 0, 80, 81, 445, 0, 68,
856 82, 0, 0, 0, 69, 70, 228, 71, 0, -23,
857 -23, -23, -23, 0, 0, 0, 0, -23, -23, -23,
858 83, 84, 0, 422, 0, 72, 0, 15, 0, 73,
859 74, 0, 109, -23, 0, -162, 75, 0, 0, 76,
860 0, -162, 0, 0, 77, 78, 79, 0, 0, 0,
861 80, 81, 0, 0, 0, 82, 0, 0, 0, 0,
862 0, 0, 0, 0, 110, 111, 0, 0, 222, 0,
863 0, -19, -19, -19, -19, 83, 84, 0, 449, -19,
864 -19, -19, -162, 68, 0, 0, -162, -23, 69, 70,
865 0, 71, 0, 0, 109, -19, 0, -162, 5, 6,
866 7, 8, 0, -162, 411, 0, 9, 10, 11, 72,
867 68, 15, 0, 73, 74, 69, 70, 0, 71, 0,
868 75, 0, 13, 76, 14, 0, 0, 0, 77, 78,
869 206, 0, 0, 0, 80, 81, 72, 0, 15, 82,
870 73, 74, 0, 0, -162, 0, 0, 75, -162, -19,
871 76, 0, 0, 0, 0, 77, 78, 79, 0, 83,
872 84, 80, 81, 207, 0, 68, 82, 0, 0, 0,
873 69, 70, 0, 71, 0, 5, 6, 7, 8, 0,
874 0, 0, 0, 9, 10, 11, 83, 84, 0, 0,
875 282, 72, 68, 15, 0, 73, 74, 69, 70, 13,
876 71, 14, 75, 0, 0, 76, 0, 0, 0, 0,
877 77, 78, 79, 0, 0, 0, 80, 81, 72, 0,
878 15, 82, 73, 74, 0, 0, 0, 0, 0, 75,
879 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
880 0, 83, 84, 80, 81, 303, 0, 68, 82, 0,
881 0, 0, 69, 70, 0, 71, 159, 160, 161, 162,
882 163, 164, 165, 166, 167, 168, 169, 170, 83, 84,
883 0, 0, 319, 72, 68, 15, 0, 73, 74, 69,
884 70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
885 0, 0, 77, 78, 79, 0, 0, 0, 80, 81,
886 72, 0, 15, 82, 73, 74, 0, 5, 0, 7,
887 187, 75, 0, 0, 76, 9, 10, 11, 0, 77,
888 78, 511, 0, 83, 84, 80, 81, 352, 0, 68,
889 82, 13, 0, 0, 69, 70, 0, 71, 160, 161,
890 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
891 83, 84, 0, 180, 512, 72, 0, 15, 0, 73,
892 74, 603, 181, 182, 0, 0, 75, 0, 0, 76,
893 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
894 80, 81, 0, 0, 0, 82, 154, 155, 156, 604,
895 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
896 167, 168, 169, 170, 0, 83, 84, 0, 0, 559,
897 446, 523, 6, 7, 8, 69, 70, 0, 71, 9,
898 10, 11, 524, 0, 525, 526, 527, 528, 529, 530,
899 531, 532, 533, 534, 535, 13, 72, 14, 15, 0,
900 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
901 76, 0, 0, 0, 0, 77, 78, 79, 14, 0,
902 0, 80, 81, 154, 155, 156, 82, 157, 158, 159,
903 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
904 170, 0, 0, 0, 536, 0, 83, 84, 0, 247,
905 446, 60, 0, 0, 0, 69, 70, 0, 71, 0,
906 0, 0, 524, 0, 525, 526, 527, 528, 529, 530,
907 531, 532, 533, 534, 535, 0, 72, 0, 15, 0,
908 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
909 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
910 0, 80, 81, 0, 68, 0, 82, 0, 0, 69,
911 70, 0, 71, 161, 162, 163, 164, 165, 166, 167,
912 168, 169, 170, 0, 536, 0, 83, 84, 0, 247,
913 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
914 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
915 78, 79, 0, 0, 0, 80, 81, 0, 0, 0,
916 82, 68, 5, 6, 7, 8, 69, 70, 0, 71,
917 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
918 83, 84, 0, 337, 0, 0, 13, 72, 14, 15,
919 0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
920 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
921 0, 0, 80, 81, 0, 68, 5, 82, 7, 96,
922 69, 70, 0, 71, 9, 10, 11, 0, 68, 0,
923 0, 0, 0, 69, 70, 0, 71, 83, 84, 0,
924 13, 72, 0, 15, 0, 73, 74, 0, 0, 0,
925 0, 0, 75, 0, 72, 76, 15, 0, 73, 74,
926 77, 78, 79, 0, 0, 75, 80, 81, 76, 0,
927 0, 82, 0, 77, 78, 79, 0, 0, 0, 80,
928 81, 68, 0, 0, 82, 0, 69, 70, 0, 71,
929 0, 83, 84, 162, 163, 164, 165, 166, 167, 168,
930 169, 170, 573, 0, 83, 84, 0, 72, 68, 15,
931 0, 73, 74, 69, 70, 0, 71, 0, 75, 0,
932 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
933 0, 0, 80, 81, 72, 68, 15, 82, 73, 74,
934 69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
935 0, 0, 0, 77, 78, 79, 0, 83, 84, 80,
936 81, 72, 356, 15, 150, 73, 74, 69, 70, 0,
937 71, 0, 75, 0, 0, 76, 0, 0, 0, 0,
938 77, 78, 79, 0, 83, 84, 80, 81, 72, 0,
939 15, 152, 73, 74, 0, 0, 0, 0, 0, 75,
940 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
941 0, 83, 84, 80, 81, 0, 0, 4, 82, -118,
942 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
943 11, 0, 0, 0, 0, 0, 0, 0, 83, 84,
944 0, 0, 0, 12, 13, 0, 14, 15, 156, 0,
945 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
946 167, 168, 169, 170, 0, 552, -118, 0, 0, 0,
947 0, 0, 154, 155, 156, -118, 157, 158, 159, 160,
948 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
949 154, 155, 156, 16, 157, 158, 159, 160, 161, 162,
950 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
952 620, 157, 158, 159, 160, 161, 162, 163, 164, 165,
953 166, 167, 168, 169, 170, 0, 0, 0, 553, 154,
954 155, 156, 642, 157, 158, 159, 160, 161, 162, 163,
955 164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
956 161, 162, 163, 164, 165, 166, 167, 168, 169, 170
959 static const short yycheck[] = { 38,
960 39, 20, 27, 28, 29, 51, 203, 2, 3, 49,
961 2, 3, 2, 3, 22, 21, 22, 115, 145, 120,
962 223, 185, 112, 57, 43, 22, 229, 119, 181, 225,
963 63, 211, 51, 101, 457, 175, 31, 416, 281, 31,
964 106, 31, 39, 360, 133, 1, 30, 1, 1, 381,
965 75, 566, 9, 133, 3, 4, 116, 10, 2, 3,
966 38, 3, 4, 3, 4, 9, 10, 11, 73, 74,
967 38, 38, 111, 0, 79, 477, 20, 102, 22, 502,
968 85, 77, 180, 3, 103, 82, 640, 31, 107, 76,
969 95, 125, 3, 4, 81, 497, 0, 116, 76, 43,
970 201, 50, 617, 59, 101, 49, 25, 51, 76, 76,
971 442, 31, 137, 57, 668, 76, 35, 36, 37, 76,
972 82, 636, 212, 287, 639, 278, 641, 46, 82, 82,
973 77, 78, 555, 223, 649, 54, 133, 176, 133, 229,
974 82, 76, 82, 182, 461, 59, 81, 236, 173, 174,
975 290, 185, 59, 150, 220, 152, 236, 217, 36, 103,
976 492, 221, 106, 107, 30, 375, 681, 410, 378, 3,
977 4, 82, 116, 7, 76, 4, 5, 6, 7, 81,
978 58, 125, 60, 12, 13, 14, 76, 226, 150, 30,
979 152, 81, 59, 59, 60, 82, 30, 38, 217, 28,
980 119, 206, 221, 582, 237, 77, 239, 3, 4, 81,
981 390, 130, 4, 77, 6, 7, 50, 81, 257, 244,
982 12, 13, 14, 3, 4, 59, 60, 233, 1, 235,
983 3, 4, 76, 323, 30, 325, 28, 81, 235, 236,
984 367, 236, 38, 3, 4, 250, 285, 59, 77, 402,
985 30, 27, 7, 287, 50, 587, 420, 437, 398, 50,
986 440, 205, 82, 59, 289, 5, 462, 7, 59, 60,
987 50, 3, 82, 217, 3, 7, 220, 221, 7, 59,
988 60, 89, 90, 59, 60, 77, 78, 30, 296, 295,
989 296, 81, 360, 361, 9, 50, 59, 216, 30, 296,
990 390, 30, 310, 401, 59, 60, 331, 460, 77, 407,
991 474, 403, 81, 310, 467, 77, 59, 60, 50, 81,
992 1, 50, 76, 4, 5, 6, 7, 59, 60, 76,
993 59, 12, 13, 14, 59, 60, 78, 281, 428, 59,
994 60, 360, 361, 50, 51, 52, 27, 28, 438, 30,
995 440, 76, 296, 77, 77, 36, 76, 1, 81, 78,
996 4, 5, 6, 7, 389, 371, 372, 494, 12, 13,
997 14, 3, 418, 59, 60, 372, 3, 77, 59, 60,
998 76, 81, 76, 402, 28, 27, 420, 77, 30, 429,
999 76, 81, 38, 77, 36, 522, 77, 81, 30, 418,
1000 81, 82, 1, 30, 3, 4, 5, 6, 7, 82,
1001 508, 10, 76, 12, 13, 14, 360, 361, 50, 59,
1002 364, 77, 447, 50, 463, 81, 27, 59, 631, 28,
1003 633, 30, 59, 60, 9, 77, 59, 60, 82, 81,
1004 474, 460, 461, 6, 7, 83, 224, 77, 467, 12,
1005 13, 14, 230, 59, 60, 494, 59, 60, 402, 484,
1006 238, 77, 78, 3, 4, 36, 410, 7, 77, 494,
1007 77, 78, 416, 81, 418, 59, 60, 76, 675, 4,
1008 5, 6, 7, 522, 403, 429, 683, 12, 13, 14,
1009 30, 618, 36, 78, 533, 76, 76, 522, 76, 494,
1010 38, 83, 494, 28, 494, 30, 511, 76, 76, 534,
1011 50, 612, 76, 83, 76, 36, 460, 461, 83, 59,
1012 78, 3, 4, 467, 78, 564, 78, 32, 567, 568,
1013 38, 658, 659, 541, 540, 541, 575, 83, 584, 558,
1014 76, 631, 582, 633, 541, 3, 551, 77, 30, 81,
1015 494, 590, 77, 38, 78, 78, 551, 38, 597, 551,
1016 78, 551, 78, 78, 81, 584, 38, 78, 50, 608,
1017 149, 83, 59, 59, 38, 154, 155, 59, 77, 618,
1018 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1019 169, 170, 59, 618, 77, 7, 38, 541, 77, 77,
1020 16, 640, 78, 59, 77, 383, 384, 551, 77, 387,
1021 4, 5, 6, 7, 558, 59, 76, 17, 12, 13,
1022 14, 9, 77, 662, 76, 76, 404, 405, 406, 668,
1023 408, 409, 77, 76, 28, 59, 30, 77, 582, 77,
1024 584, 3, 4, 5, 6, 7, 1, 77, 3, 4,
1025 5, 6, 7, 8, 9, 433, 11, 12, 13, 14,
1026 15, 81, 17, 18, 19, 20, 21, 22, 23, 24,
1027 25, 26, 27, 28, 29, 30, 31, 76, 33, 34,
1028 259, 260, 77, 77, 76, 40, 77, 77, 43, 0,
1029 3, 4, 0, 48, 49, 50, 290, 567, 27, 54,
1030 55, 30, 212, 481, 59, 438, 551, 36, 1, 53,
1031 3, 4, 289, 6, 7, 8, 9, 30, 11, 12,
1032 13, 14, 77, 78, 79, 80, 419, 82, 426, 188,
1033 59, 60, 500, 333, 456, 28, 29, 50, 31, 517,
1034 33, 34, 236, 428, 244, 331, 59, 40, 77, 325,
1035 43, 330, 81, 440, 391, 48, 49, 50, 438, 618,
1036 618, 54, 55, 342, 663, 665, 59, 1, 364, -1,
1037 4, 5, 6, 7, -1, 284, 10, -1, 12, 13,
1038 14, -1, -1, -1, -1, 563, 79, 80, -1, 82,
1039 -1, -1, -1, -1, 28, 374, -1, 5, 6, 7,
1040 -1, 579, -1, -1, 12, 13, 14, 48, 49, 50,
1041 51, 52, -1, 1, 393, 3, 4, 5, 6, 7,
1042 8, 9, 30, 11, 12, 13, 14, 15, -1, 17,
1043 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1044 28, 29, 30, 31, -1, 33, 34, 426, 82, 5,
1045 6, 7, 40, -1, -1, 43, 12, 13, 14, -1,
1046 48, 49, 50, -1, -1, -1, 54, 55, -1, 448,
1047 1, 59, -1, 4, -1, 6, 7, -1, 457, 458,
1048 -1, 12, 13, 14, -1, -1, -1, -1, -1, 77,
1049 -1, 79, 80, -1, 82, -1, -1, 28, 477, -1,
1050 31, 480, 54, 55, -1, 57, 58, 59, 60, -1,
1051 -1, -1, 1, -1, 3, 4, -1, -1, 497, 8,
1052 9, 500, 11, 502, 76, -1, 15, -1, 17, 18,
1053 19, 20, 21, 22, 23, 24, 25, 26, 27, 518,
1054 29, -1, 31, -1, 33, 34, 77, 78, -1, -1,
1055 529, 40, 3, 4, 43, -1, 7, -1, -1, 48,
1056 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1057 59, -1, -1, 552, -1, -1, 555, -1, -1, 30,
1058 45, 46, 47, 48, 49, 50, 51, 52, 77, 78,
1059 79, 80, -1, 82, -1, 1, -1, 3, 4, 50,
1060 -1, -1, 8, 9, -1, 11, -1, -1, 59, 15,
1061 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1062 26, 27, -1, 29, 603, 31, -1, 33, 34, -1,
1063 4, 5, 6, 7, 40, -1, -1, 43, 12, 13,
1064 14, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1065 -1, -1, 1, 59, 28, 4, 5, 6, 7, -1,
1066 -1, 10, -1, 12, 13, 14, -1, -1, -1, -1,
1067 -1, 77, -1, 79, 80, 1, 82, 3, 4, 28,
1068 -1, 30, 8, 9, -1, 11, -1, -1, -1, 15,
1069 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1070 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
1071 -1, -1, -1, -1, 40, 54, 55, 43, 57, 58,
1072 59, 60, 48, 49, 50, -1, -1, 76, 54, 55,
1073 -1, -1, 1, 59, 3, 4, -1, -1, -1, 8,
1074 9, -1, 11, 46, 47, 48, 49, 50, 51, 52,
1075 -1, 77, -1, 79, 80, -1, 82, -1, -1, -1,
1076 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1077 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1078 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1079 59, 60, 1, -1, 3, 4, -1, -1, -1, 8,
1080 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1081 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1082 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1083 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1084 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1085 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1086 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1087 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1088 29, -1, 31, -1, 33, 34, -1, 36, -1, -1,
1089 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1090 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1091 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1092 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1093 79, 80, -1, 82, 12, 13, 14, -1, -1, -1,
1094 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1095 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1096 49, 50, -1, -1, -1, 54, 55, 1, -1, 3,
1097 59, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1098 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1099 79, 80, -1, 82, -1, 29, -1, 31, -1, 33,
1100 34, -1, 27, 28, -1, 30, 40, -1, -1, 43,
1101 -1, 36, -1, -1, 48, 49, 50, -1, -1, -1,
1102 54, 55, -1, -1, -1, 59, -1, -1, -1, -1,
1103 -1, -1, -1, -1, 59, 60, -1, -1, 1, -1,
1104 -1, 4, 5, 6, 7, 79, 80, -1, 82, 12,
1105 13, 14, 77, 3, -1, -1, 81, 82, 8, 9,
1106 -1, 11, -1, -1, 27, 28, -1, 30, 4, 5,
1107 6, 7, -1, 36, 10, -1, 12, 13, 14, 29,
1108 3, 31, -1, 33, 34, 8, 9, -1, 11, -1,
1109 40, -1, 28, 43, 30, -1, -1, -1, 48, 49,
1110 50, -1, -1, -1, 54, 55, 29, -1, 31, 59,
1111 33, 34, -1, -1, 77, -1, -1, 40, 81, 82,
1112 43, -1, -1, -1, -1, 48, 49, 50, -1, 79,
1113 80, 54, 55, 83, -1, 3, 59, -1, -1, -1,
1114 8, 9, -1, 11, -1, 4, 5, 6, 7, -1,
1115 -1, -1, -1, 12, 13, 14, 79, 80, -1, -1,
1116 83, 29, 3, 31, -1, 33, 34, 8, 9, 28,
1117 11, 30, 40, -1, -1, 43, -1, -1, -1, -1,
1118 48, 49, 50, -1, -1, -1, 54, 55, 29, -1,
1119 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1120 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1121 -1, 79, 80, 54, 55, 83, -1, 3, 59, -1,
1122 -1, -1, 8, 9, -1, 11, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 79, 80,
1124 -1, -1, 83, 29, 3, 31, -1, 33, 34, 8,
1125 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1126 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1127 29, -1, 31, 59, 33, 34, -1, 4, -1, 6,
1128 7, 40, -1, -1, 43, 12, 13, 14, -1, 48,
1129 49, 50, -1, 79, 80, 54, 55, 83, -1, 3,
1130 59, 28, -1, -1, 8, 9, -1, 11, 42, 43,
1131 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1132 79, 80, -1, 50, 83, 29, -1, 31, -1, 33,
1133 34, 10, 59, 60, -1, -1, 40, -1, -1, 43,
1134 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1135 54, 55, -1, -1, -1, 59, 35, 36, 37, 38,
1136 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1137 49, 50, 51, 52, -1, 79, 80, -1, -1, 83,
1138 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1139 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1140 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1141 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1142 43, -1, -1, -1, -1, 48, 49, 50, 30, -1,
1143 -1, 54, 55, 35, 36, 37, 59, 39, 40, 41,
1144 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1145 52, -1, -1, -1, 77, -1, 79, 80, -1, 82,
1146 3, 4, -1, -1, -1, 8, 9, -1, 11, -1,
1147 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1148 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1149 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1150 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1151 -1, 54, 55, -1, 3, -1, 59, -1, -1, 8,
1152 9, -1, 11, 43, 44, 45, 46, 47, 48, 49,
1153 50, 51, 52, -1, 77, -1, 79, 80, -1, 82,
1154 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1155 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1156 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1157 59, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1158 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1159 79, 80, -1, 82, -1, -1, 28, 29, 30, 31,
1160 -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1161 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1162 -1, -1, 54, 55, -1, 3, 4, 59, 6, 7,
1163 8, 9, -1, 11, 12, 13, 14, -1, 3, -1,
1164 -1, -1, -1, 8, 9, -1, 11, 79, 80, -1,
1165 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1166 -1, -1, 40, -1, 29, 43, 31, -1, 33, 34,
1167 48, 49, 50, -1, -1, 40, 54, 55, 43, -1,
1168 -1, 59, -1, 48, 49, 50, -1, -1, -1, 54,
1169 55, 3, -1, -1, 59, -1, 8, 9, -1, 11,
1170 -1, 79, 80, 44, 45, 46, 47, 48, 49, 50,
1171 51, 52, 77, -1, 79, 80, -1, 29, 3, 31,
1172 -1, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1173 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1174 -1, -1, 54, 55, 29, 3, 31, 59, 33, 34,
1175 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1176 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1177 55, 29, 3, 31, 59, 33, 34, 8, 9, -1,
1178 11, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1179 48, 49, 50, -1, 79, 80, 54, 55, 29, -1,
1180 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1181 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1182 -1, 79, 80, 54, 55, -1, -1, 1, 59, 3,
1183 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1184 14, -1, -1, -1, -1, -1, -1, -1, 79, 80,
1185 -1, -1, -1, 27, 28, -1, 30, 31, 37, -1,
1186 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1187 49, 50, 51, 52, -1, 10, 50, -1, -1, -1,
1188 -1, -1, 35, 36, 37, 59, 39, 40, 41, 42,
1189 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1190 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1191 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, 35, 36, 37,
1193 83, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1194 48, 49, 50, 51, 52, -1, -1, -1, 83, 35,
1195 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1196 46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
1197 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
1199 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1200 #line 3 "/usr/local/gnu/share/bison.simple"
1202 /* Skeleton output parser for bison,
1203 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1205 This program is free software; you can redistribute it and/or modify
1206 it under the terms of the GNU General Public License as published by
1207 the Free Software Foundation; either version 2, or (at your option)
1210 This program is distributed in the hope that it will be useful,
1211 but WITHOUT ANY WARRANTY; without even the implied warranty of
1212 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1213 GNU General Public License for more details.
1215 You should have received a copy of the GNU General Public License
1216 along with this program; if not, write to the Free Software
1217 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1219 /* As a special exception, when this file is copied by Bison into a
1220 Bison output file, you may use that output file without restriction.
1221 This special exception was added by the Free Software Foundation
1222 in version 1.24 of Bison. */
1226 #define alloca __builtin_alloca
1227 #else /* not GNU C. */
1228 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1230 #else /* not sparc */
1231 #if defined (MSDOS) && !defined (__TURBOC__)
1233 #else /* not MSDOS, or __TURBOC__ */
1237 #else /* not MSDOS, __TURBOC__, or _AIX */
1241 void *alloca (unsigned int);
1243 #else /* not __cplusplus */
1245 #endif /* not __cplusplus */
1247 #endif /* not _AIX */
1248 #endif /* not MSDOS, or __TURBOC__ */
1249 #endif /* not sparc. */
1250 #endif /* not GNU C. */
1251 #endif /* alloca not defined. */
1253 /* This is the parser code that is written into each bison parser
1254 when the %semantic_parser declaration is not specified in the grammar.
1255 It was written by Richard Stallman by simplifying the hairy parser
1256 used when %semantic_parser is specified. */
1258 /* Note: there must be only one dollar sign in this file.
1259 It is replaced by the list of actions, each action
1260 as one case of the switch. */
1262 #define yyerrok (yyerrstatus = 0)
1263 #define yyclearin (yychar = YYEMPTY)
1266 #define YYACCEPT return(0)
1267 #define YYABORT return(1)
1268 #define YYERROR goto yyerrlab1
1269 /* Like YYERROR except do call yyerror.
1270 This remains here temporarily to ease the
1271 transition to the new meaning of YYERROR, for GCC.
1272 Once GCC version 2 has supplanted version 1, this can go. */
1273 #define YYFAIL goto yyerrlab
1274 #define YYRECOVERING() (!!yyerrstatus)
1275 #define YYBACKUP(token, value) \
1277 if (yychar == YYEMPTY && yylen == 1) \
1278 { yychar = (token), yylval = (value); \
1279 yychar1 = YYTRANSLATE (yychar); \
1284 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1288 #define YYERRCODE 256
1291 #define YYLEX yylex()
1297 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1299 #define YYLEX yylex(&yylval, &yylloc)
1301 #else /* not YYLSP_NEEDED */
1303 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1305 #define YYLEX yylex(&yylval)
1307 #endif /* not YYLSP_NEEDED */
1310 /* If nonreentrant, generate the variables here */
1314 int yychar; /* the lookahead symbol */
1315 YYSTYPE yylval; /* the semantic value of the */
1316 /* lookahead symbol */
1319 YYLTYPE yylloc; /* location data for the lookahead */
1323 int yynerrs; /* number of parse errors so far */
1324 #endif /* not YYPURE */
1327 int yydebug; /* nonzero means print parse trace */
1328 /* Since this is uninitialized, it does not stop multiple parsers
1332 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1335 #define YYINITDEPTH 200
1338 /* YYMAXDEPTH is the maximum size the stacks can grow to
1339 (effective only if the built-in stack extension method is used). */
1346 #define YYMAXDEPTH 10000
1349 /* Prevent warning if -Wstrict-prototypes. */
1354 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1355 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1356 #else /* not GNU C or C++ */
1359 /* This is the most reliable way to avoid incompatibilities
1360 in available built-in functions on various systems. */
1362 __yy_memcpy (to, from, count)
1367 register char *f = from;
1368 register char *t = to;
1369 register int i = count;
1375 #else /* __cplusplus */
1377 /* This is the most reliable way to avoid incompatibilities
1378 in available built-in functions on various systems. */
1380 __yy_memcpy (char *to, char *from, int count)
1382 register char *f = from;
1383 register char *t = to;
1384 register int i = count;
1393 #line 196 "/usr/local/gnu/share/bison.simple"
1395 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1396 into yyparse. The argument should have type void *.
1397 It should actually point to an object.
1398 Grammar actions can access the variable by casting it
1399 to the proper pointer type. */
1401 #ifdef YYPARSE_PARAM
1403 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1404 #define YYPARSE_PARAM_DECL
1405 #else /* not __cplusplus */
1406 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1407 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1408 #endif /* not __cplusplus */
1409 #else /* not YYPARSE_PARAM */
1410 #define YYPARSE_PARAM_ARG
1411 #define YYPARSE_PARAM_DECL
1412 #endif /* not YYPARSE_PARAM */
1415 yyparse(YYPARSE_PARAM_ARG)
1418 register int yystate;
1420 register short *yyssp;
1421 register YYSTYPE *yyvsp;
1422 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1423 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1425 short yyssa[YYINITDEPTH]; /* the state stack */
1426 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1428 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1429 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1432 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1433 YYLTYPE *yyls = yylsa;
1436 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1438 #define YYPOPSTACK (yyvsp--, yyssp--)
1441 int yystacksize = YYINITDEPTH;
1452 YYSTYPE yyval; /* the variable used to return */
1453 /* semantic values from the action */
1460 fprintf(stderr, "Starting parse\n");
1466 yychar = YYEMPTY; /* Cause a token to be read. */
1468 /* Initialize stack pointers.
1469 Waste one element of value and location stack
1470 so that they stay on the same level as the state stack.
1471 The wasted elements are never initialized. */
1479 /* Push a new state, which is found in yystate . */
1480 /* In all cases, when you get here, the value and location stacks
1481 have just been pushed. so pushing a state here evens the stacks. */
1486 if (yyssp >= yyss + yystacksize - 1)
1488 /* Give user a chance to reallocate the stack */
1489 /* Use copies of these so that the &'s don't force the real ones into memory. */
1490 YYSTYPE *yyvs1 = yyvs;
1491 short *yyss1 = yyss;
1493 YYLTYPE *yyls1 = yyls;
1496 /* Get the current used size of the three stacks, in elements. */
1497 int size = yyssp - yyss + 1;
1500 /* Each stack pointer address is followed by the size of
1501 the data in use in that stack, in bytes. */
1503 /* This used to be a conditional around just the two extra args,
1504 but that might be undefined if yyoverflow is a macro. */
1505 yyoverflow("parser stack overflow",
1506 &yyss1, size * sizeof (*yyssp),
1507 &yyvs1, size * sizeof (*yyvsp),
1508 &yyls1, size * sizeof (*yylsp),
1511 yyoverflow("parser stack overflow",
1512 &yyss1, size * sizeof (*yyssp),
1513 &yyvs1, size * sizeof (*yyvsp),
1517 yyss = yyss1; yyvs = yyvs1;
1521 #else /* no yyoverflow */
1522 /* Extend the stack our own way. */
1523 if (yystacksize >= YYMAXDEPTH)
1525 yyerror("parser stack overflow");
1529 if (yystacksize > YYMAXDEPTH)
1530 yystacksize = YYMAXDEPTH;
1531 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1532 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1533 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1534 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1536 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1537 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1539 #endif /* no yyoverflow */
1541 yyssp = yyss + size - 1;
1542 yyvsp = yyvs + size - 1;
1544 yylsp = yyls + size - 1;
1549 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1552 if (yyssp >= yyss + yystacksize - 1)
1558 fprintf(stderr, "Entering state %d\n", yystate);
1564 /* Do appropriate processing given the current state. */
1565 /* Read a lookahead token if we need one and don't already have one. */
1568 /* First try to decide what to do without reference to lookahead token. */
1570 yyn = yypact[yystate];
1574 /* Not known => get a lookahead token if don't already have one. */
1576 /* yychar is either YYEMPTY or YYEOF
1577 or a valid token in external form. */
1579 if (yychar == YYEMPTY)
1583 fprintf(stderr, "Reading a token: ");
1588 /* Convert token to internal form (in yychar1) for indexing tables with */
1590 if (yychar <= 0) /* This means end of input. */
1593 yychar = YYEOF; /* Don't call YYLEX any more */
1597 fprintf(stderr, "Now at end of input.\n");
1602 yychar1 = YYTRANSLATE(yychar);
1607 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1608 /* Give the individual parser a way to print the precise meaning
1609 of a token, for further debugging info. */
1611 YYPRINT (stderr, yychar, yylval);
1613 fprintf (stderr, ")\n");
1619 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1624 /* yyn is what to do for this token type in this state.
1625 Negative => reduce, -yyn is rule number.
1626 Positive => shift, yyn is new state.
1627 New state is final state => don't bother to shift,
1628 just return success.
1629 0, or most negative number => error. */
1644 /* Shift the lookahead token. */
1648 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1651 /* Discard the token being shifted unless it is eof. */
1652 if (yychar != YYEOF)
1660 /* count tokens shifted since error; after three, turn off error status. */
1661 if (yyerrstatus) yyerrstatus--;
1666 /* Do the default action for the current state. */
1669 yyn = yydefact[yystate];
1673 /* Do a reduction. yyn is the number of a rule to reduce with. */
1677 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1684 fprintf (stderr, "Reducing via rule %d (line %d), ",
1687 /* Print the symbols being reduced, and their result. */
1688 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1689 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1690 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1698 #line 234 "c-parse.y"
1700 pedwarn ("ANSI C forbids an empty source file");
1705 #line 239 "c-parse.y"
1707 /* In case there were missing closebraces,
1708 get us back to the global binding level. */
1709 while (! global_bindings_p ())
1715 #line 253 "c-parse.y"
1716 {yyval.ttype = NULL_TREE; ;
1719 #line 254 "c-parse.y"
1720 {yyval.ttype = NULL_TREE; ;
1723 #line 261 "c-parse.y"
1724 { STRIP_NOPS (yyvsp[-2].ttype);
1725 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1726 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1727 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1728 assemble_asm (yyvsp[-2].ttype);
1730 error ("argument of `asm' is not a constant string"); ;
1733 #line 269 "c-parse.y"
1734 { pedantic = yyvsp[-1].itype; ;
1737 #line 274 "c-parse.y"
1739 error ("ANSI C forbids data definition with no type or storage class");
1740 else if (!flag_traditional)
1741 warning ("data definition has no type or storage class");
1743 current_declspecs = TREE_VALUE (declspec_stack);
1744 prefix_attributes = TREE_PURPOSE (declspec_stack);
1745 declspec_stack = TREE_CHAIN (declspec_stack);
1746 resume_momentary (yyvsp[-2].itype); ;
1749 #line 284 "c-parse.y"
1750 { current_declspecs = TREE_VALUE (declspec_stack);
1751 prefix_attributes = TREE_PURPOSE (declspec_stack);
1752 declspec_stack = TREE_CHAIN (declspec_stack);
1753 resume_momentary (yyvsp[-2].itype); ;
1756 #line 289 "c-parse.y"
1757 { current_declspecs = TREE_VALUE (declspec_stack);
1758 prefix_attributes = TREE_PURPOSE (declspec_stack);
1759 declspec_stack = TREE_CHAIN (declspec_stack);
1760 resume_momentary (yyvsp[-2].itype); ;
1763 #line 294 "c-parse.y"
1764 { pedwarn ("empty declaration"); ;
1767 #line 296 "c-parse.y"
1768 { shadow_tag (yyvsp[-1].ttype); ;
1771 #line 300 "c-parse.y"
1773 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1776 #line 306 "c-parse.y"
1777 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1778 prefix_attributes, NULL_TREE, 0))
1780 reinit_parse_for_function (); ;
1783 #line 311 "c-parse.y"
1784 { store_parm_decls (); ;
1787 #line 313 "c-parse.y"
1788 { finish_function (0);
1789 current_declspecs = TREE_VALUE (declspec_stack);
1790 prefix_attributes = TREE_PURPOSE (declspec_stack);
1791 declspec_stack = TREE_CHAIN (declspec_stack);
1792 resume_momentary (yyvsp[-5].itype); ;
1795 #line 319 "c-parse.y"
1796 { current_declspecs = TREE_VALUE (declspec_stack);
1797 prefix_attributes = TREE_PURPOSE (declspec_stack);
1798 declspec_stack = TREE_CHAIN (declspec_stack);
1799 resume_momentary (yyvsp[-2].itype); ;
1802 #line 324 "c-parse.y"
1803 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1804 prefix_attributes, NULL_TREE, 0))
1806 reinit_parse_for_function (); ;
1809 #line 329 "c-parse.y"
1810 { store_parm_decls (); ;
1813 #line 331 "c-parse.y"
1814 { finish_function (0);
1815 current_declspecs = TREE_VALUE (declspec_stack);
1816 prefix_attributes = TREE_PURPOSE (declspec_stack);
1817 declspec_stack = TREE_CHAIN (declspec_stack);
1818 resume_momentary (yyvsp[-5].itype); ;
1821 #line 337 "c-parse.y"
1822 { current_declspecs = TREE_VALUE (declspec_stack);
1823 prefix_attributes = TREE_PURPOSE (declspec_stack);
1824 declspec_stack = TREE_CHAIN (declspec_stack);
1825 resume_momentary (yyvsp[-2].itype); ;
1828 #line 342 "c-parse.y"
1829 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1830 prefix_attributes, NULL_TREE, 0))
1832 reinit_parse_for_function (); ;
1835 #line 347 "c-parse.y"
1836 { store_parm_decls (); ;
1839 #line 349 "c-parse.y"
1840 { finish_function (0);
1841 current_declspecs = TREE_VALUE (declspec_stack);
1842 prefix_attributes = TREE_PURPOSE (declspec_stack);
1843 declspec_stack = TREE_CHAIN (declspec_stack);
1844 resume_momentary (yyvsp[-5].itype); ;
1847 #line 355 "c-parse.y"
1848 { current_declspecs = TREE_VALUE (declspec_stack);
1849 prefix_attributes = TREE_PURPOSE (declspec_stack);
1850 declspec_stack = TREE_CHAIN (declspec_stack);
1851 resume_momentary (yyvsp[-2].itype); ;
1854 #line 367 "c-parse.y"
1855 { yyval.code = ADDR_EXPR; ;
1858 #line 369 "c-parse.y"
1859 { yyval.code = NEGATE_EXPR; ;
1862 #line 371 "c-parse.y"
1863 { yyval.code = CONVERT_EXPR; ;
1866 #line 373 "c-parse.y"
1867 { yyval.code = PREINCREMENT_EXPR; ;
1870 #line 375 "c-parse.y"
1871 { yyval.code = PREDECREMENT_EXPR; ;
1874 #line 377 "c-parse.y"
1875 { yyval.code = BIT_NOT_EXPR; ;
1878 #line 379 "c-parse.y"
1879 { yyval.code = TRUTH_NOT_EXPR; ;
1882 #line 383 "c-parse.y"
1883 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1886 #line 388 "c-parse.y"
1887 { yyval.ttype = NULL_TREE; ;
1890 #line 394 "c-parse.y"
1891 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1894 #line 396 "c-parse.y"
1895 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1898 #line 402 "c-parse.y"
1899 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1902 #line 405 "c-parse.y"
1903 { yyval.ttype = yyvsp[0].ttype;
1904 pedantic = yyvsp[-1].itype; ;
1907 #line 408 "c-parse.y"
1908 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1909 overflow_warning (yyval.ttype); ;
1912 #line 412 "c-parse.y"
1913 { tree label = lookup_label (yyvsp[0].ttype);
1915 pedwarn ("ANSI C forbids `&&'");
1917 yyval.ttype = null_pointer_node;
1920 TREE_USED (label) = 1;
1921 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1922 TREE_CONSTANT (yyval.ttype) = 1;
1927 #line 440 "c-parse.y"
1928 { skip_evaluation--;
1929 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1930 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1931 error ("`sizeof' applied to a bit-field");
1932 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1935 #line 446 "c-parse.y"
1936 { skip_evaluation--;
1937 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1940 #line 449 "c-parse.y"
1941 { skip_evaluation--;
1942 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1945 #line 452 "c-parse.y"
1946 { skip_evaluation--;
1947 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1950 #line 455 "c-parse.y"
1951 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1954 #line 457 "c-parse.y"
1955 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1958 #line 461 "c-parse.y"
1959 { skip_evaluation++; ;
1962 #line 465 "c-parse.y"
1963 { skip_evaluation++; ;
1966 #line 471 "c-parse.y"
1967 { tree type = groktypename (yyvsp[-2].ttype);
1968 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1971 #line 474 "c-parse.y"
1972 { start_init (NULL_TREE, NULL, 0);
1973 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1974 really_start_incremental_init (yyvsp[-2].ttype); ;
1977 #line 478 "c-parse.y"
1979 tree result = pop_init_level (0);
1980 tree type = yyvsp[-5].ttype;
1983 if (pedantic && ! flag_isoc9x)
1984 pedwarn ("ANSI C forbids constructor expressions");
1985 if (TYPE_NAME (type) != 0)
1987 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1988 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1990 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1994 yyval.ttype = result;
1995 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1997 int failure = complete_array_type (type, yyval.ttype, 1);
2004 #line 507 "c-parse.y"
2005 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2008 #line 509 "c-parse.y"
2009 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2012 #line 511 "c-parse.y"
2013 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2016 #line 513 "c-parse.y"
2017 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2020 #line 515 "c-parse.y"
2021 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2024 #line 517 "c-parse.y"
2025 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2028 #line 519 "c-parse.y"
2029 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2032 #line 521 "c-parse.y"
2033 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2036 #line 523 "c-parse.y"
2037 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2040 #line 525 "c-parse.y"
2041 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2044 #line 527 "c-parse.y"
2045 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2048 #line 529 "c-parse.y"
2049 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2052 #line 531 "c-parse.y"
2053 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2054 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2057 #line 534 "c-parse.y"
2058 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2059 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2062 #line 537 "c-parse.y"
2063 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2064 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2067 #line 540 "c-parse.y"
2068 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2069 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2072 #line 543 "c-parse.y"
2073 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2074 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2077 #line 546 "c-parse.y"
2078 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2079 - (yyvsp[-4].ttype == boolean_false_node)); ;
2082 #line 549 "c-parse.y"
2083 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2084 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2087 #line 552 "c-parse.y"
2089 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2090 /* Make sure first operand is calculated only once. */
2091 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2092 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2093 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2096 #line 559 "c-parse.y"
2097 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2098 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2101 #line 562 "c-parse.y"
2102 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2103 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2106 #line 565 "c-parse.y"
2107 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2108 /* This inhibits warnings in truthvalue_conversion. */
2109 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2112 #line 572 "c-parse.y"
2114 yyval.ttype = lastiddecl;
2115 if (!yyval.ttype || yyval.ttype == error_mark_node)
2117 if (yychar == YYEMPTY)
2122 /* Ordinary implicit function declaration. */
2123 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2124 assemble_external (yyval.ttype);
2125 TREE_USED (yyval.ttype) = 1;
2128 else if (current_function_decl == 0)
2130 error ("`%s' undeclared here (not in a function)",
2131 IDENTIFIER_POINTER (yyvsp[0].ttype));
2132 yyval.ttype = error_mark_node;
2137 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2138 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2140 error ("`%s' undeclared (first use in this function)",
2141 IDENTIFIER_POINTER (yyvsp[0].ttype));
2143 if (! undeclared_variable_notice)
2145 error ("(Each undeclared identifier is reported only once");
2146 error ("for each function it appears in.)");
2147 undeclared_variable_notice = 1;
2150 yyval.ttype = error_mark_node;
2151 /* Prevent repeated error messages. */
2152 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2153 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2157 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2158 yyval.ttype = error_mark_node;
2159 else if (C_DECL_ANTICIPATED (yyval.ttype))
2161 /* The first time we see a build-in function used,
2162 if it has not been declared. */
2163 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2164 if (yychar == YYEMPTY)
2168 /* Omit the implicit declaration we
2169 would ordinarily do, so we don't lose
2170 the actual built in type.
2171 But print a diagnostic for the mismatch. */
2172 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2173 error ("`%s' implicitly declared as function",
2174 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2175 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2176 != TYPE_MODE (integer_type_node))
2177 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2179 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2180 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2181 /* If it really returns void, change that to int. */
2182 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2183 TREE_TYPE (yyval.ttype)
2184 = build_function_type (integer_type_node,
2185 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2188 pedwarn ("built-in function `%s' used without declaration",
2189 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2191 /* Do what we would ordinarily do when a fn is used. */
2192 assemble_external (yyval.ttype);
2193 TREE_USED (yyval.ttype) = 1;
2197 assemble_external (yyval.ttype);
2198 TREE_USED (yyval.ttype) = 1;
2201 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2203 yyval.ttype = DECL_INITIAL (yyval.ttype);
2204 /* This is to prevent an enum whose value is 0
2205 from being considered a null pointer constant. */
2206 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2207 TREE_CONSTANT (yyval.ttype) = 1;
2212 #line 671 "c-parse.y"
2213 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2216 #line 673 "c-parse.y"
2217 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2218 if (class == 'e' || class == '1'
2219 || class == '2' || class == '<')
2220 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2221 yyval.ttype = yyvsp[-1].ttype; ;
2224 #line 679 "c-parse.y"
2225 { yyval.ttype = error_mark_node; ;
2228 #line 681 "c-parse.y"
2229 { if (current_function_decl == 0)
2231 error ("braced-group within expression allowed only inside a function");
2234 /* We must force a BLOCK for this level
2235 so that, if it is not expanded later,
2236 there is a way to turn off the entire subtree of blocks
2237 that are contained in it. */
2239 push_iterator_stack ();
2240 push_label_level ();
2241 yyval.ttype = expand_start_stmt_expr (); ;
2244 #line 695 "c-parse.y"
2247 pedwarn ("ANSI C forbids braced-groups within expressions");
2248 pop_iterator_stack ();
2250 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2251 /* The statements have side effects, so the group does. */
2252 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2254 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2256 /* Make a BIND_EXPR for the BLOCK already made. */
2257 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2258 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2259 /* Remove the block from the tree at this point.
2260 It gets put back at the proper place
2261 when the BIND_EXPR is expanded. */
2262 delete_block (yyvsp[-1].ttype);
2265 yyval.ttype = yyvsp[-1].ttype;
2269 #line 718 "c-parse.y"
2270 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2273 #line 720 "c-parse.y"
2274 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2277 #line 722 "c-parse.y"
2279 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2283 #line 726 "c-parse.y"
2285 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2287 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2291 #line 732 "c-parse.y"
2292 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2295 #line 734 "c-parse.y"
2296 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2299 #line 741 "c-parse.y"
2300 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2303 #line 750 "c-parse.y"
2304 { c_mark_varargs ();
2306 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2309 #line 760 "c-parse.y"
2313 #line 776 "c-parse.y"
2314 { current_declspecs = TREE_VALUE (declspec_stack);
2315 prefix_attributes = TREE_PURPOSE (declspec_stack);
2316 declspec_stack = TREE_CHAIN (declspec_stack);
2317 resume_momentary (yyvsp[-2].itype); ;
2320 #line 781 "c-parse.y"
2321 { current_declspecs = TREE_VALUE (declspec_stack);
2322 prefix_attributes = TREE_PURPOSE (declspec_stack);
2323 declspec_stack = TREE_CHAIN (declspec_stack);
2324 resume_momentary (yyvsp[-2].itype); ;
2327 #line 786 "c-parse.y"
2328 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2329 pedwarn ("empty declaration"); ;
2332 #line 789 "c-parse.y"
2333 { pedwarn ("empty declaration"); ;
2336 #line 798 "c-parse.y"
2340 #line 813 "c-parse.y"
2341 { yyval.itype = suspend_momentary ();
2342 pending_xref_error ();
2343 declspec_stack = tree_cons (prefix_attributes,
2346 split_specs_attrs (yyvsp[0].ttype,
2347 ¤t_declspecs, &prefix_attributes); ;
2350 #line 824 "c-parse.y"
2351 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2354 #line 829 "c-parse.y"
2355 { current_declspecs = TREE_VALUE (declspec_stack);
2356 prefix_attributes = TREE_PURPOSE (declspec_stack);
2357 declspec_stack = TREE_CHAIN (declspec_stack);
2358 resume_momentary (yyvsp[-2].itype); ;
2361 #line 834 "c-parse.y"
2362 { current_declspecs = TREE_VALUE (declspec_stack);
2363 prefix_attributes = TREE_PURPOSE (declspec_stack);
2364 declspec_stack = TREE_CHAIN (declspec_stack);
2365 resume_momentary (yyvsp[-2].itype); ;
2368 #line 839 "c-parse.y"
2369 { current_declspecs = TREE_VALUE (declspec_stack);
2370 prefix_attributes = TREE_PURPOSE (declspec_stack);
2371 declspec_stack = TREE_CHAIN (declspec_stack);
2372 resume_momentary (yyvsp[-1].itype); ;
2375 #line 844 "c-parse.y"
2376 { current_declspecs = TREE_VALUE (declspec_stack);
2377 prefix_attributes = TREE_PURPOSE (declspec_stack);
2378 declspec_stack = TREE_CHAIN (declspec_stack);
2379 resume_momentary (yyvsp[-1].itype); ;
2382 #line 849 "c-parse.y"
2383 { shadow_tag (yyvsp[-1].ttype); ;
2386 #line 851 "c-parse.y"
2387 { pedwarn ("empty declaration"); ;
2390 #line 853 "c-parse.y"
2391 { pedantic = yyvsp[-1].itype; ;
2394 #line 863 "c-parse.y"
2395 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2398 #line 865 "c-parse.y"
2399 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2402 #line 869 "c-parse.y"
2403 { yyval.ttype = NULL_TREE; ;
2406 #line 871 "c-parse.y"
2407 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2410 #line 873 "c-parse.y"
2411 { if (extra_warnings)
2412 warning ("`%s' is not at beginning of declaration",
2413 IDENTIFIER_POINTER (yyvsp[0].ttype));
2414 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2417 #line 878 "c-parse.y"
2418 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2421 #line 883 "c-parse.y"
2422 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2425 #line 885 "c-parse.y"
2426 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2429 #line 890 "c-parse.y"
2430 { yyval.ttype = NULL_TREE; ;
2433 #line 892 "c-parse.y"
2434 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2437 #line 894 "c-parse.y"
2438 { if (extra_warnings)
2439 warning ("`%s' is not at beginning of declaration",
2440 IDENTIFIER_POINTER (yyvsp[0].ttype));
2441 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2444 #line 907 "c-parse.y"
2445 { yyval.ttype = yyvsp[0].ttype; ;
2448 #line 909 "c-parse.y"
2449 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2452 #line 911 "c-parse.y"
2453 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2456 #line 913 "c-parse.y"
2457 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2460 #line 918 "c-parse.y"
2461 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2462 TREE_STATIC (yyval.ttype) = 1; ;
2465 #line 921 "c-parse.y"
2466 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2469 #line 923 "c-parse.y"
2470 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2471 TREE_STATIC (yyval.ttype) = 1; ;
2474 #line 926 "c-parse.y"
2475 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2476 warning ("`%s' is not at beginning of declaration",
2477 IDENTIFIER_POINTER (yyvsp[0].ttype));
2478 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2479 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2482 #line 940 "c-parse.y"
2483 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2486 #line 942 "c-parse.y"
2487 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2490 #line 946 "c-parse.y"
2491 { yyval.ttype = NULL_TREE; ;
2494 #line 948 "c-parse.y"
2495 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2498 #line 958 "c-parse.y"
2499 { /* For a typedef name, record the meaning, not the name.
2500 In case of `foo foo, bar;'. */
2501 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2504 #line 962 "c-parse.y"
2505 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2508 #line 964 "c-parse.y"
2509 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2512 #line 986 "c-parse.y"
2513 { yyval.ttype = NULL_TREE; ;
2516 #line 988 "c-parse.y"
2517 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2518 yyval.ttype = yyvsp[-1].ttype;
2522 #line 995 "c-parse.y"
2523 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2524 yyvsp[-1].ttype, prefix_attributes);
2525 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2528 #line 1000 "c-parse.y"
2530 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2533 #line 1003 "c-parse.y"
2534 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2535 yyvsp[0].ttype, prefix_attributes);
2536 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2540 #line 1011 "c-parse.y"
2541 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2542 yyvsp[-1].ttype, prefix_attributes);
2543 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2546 #line 1016 "c-parse.y"
2548 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2549 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2552 #line 1020 "c-parse.y"
2553 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2554 yyvsp[0].ttype, prefix_attributes);
2555 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2558 #line 1028 "c-parse.y"
2559 { yyval.ttype = NULL_TREE; ;
2562 #line 1030 "c-parse.y"
2563 { yyval.ttype = yyvsp[0].ttype; ;
2566 #line 1035 "c-parse.y"
2567 { yyval.ttype = yyvsp[0].ttype; ;
2570 #line 1037 "c-parse.y"
2571 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2574 #line 1042 "c-parse.y"
2575 { yyval.ttype = yyvsp[-2].ttype; ;
2578 #line 1047 "c-parse.y"
2579 { yyval.ttype = yyvsp[0].ttype; ;
2582 #line 1049 "c-parse.y"
2583 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2586 #line 1054 "c-parse.y"
2587 { yyval.ttype = NULL_TREE; ;
2590 #line 1056 "c-parse.y"
2591 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2594 #line 1058 "c-parse.y"
2595 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2598 #line 1060 "c-parse.y"
2599 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2602 #line 1062 "c-parse.y"
2603 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2606 #line 1080 "c-parse.y"
2607 { really_start_incremental_init (NULL_TREE);
2608 /* Note that the call to clear_momentary
2609 is in process_init_element. */
2610 push_momentary (); ;
2613 #line 1085 "c-parse.y"
2614 { yyval.ttype = pop_init_level (0);
2615 if (yyval.ttype == error_mark_node
2616 && ! (yychar == STRING || yychar == CONSTANT))
2619 pop_momentary_nofree (); ;
2622 #line 1093 "c-parse.y"
2623 { yyval.ttype = error_mark_node; ;
2626 #line 1099 "c-parse.y"
2628 pedwarn ("ANSI C forbids empty initializer braces"); ;
2631 #line 1115 "c-parse.y"
2632 { set_init_label (yyvsp[-1].ttype); ;
2635 #line 1122 "c-parse.y"
2636 { push_init_level (0); ;
2639 #line 1124 "c-parse.y"
2640 { process_init_element (pop_init_level (0)); ;
2643 #line 1126 "c-parse.y"
2644 { process_init_element (yyvsp[0].ttype); ;
2647 #line 1137 "c-parse.y"
2648 { set_init_label (yyvsp[0].ttype); ;
2651 #line 1142 "c-parse.y"
2652 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2655 #line 1144 "c-parse.y"
2656 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2659 #line 1149 "c-parse.y"
2660 { push_c_function_context ();
2661 if (! start_function (current_declspecs, yyvsp[0].ttype,
2662 prefix_attributes, NULL_TREE, 1))
2664 pop_c_function_context ();
2667 reinit_parse_for_function (); ;
2670 #line 1158 "c-parse.y"
2671 { store_parm_decls (); ;
2674 #line 1166 "c-parse.y"
2675 { finish_function (1);
2676 pop_c_function_context (); ;
2679 #line 1172 "c-parse.y"
2680 { push_c_function_context ();
2681 if (! start_function (current_declspecs, yyvsp[0].ttype,
2682 prefix_attributes, NULL_TREE, 1))
2684 pop_c_function_context ();
2687 reinit_parse_for_function (); ;
2690 #line 1181 "c-parse.y"
2691 { store_parm_decls (); ;
2694 #line 1189 "c-parse.y"
2695 { finish_function (1);
2696 pop_c_function_context (); ;
2699 #line 1205 "c-parse.y"
2700 { yyval.ttype = yyvsp[-1].ttype; ;
2703 #line 1207 "c-parse.y"
2704 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2707 #line 1212 "c-parse.y"
2708 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2711 #line 1214 "c-parse.y"
2712 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2715 #line 1216 "c-parse.y"
2716 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2719 #line 1223 "c-parse.y"
2720 { yyval.ttype = yyvsp[0].ttype; ;
2723 #line 1234 "c-parse.y"
2724 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2727 #line 1239 "c-parse.y"
2728 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2730 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2734 #line 1244 "c-parse.y"
2735 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2738 #line 1246 "c-parse.y"
2739 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2742 #line 1248 "c-parse.y"
2743 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2746 #line 1255 "c-parse.y"
2747 { yyval.ttype = yyvsp[0].ttype; ;
2750 #line 1264 "c-parse.y"
2751 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2754 #line 1269 "c-parse.y"
2755 { yyval.ttype = yyvsp[-1].ttype; ;
2758 #line 1271 "c-parse.y"
2759 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2762 #line 1273 "c-parse.y"
2763 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2765 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2769 #line 1278 "c-parse.y"
2770 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2773 #line 1280 "c-parse.y"
2774 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2777 #line 1287 "c-parse.y"
2778 { yyval.ttype = yyvsp[0].ttype; ;
2781 #line 1293 "c-parse.y"
2782 { yyval.ttype = NULL_TREE; ;
2785 #line 1295 "c-parse.y"
2786 { yyval.ttype = yyvsp[0].ttype; ;
2789 #line 1300 "c-parse.y"
2790 { yyval.ttype = NULL_TREE; ;
2793 #line 1302 "c-parse.y"
2794 { yyval.ttype = yyvsp[0].ttype; ;
2797 #line 1307 "c-parse.y"
2798 { yyval.ttype = NULL_TREE; ;
2801 #line 1309 "c-parse.y"
2802 { yyval.ttype = yyvsp[0].ttype; ;
2805 #line 1314 "c-parse.y"
2806 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2807 /* Start scope of tag before parsing components. */
2811 #line 1318 "c-parse.y"
2812 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2815 #line 1320 "c-parse.y"
2816 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2817 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2821 #line 1324 "c-parse.y"
2822 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2825 #line 1326 "c-parse.y"
2826 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2829 #line 1328 "c-parse.y"
2830 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2833 #line 1330 "c-parse.y"
2834 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2835 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2839 #line 1334 "c-parse.y"
2840 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2843 #line 1336 "c-parse.y"
2844 { yyvsp[0].itype = suspend_momentary ();
2845 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2848 #line 1339 "c-parse.y"
2849 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
2850 resume_momentary (yyvsp[-5].itype); ;
2853 #line 1342 "c-parse.y"
2854 { yyvsp[0].itype = suspend_momentary ();
2855 yyval.ttype = start_enum (NULL_TREE); ;
2858 #line 1345 "c-parse.y"
2859 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
2860 resume_momentary (yyvsp[-5].itype); ;
2863 #line 1348 "c-parse.y"
2864 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2867 #line 1359 "c-parse.y"
2868 { if (pedantic && ! flag_isoc9x)
2869 pedwarn ("comma at end of enumerator list"); ;
2872 #line 1365 "c-parse.y"
2873 { yyval.ttype = yyvsp[0].ttype; ;
2876 #line 1367 "c-parse.y"
2877 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2878 pedwarn ("no semicolon at end of struct or union"); ;
2881 #line 1372 "c-parse.y"
2882 { yyval.ttype = NULL_TREE; ;
2885 #line 1374 "c-parse.y"
2886 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2889 #line 1376 "c-parse.y"
2891 pedwarn ("extra semicolon in struct or union specified"); ;
2894 #line 1391 "c-parse.y"
2895 { yyval.ttype = yyvsp[0].ttype;
2896 current_declspecs = TREE_VALUE (declspec_stack);
2897 prefix_attributes = TREE_PURPOSE (declspec_stack);
2898 declspec_stack = TREE_CHAIN (declspec_stack);
2899 resume_momentary (yyvsp[-1].itype); ;
2902 #line 1397 "c-parse.y"
2904 pedwarn ("ANSI C forbids member declarations with no members");
2905 shadow_tag(yyvsp[0].ttype);
2906 yyval.ttype = NULL_TREE; ;
2909 #line 1402 "c-parse.y"
2910 { yyval.ttype = yyvsp[0].ttype;
2911 current_declspecs = TREE_VALUE (declspec_stack);
2912 prefix_attributes = TREE_PURPOSE (declspec_stack);
2913 declspec_stack = TREE_CHAIN (declspec_stack);
2914 resume_momentary (yyvsp[-1].itype); ;
2917 #line 1408 "c-parse.y"
2919 pedwarn ("ANSI C forbids member declarations with no members");
2920 shadow_tag(yyvsp[0].ttype);
2921 yyval.ttype = NULL_TREE; ;
2924 #line 1413 "c-parse.y"
2925 { yyval.ttype = NULL_TREE; ;
2928 #line 1415 "c-parse.y"
2929 { yyval.ttype = yyvsp[0].ttype;
2930 pedantic = yyvsp[-1].itype; ;
2933 #line 1422 "c-parse.y"
2934 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2937 #line 1427 "c-parse.y"
2938 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2939 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2942 #line 1431 "c-parse.y"
2943 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2944 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2947 #line 1434 "c-parse.y"
2948 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2949 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2952 #line 1446 "c-parse.y"
2953 { if (yyvsp[-2].ttype == error_mark_node)
2954 yyval.ttype = yyvsp[-2].ttype;
2956 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2959 #line 1451 "c-parse.y"
2960 { yyval.ttype = error_mark_node; ;
2963 #line 1457 "c-parse.y"
2964 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2967 #line 1459 "c-parse.y"
2968 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2971 #line 1464 "c-parse.y"
2972 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2975 #line 1466 "c-parse.y"
2976 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2979 #line 1471 "c-parse.y"
2980 { yyval.ttype = NULL_TREE; ;
2983 #line 1477 "c-parse.y"
2984 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2987 #line 1479 "c-parse.y"
2988 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2991 #line 1484 "c-parse.y"
2992 { yyval.ttype = NULL_TREE; ;
2995 #line 1486 "c-parse.y"
2996 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2999 #line 1491 "c-parse.y"
3000 { yyval.ttype = yyvsp[-1].ttype; ;
3003 #line 1494 "c-parse.y"
3004 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3007 #line 1496 "c-parse.y"
3008 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3011 #line 1498 "c-parse.y"
3012 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3015 #line 1500 "c-parse.y"
3016 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3019 #line 1502 "c-parse.y"
3020 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3023 #line 1504 "c-parse.y"
3024 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3027 #line 1506 "c-parse.y"
3028 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3031 #line 1508 "c-parse.y"
3032 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3035 #line 1519 "c-parse.y"
3037 if (pedantic && yyvsp[0].ends_in_label)
3038 pedwarn ("ANSI C forbids label at end of compound statement");
3042 #line 1528 "c-parse.y"
3043 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3046 #line 1530 "c-parse.y"
3047 { yyval.ends_in_label = 0; ;
3050 #line 1542 "c-parse.y"
3051 { emit_line_note (input_filename, lineno);
3055 expand_start_bindings (0);
3059 #line 1555 "c-parse.y"
3061 pedwarn ("ANSI C forbids label declarations"); ;
3064 #line 1566 "c-parse.y"
3066 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3068 tree label = shadow_label (TREE_VALUE (link));
3069 C_DECLARED_LABEL_FLAG (label) = 1;
3070 declare_nonlocal_label (label);
3075 #line 1580 "c-parse.y"
3079 #line 1584 "c-parse.y"
3080 { compstmt_count++; ;
3083 #line 1587 "c-parse.y"
3084 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3087 #line 1589 "c-parse.y"
3088 { emit_line_note (input_filename, lineno);
3089 expand_end_bindings (getdecls (), 1, 0);
3090 yyval.ttype = poplevel (1, 1, 0);
3091 if (yychar == CONSTANT || yychar == STRING)
3092 pop_momentary_nofree ();
3097 #line 1597 "c-parse.y"
3098 { emit_line_note (input_filename, lineno);
3099 expand_end_bindings (getdecls (), kept_level_p (), 0);
3100 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3101 if (yychar == CONSTANT || yychar == STRING)
3102 pop_momentary_nofree ();
3107 #line 1605 "c-parse.y"
3108 { emit_line_note (input_filename, lineno);
3109 expand_end_bindings (getdecls (), kept_level_p (), 0);
3110 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3111 if (yychar == CONSTANT || yychar == STRING)
3112 pop_momentary_nofree ();
3117 #line 1625 "c-parse.y"
3118 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3119 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3121 yyval.itype = stmt_count;
3122 if_stmt_file = yyvsp[-5].filename;
3123 if_stmt_line = yyvsp[-4].lineno;
3124 position_after_white_space (); ;
3127 #line 1639 "c-parse.y"
3130 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3131 /* See comment in `while' alternative, above. */
3133 expand_start_loop_continue_elsewhere (1);
3134 position_after_white_space (); ;
3137 #line 1647 "c-parse.y"
3138 { expand_loop_continue_here (); ;
3141 #line 1651 "c-parse.y"
3142 { yyval.filename = input_filename; ;
3145 #line 1655 "c-parse.y"
3146 { yyval.lineno = lineno; ;
3149 #line 1660 "c-parse.y"
3153 #line 1665 "c-parse.y"
3157 #line 1670 "c-parse.y"
3158 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3161 #line 1675 "c-parse.y"
3162 { yyval.ends_in_label = 0; ;
3165 #line 1677 "c-parse.y"
3166 { yyval.ends_in_label = 1; ;
3169 #line 1683 "c-parse.y"
3173 #line 1686 "c-parse.y"
3175 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3176 /* It appears that this should not be done--that a non-lvalue array
3177 shouldn't get an error if the value isn't used.
3178 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3179 if it appears as a top-level expression,
3180 but says nothing about non-lvalue arrays. */
3182 /* Call default_conversion to get an error
3183 on referring to a register array if pedantic. */
3184 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3185 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3186 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3188 iterator_expand (yyvsp[-1].ttype);
3189 clear_momentary (); ;
3192 #line 1703 "c-parse.y"
3193 { c_expand_start_else ();
3194 yyvsp[-1].itype = stmt_count;
3195 position_after_white_space (); ;
3198 #line 1707 "c-parse.y"
3199 { c_expand_end_cond ();
3200 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3201 warning ("empty body in an else-statement"); ;
3204 #line 1711 "c-parse.y"
3205 { c_expand_end_cond ();
3206 /* This warning is here instead of in simple_if, because we
3207 do not want a warning if an empty if is followed by an
3208 else statement. Increment stmt_count so we don't
3209 give a second error if this is a nested `if'. */
3210 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3211 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3212 "empty body in an if-statement"); ;
3215 #line 1723 "c-parse.y"
3216 { c_expand_end_cond (); ;
3219 #line 1725 "c-parse.y"
3221 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3222 /* The emit_nop used to come before emit_line_note,
3223 but that made the nop seem like part of the preceding line.
3224 And that was confusing when the preceding line was
3225 inside of an if statement and was not really executed.
3226 I think it ought to work to put the nop after the line number.
3227 We will see. --rms, July 15, 1991. */
3231 #line 1735 "c-parse.y"
3232 { /* Don't start the loop till we have succeeded
3233 in parsing the end test. This is to make sure
3234 that we end every loop we start. */
3235 expand_start_loop (1);
3236 emit_line_note (input_filename, lineno);
3237 expand_exit_loop_if_false (NULL_PTR,
3238 truthvalue_conversion (yyvsp[-1].ttype));
3239 position_after_white_space (); ;
3242 #line 1744 "c-parse.y"
3243 { expand_end_loop (); ;
3246 #line 1747 "c-parse.y"
3247 { emit_line_note (input_filename, lineno);
3248 expand_exit_loop_if_false (NULL_PTR,
3249 truthvalue_conversion (yyvsp[-2].ttype));
3251 clear_momentary (); ;
3254 #line 1754 "c-parse.y"
3255 { expand_end_loop ();
3256 clear_momentary (); ;
3259 #line 1758 "c-parse.y"
3261 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3262 /* See comment in `while' alternative, above. */
3264 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3265 /* Next step is to call expand_start_loop_continue_elsewhere,
3266 but wait till after we parse the entire for (...).
3267 Otherwise, invalid input might cause us to call that
3268 fn without calling expand_end_loop. */
3272 #line 1770 "c-parse.y"
3273 { yyvsp[0].lineno = lineno;
3274 yyval.filename = input_filename; ;
3277 #line 1773 "c-parse.y"
3279 /* Start the loop. Doing this after parsing
3280 all the expressions ensures we will end the loop. */
3281 expand_start_loop_continue_elsewhere (1);
3282 /* Emit the end-test, with a line number. */
3283 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3284 if (yyvsp[-4].ttype)
3285 expand_exit_loop_if_false (NULL_PTR,
3286 truthvalue_conversion (yyvsp[-4].ttype));
3287 /* Don't let the tree nodes for $9 be discarded by
3288 clear_momentary during the parsing of the next stmt. */
3290 yyvsp[-3].lineno = lineno;
3291 yyvsp[-2].filename = input_filename;
3292 position_after_white_space (); ;
3295 #line 1789 "c-parse.y"
3296 { /* Emit the increment expression, with a line number. */
3297 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3298 expand_loop_continue_here ();
3299 if (yyvsp[-3].ttype)
3300 c_expand_expr_stmt (yyvsp[-3].ttype);
3301 if (yychar == CONSTANT || yychar == STRING)
3302 pop_momentary_nofree ();
3305 expand_end_loop (); ;
3308 #line 1800 "c-parse.y"
3310 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3311 c_expand_start_case (yyvsp[-1].ttype);
3312 /* Don't let the tree nodes for $3 be discarded by
3313 clear_momentary during the parsing of the next stmt. */
3315 position_after_white_space (); ;
3318 #line 1808 "c-parse.y"
3319 { expand_end_case (yyvsp[-3].ttype);
3320 if (yychar == CONSTANT || yychar == STRING)
3321 pop_momentary_nofree ();
3326 #line 1814 "c-parse.y"
3328 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3329 if ( ! expand_exit_something ())
3330 error ("break statement not within loop or switch"); ;
3333 #line 1819 "c-parse.y"
3335 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3336 if (! expand_continue_loop (NULL_PTR))
3337 error ("continue statement not within a loop"); ;
3340 #line 1824 "c-parse.y"
3342 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3343 c_expand_return (NULL_TREE); ;
3346 #line 1828 "c-parse.y"
3348 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3349 c_expand_return (yyvsp[-1].ttype); ;
3352 #line 1832 "c-parse.y"
3354 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3355 STRIP_NOPS (yyvsp[-2].ttype);
3356 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3357 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3358 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3359 expand_asm (yyvsp[-2].ttype);
3361 error ("argument of `asm' is not a constant string"); ;
3364 #line 1843 "c-parse.y"
3366 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3367 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3368 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3369 input_filename, lineno); ;
3372 #line 1850 "c-parse.y"
3374 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3375 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3376 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3377 input_filename, lineno); ;
3380 #line 1858 "c-parse.y"
3382 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3383 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3384 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3385 input_filename, lineno); ;
3388 #line 1864 "c-parse.y"
3391 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3392 decl = lookup_label (yyvsp[-1].ttype);
3395 TREE_USED (decl) = 1;
3401 #line 1875 "c-parse.y"
3403 pedwarn ("ANSI C forbids `goto *expr;'");
3405 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3406 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3409 #line 1890 "c-parse.y"
3411 /* The value returned by this action is */
3412 /* 1 if everything is OK */
3413 /* 0 in case of error or already bound iterator */
3416 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3417 error ("invalid `for (ITERATOR)' syntax");
3418 else if (! ITERATOR_P (yyvsp[-1].ttype))
3419 error ("`%s' is not an iterator",
3420 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3421 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3422 error ("`for (%s)' inside expansion of same iterator",
3423 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3427 iterator_for_loop_start (yyvsp[-1].ttype);
3432 #line 1911 "c-parse.y"
3434 if (yyvsp[-1].itype)
3435 iterator_for_loop_end (yyvsp[-3].ttype);
3439 #line 1946 "c-parse.y"
3440 { register tree value = check_case_value (yyvsp[-1].ttype);
3442 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3446 if (value != error_mark_node)
3451 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3452 pedwarn ("label must have integral type in ANSI C");
3454 success = pushcase (value, convert_and_check,
3458 error ("case label not within a switch statement");
3459 else if (success == 2)
3461 error ("duplicate case value");
3462 error_with_decl (duplicate, "this is the first entry for that value");
3464 else if (success == 3)
3465 warning ("case value out of range");
3466 else if (success == 5)
3467 error ("case label within scope of cleanup or variable array");
3469 position_after_white_space (); ;
3472 #line 1977 "c-parse.y"
3473 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3474 register tree value2 = check_case_value (yyvsp[-1].ttype);
3476 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3479 pedwarn ("ANSI C forbids case ranges");
3482 if (value1 != error_mark_node && value2 != error_mark_node)
3485 int success = pushcase_range (value1, value2,
3486 convert_and_check, label,
3489 error ("case label not within a switch statement");
3490 else if (success == 2)
3492 error ("duplicate case value");
3493 error_with_decl (duplicate, "this is the first entry for that value");
3495 else if (success == 3)
3496 warning ("case value out of range");
3497 else if (success == 4)
3498 warning ("empty case range");
3499 else if (success == 5)
3500 error ("case label within scope of cleanup or variable array");
3502 position_after_white_space (); ;
3505 #line 2008 "c-parse.y"
3509 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3510 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3513 error ("default label not within a switch statement");
3514 else if (success == 2)
3516 error ("multiple default labels in one switch");
3517 error_with_decl (duplicate, "this is the first default label");
3519 position_after_white_space (); ;
3522 #line 2023 "c-parse.y"
3523 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
3528 expand_label (label);
3529 decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
3531 position_after_white_space (); ;
3534 #line 2038 "c-parse.y"
3535 { emit_line_note (input_filename, lineno);
3536 yyval.ttype = NULL_TREE; ;
3539 #line 2041 "c-parse.y"
3540 { emit_line_note (input_filename, lineno); ;
3543 #line 2046 "c-parse.y"
3544 { yyval.ttype = NULL_TREE; ;
3547 #line 2053 "c-parse.y"
3548 { yyval.ttype = NULL_TREE; ;
3551 #line 2060 "c-parse.y"
3552 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3555 #line 2065 "c-parse.y"
3556 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3559 #line 2070 "c-parse.y"
3560 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3563 #line 2072 "c-parse.y"
3564 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3567 #line 2078 "c-parse.y"
3569 clear_parm_order ();
3570 declare_parm_level (0); ;
3573 #line 2082 "c-parse.y"
3574 { yyval.ttype = yyvsp[0].ttype;
3575 parmlist_tags_warning ();
3576 poplevel (0, 0, 0); ;
3579 #line 2090 "c-parse.y"
3582 pedwarn ("ANSI C forbids forward parameter declarations");
3583 /* Mark the forward decls as such. */
3584 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3585 TREE_ASM_WRITTEN (parm) = 1;
3586 clear_parm_order (); ;
3589 #line 2098 "c-parse.y"
3590 { yyval.ttype = yyvsp[0].ttype; ;
3593 #line 2100 "c-parse.y"
3594 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3597 #line 2106 "c-parse.y"
3598 { yyval.ttype = get_parm_info (0); ;
3601 #line 2108 "c-parse.y"
3602 { yyval.ttype = get_parm_info (0);
3603 /* Gcc used to allow this as an extension. However, it does
3604 not work for all targets, and thus has been disabled.
3605 Also, since func (...) and func () are indistinguishable,
3606 it caused problems with the code in expand_builtin which
3607 tries to verify that BUILT_IN_NEXT_ARG is being used
3609 error ("ANSI C requires a named argument before `...'");
3613 #line 2118 "c-parse.y"
3614 { yyval.ttype = get_parm_info (1); ;
3617 #line 2120 "c-parse.y"
3618 { yyval.ttype = get_parm_info (0); ;
3621 #line 2125 "c-parse.y"
3622 { push_parm_decl (yyvsp[0].ttype); ;
3625 #line 2127 "c-parse.y"
3626 { push_parm_decl (yyvsp[0].ttype); ;
3629 #line 2134 "c-parse.y"
3630 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3632 build_tree_list (prefix_attributes,
3634 current_declspecs = TREE_VALUE (declspec_stack);
3635 prefix_attributes = TREE_PURPOSE (declspec_stack);
3636 declspec_stack = TREE_CHAIN (declspec_stack);
3637 resume_momentary (yyvsp[-2].itype); ;
3640 #line 2143 "c-parse.y"
3641 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3643 build_tree_list (prefix_attributes,
3645 current_declspecs = TREE_VALUE (declspec_stack);
3646 prefix_attributes = TREE_PURPOSE (declspec_stack);
3647 declspec_stack = TREE_CHAIN (declspec_stack);
3648 resume_momentary (yyvsp[-2].itype); ;
3651 #line 2152 "c-parse.y"
3652 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3654 build_tree_list (prefix_attributes,
3656 current_declspecs = TREE_VALUE (declspec_stack);
3657 prefix_attributes = TREE_PURPOSE (declspec_stack);
3658 declspec_stack = TREE_CHAIN (declspec_stack);
3659 resume_momentary (yyvsp[-2].itype); ;
3662 #line 2161 "c-parse.y"
3663 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3665 build_tree_list (prefix_attributes,
3667 current_declspecs = TREE_VALUE (declspec_stack);
3668 prefix_attributes = TREE_PURPOSE (declspec_stack);
3669 declspec_stack = TREE_CHAIN (declspec_stack);
3670 resume_momentary (yyvsp[-2].itype); ;
3673 #line 2171 "c-parse.y"
3674 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3676 build_tree_list (prefix_attributes,
3678 current_declspecs = TREE_VALUE (declspec_stack);
3679 prefix_attributes = TREE_PURPOSE (declspec_stack);
3680 declspec_stack = TREE_CHAIN (declspec_stack);
3681 resume_momentary (yyvsp[-2].itype); ;
3684 #line 2185 "c-parse.y"
3686 clear_parm_order ();
3687 declare_parm_level (1); ;
3690 #line 2189 "c-parse.y"
3691 { yyval.ttype = yyvsp[0].ttype;
3692 parmlist_tags_warning ();
3693 poplevel (0, 0, 0); ;
3696 #line 2197 "c-parse.y"
3698 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3699 if (TREE_VALUE (t) == NULL_TREE)
3700 error ("`...' in old-style identifier list");
3701 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3704 #line 2207 "c-parse.y"
3705 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3708 #line 2209 "c-parse.y"
3709 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3712 #line 2215 "c-parse.y"
3713 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3716 #line 2217 "c-parse.y"
3717 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3720 #line 2222 "c-parse.y"
3721 { yyval.itype = pedantic;
3725 /* the action file gets copied in in place of this dollarsign */
3726 #line 498 "/usr/local/gnu/share/bison.simple"
3737 short *ssp1 = yyss - 1;
3738 fprintf (stderr, "state stack now");
3739 while (ssp1 != yyssp)
3740 fprintf (stderr, " %d", *++ssp1);
3741 fprintf (stderr, "\n");
3751 yylsp->first_line = yylloc.first_line;
3752 yylsp->first_column = yylloc.first_column;
3753 yylsp->last_line = (yylsp-1)->last_line;
3754 yylsp->last_column = (yylsp-1)->last_column;
3759 yylsp->last_line = (yylsp+yylen-1)->last_line;
3760 yylsp->last_column = (yylsp+yylen-1)->last_column;
3764 /* Now "shift" the result of the reduction.
3765 Determine what state that goes to,
3766 based on the state we popped back to
3767 and the rule number reduced by. */
3771 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3772 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3773 yystate = yytable[yystate];
3775 yystate = yydefgoto[yyn - YYNTBASE];
3779 yyerrlab: /* here on detecting error */
3782 /* If not already recovering from an error, report this error. */
3786 #ifdef YYERROR_VERBOSE
3787 yyn = yypact[yystate];
3789 if (yyn > YYFLAG && yyn < YYLAST)
3796 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3797 for (x = (yyn < 0 ? -yyn : 0);
3798 x < (sizeof(yytname) / sizeof(char *)); x++)
3799 if (yycheck[x + yyn] == x)
3800 size += strlen(yytname[x]) + 15, count++;
3801 msg = (char *) malloc(size + 15);
3804 strcpy(msg, "parse error");
3809 for (x = (yyn < 0 ? -yyn : 0);
3810 x < (sizeof(yytname) / sizeof(char *)); x++)
3811 if (yycheck[x + yyn] == x)
3813 strcat(msg, count == 0 ? ", expecting `" : " or `");
3814 strcat(msg, yytname[x]);
3823 yyerror ("parse error; also virtual memory exceeded");
3826 #endif /* YYERROR_VERBOSE */
3827 yyerror("parse error");
3831 yyerrlab1: /* here on error raised explicitly by an action */
3833 if (yyerrstatus == 3)
3835 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3837 /* return failure if at end of input */
3838 if (yychar == YYEOF)
3843 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3849 /* Else will try to reuse lookahead token
3850 after shifting the error token. */
3852 yyerrstatus = 3; /* Each real token shifted decrements this */
3856 yyerrdefault: /* current state does not do anything special for the error token. */
3859 /* This is wrong; only states that explicitly want error tokens
3860 should shift them. */
3861 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3862 if (yyn) goto yydefault;
3865 yyerrpop: /* pop the current state because it cannot handle the error token */
3867 if (yyssp == yyss) YYABORT;
3877 short *ssp1 = yyss - 1;
3878 fprintf (stderr, "Error: state stack now");
3879 while (ssp1 != yyssp)
3880 fprintf (stderr, " %d", *++ssp1);
3881 fprintf (stderr, "\n");
3887 yyn = yypact[yystate];
3892 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3911 fprintf(stderr, "Shifting error token, ");
3922 #line 2226 "c-parse.y"