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] : 242)
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, 593, 594, 599, 601, 602, 611,
200 612, 619, 620, 626, 627, 632, 633, 639, 640, 641,
201 647, 648, 649, 655, 657, 659, 663, 667, 672, 676,
202 680, 684, 686, 690, 695, 699, 703, 707, 709, 713,
203 717, 721, 726, 730, 734, 736, 738, 741, 743, 746,
204 748, 751, 752, 760, 766, 769, 770, 778, 784, 787,
205 788, 797, 798, 806, 809, 810, 812, 813, 815, 817,
206 820, 821, 825, 828, 832, 834, 838, 840, 842, 845,
207 847, 851, 856, 863, 869, 871, 875, 877, 879, 883,
208 886, 889, 890, 892, 894, 897, 898, 901, 905, 909,
209 912, 916, 921, 925, 928, 932, 935, 937, 939, 942,
210 945, 946, 948, 951, 952, 953, 955, 957, 960, 964,
211 966, 969, 971, 974, 981, 987, 993, 996, 999, 1004,
212 1005, 1010, 1011, 1012, 1016, 1021, 1025, 1027, 1029, 1031,
213 1033, 1036, 1037, 1042, 1044, 1048, 1049, 1050, 1058, 1064,
214 1067, 1068, 1069, 1070, 1083, 1084, 1091, 1094, 1097, 1100,
215 1104, 1111, 1120, 1131, 1144, 1148, 1153, 1155, 1157, 1158,
216 1165, 1169, 1175, 1178, 1181, 1182, 1184, 1185, 1187, 1188,
217 1190, 1192, 1196, 1201, 1203, 1207, 1208, 1211, 1214, 1215,
218 1220, 1223, 1224, 1226, 1228, 1232, 1234, 1238, 1243, 1248,
219 1253, 1258, 1263, 1264, 1267, 1269, 1272, 1274, 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, 241, 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, 165, 91, 116, 92,
230 199, 0, 125, 122, 165, 1, 0, 0, 0, 129,
231 122, 168, 93, 116, 94, 199, 0, 129, 122, 168,
232 1, 0, 0, 0, 122, 168, 95, 116, 96, 199,
233 0, 122, 168, 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, 241,
237 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
238 0, 103, 59, 186, 76, 0, 104, 102, 0, 104,
239 59, 186, 76, 0, 33, 105, 0, 34, 105, 0,
240 11, 0, 29, 0, 102, 0, 59, 186, 76, 105,
241 0, 0, 59, 186, 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, 201, 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, 206, 207, 119, 0, 117, 0, 194, 0,
257 118, 117, 0, 117, 194, 0, 127, 122, 135, 77,
258 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
259 77, 0, 206, 207, 124, 0, 120, 0, 194, 0,
260 121, 120, 0, 120, 194, 0, 0, 0, 125, 122,
261 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
262 159, 0, 129, 122, 162, 0, 125, 77, 0, 129,
263 77, 0, 241, 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, 188,
269 133, 132, 0, 0, 132, 134, 0, 6, 0, 172,
270 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
271 186, 76, 0, 6, 0, 7, 0, 172, 0, 138,
272 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
273 0, 0, 27, 59, 115, 76, 0, 0, 165, 137,
274 142, 36, 139, 148, 0, 165, 137, 142, 0, 0,
275 168, 137, 142, 36, 141, 148, 0, 168, 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, 177, 0, 152, 0, 151, 81, 152, 0,
283 107, 0, 0, 82, 153, 150, 78, 0, 1, 0,
284 0, 60, 107, 10, 107, 83, 36, 154, 152, 0,
285 0, 60, 107, 83, 36, 155, 152, 0, 0, 60,
286 107, 83, 156, 152, 0, 0, 97, 38, 157, 152,
287 0, 0, 58, 97, 36, 158, 152, 0, 0, 0,
288 165, 160, 116, 161, 201, 0, 0, 0, 168, 163,
289 116, 164, 201, 0, 166, 0, 168, 0, 59, 166,
290 76, 0, 166, 59, 236, 0, 166, 60, 99, 83,
291 0, 166, 60, 83, 0, 50, 189, 166, 0, 143,
292 123, 166, 0, 4, 0, 167, 59, 236, 0, 167,
293 60, 99, 83, 0, 167, 60, 83, 0, 50, 189,
294 167, 0, 143, 123, 167, 0, 4, 0, 168, 59,
295 236, 0, 59, 168, 76, 0, 50, 189, 168, 0,
296 168, 60, 99, 83, 0, 168, 60, 83, 0, 143,
297 123, 168, 0, 3, 0, 13, 0, 13, 143, 0,
298 14, 0, 14, 143, 0, 12, 0, 12, 143, 0,
299 0, 169, 97, 82, 173, 179, 78, 142, 0, 169,
300 82, 179, 78, 142, 0, 169, 97, 0, 0, 170,
301 97, 82, 174, 179, 78, 142, 0, 170, 82, 179,
302 78, 142, 0, 170, 97, 0, 0, 171, 97, 82,
303 175, 184, 178, 78, 142, 0, 0, 171, 82, 176,
304 184, 178, 78, 142, 0, 171, 97, 0, 0, 81,
305 0, 0, 81, 0, 180, 0, 180, 181, 0, 0,
306 180, 181, 77, 0, 180, 77, 0, 131, 122, 182,
307 0, 131, 0, 188, 122, 182, 0, 188, 0, 1,
308 0, 241, 181, 0, 183, 0, 182, 81, 183, 0,
309 206, 207, 165, 142, 0, 206, 207, 165, 38, 107,
310 142, 0, 206, 207, 38, 107, 142, 0, 185, 0,
311 184, 81, 185, 0, 1, 0, 97, 0, 97, 36,
312 107, 0, 131, 187, 0, 188, 187, 0, 0, 190,
313 0, 7, 0, 188, 7, 0, 0, 189, 7, 0,
314 59, 190, 76, 0, 50, 189, 190, 0, 50, 189,
315 0, 190, 59, 229, 0, 190, 60, 99, 83, 0,
316 190, 60, 83, 0, 59, 229, 0, 60, 99, 83,
317 0, 60, 83, 0, 192, 0, 209, 0, 192, 209,
318 0, 192, 194, 0, 0, 191, 0, 1, 77, 0,
319 0, 0, 197, 0, 198, 0, 197, 198, 0, 32,
320 240, 77, 0, 201, 0, 1, 201, 0, 82, 0,
321 200, 78, 0, 200, 195, 196, 121, 193, 78, 0,
322 200, 195, 196, 1, 78, 0, 200, 195, 196, 191,
323 78, 0, 203, 208, 0, 203, 1, 0, 15, 59,
324 99, 76, 0, 0, 18, 205, 208, 17, 0, 0,
325 0, 206, 207, 211, 0, 206, 207, 222, 208, 0,
326 206, 207, 210, 0, 211, 0, 222, 0, 201, 0,
327 219, 0, 99, 77, 0, 0, 202, 16, 212, 208,
328 0, 202, 0, 202, 16, 1, 0, 0, 0, 17,
329 213, 59, 99, 76, 214, 208, 0, 204, 59, 99,
330 76, 77, 0, 204, 1, 0, 0, 0, 0, 19,
331 59, 224, 77, 215, 224, 77, 216, 224, 76, 217,
332 208, 0, 0, 20, 59, 99, 76, 218, 208, 0,
333 23, 77, 0, 24, 77, 0, 25, 77, 0, 25,
334 99, 77, 0, 27, 223, 59, 99, 76, 77, 0,
335 27, 223, 59, 99, 38, 225, 76, 77, 0, 27,
336 223, 59, 99, 38, 225, 38, 225, 76, 77, 0,
337 27, 223, 59, 99, 38, 225, 38, 225, 38, 228,
338 76, 77, 0, 26, 97, 77, 0, 26, 50, 99,
339 77, 0, 77, 0, 220, 0, 0, 19, 59, 113,
340 76, 221, 208, 0, 21, 107, 38, 0, 21, 107,
341 10, 107, 38, 0, 22, 38, 0, 97, 38, 0,
342 0, 7, 0, 0, 99, 0, 0, 226, 0, 227,
343 0, 226, 81, 227, 0, 9, 59, 99, 76, 0,
344 115, 0, 228, 81, 115, 0, 0, 230, 231, 0,
345 233, 76, 0, 0, 234, 77, 232, 231, 0, 1,
346 76, 0, 0, 10, 0, 234, 0, 234, 81, 10,
347 0, 235, 0, 234, 81, 235, 0, 125, 122, 167,
348 142, 0, 125, 122, 168, 142, 0, 125, 122, 187,
349 142, 0, 129, 122, 168, 142, 0, 129, 122, 187,
350 142, 0, 0, 237, 238, 0, 231, 0, 239, 76,
351 0, 3, 0, 239, 81, 3, 0, 97, 0, 240,
358 static const short yyrline[] = { 0,
359 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
360 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
361 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
362 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
363 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
364 445, 448, 451, 454, 456, 460, 464, 468, 470, 473,
365 477, 504, 506, 508, 510, 512, 514, 516, 518, 520,
366 522, 524, 526, 528, 530, 534, 536, 540, 542, 545,
367 549, 551, 558, 561, 564, 570, 669, 670, 672, 678,
368 680, 694, 717, 719, 721, 725, 731, 733, 738, 740,
369 745, 747, 748, 758, 763, 765, 766, 767, 774, 780,
370 785, 788, 796, 801, 803, 804, 805, 812, 823, 827,
371 833, 838, 843, 848, 850, 852, 861, 864, 868, 870,
372 872, 877, 881, 884, 888, 891, 893, 905, 908, 910,
373 912, 916, 920, 922, 925, 938, 941, 945, 947, 955,
374 956, 957, 961, 963, 969, 970, 971, 974, 976, 979,
375 981, 984, 987, 993, 1000, 1002, 1009, 1016, 1019, 1026,
376 1029, 1033, 1036, 1040, 1045, 1048, 1052, 1055, 1057, 1059,
377 1061, 1068, 1070, 1071, 1072, 1077, 1079, 1084, 1092, 1097,
378 1101, 1104, 1106, 1111, 1114, 1116, 1118, 1122, 1125, 1125,
379 1128, 1128, 1131, 1131, 1134, 1134, 1137, 1139, 1150, 1158,
380 1162, 1173, 1181, 1188, 1190, 1195, 1198, 1203, 1205, 1207,
381 1214, 1216, 1224, 1230, 1232, 1234, 1241, 1243, 1249, 1255,
382 1257, 1259, 1261, 1268, 1270, 1273, 1276, 1280, 1283, 1287,
383 1290, 1294, 1299, 1301, 1305, 1307, 1309, 1311, 1315, 1317,
384 1320, 1323, 1326, 1329, 1333, 1335, 1338, 1340, 1344, 1347,
385 1352, 1354, 1356, 1370, 1377, 1382, 1388, 1393, 1395, 1400,
386 1402, 1406, 1410, 1414, 1424, 1426, 1431, 1436, 1439, 1443,
387 1446, 1450, 1453, 1456, 1459, 1463, 1466, 1470, 1474, 1476,
388 1478, 1480, 1482, 1484, 1486, 1488, 1498, 1506, 1508, 1510,
389 1514, 1516, 1519, 1522, 1533, 1535, 1540, 1542, 1545, 1559,
390 1562, 1565, 1567, 1569, 1577, 1585, 1596, 1601, 1604, 1618,
391 1627, 1631, 1635, 1639, 1645, 1649, 1654, 1657, 1662, 1665,
392 1666, 1683, 1688, 1691, 1703, 1705, 1715, 1725, 1726, 1734,
393 1737, 1749, 1753, 1770, 1780, 1789, 1794, 1799, 1804, 1808,
394 1812, 1823, 1830, 1837, 1844, 1855, 1861, 1864, 1869, 1892,
395 1926, 1957, 1988, 2003, 2014, 2018, 2022, 2025, 2030, 2032,
396 2035, 2037, 2041, 2046, 2049, 2055, 2060, 2065, 2067, 2076,
397 2077, 2083, 2085, 2095, 2097, 2101, 2104, 2110, 2120, 2129,
398 2138, 2148, 2162, 2167, 2172, 2174, 2183, 2186, 2191, 2194,
404 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
406 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
407 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
408 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
409 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
410 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
411 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
412 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
413 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
414 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
415 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
416 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
417 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
418 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
419 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
420 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
421 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
422 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
423 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
424 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
425 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
426 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
427 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
428 "struct_head","union_head","enum_head","structsp","@29","@30","@31","@32","maybecomma",
429 "maybecomma_warn","component_decl_list","component_decl_list2","component_decl",
430 "components","component_declarator","enumlist","enumerator","typename","absdcl",
431 "nonempty_type_quals","type_quals","absdcl1","stmts","lineno_stmt_or_labels",
432 "xstmts","errstmt","pushlevel","maybe_label_decls","label_decls","label_decl",
433 "compstmt_or_error","compstmt_start","compstmt","simple_if","if_prefix","do_stmt_start",
434 "@33","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
435 "stmt_or_label","stmt","@34","@35","@36","@37","@38","@39","@40","all_iter_stmt",
436 "all_iter_stmt_simple","@41","label","maybe_type_qual","xexpr","asm_operands",
437 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@42","parmlist_1",
438 "@43","parmlist_2","parms","parm","parmlist_or_identifiers","@44","parmlist_or_identifiers_1",
439 "identifiers","identifiers_or_typenames","extension", NULL
443 static const short yyr1[] = { 0,
444 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
445 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
446 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
447 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
448 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
449 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
450 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
451 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
452 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
453 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
454 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
455 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
456 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
457 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
458 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
459 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
460 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
461 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
462 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
463 150, 151, 151, 152, 153, 152, 152, 154, 152, 155,
464 152, 156, 152, 157, 152, 158, 152, 160, 161, 159,
465 163, 164, 162, 165, 165, 166, 166, 166, 166, 166,
466 166, 166, 167, 167, 167, 167, 167, 167, 168, 168,
467 168, 168, 168, 168, 168, 169, 169, 170, 170, 171,
468 171, 173, 172, 172, 172, 174, 172, 172, 172, 175,
469 172, 176, 172, 172, 177, 177, 178, 178, 179, 179,
470 180, 180, 180, 181, 181, 181, 181, 181, 181, 182,
471 182, 183, 183, 183, 184, 184, 184, 185, 185, 186,
472 186, 187, 187, 188, 188, 189, 189, 190, 190, 190,
473 190, 190, 190, 190, 190, 190, 191, 192, 192, 192,
474 193, 193, 194, 195, 196, 196, 197, 197, 198, 199,
475 199, 200, 201, 201, 201, 201, 202, 202, 203, 205,
476 204, 206, 207, 208, 208, 209, 210, 210, 211, 211,
477 211, 212, 211, 211, 211, 213, 214, 211, 211, 211,
478 215, 216, 217, 211, 218, 211, 211, 211, 211, 211,
479 211, 211, 211, 211, 211, 211, 211, 219, 221, 220,
480 222, 222, 222, 222, 223, 223, 224, 224, 225, 225,
481 226, 226, 227, 228, 228, 230, 229, 231, 232, 231,
482 231, 233, 233, 233, 233, 234, 234, 235, 235, 235,
483 235, 235, 237, 236, 238, 238, 239, 239, 240, 240,
487 static const short yyr2[] = { 0,
488 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
489 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
490 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
492 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
493 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
494 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
495 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
496 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
497 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
498 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
499 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
500 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
501 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
502 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
503 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
504 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
505 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
506 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
507 2, 1, 3, 1, 0, 4, 1, 0, 8, 0,
508 6, 0, 5, 0, 4, 0, 5, 0, 0, 5,
509 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
510 3, 1, 3, 4, 3, 3, 3, 1, 3, 3,
511 3, 4, 3, 3, 1, 1, 2, 1, 2, 1,
512 2, 0, 7, 5, 2, 0, 7, 5, 2, 0,
513 8, 0, 7, 2, 0, 1, 0, 1, 1, 2,
514 0, 3, 2, 3, 1, 3, 1, 1, 2, 1,
515 3, 4, 6, 5, 1, 3, 1, 1, 3, 2,
516 2, 0, 1, 1, 2, 0, 2, 3, 3, 2,
517 3, 4, 3, 2, 3, 2, 1, 1, 2, 2,
518 0, 1, 2, 0, 0, 1, 1, 2, 3, 1,
519 2, 1, 2, 6, 5, 5, 2, 2, 4, 0,
520 4, 0, 0, 3, 4, 3, 1, 1, 1, 1,
521 2, 0, 4, 1, 3, 0, 0, 7, 5, 2,
522 0, 0, 0, 12, 0, 6, 2, 2, 2, 3,
523 6, 8, 10, 12, 3, 4, 1, 1, 0, 6,
524 3, 5, 2, 2, 0, 1, 0, 1, 0, 1,
525 1, 3, 4, 1, 3, 0, 2, 2, 0, 4,
526 2, 0, 1, 1, 3, 1, 3, 4, 4, 4,
527 4, 4, 0, 2, 1, 2, 1, 3, 1, 3,
531 static const short yydefact[] = { 3,
532 5, 0, 0, 0, 152, 143, 150, 142, 240, 236,
533 238, 0, 0, 0, 401, 18, 4, 8, 7, 0,
534 118, 118, 138, 129, 139, 172, 0, 0, 0, 151,
535 0, 6, 16, 17, 241, 237, 239, 0, 0, 0,
536 235, 286, 0, 0, 160, 119, 0, 15, 0, 14,
537 0, 140, 129, 141, 145, 144, 127, 173, 31, 32,
538 261, 245, 261, 249, 252, 254, 10, 86, 87, 99,
539 56, 57, 0, 0, 0, 33, 35, 34, 0, 36,
540 37, 0, 38, 39, 0, 0, 40, 58, 0, 0,
541 62, 43, 45, 88, 0, 284, 0, 282, 148, 0,
542 282, 177, 0, 0, 11, 0, 0, 30, 0, 393,
543 0, 0, 170, 222, 286, 0, 0, 158, 119, 0,
544 214, 215, 0, 0, 128, 131, 155, 156, 130, 132,
545 157, 0, 0, 242, 0, 246, 0, 250, 54, 55,
546 49, 46, 0, 0, 0, 0, 48, 0, 0, 0,
547 50, 0, 52, 0, 0, 79, 77, 75, 0, 0,
548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
549 97, 98, 0, 0, 41, 0, 100, 47, 153, 286,
550 376, 0, 280, 283, 146, 154, 285, 148, 281, 183,
551 184, 185, 182, 0, 175, 178, 287, 231, 230, 161,
552 162, 234, 0, 229, 0, 233, 0, 0, 28, 0,
553 322, 106, 323, 169, 171, 0, 0, 13, 0, 0,
554 22, 0, 170, 393, 0, 12, 26, 0, 170, 268,
555 263, 118, 260, 118, 0, 261, 170, 261, 277, 278,
556 257, 275, 0, 90, 89, 312, 304, 0, 0, 9,
557 44, 0, 0, 85, 84, 0, 0, 0, 0, 73,
558 74, 72, 71, 70, 68, 69, 63, 64, 65, 66,
559 67, 96, 95, 0, 42, 0, 290, 0, 294, 0,
560 296, 0, 376, 0, 149, 147, 0, 177, 41, 0,
561 0, 397, 383, 118, 118, 395, 0, 384, 386, 394,
562 0, 232, 303, 0, 108, 103, 107, 0, 167, 220,
563 216, 159, 221, 20, 166, 217, 219, 0, 24, 244,
564 322, 262, 322, 269, 0, 248, 0, 0, 258, 0,
565 257, 313, 305, 92, 60, 59, 51, 53, 0, 0,
566 78, 76, 93, 94, 289, 288, 377, 295, 291, 293,
567 0, 174, 176, 86, 0, 163, 381, 282, 282, 378,
568 379, 0, 396, 0, 0, 29, 310, 104, 118, 118,
569 135, 0, 0, 164, 218, 0, 264, 270, 323, 266,
570 170, 170, 279, 276, 170, 0, 0, 0, 306, 307,
571 0, 80, 83, 292, 179, 0, 181, 228, 286, 376,
572 119, 170, 170, 170, 286, 170, 170, 0, 385, 387,
573 398, 311, 111, 0, 112, 0, 135, 133, 189, 187,
574 186, 168, 21, 0, 25, 322, 0, 243, 247, 253,
575 170, 399, 0, 0, 0, 322, 0, 0, 115, 323,
576 298, 308, 197, 86, 0, 0, 195, 0, 194, 0,
577 255, 192, 0, 0, 290, 0, 393, 0, 388, 389,
578 390, 290, 391, 392, 380, 0, 0, 162, 134, 137,
579 136, 0, 165, 271, 0, 170, 251, 309, 0, 315,
580 117, 116, 302, 0, 316, 300, 323, 299, 0, 0,
581 0, 0, 204, 61, 0, 191, 81, 180, 226, 286,
582 227, 223, 225, 0, 109, 110, 0, 170, 0, 272,
583 400, 314, 0, 152, 0, 336, 320, 0, 0, 0,
584 0, 0, 0, 0, 0, 365, 357, 0, 0, 113,
585 118, 118, 329, 334, 0, 0, 326, 327, 330, 358,
586 328, 0, 206, 0, 202, 0, 0, 193, 0, 224,
587 188, 274, 170, 0, 0, 322, 367, 0, 0, 363,
588 347, 348, 349, 0, 0, 0, 366, 0, 364, 331,
589 124, 0, 125, 0, 0, 318, 323, 317, 340, 0,
590 126, 0, 0, 200, 0, 196, 205, 273, 0, 0,
591 0, 368, 45, 0, 0, 0, 361, 350, 0, 355,
592 0, 0, 122, 208, 0, 123, 211, 335, 322, 0,
593 0, 207, 0, 0, 203, 319, 0, 321, 359, 341,
594 345, 0, 356, 0, 120, 0, 121, 0, 333, 324,
595 322, 0, 198, 201, 337, 322, 367, 322, 362, 369,
596 0, 209, 212, 325, 339, 0, 322, 360, 0, 346,
597 0, 0, 370, 371, 351, 0, 0, 199, 338, 342,
598 0, 369, 0, 0, 210, 213, 367, 0, 0, 352,
599 372, 0, 373, 0, 0, 343, 374, 0, 353, 322,
600 0, 0, 344, 354, 375, 0, 0, 0
603 static const short yydefgoto[] = { 686,
604 1, 2, 3, 17, 18, 19, 222, 373, 228, 376,
605 112, 304, 448, 85, 144, 274, 87, 88, 89, 90,
606 91, 391, 92, 259, 258, 256, 453, 257, 93, 145,
607 94, 209, 210, 211, 368, 435, 436, 20, 107, 530,
608 294, 57, 369, 418, 295, 23, 98, 185, 24, 129,
609 117, 44, 113, 118, 424, 45, 372, 214, 215, 26,
610 194, 195, 196, 422, 472, 450, 451, 452, 492, 646,
611 614, 585, 547, 582, 603, 626, 656, 606, 628, 657,
612 201, 121, 499, 122, 27, 28, 29, 30, 236, 238,
613 243, 137, 496, 330, 132, 133, 233, 377, 378, 241,
614 242, 100, 183, 101, 103, 184, 437, 438, 484, 212,
615 333, 388, 389, 390, 366, 247, 367, 534, 535, 536,
616 556, 577, 308, 578, 441, 537, 538, 609, 555, 647,
617 637, 667, 680, 638, 539, 540, 636, 541, 568, 594,
618 652, 653, 654, 678, 279, 280, 296, 408, 297, 298,
619 299, 204, 205, 300, 301, 433, 95
622 static const short yypact[] = { 93,
623 154, 1950, 1950, 173,-32768,-32768,-32768,-32768, 130, 130,
624 130, 143, 166, 215,-32768,-32768,-32768,-32768,-32768, 554,
625 87, 336, 318,-32768, 130,-32768, 80, 83, 88,-32768,
626 1950,-32768,-32768,-32768, 130, 130, 130, 1812, 1746, 228,
627 -32768,-32768, 554, 111,-32768, 130, 387,-32768, 327,-32768,
628 554, 318,-32768, 130,-32768,-32768, 858,-32768,-32768,-32768,
629 -32768, 257,-32768, 265,-32768, 283,-32768,-32768,-32768,-32768,
630 -32768,-32768, 1812, 1812, 290,-32768,-32768,-32768, 1812,-32768,
631 -32768, 567,-32768,-32768, 1812, 136, 235,-32768, 1839, 1866,
632 -32768, 2137, 1030, 326, 1812,-32768, 292, 20,-32768, 296,
633 1483, 975, 428, 29,-32768, 327, 554,-32768, 323,-32768,
634 1288, 808, 130,-32768,-32768, 327, 114,-32768, 130, 626,
635 243, 253, 151, 1234, 858,-32768,-32768,-32768,-32768, 130,
636 -32768, 332, 885,-32768, 334,-32768, 436,-32768,-32768,-32768,
637 -32768,-32768, 328, 340, 347, 342,-32768, 359, 1812, 567,
638 -32768, 567,-32768, 1812, 1812, 407,-32768,-32768, 1812, 1812,
639 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
640 -32768,-32768, 290, 290, 1812, 1812,-32768,-32768,-32768,-32768,
641 20, 1301,-32768, 321, 1036,-32768,-32768,-32768,-32768,-32768,
642 -32768,-32768,-32768, 92,-32768, 389,-32768, 253,-32768,-32768,
643 430, 253, 450,-32768, 963,-32768, 380, 395,-32768, 728,
644 49,-32768,-32768, 438, 130, 207, 141,-32768, 327, 327,
645 -32768, 808, 130,-32768, 1354,-32768,-32768, 808, 130,-32768,
646 -32768, 376, 408, 1954, 2122,-32768, 130,-32768,-32768, 455,
647 412,-32768, 436,-32768,-32768,-32768, 421, 442, 1635,-32768,
648 2137, 447, 448, 2137, 2137, 1812, 492, 1812, 1812, 1605,
649 2159, 1783, 463, 1237, 973, 973, 310, 310,-32768,-32768,
650 -32768,-32768,-32768, 458, 235, 452, 48, 374,-32768, 1558,
651 -32768, 461,-32768, 1367,-32768, 1036, 465, 975, 1893, 57,
652 469,-32768,-32768,-32768, 1452,-32768, 473, 159,-32768,-32768,
653 102,-32768,-32768, 52,-32768,-32768,-32768, 1533,-32768, 243,
654 -32768,-32768, 243,-32768, 495,-32768,-32768, 471,-32768,-32768,
655 -32768,-32768,-32768,-32768, 478,-32768, 486, 1812, 290, 488,
656 412,-32768, 533,-32768,-32768,-32768,-32768,-32768, 529, 1812,
657 2097, 2149,-32768,-32768, 321,-32768,-32768,-32768,-32768,-32768,
658 494,-32768,-32768, 104, 506,-32768,-32768, 348, 269,-32768,
659 -32768, 638,-32768, 584, 347,-32768,-32768,-32768, 512, 192,
660 -32768, 1223, 52,-32768,-32768, 52, 509,-32768,-32768, 509,
661 130, 130, 2137,-32768, 130, 514, 290, 746, 533,-32768,
662 1043,-32768, 1974,-32768,-32768, 1812,-32768,-32768,-32768, 269,
663 130, 149, 203, 130,-32768, 203, 130, 1558,-32768,-32768,
664 -32768,-32768,-32768, 327,-32768, 554,-32768, 785,-32768,-32768,
665 2137,-32768,-32768, 1223,-32768,-32768, 294,-32768,-32768,-32768,
666 130,-32768, 161, 393, 666, 515, 516, 826,-32768,-32768,
667 -32768,-32768,-32768, 559, 290, 1812,-32768, 564, 2137, 525,
668 524,-32768, 1812, 153, 402, 892,-32768, 1420,-32768,-32768,
669 -32768, 487,-32768,-32768,-32768, 171, 179, 50, 785,-32768,
670 -32768, 1043,-32768,-32768, 1812, 91,-32768,-32768, 290,-32768,
671 -32768,-32768,-32768, 528,-32768,-32768,-32768,-32768, 1501, 573,
672 1998, 1043,-32768,-32768, 1103,-32768, 1974,-32768, 424,-32768,
673 424,-32768,-32768, 531,-32768,-32768, 534, 2047, 1812,-32768,
674 -32768,-32768, 1581, 580, 560,-32768,-32768, 561, 565, 1812,
675 590, 557, 558, 1759, 144, 630,-32768, 603, 578,-32768,
676 581, 1982,-32768, 641, 906, 56,-32768,-32768,-32768,-32768,
677 -32768, 1692,-32768, 1812, 623, 583, 1163,-32768, 781,-32768,
678 -32768,-32768, 2047, 1812, 605,-32768, 1812, 1812, 2070,-32768,
679 -32768,-32768,-32768, 588, 1812, 599,-32768, 643,-32768,-32768,
680 -32768, 327,-32768, 554, 986,-32768,-32768,-32768,-32768, 1812,
681 -32768, 1163, 2021,-32768, 1163,-32768,-32768,-32768, 606, 1812,
682 687,-32768, 422, 628, 634, 1812,-32768,-32768, 636,-32768,
683 1812, 223,-32768, 349, 234,-32768, 1001,-32768,-32768, 1581,
684 635,-32768, 681, 1163,-32768,-32768, 642,-32768,-32768,-32768,
685 -32768, 2119,-32768, 36,-32768, 808,-32768, 808,-32768,-32768,
686 -32768, 645,-32768,-32768,-32768,-32768, 1812,-32768,-32768, 710,
687 646,-32768,-32768,-32768,-32768, 1163,-32768,-32768, 647,-32768,
688 667, 43, 650,-32768,-32768, 347, 347,-32768,-32768,-32768,
689 1812, 710, 651, 710,-32768,-32768, 1812, 660, 61,-32768,
690 -32768, 661,-32768, 450, 662,-32768, 326, 168,-32768,-32768,
691 701, 450,-32768,-32768, 326, 727, 782,-32768
694 static const short yypgoto[] = {-32768,
695 -32768,-32768,-32768, 73,-32768,-32768,-32768,-32768,-32768,-32768,
696 -32768,-32768, -24,-32768, -38, 498, -123, 432,-32768,-32768,
697 -10,-32768, 116,-32768,-32768,-32768,-32768,-32768, 224,-32768,
698 -178, -204, 572,-32768,-32768, 357,-32768, 27, -93, 260,
699 8, 750,-32768, 390, 13, 1, -72, 616, 19, -151,
700 -386, -49, -101, -63,-32768,-32768,-32768, -48, 11, 105,
701 -32768, 518,-32768, 384,-32768, -376,-32768, -424,-32768,-32768,
702 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
703 -43, -44, -311, -13,-32768,-32768,-32768, -28,-32768,-32768,
704 -32768,-32768,-32768, 485, -23,-32768, 582, 496, 392, 589,
705 504, -26, -69, -68, -98, -145, 388,-32768,-32768, -143,
706 -32768,-32768,-32768, 449, -230,-32768, -118,-32768,-32768,-32768,
707 -32768, -100, -334, -454, 401,-32768, 232,-32768,-32768,-32768,
708 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 244,-32768, -542,
709 194,-32768, 197,-32768, 575,-32768, -234,-32768,-32768,-32768,
710 500, -189,-32768,-32768,-32768,-32768, 6
717 static const short yytable[] = { 86,
718 97, 123, 62, 64, 66, 120, 47, 31, 31, 21,
719 21, 213, 25, 25, 22, 22, 216, 314, 223, 35,
720 36, 37, 52, 319, 290, 220, 248, 466, 131, 104,
721 46, 189, 54, 285, 316, 278, 31, 124, 21, 135,
722 53, 25, 200, 22, 427, 347, 402, 49, 51, -102,
723 141, 275, 365, 46, 197, 146, 579, 99, 306, 119,
724 232, 46, 139, 140, 234, 177, 305, 130, 142, 180,
725 548, 217, 207, 640, 147, 32, 109, 193, 181, 182,
726 662, 277, 59, 60, 178, 59, 60, 110, 111, 198,
727 59, 60, -1, 202, 649, 507, 131, 180, 674, 223,
728 99, 591, 104, 67, 199, 489, 181, 182, 110, 111,
729 213, 641, 240, 46, 580, 546, 119, 46, 663, 188,
730 14, 213, 587, 252, 672, 253, 119, 213, 509, 58,
731 -102, 345, 356, 246, 285, 130, 675, 276, 235, 58,
732 58, 58, 423, 282, 501, 425, 59, 60, 272, 273,
733 58, 99, 513, -2, 629, 312, 131, 612, 58, 14,
734 615, 61, 232, 48, 63, 275, 234, 287, 99, 65,
735 99, 310, 288, 465, 315, 313, 644, 363, 14, 395,
736 320, 648, 364, 650, 396, 602, 318, 105, 326, 634,
737 218, 106, 659, 565, 219, 5, 55, 7, 56, 224,
738 225, 38, 198, 9, 10, 11, 202, 457, 458, 41,
739 114, 148, 325, 197, 327, 25, 311, 339, 240, 13,
740 379, 658, 379, 58, 39, 683, 119, 226, 498, 119,
741 119, 106, 14, 149, 58, 361, 14, 478, 336, 362,
742 235, 479, 610, 681, 439, 351, 412, 505, 682, 33,
743 34, 219, 188, 99, 278, 506, 115, 131, 321, 106,
744 323, 110, 111, 193, 251, 116, 471, 502, 415, 254,
745 255, 41, 454, 40, 260, 261, 262, 263, 264, 265,
746 266, 267, 268, 269, 270, 271, 102, 440, 404, 407,
747 25, 481, 59, 60, 486, 52, 41, 114, 14, 625,
748 455, 224, 225, 219, 240, 54, 462, 456, 370, 345,
749 627, 110, 111, 53, 106, 149, 345, 471, 405, 58,
750 358, 359, 55, 14, 56, 379, 371, 400, 182, 41,
751 114, 475, 428, 429, 177, 440, 430, 487, 134, 5,
752 6, 7, 8, 115, 403, 406, 136, 9, 10, 11,
753 41, 398, 116, 459, 460, 461, 14, 463, 464, 168,
754 169, 170, 432, 13, 138, 14, 467, 179, 401, 46,
755 533, 186, 25, 341, 342, 109, 115, 14, -162, 283,
756 284, 203, 477, 476, -162, 116, 104, 108, 417, 131,
757 -27, -27, -27, -27, 533, 414, 416, 399, -27, -27,
758 -27, 549, 468, 244, 41, 398, 400, 182, 197, 229,
759 46, 237, 50, 109, -27, 245, -162, 249, 25, 504,
760 490, 642, -162, 643, 119, -162, 46, 510, 246, -162,
761 41, 14, 283, 284, 197, 250, 239, 119, 59, 60,
762 131, 198, 202, 383, -82, 110, 111, 289, 198, 346,
763 529, 399, -265, -265, 511, 393, 109, 14, 70, 552,
764 400, 182, 302, -162, 528, 401, 401, -162, -27, 303,
765 480, 303, 46, 309, 529, 171, 172, 42, 173, 174,
766 175, 176, 457, 458, 322, 564, 43, 421, 528, 41,
767 328, 533, 329, 197, 542, 677, 531, 619, 332, 25,
768 566, 532, 223, 685, 588, 58, 449, 163, 164, 165,
769 166, 167, 168, 169, 170, 589, 14, 334, 592, 595,
770 151, 153, 337, 338, 605, 213, 599, 213, 604, 340,
771 374, 178, 52, 343, 344, 198, 405, 665, 666, 421,
772 352, 611, 54, 348, 357, 400, 182, 542, 360, 531,
773 53, 617, 25, 375, 532, 381, 41, 572, 574, 401,
774 607, 491, 624, 382, 387, 385, 392, 143, 497, 68,
775 5, 529, 7, 96, 69, 70, 394, 71, 9, 10,
776 11, 397, 119, 14, 46, 528, 411, 449, 413, 426,
777 508, 431, -301, 485, 13, 72, -31, 15, 592, 73,
778 74, 493, 494, 42, 495, 512, 75, 449, 543, 76,
779 449, 551, 43, 550, 77, 78, 79, -32, 554, 557,
780 80, 81, 668, 558, 553, 82, 221, 560, 592, -19,
781 -19, -19, -19, 561, 562, 559, 567, -19, -19, -19,
782 569, 5, 6, 7, 8, 83, 84, 409, -91, 9,
783 10, 11, 109, -19, 570, -162, 575, 571, 584, 583,
784 586, -162, 449, 590, 598, 13, 208, 14, -114, -114,
785 -114, -114, -114, -114, -114, 600, -114, -114, -114, -114,
786 -114, 616, -114, -114, -114, -114, -114, -114, -114, -114,
787 -114, -114, -114, -114, -114, -114, -114, 449, -114, -114,
788 449, 601, -162, 618, 620, -114, -162, -19, -114, 621,
789 632, 622, 623, -114, -114, -114, 633, 635, 651, -114,
790 -114, 645, 655, 660, -114, 661, 687, 670, 208, 449,
791 664, -105, -105, -105, -105, 673, 676, -105, 679, -105,
792 -105, -105, -114, -114, -114, -114, 434, -114, -322, -322,
793 -322, -322, -322, -322, -322, -105, -322, -322, -322, -322,
794 -322, 449, -322, -322, -322, -322, -322, -322, -322, -322,
795 -322, -322, -322, -322, -322, -322, -322, 684, -322, -322,
796 593, 688, 307, 41, 398, -322, 355, 197, -322, 470,
797 127, 128, 482, -322, -322, -322, 9, 10, 11, -322,
798 -322, 581, 125, 286, -322, 353, 469, 473, 208, -105,
799 14, -322, -322, -322, -322, 386, 324, 474, 380, -322,
800 -322, -322, -322, 483, -322, -322, 208, -322, -322, -322,
801 500, 331, 384, -322, -322, -322, -322, 442, 488, 43,
802 -322, 630, -322, -322, -322, -322, -322, -322, -322, -322,
803 -322, -322, -322, 631, -322, 669, -322, 349, -322, -322,
804 671, 410, 126, 127, 128, -322, 0, 0, -322, 9,
805 10, 11, 0, -322, -322, -322, 0, 0, 0, -322,
806 -322, 0, 0, 0, -322, 230, 0, 14, 5, -101,
807 7, 96, 0, 0, 41, 398, 9, 10, 11, 0,
808 0, 0, -322, -297, -322, -322, 576, -322, -322, -322,
809 0, 0, 13, -322, -322, 15, -322, 0, 0, 0,
810 -322, 14, -322, -322, -322, -322, -322, -322, -322, -322,
811 -322, -322, -322, 0, -322, 0, -322, 0, -322, -322,
812 0, 500, 0, 0, 0, -322, 0, 0, -322, 0,
813 43, 0, 0, -322, -322, -322, 0, 0, 0, -322,
814 -322, 231, -259, 291, -322, 292, 5, 6, 7, 8,
815 0, 0, 293, 0, 9, 10, 11, 59, 60, 190,
816 191, 192, -322, 0, -322, -322, 608, -322, -332, -332,
817 13, 0, 14, -332, -332, 0, -332, 0, 0, 0,
818 -332, 0, -332, -332, -332, -332, -332, -332, -332, -332,
819 -332, -332, -332, 0, -332, 0, -332, 0, -332, -332,
820 166, 167, 168, 169, 170, -332, 0, 109, -332, 0,
821 -162, 0, 0, -332, -332, -332, -162, 0, -382, -332,
822 -332, 127, 128, 443, -332, 444, 60, 9, 10, 11,
823 69, 70, 0, 71, 0, 0, 0, 0, 0, 110,
824 111, 0, -332, 0, -332, -332, 0, -332, 0, 0,
825 0, 72, 0, 15, 0, 73, 74, -162, 0, 0,
826 0, -162, 75, 171, 172, 76, 173, 174, 175, 176,
827 77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
828 445, 82, 446, 443, 0, 444, 60, 0, 0, 0,
829 69, 70, 0, 71, 0, 0, 0, 0, 0, 0,
830 -190, 83, 84, 0, 447, 0, 0, 0, 0, 0,
831 0, 72, 0, 15, 0, 73, 74, 0, 0, 0,
832 0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
833 77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
834 445, 82, 446, 443, 0, 444, 60, 0, 0, 0,
835 69, 70, 0, 71, 0, 0, 0, 0, 0, 0,
836 -256, 83, 84, 0, 447, 0, 0, 0, 0, 0,
837 0, 72, 0, 15, 0, 73, 74, 0, 0, 0,
838 0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
839 77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
840 445, 82, 446, 419, 0, 68, 0, 0, 0, 0,
841 69, 70, 0, 71, 227, 0, 0, -23, -23, -23,
842 -23, 83, 84, 0, 447, -23, -23, -23, 0, 0,
843 0, 72, 0, 15, 0, 73, 74, 0, 0, 0,
844 109, -23, 75, -162, 0, 76, 0, 0, 0, -162,
845 77, 78, 79, 0, 0, 0, 80, 81, 0, 0,
846 0, 82, 164, 165, 166, 167, 168, 169, 170, 0,
847 68, 0, 110, 111, 0, 69, 70, 0, 71, 0,
848 0, 83, 84, 68, 420, 0, 0, 0, 69, 70,
849 -162, 71, 0, 0, -162, -23, 72, 0, 15, 0,
850 73, 74, 0, 0, 0, 0, 0, 75, 0, 72,
851 76, 15, 0, 73, 74, 77, 78, 79, 0, 0,
852 75, 80, 81, 76, 0, 0, 82, 0, 77, 78,
853 79, 0, 0, 0, 80, 81, 68, 0, 0, 82,
854 0, 69, 70, 0, 71, 0, 83, 84, 0, 68,
855 206, 0, 0, 0, 69, 70, 0, 71, 0, 83,
856 84, 0, 72, 281, 15, 0, 73, 74, 0, 0,
857 0, 0, 0, 75, 0, 72, 76, 15, 0, 73,
858 74, 77, 78, 79, 0, 0, 75, 80, 81, 76,
859 0, 0, 82, 0, 77, 78, 79, 0, 0, 0,
860 80, 81, 68, 0, 0, 82, 0, 69, 70, 0,
861 71, 0, 83, 84, 0, 0, 317, 0, 0, 0,
862 0, 0, 0, 0, 0, 83, 84, 0, 72, 350,
863 15, 0, 73, 74, 0, 5, 6, 7, 8, 75,
864 0, 0, 76, 9, 10, 11, 0, 77, 78, 79,
865 0, 0, 0, 80, 81, 0, 0, 0, 82, 13,
866 0, 14, 0, 0, 0, 0, 5, 0, 7, 187,
867 0, 0, 0, 0, 9, 10, 11, 0, 83, 84,
868 0, 0, 503, 444, 514, 6, 7, 8, 69, 70,
869 13, 71, 9, 10, 11, 515, 0, 516, 517, 518,
870 519, 520, 521, 522, 523, 524, 525, 526, 13, 72,
871 14, 15, 180, 73, 74, 0, 5, 6, 7, 8,
872 75, 181, 182, 76, 9, 10, 11, 0, 77, 78,
873 79, 0, 0, 0, 80, 81, 0, 0, 291, 82,
874 13, 5, 6, 7, 8, 0, 0, 293, 0, 9,
875 10, 11, 0, 0, 0, 0, 0, 527, 0, 83,
876 84, 0, 246, 444, 60, 13, 0, 14, 69, 70,
877 0, 71, 0, 0, 0, 515, 0, 516, 517, 518,
878 519, 520, 521, 522, 523, 524, 525, 526, 0, 72,
879 0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
880 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
881 79, 0, 0, -382, 80, 81, 0, 68, 0, 82,
882 0, 0, 69, 70, 0, 71, 160, 161, 162, 163,
883 164, 165, 166, 167, 168, 169, 170, 527, 0, 83,
884 84, 0, 246, 72, 0, 15, 0, 73, 74, 0,
885 0, 0, 0, 0, 75, 0, 0, 76, 0, 0,
886 0, 0, 77, 78, 79, 0, 0, 0, 80, 81,
887 0, 0, 0, 82, 68, 5, 6, 7, 8, 69,
888 70, 0, 71, 9, 10, 11, 0, 0, 0, 0,
889 0, 0, 0, 83, 84, 0, 335, 0, 0, 13,
890 72, 14, 15, 0, 73, 74, 0, 0, 0, 0,
891 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
892 78, 79, 0, 0, 0, 80, 81, 0, 68, 5,
893 82, 7, 96, 69, 70, 0, 71, 9, 10, 11,
894 0, 68, 0, 0, 0, 0, 69, 70, 0, 71,
895 83, 84, 0, 13, 72, 0, 15, 0, 73, 74,
896 0, 0, 0, 0, 0, 75, 0, 72, 76, 15,
897 0, 73, 74, 77, 78, 79, 0, 0, 75, 80,
898 81, 76, 0, 0, 82, 0, 77, 78, 79, 0,
899 0, 0, 80, 81, 68, 0, 0, 82, 0, 69,
900 70, 0, 71, 0, 83, 84, 162, 163, 164, 165,
901 166, 167, 168, 169, 170, 563, 0, 83, 84, 0,
902 72, 68, 15, 0, 73, 74, 69, 70, 0, 71,
903 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
904 78, 79, 0, 0, 0, 80, 81, 72, 68, 15,
905 82, 73, 74, 69, 70, 0, 71, 0, 75, 0,
906 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
907 83, 84, 80, 81, 72, 354, 15, 150, 73, 74,
908 69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
909 0, 0, 0, 77, 78, 79, 0, 83, 84, 80,
910 81, 72, 0, 15, 152, 73, 74, 0, 0, 0,
911 0, 0, 75, 0, 0, 76, 0, 0, 0, 0,
912 77, 78, 79, 0, 83, 84, 80, 81, 0, 0,
913 4, 82, -118, 5, 6, 7, 8, 5, 0, 7,
914 187, 9, 10, 11, 0, 9, 10, 11, 0, 0,
915 0, 83, 84, 0, 0, 0, 12, 13, 0, 14,
916 15, 13, 0, 0, 0, 5, 6, 7, 8, 0,
917 0, 0, 0, 9, 10, 11, 0, 0, 0, -118,
918 0, 0, 0, 0, 0, 0, 0, 544, -118, 13,
919 156, 14, 157, 158, 159, 160, 161, 162, 163, 164,
920 165, 166, 167, 168, 169, 170, 16, 0, 0, 0,
921 -267, -267, 154, 155, 156, 0, 157, 158, 159, 160,
922 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
923 0, 0, 0, 0, 0, 154, 155, 156, 573, 157,
924 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
925 168, 169, 170, 0, 0, 0, 14, 0, 0, 596,
926 545, 154, 155, 156, 0, 157, 158, 159, 160, 161,
927 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
928 0, 0, 0, 613, 154, 155, 156, 597, 157, 158,
929 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
930 169, 170, 230, 0, 0, 5, 0, 7, 96, 0,
931 0, 0, 0, 9, 10, 11, 158, 159, 160, 161,
932 162, 163, 164, 165, 166, 167, 168, 169, 170, 13,
933 0, 0, 15, 154, 155, 156, 639, 157, 158, 159,
934 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
935 170, 154, 155, 156, 0, 157, 158, 159, 160, 161,
936 162, 163, 164, 165, 166, 167, 168, 169, 170, 159,
937 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
938 170, 161, 162, 163, 164, 165, 166, 167, 168, 169,
942 static const short yycheck[] = { 38,
943 39, 51, 27, 28, 29, 49, 20, 2, 3, 2,
944 3, 112, 2, 3, 2, 3, 115, 222, 120, 9,
945 10, 11, 22, 228, 203, 119, 145, 414, 57, 43,
946 20, 101, 22, 185, 224, 181, 31, 51, 31, 63,
947 22, 31, 106, 31, 379, 280, 358, 21, 22, 1,
948 75, 175, 1, 43, 7, 82, 1, 39, 10, 49,
949 133, 51, 73, 74, 133, 9, 210, 57, 79, 50,
950 495, 116, 111, 38, 85, 3, 27, 102, 59, 60,
951 38, 180, 3, 4, 95, 3, 4, 59, 60, 103,
952 3, 4, 0, 107, 637, 472, 125, 50, 38, 201,
953 82, 556, 116, 31, 76, 440, 59, 60, 59, 60,
954 211, 76, 137, 103, 59, 492, 106, 107, 76, 101,
955 30, 222, 547, 150, 667, 152, 116, 228, 38, 25,
956 82, 277, 76, 82, 286, 125, 76, 176, 133, 35,
957 36, 37, 373, 182, 456, 376, 3, 4, 173, 174,
958 46, 133, 487, 0, 609, 219, 185, 582, 54, 30,
959 585, 82, 235, 77, 82, 289, 235, 76, 150, 82,
960 152, 216, 81, 408, 223, 220, 631, 76, 30, 76,
961 229, 636, 81, 638, 81, 572, 225, 77, 237, 614,
962 77, 81, 647, 50, 81, 4, 5, 6, 7, 59,
963 60, 59, 216, 12, 13, 14, 220, 59, 60, 3,
964 4, 76, 236, 7, 238, 205, 76, 256, 243, 28,
965 321, 646, 323, 119, 59, 680, 216, 77, 76, 219,
966 220, 81, 30, 81, 130, 77, 30, 77, 249, 81,
967 235, 81, 577, 76, 388, 284, 365, 77, 81, 77,
968 78, 81, 234, 235, 400, 77, 50, 286, 232, 81,
969 234, 59, 60, 288, 149, 59, 418, 457, 77, 154,
970 155, 3, 396, 59, 159, 160, 161, 162, 163, 164,
971 165, 166, 167, 168, 169, 170, 59, 388, 358, 359,
972 280, 435, 3, 4, 438, 295, 3, 4, 30, 77,
973 399, 59, 60, 81, 329, 295, 405, 401, 308, 455,
974 77, 59, 60, 295, 81, 81, 462, 469, 50, 215,
975 294, 295, 5, 30, 7, 426, 308, 59, 60, 3,
976 4, 38, 381, 382, 9, 436, 385, 438, 82, 4,
977 5, 6, 7, 50, 358, 359, 82, 12, 13, 14,
978 3, 4, 59, 402, 403, 404, 30, 406, 407, 50,
979 51, 52, 387, 28, 82, 30, 416, 76, 358, 359,
980 489, 76, 362, 258, 259, 27, 50, 30, 30, 59,
981 60, 59, 431, 427, 36, 59, 400, 1, 370, 418,
982 4, 5, 6, 7, 513, 369, 370, 50, 12, 13,
983 14, 500, 416, 76, 3, 4, 59, 60, 7, 78,
984 400, 78, 77, 27, 28, 76, 30, 76, 408, 458,
985 445, 626, 36, 628, 414, 77, 416, 476, 82, 81,
986 3, 30, 59, 60, 7, 77, 1, 427, 3, 4,
987 469, 455, 456, 328, 38, 59, 60, 59, 462, 76,
988 489, 50, 77, 78, 479, 340, 27, 30, 9, 508,
989 59, 60, 83, 77, 489, 455, 456, 81, 82, 77,
990 78, 77, 462, 36, 513, 54, 55, 50, 57, 58,
991 59, 60, 59, 60, 77, 524, 59, 372, 513, 3,
992 36, 610, 81, 7, 489, 674, 489, 76, 78, 489,
993 525, 489, 604, 682, 553, 401, 391, 45, 46, 47,
994 48, 49, 50, 51, 52, 554, 30, 76, 557, 558,
995 89, 90, 76, 76, 574, 626, 565, 628, 572, 38,
996 36, 542, 532, 76, 83, 549, 50, 656, 657, 424,
997 76, 580, 532, 83, 76, 59, 60, 542, 76, 542,
998 532, 590, 542, 83, 542, 78, 3, 531, 532, 549,
999 574, 446, 601, 78, 32, 78, 38, 1, 453, 3,
1000 4, 610, 6, 7, 8, 9, 83, 11, 12, 13,
1001 14, 76, 572, 30, 574, 610, 3, 472, 77, 81,
1002 475, 78, 78, 78, 28, 29, 38, 31, 637, 33,
1003 34, 38, 78, 50, 81, 78, 40, 492, 36, 43,
1004 495, 78, 59, 83, 48, 49, 50, 38, 59, 59,
1005 54, 55, 661, 59, 509, 59, 1, 38, 667, 4,
1006 5, 6, 7, 77, 77, 520, 7, 12, 13, 14,
1007 38, 4, 5, 6, 7, 79, 80, 10, 82, 12,
1008 13, 14, 27, 28, 77, 30, 16, 77, 36, 544,
1009 78, 36, 547, 59, 77, 28, 1, 30, 3, 4,
1010 5, 6, 7, 8, 9, 77, 11, 12, 13, 14,
1011 15, 76, 17, 18, 19, 20, 21, 22, 23, 24,
1012 25, 26, 27, 28, 29, 30, 31, 582, 33, 34,
1013 585, 59, 77, 17, 77, 40, 81, 82, 43, 76,
1014 76, 596, 77, 48, 49, 50, 36, 76, 9, 54,
1015 55, 77, 77, 77, 59, 59, 0, 77, 1, 614,
1016 81, 4, 5, 6, 7, 76, 76, 10, 77, 12,
1017 13, 14, 77, 78, 79, 80, 1, 82, 3, 4,
1018 5, 6, 7, 8, 9, 28, 11, 12, 13, 14,
1019 15, 646, 17, 18, 19, 20, 21, 22, 23, 24,
1020 25, 26, 27, 28, 29, 30, 31, 77, 33, 34,
1021 557, 0, 211, 3, 4, 40, 289, 7, 43, 5,
1022 6, 7, 436, 48, 49, 50, 12, 13, 14, 54,
1023 55, 542, 53, 188, 59, 288, 417, 424, 1, 82,
1024 30, 4, 5, 6, 7, 331, 235, 426, 323, 12,
1025 13, 14, 77, 436, 79, 80, 1, 82, 3, 4,
1026 50, 243, 329, 8, 9, 28, 11, 389, 438, 59,
1027 15, 610, 17, 18, 19, 20, 21, 22, 23, 24,
1028 25, 26, 27, 610, 29, 662, 31, 283, 33, 34,
1029 664, 362, 5, 6, 7, 40, -1, -1, 43, 12,
1030 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1031 55, -1, -1, -1, 59, 1, -1, 30, 4, 82,
1032 6, 7, -1, -1, 3, 4, 12, 13, 14, -1,
1033 -1, -1, 77, 78, 79, 80, 1, 82, 3, 4,
1034 -1, -1, 28, 8, 9, 31, 11, -1, -1, -1,
1035 15, 30, 17, 18, 19, 20, 21, 22, 23, 24,
1036 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1037 -1, 50, -1, -1, -1, 40, -1, -1, 43, -1,
1038 59, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1039 55, 77, 78, 1, 59, 3, 4, 5, 6, 7,
1040 -1, -1, 10, -1, 12, 13, 14, 3, 4, 5,
1041 6, 7, 77, -1, 79, 80, 1, 82, 3, 4,
1042 28, -1, 30, 8, 9, -1, 11, -1, -1, -1,
1043 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1044 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1045 48, 49, 50, 51, 52, 40, -1, 27, 43, -1,
1046 30, -1, -1, 48, 49, 50, 36, -1, 76, 54,
1047 55, 6, 7, 1, 59, 3, 4, 12, 13, 14,
1048 8, 9, -1, 11, -1, -1, -1, -1, -1, 59,
1049 60, -1, 77, -1, 79, 80, -1, 82, -1, -1,
1050 -1, 29, -1, 31, -1, 33, 34, 77, -1, -1,
1051 -1, 81, 40, 54, 55, 43, 57, 58, 59, 60,
1052 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1053 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1054 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1055 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1056 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1057 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1058 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1059 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1060 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1061 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1062 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1063 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1064 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1065 58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
1066 8, 9, -1, 11, 1, -1, -1, 4, 5, 6,
1067 7, 79, 80, -1, 82, 12, 13, 14, -1, -1,
1068 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1069 27, 28, 40, 30, -1, 43, -1, -1, -1, 36,
1070 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1071 -1, 59, 46, 47, 48, 49, 50, 51, 52, -1,
1072 3, -1, 59, 60, -1, 8, 9, -1, 11, -1,
1073 -1, 79, 80, 3, 82, -1, -1, -1, 8, 9,
1074 77, 11, -1, -1, 81, 82, 29, -1, 31, -1,
1075 33, 34, -1, -1, -1, -1, -1, 40, -1, 29,
1076 43, 31, -1, 33, 34, 48, 49, 50, -1, -1,
1077 40, 54, 55, 43, -1, -1, 59, -1, 48, 49,
1078 50, -1, -1, -1, 54, 55, 3, -1, -1, 59,
1079 -1, 8, 9, -1, 11, -1, 79, 80, -1, 3,
1080 83, -1, -1, -1, 8, 9, -1, 11, -1, 79,
1081 80, -1, 29, 83, 31, -1, 33, 34, -1, -1,
1082 -1, -1, -1, 40, -1, 29, 43, 31, -1, 33,
1083 34, 48, 49, 50, -1, -1, 40, 54, 55, 43,
1084 -1, -1, 59, -1, 48, 49, 50, -1, -1, -1,
1085 54, 55, 3, -1, -1, 59, -1, 8, 9, -1,
1086 11, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1087 -1, -1, -1, -1, -1, 79, 80, -1, 29, 83,
1088 31, -1, 33, 34, -1, 4, 5, 6, 7, 40,
1089 -1, -1, 43, 12, 13, 14, -1, 48, 49, 50,
1090 -1, -1, -1, 54, 55, -1, -1, -1, 59, 28,
1091 -1, 30, -1, -1, -1, -1, 4, -1, 6, 7,
1092 -1, -1, -1, -1, 12, 13, 14, -1, 79, 80,
1093 -1, -1, 83, 3, 4, 5, 6, 7, 8, 9,
1094 28, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1095 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1096 30, 31, 50, 33, 34, -1, 4, 5, 6, 7,
1097 40, 59, 60, 43, 12, 13, 14, -1, 48, 49,
1098 50, -1, -1, -1, 54, 55, -1, -1, 1, 59,
1099 28, 4, 5, 6, 7, -1, -1, 10, -1, 12,
1100 13, 14, -1, -1, -1, -1, -1, 77, -1, 79,
1101 80, -1, 82, 3, 4, 28, -1, 30, 8, 9,
1102 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1103 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1104 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1105 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1106 50, -1, -1, 76, 54, 55, -1, 3, -1, 59,
1107 -1, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1108 46, 47, 48, 49, 50, 51, 52, 77, -1, 79,
1109 80, -1, 82, 29, -1, 31, -1, 33, 34, -1,
1110 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1111 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1112 -1, -1, -1, 59, 3, 4, 5, 6, 7, 8,
1113 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
1114 -1, -1, -1, 79, 80, -1, 82, -1, -1, 28,
1115 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1116 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1117 49, 50, -1, -1, -1, 54, 55, -1, 3, 4,
1118 59, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1119 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1120 79, 80, -1, 28, 29, -1, 31, -1, 33, 34,
1121 -1, -1, -1, -1, -1, 40, -1, 29, 43, 31,
1122 -1, 33, 34, 48, 49, 50, -1, -1, 40, 54,
1123 55, 43, -1, -1, 59, -1, 48, 49, 50, -1,
1124 -1, -1, 54, 55, 3, -1, -1, 59, -1, 8,
1125 9, -1, 11, -1, 79, 80, 44, 45, 46, 47,
1126 48, 49, 50, 51, 52, 77, -1, 79, 80, -1,
1127 29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
1128 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1129 49, 50, -1, -1, -1, 54, 55, 29, 3, 31,
1130 59, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1131 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1132 79, 80, 54, 55, 29, 3, 31, 59, 33, 34,
1133 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1134 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1135 55, 29, -1, 31, 59, 33, 34, -1, -1, -1,
1136 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1137 48, 49, 50, -1, 79, 80, 54, 55, -1, -1,
1138 1, 59, 3, 4, 5, 6, 7, 4, -1, 6,
1139 7, 12, 13, 14, -1, 12, 13, 14, -1, -1,
1140 -1, 79, 80, -1, -1, -1, 27, 28, -1, 30,
1141 31, 28, -1, -1, -1, 4, 5, 6, 7, -1,
1142 -1, -1, -1, 12, 13, 14, -1, -1, -1, 50,
1143 -1, -1, -1, -1, -1, -1, -1, 10, 59, 28,
1144 37, 30, 39, 40, 41, 42, 43, 44, 45, 46,
1145 47, 48, 49, 50, 51, 52, 77, -1, -1, -1,
1146 77, 78, 35, 36, 37, -1, 39, 40, 41, 42,
1147 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1148 -1, -1, -1, -1, -1, 35, 36, 37, 77, 39,
1149 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1150 50, 51, 52, -1, -1, -1, 30, -1, -1, 10,
1151 83, 35, 36, 37, -1, 39, 40, 41, 42, 43,
1152 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1153 -1, -1, -1, 83, 35, 36, 37, 38, 39, 40,
1154 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1155 51, 52, 1, -1, -1, 4, -1, 6, 7, -1,
1156 -1, -1, -1, 12, 13, 14, 40, 41, 42, 43,
1157 44, 45, 46, 47, 48, 49, 50, 51, 52, 28,
1158 -1, -1, 31, 35, 36, 37, 38, 39, 40, 41,
1159 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1160 52, 35, 36, 37, -1, 39, 40, 41, 42, 43,
1161 44, 45, 46, 47, 48, 49, 50, 51, 52, 41,
1162 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1163 52, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1166 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1167 #line 3 "/usr/lib/bison.simple"
1169 /* Skeleton output parser for bison,
1170 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1172 This program is free software; you can redistribute it and/or modify
1173 it under the terms of the GNU General Public License as published by
1174 the Free Software Foundation; either version 2, or (at your option)
1177 This program is distributed in the hope that it will be useful,
1178 but WITHOUT ANY WARRANTY; without even the implied warranty of
1179 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1180 GNU General Public License for more details.
1182 You should have received a copy of the GNU General Public License
1183 along with this program; if not, write to the Free Software
1184 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1186 /* As a special exception, when this file is copied by Bison into a
1187 Bison output file, you may use that output file without restriction.
1188 This special exception was added by the Free Software Foundation
1189 in version 1.24 of Bison. */
1193 #define alloca __builtin_alloca
1194 #else /* not GNU C. */
1195 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1197 #else /* not sparc */
1198 #if defined (MSDOS) && !defined (__TURBOC__)
1200 #else /* not MSDOS, or __TURBOC__ */
1204 #else /* not MSDOS, __TURBOC__, or _AIX */
1208 void *alloca (unsigned int);
1210 #else /* not __cplusplus */
1212 #endif /* not __cplusplus */
1214 #endif /* not _AIX */
1215 #endif /* not MSDOS, or __TURBOC__ */
1216 #endif /* not sparc. */
1217 #endif /* not GNU C. */
1218 #endif /* alloca not defined. */
1220 /* This is the parser code that is written into each bison parser
1221 when the %semantic_parser declaration is not specified in the grammar.
1222 It was written by Richard Stallman by simplifying the hairy parser
1223 used when %semantic_parser is specified. */
1225 /* Note: there must be only one dollar sign in this file.
1226 It is replaced by the list of actions, each action
1227 as one case of the switch. */
1229 #define yyerrok (yyerrstatus = 0)
1230 #define yyclearin (yychar = YYEMPTY)
1233 #define YYACCEPT return(0)
1234 #define YYABORT return(1)
1235 #define YYERROR goto yyerrlab1
1236 /* Like YYERROR except do call yyerror.
1237 This remains here temporarily to ease the
1238 transition to the new meaning of YYERROR, for GCC.
1239 Once GCC version 2 has supplanted version 1, this can go. */
1240 #define YYFAIL goto yyerrlab
1241 #define YYRECOVERING() (!!yyerrstatus)
1242 #define YYBACKUP(token, value) \
1244 if (yychar == YYEMPTY && yylen == 1) \
1245 { yychar = (token), yylval = (value); \
1246 yychar1 = YYTRANSLATE (yychar); \
1251 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1255 #define YYERRCODE 256
1258 #define YYLEX yylex()
1264 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1266 #define YYLEX yylex(&yylval, &yylloc)
1268 #else /* not YYLSP_NEEDED */
1270 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1272 #define YYLEX yylex(&yylval)
1274 #endif /* not YYLSP_NEEDED */
1277 /* If nonreentrant, generate the variables here */
1281 int yychar; /* the lookahead symbol */
1282 YYSTYPE yylval; /* the semantic value of the */
1283 /* lookahead symbol */
1286 YYLTYPE yylloc; /* location data for the lookahead */
1290 int yynerrs; /* number of parse errors so far */
1291 #endif /* not YYPURE */
1294 int yydebug; /* nonzero means print parse trace */
1295 /* Since this is uninitialized, it does not stop multiple parsers
1299 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1302 #define YYINITDEPTH 200
1305 /* YYMAXDEPTH is the maximum size the stacks can grow to
1306 (effective only if the built-in stack extension method is used). */
1313 #define YYMAXDEPTH 10000
1316 /* Prevent warning if -Wstrict-prototypes. */
1321 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1322 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1323 #else /* not GNU C or C++ */
1326 /* This is the most reliable way to avoid incompatibilities
1327 in available built-in functions on various systems. */
1329 __yy_memcpy (to, from, count)
1334 register char *f = from;
1335 register char *t = to;
1336 register int i = count;
1342 #else /* __cplusplus */
1344 /* This is the most reliable way to avoid incompatibilities
1345 in available built-in functions on various systems. */
1347 __yy_memcpy (char *to, char *from, int count)
1349 register char *f = from;
1350 register char *t = to;
1351 register int i = count;
1360 #line 196 "/usr/lib/bison.simple"
1362 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1363 into yyparse. The argument should have type void *.
1364 It should actually point to an object.
1365 Grammar actions can access the variable by casting it
1366 to the proper pointer type. */
1368 #ifdef YYPARSE_PARAM
1370 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1371 #define YYPARSE_PARAM_DECL
1372 #else /* not __cplusplus */
1373 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1374 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1375 #endif /* not __cplusplus */
1376 #else /* not YYPARSE_PARAM */
1377 #define YYPARSE_PARAM_ARG
1378 #define YYPARSE_PARAM_DECL
1379 #endif /* not YYPARSE_PARAM */
1382 yyparse(YYPARSE_PARAM_ARG)
1385 register int yystate;
1387 register short *yyssp;
1388 register YYSTYPE *yyvsp;
1389 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1390 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1392 short yyssa[YYINITDEPTH]; /* the state stack */
1393 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1395 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1396 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1399 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1400 YYLTYPE *yyls = yylsa;
1403 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1405 #define YYPOPSTACK (yyvsp--, yyssp--)
1408 int yystacksize = YYINITDEPTH;
1419 YYSTYPE yyval; /* the variable used to return */
1420 /* semantic values from the action */
1427 fprintf(stderr, "Starting parse\n");
1433 yychar = YYEMPTY; /* Cause a token to be read. */
1435 /* Initialize stack pointers.
1436 Waste one element of value and location stack
1437 so that they stay on the same level as the state stack.
1438 The wasted elements are never initialized. */
1446 /* Push a new state, which is found in yystate . */
1447 /* In all cases, when you get here, the value and location stacks
1448 have just been pushed. so pushing a state here evens the stacks. */
1453 if (yyssp >= yyss + yystacksize - 1)
1455 /* Give user a chance to reallocate the stack */
1456 /* Use copies of these so that the &'s don't force the real ones into memory. */
1457 YYSTYPE *yyvs1 = yyvs;
1458 short *yyss1 = yyss;
1460 YYLTYPE *yyls1 = yyls;
1463 /* Get the current used size of the three stacks, in elements. */
1464 int size = yyssp - yyss + 1;
1467 /* Each stack pointer address is followed by the size of
1468 the data in use in that stack, in bytes. */
1470 /* This used to be a conditional around just the two extra args,
1471 but that might be undefined if yyoverflow is a macro. */
1472 yyoverflow("parser stack overflow",
1473 &yyss1, size * sizeof (*yyssp),
1474 &yyvs1, size * sizeof (*yyvsp),
1475 &yyls1, size * sizeof (*yylsp),
1478 yyoverflow("parser stack overflow",
1479 &yyss1, size * sizeof (*yyssp),
1480 &yyvs1, size * sizeof (*yyvsp),
1484 yyss = yyss1; yyvs = yyvs1;
1488 #else /* no yyoverflow */
1489 /* Extend the stack our own way. */
1490 if (yystacksize >= YYMAXDEPTH)
1492 yyerror("parser stack overflow");
1496 if (yystacksize > YYMAXDEPTH)
1497 yystacksize = YYMAXDEPTH;
1498 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1499 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1500 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1501 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1503 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1504 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1506 #endif /* no yyoverflow */
1508 yyssp = yyss + size - 1;
1509 yyvsp = yyvs + size - 1;
1511 yylsp = yyls + size - 1;
1516 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1519 if (yyssp >= yyss + yystacksize - 1)
1525 fprintf(stderr, "Entering state %d\n", yystate);
1531 /* Do appropriate processing given the current state. */
1532 /* Read a lookahead token if we need one and don't already have one. */
1535 /* First try to decide what to do without reference to lookahead token. */
1537 yyn = yypact[yystate];
1541 /* Not known => get a lookahead token if don't already have one. */
1543 /* yychar is either YYEMPTY or YYEOF
1544 or a valid token in external form. */
1546 if (yychar == YYEMPTY)
1550 fprintf(stderr, "Reading a token: ");
1555 /* Convert token to internal form (in yychar1) for indexing tables with */
1557 if (yychar <= 0) /* This means end of input. */
1560 yychar = YYEOF; /* Don't call YYLEX any more */
1564 fprintf(stderr, "Now at end of input.\n");
1569 yychar1 = YYTRANSLATE(yychar);
1574 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1575 /* Give the individual parser a way to print the precise meaning
1576 of a token, for further debugging info. */
1578 YYPRINT (stderr, yychar, yylval);
1580 fprintf (stderr, ")\n");
1586 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1591 /* yyn is what to do for this token type in this state.
1592 Negative => reduce, -yyn is rule number.
1593 Positive => shift, yyn is new state.
1594 New state is final state => don't bother to shift,
1595 just return success.
1596 0, or most negative number => error. */
1611 /* Shift the lookahead token. */
1615 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1618 /* Discard the token being shifted unless it is eof. */
1619 if (yychar != YYEOF)
1627 /* count tokens shifted since error; after three, turn off error status. */
1628 if (yyerrstatus) yyerrstatus--;
1633 /* Do the default action for the current state. */
1636 yyn = yydefact[yystate];
1640 /* Do a reduction. yyn is the number of a rule to reduce with. */
1644 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1651 fprintf (stderr, "Reducing via rule %d (line %d), ",
1654 /* Print the symbols being reduced, and their result. */
1655 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1656 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1657 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1665 #line 234 "c-parse.y"
1667 pedwarn ("ANSI C forbids an empty source file");
1672 #line 239 "c-parse.y"
1674 /* In case there were missing closebraces,
1675 get us back to the global binding level. */
1676 while (! global_bindings_p ())
1682 #line 253 "c-parse.y"
1683 {yyval.ttype = NULL_TREE; ;
1686 #line 254 "c-parse.y"
1687 {yyval.ttype = NULL_TREE; ;
1690 #line 261 "c-parse.y"
1691 { STRIP_NOPS (yyvsp[-2].ttype);
1692 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1693 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1694 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1695 assemble_asm (yyvsp[-2].ttype);
1697 error ("argument of `asm' is not a constant string"); ;
1700 #line 269 "c-parse.y"
1701 { pedantic = yyvsp[-1].itype; ;
1704 #line 274 "c-parse.y"
1706 error ("ANSI C forbids data definition with no type or storage class");
1707 else if (!flag_traditional)
1708 warning ("data definition has no type or storage class");
1710 current_declspecs = TREE_VALUE (declspec_stack);
1711 prefix_attributes = TREE_PURPOSE (declspec_stack);
1712 declspec_stack = TREE_CHAIN (declspec_stack);
1713 resume_momentary (yyvsp[-2].itype); ;
1716 #line 284 "c-parse.y"
1717 { current_declspecs = TREE_VALUE (declspec_stack);
1718 prefix_attributes = TREE_PURPOSE (declspec_stack);
1719 declspec_stack = TREE_CHAIN (declspec_stack);
1720 resume_momentary (yyvsp[-2].itype); ;
1723 #line 289 "c-parse.y"
1724 { current_declspecs = TREE_VALUE (declspec_stack);
1725 prefix_attributes = TREE_PURPOSE (declspec_stack);
1726 declspec_stack = TREE_CHAIN (declspec_stack);
1727 resume_momentary (yyvsp[-2].itype); ;
1730 #line 294 "c-parse.y"
1731 { pedwarn ("empty declaration"); ;
1734 #line 296 "c-parse.y"
1735 { shadow_tag (yyvsp[-1].ttype); ;
1738 #line 300 "c-parse.y"
1740 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1743 #line 306 "c-parse.y"
1744 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1745 prefix_attributes, NULL_TREE, 0))
1747 reinit_parse_for_function (); ;
1750 #line 311 "c-parse.y"
1751 { store_parm_decls (); ;
1754 #line 313 "c-parse.y"
1755 { finish_function (0);
1756 current_declspecs = TREE_VALUE (declspec_stack);
1757 prefix_attributes = TREE_PURPOSE (declspec_stack);
1758 declspec_stack = TREE_CHAIN (declspec_stack);
1759 resume_momentary (yyvsp[-5].itype); ;
1762 #line 319 "c-parse.y"
1763 { current_declspecs = TREE_VALUE (declspec_stack);
1764 prefix_attributes = TREE_PURPOSE (declspec_stack);
1765 declspec_stack = TREE_CHAIN (declspec_stack);
1766 resume_momentary (yyvsp[-2].itype); ;
1769 #line 324 "c-parse.y"
1770 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1771 prefix_attributes, NULL_TREE, 0))
1773 reinit_parse_for_function (); ;
1776 #line 329 "c-parse.y"
1777 { store_parm_decls (); ;
1780 #line 331 "c-parse.y"
1781 { finish_function (0);
1782 current_declspecs = TREE_VALUE (declspec_stack);
1783 prefix_attributes = TREE_PURPOSE (declspec_stack);
1784 declspec_stack = TREE_CHAIN (declspec_stack);
1785 resume_momentary (yyvsp[-5].itype); ;
1788 #line 337 "c-parse.y"
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[-2].itype); ;
1795 #line 342 "c-parse.y"
1796 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1797 prefix_attributes, NULL_TREE, 0))
1799 reinit_parse_for_function (); ;
1802 #line 347 "c-parse.y"
1803 { store_parm_decls (); ;
1806 #line 349 "c-parse.y"
1807 { finish_function (0);
1808 current_declspecs = TREE_VALUE (declspec_stack);
1809 prefix_attributes = TREE_PURPOSE (declspec_stack);
1810 declspec_stack = TREE_CHAIN (declspec_stack);
1811 resume_momentary (yyvsp[-5].itype); ;
1814 #line 355 "c-parse.y"
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[-2].itype); ;
1821 #line 367 "c-parse.y"
1822 { yyval.code = ADDR_EXPR; ;
1825 #line 369 "c-parse.y"
1826 { yyval.code = NEGATE_EXPR; ;
1829 #line 371 "c-parse.y"
1830 { yyval.code = CONVERT_EXPR; ;
1833 #line 373 "c-parse.y"
1834 { yyval.code = PREINCREMENT_EXPR; ;
1837 #line 375 "c-parse.y"
1838 { yyval.code = PREDECREMENT_EXPR; ;
1841 #line 377 "c-parse.y"
1842 { yyval.code = BIT_NOT_EXPR; ;
1845 #line 379 "c-parse.y"
1846 { yyval.code = TRUTH_NOT_EXPR; ;
1849 #line 383 "c-parse.y"
1850 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1853 #line 388 "c-parse.y"
1854 { yyval.ttype = NULL_TREE; ;
1857 #line 394 "c-parse.y"
1858 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1861 #line 396 "c-parse.y"
1862 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1865 #line 402 "c-parse.y"
1866 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1869 #line 405 "c-parse.y"
1870 { yyval.ttype = yyvsp[0].ttype;
1871 pedantic = yyvsp[-1].itype; ;
1874 #line 408 "c-parse.y"
1875 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1876 overflow_warning (yyval.ttype); ;
1879 #line 412 "c-parse.y"
1880 { tree label = lookup_label (yyvsp[0].ttype);
1882 pedwarn ("ANSI C forbids `&&'");
1884 yyval.ttype = null_pointer_node;
1887 TREE_USED (label) = 1;
1888 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1889 TREE_CONSTANT (yyval.ttype) = 1;
1894 #line 440 "c-parse.y"
1895 { skip_evaluation--;
1896 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1897 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1898 error ("`sizeof' applied to a bit-field");
1899 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1902 #line 446 "c-parse.y"
1903 { skip_evaluation--;
1904 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1907 #line 449 "c-parse.y"
1908 { skip_evaluation--;
1909 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1912 #line 452 "c-parse.y"
1913 { skip_evaluation--;
1914 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1917 #line 455 "c-parse.y"
1918 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1921 #line 457 "c-parse.y"
1922 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1925 #line 461 "c-parse.y"
1926 { skip_evaluation++; ;
1929 #line 465 "c-parse.y"
1930 { skip_evaluation++; ;
1933 #line 471 "c-parse.y"
1934 { tree type = groktypename (yyvsp[-2].ttype);
1935 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1938 #line 474 "c-parse.y"
1939 { start_init (NULL_TREE, NULL, 0);
1940 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1941 really_start_incremental_init (yyvsp[-2].ttype); ;
1944 #line 478 "c-parse.y"
1946 tree result = pop_init_level (0);
1947 tree type = yyvsp[-5].ttype;
1951 pedwarn ("ANSI C forbids constructor expressions");
1952 if (TYPE_NAME (type) != 0)
1954 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1955 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1957 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1961 yyval.ttype = result;
1962 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1964 int failure = complete_array_type (type, yyval.ttype, 1);
1971 #line 507 "c-parse.y"
1972 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1975 #line 509 "c-parse.y"
1976 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1979 #line 511 "c-parse.y"
1980 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1983 #line 513 "c-parse.y"
1984 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1987 #line 515 "c-parse.y"
1988 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1991 #line 517 "c-parse.y"
1992 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1995 #line 519 "c-parse.y"
1996 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1999 #line 521 "c-parse.y"
2000 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2003 #line 523 "c-parse.y"
2004 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2007 #line 525 "c-parse.y"
2008 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2011 #line 527 "c-parse.y"
2012 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2015 #line 529 "c-parse.y"
2016 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2019 #line 531 "c-parse.y"
2020 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2021 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2024 #line 534 "c-parse.y"
2025 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2026 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2029 #line 537 "c-parse.y"
2030 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2031 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2034 #line 540 "c-parse.y"
2035 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2036 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2039 #line 543 "c-parse.y"
2040 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2041 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2044 #line 546 "c-parse.y"
2045 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2046 - (yyvsp[-4].ttype == boolean_false_node)); ;
2049 #line 549 "c-parse.y"
2050 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2051 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2054 #line 552 "c-parse.y"
2056 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2057 /* Make sure first operand is calculated only once. */
2058 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2059 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2060 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2063 #line 559 "c-parse.y"
2064 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2065 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2068 #line 562 "c-parse.y"
2069 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2070 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2073 #line 565 "c-parse.y"
2074 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2075 /* This inhibits warnings in truthvalue_conversion. */
2076 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2079 #line 572 "c-parse.y"
2081 yyval.ttype = lastiddecl;
2082 if (!yyval.ttype || yyval.ttype == error_mark_node)
2084 if (yychar == YYEMPTY)
2089 /* Ordinary implicit function declaration. */
2090 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2091 assemble_external (yyval.ttype);
2092 TREE_USED (yyval.ttype) = 1;
2095 else if (current_function_decl == 0)
2097 error ("`%s' undeclared here (not in a function)",
2098 IDENTIFIER_POINTER (yyvsp[0].ttype));
2099 yyval.ttype = error_mark_node;
2104 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2105 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2107 error ("`%s' undeclared (first use in this function)",
2108 IDENTIFIER_POINTER (yyvsp[0].ttype));
2110 if (! undeclared_variable_notice)
2112 error ("(Each undeclared identifier is reported only once");
2113 error ("for each function it appears in.)");
2114 undeclared_variable_notice = 1;
2117 yyval.ttype = error_mark_node;
2118 /* Prevent repeated error messages. */
2119 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2120 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2124 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2125 yyval.ttype = error_mark_node;
2126 else if (C_DECL_ANTICIPATED (yyval.ttype))
2128 /* The first time we see a build-in function used,
2129 if it has not been declared. */
2130 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2131 if (yychar == YYEMPTY)
2135 /* Omit the implicit declaration we
2136 would ordinarily do, so we don't lose
2137 the actual built in type.
2138 But print a diagnostic for the mismatch. */
2139 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2140 error ("`%s' implicitly declared as function",
2141 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2142 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2143 != TYPE_MODE (integer_type_node))
2144 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2146 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2147 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2148 /* If it really returns void, change that to int. */
2149 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2150 TREE_TYPE (yyval.ttype)
2151 = build_function_type (integer_type_node,
2152 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2155 pedwarn ("built-in function `%s' used without declaration",
2156 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2158 /* Do what we would ordinarily do when a fn is used. */
2159 assemble_external (yyval.ttype);
2160 TREE_USED (yyval.ttype) = 1;
2164 assemble_external (yyval.ttype);
2165 TREE_USED (yyval.ttype) = 1;
2168 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2170 yyval.ttype = DECL_INITIAL (yyval.ttype);
2171 /* This is to prevent an enum whose value is 0
2172 from being considered a null pointer constant. */
2173 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2174 TREE_CONSTANT (yyval.ttype) = 1;
2179 #line 671 "c-parse.y"
2180 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2183 #line 673 "c-parse.y"
2184 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2185 if (class == 'e' || class == '1'
2186 || class == '2' || class == '<')
2187 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2188 yyval.ttype = yyvsp[-1].ttype; ;
2191 #line 679 "c-parse.y"
2192 { yyval.ttype = error_mark_node; ;
2195 #line 681 "c-parse.y"
2196 { if (current_function_decl == 0)
2198 error ("braced-group within expression allowed only inside a function");
2201 /* We must force a BLOCK for this level
2202 so that, if it is not expanded later,
2203 there is a way to turn off the entire subtree of blocks
2204 that are contained in it. */
2206 push_iterator_stack ();
2207 push_label_level ();
2208 yyval.ttype = expand_start_stmt_expr (); ;
2211 #line 695 "c-parse.y"
2214 pedwarn ("ANSI C forbids braced-groups within expressions");
2215 pop_iterator_stack ();
2217 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2218 /* The statements have side effects, so the group does. */
2219 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2221 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2223 /* Make a BIND_EXPR for the BLOCK already made. */
2224 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2225 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2226 /* Remove the block from the tree at this point.
2227 It gets put back at the proper place
2228 when the BIND_EXPR is expanded. */
2229 delete_block (yyvsp[-1].ttype);
2232 yyval.ttype = yyvsp[-1].ttype;
2236 #line 718 "c-parse.y"
2237 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2240 #line 720 "c-parse.y"
2241 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2244 #line 722 "c-parse.y"
2246 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2250 #line 726 "c-parse.y"
2252 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2254 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2258 #line 732 "c-parse.y"
2259 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2262 #line 734 "c-parse.y"
2263 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2266 #line 741 "c-parse.y"
2267 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2270 #line 750 "c-parse.y"
2271 { c_mark_varargs ();
2273 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2276 #line 760 "c-parse.y"
2280 #line 776 "c-parse.y"
2281 { current_declspecs = TREE_VALUE (declspec_stack);
2282 prefix_attributes = TREE_PURPOSE (declspec_stack);
2283 declspec_stack = TREE_CHAIN (declspec_stack);
2284 resume_momentary (yyvsp[-2].itype); ;
2287 #line 781 "c-parse.y"
2288 { current_declspecs = TREE_VALUE (declspec_stack);
2289 prefix_attributes = TREE_PURPOSE (declspec_stack);
2290 declspec_stack = TREE_CHAIN (declspec_stack);
2291 resume_momentary (yyvsp[-2].itype); ;
2294 #line 786 "c-parse.y"
2295 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2296 pedwarn ("empty declaration"); ;
2299 #line 789 "c-parse.y"
2300 { pedwarn ("empty declaration"); ;
2303 #line 798 "c-parse.y"
2307 #line 813 "c-parse.y"
2308 { yyval.itype = suspend_momentary ();
2309 pending_xref_error ();
2310 declspec_stack = tree_cons (prefix_attributes,
2313 split_specs_attrs (yyvsp[0].ttype,
2314 ¤t_declspecs, &prefix_attributes); ;
2317 #line 824 "c-parse.y"
2318 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2321 #line 829 "c-parse.y"
2322 { current_declspecs = TREE_VALUE (declspec_stack);
2323 prefix_attributes = TREE_PURPOSE (declspec_stack);
2324 declspec_stack = TREE_CHAIN (declspec_stack);
2325 resume_momentary (yyvsp[-2].itype); ;
2328 #line 834 "c-parse.y"
2329 { current_declspecs = TREE_VALUE (declspec_stack);
2330 prefix_attributes = TREE_PURPOSE (declspec_stack);
2331 declspec_stack = TREE_CHAIN (declspec_stack);
2332 resume_momentary (yyvsp[-2].itype); ;
2335 #line 839 "c-parse.y"
2336 { current_declspecs = TREE_VALUE (declspec_stack);
2337 prefix_attributes = TREE_PURPOSE (declspec_stack);
2338 declspec_stack = TREE_CHAIN (declspec_stack);
2339 resume_momentary (yyvsp[-1].itype); ;
2342 #line 844 "c-parse.y"
2343 { current_declspecs = TREE_VALUE (declspec_stack);
2344 prefix_attributes = TREE_PURPOSE (declspec_stack);
2345 declspec_stack = TREE_CHAIN (declspec_stack);
2346 resume_momentary (yyvsp[-1].itype); ;
2349 #line 849 "c-parse.y"
2350 { shadow_tag (yyvsp[-1].ttype); ;
2353 #line 851 "c-parse.y"
2354 { pedwarn ("empty declaration"); ;
2357 #line 853 "c-parse.y"
2358 { pedantic = yyvsp[-1].itype; ;
2361 #line 863 "c-parse.y"
2362 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2365 #line 865 "c-parse.y"
2366 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2369 #line 869 "c-parse.y"
2370 { yyval.ttype = NULL_TREE; ;
2373 #line 871 "c-parse.y"
2374 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2377 #line 873 "c-parse.y"
2378 { if (extra_warnings)
2379 warning ("`%s' is not at beginning of declaration",
2380 IDENTIFIER_POINTER (yyvsp[0].ttype));
2381 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2384 #line 878 "c-parse.y"
2385 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2388 #line 883 "c-parse.y"
2389 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2392 #line 885 "c-parse.y"
2393 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2396 #line 890 "c-parse.y"
2397 { yyval.ttype = NULL_TREE; ;
2400 #line 892 "c-parse.y"
2401 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2404 #line 894 "c-parse.y"
2405 { if (extra_warnings)
2406 warning ("`%s' is not at beginning of declaration",
2407 IDENTIFIER_POINTER (yyvsp[0].ttype));
2408 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2411 #line 907 "c-parse.y"
2412 { yyval.ttype = yyvsp[0].ttype; ;
2415 #line 909 "c-parse.y"
2416 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2419 #line 911 "c-parse.y"
2420 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2423 #line 913 "c-parse.y"
2424 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2427 #line 918 "c-parse.y"
2428 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2429 TREE_STATIC (yyval.ttype) = 1; ;
2432 #line 921 "c-parse.y"
2433 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2436 #line 923 "c-parse.y"
2437 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2438 TREE_STATIC (yyval.ttype) = 1; ;
2441 #line 926 "c-parse.y"
2442 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2443 warning ("`%s' is not at beginning of declaration",
2444 IDENTIFIER_POINTER (yyvsp[0].ttype));
2445 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2446 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2449 #line 940 "c-parse.y"
2450 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2453 #line 942 "c-parse.y"
2454 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2457 #line 946 "c-parse.y"
2458 { yyval.ttype = NULL_TREE; ;
2461 #line 948 "c-parse.y"
2462 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2465 #line 958 "c-parse.y"
2466 { /* For a typedef name, record the meaning, not the name.
2467 In case of `foo foo, bar;'. */
2468 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2471 #line 962 "c-parse.y"
2472 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2475 #line 964 "c-parse.y"
2476 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2479 #line 986 "c-parse.y"
2480 { yyval.ttype = NULL_TREE; ;
2483 #line 988 "c-parse.y"
2484 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2485 yyval.ttype = yyvsp[-1].ttype;
2489 #line 995 "c-parse.y"
2490 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2491 yyvsp[-1].ttype, prefix_attributes);
2492 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2495 #line 1000 "c-parse.y"
2497 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2500 #line 1003 "c-parse.y"
2501 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2502 yyvsp[0].ttype, prefix_attributes);
2503 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2507 #line 1011 "c-parse.y"
2508 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2509 yyvsp[-1].ttype, prefix_attributes);
2510 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2513 #line 1016 "c-parse.y"
2515 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2516 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2519 #line 1020 "c-parse.y"
2520 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2521 yyvsp[0].ttype, prefix_attributes);
2522 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2525 #line 1028 "c-parse.y"
2526 { yyval.ttype = NULL_TREE; ;
2529 #line 1030 "c-parse.y"
2530 { yyval.ttype = yyvsp[0].ttype; ;
2533 #line 1035 "c-parse.y"
2534 { yyval.ttype = yyvsp[0].ttype; ;
2537 #line 1037 "c-parse.y"
2538 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2541 #line 1042 "c-parse.y"
2542 { yyval.ttype = yyvsp[-2].ttype; ;
2545 #line 1047 "c-parse.y"
2546 { yyval.ttype = yyvsp[0].ttype; ;
2549 #line 1049 "c-parse.y"
2550 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2553 #line 1054 "c-parse.y"
2554 { yyval.ttype = NULL_TREE; ;
2557 #line 1056 "c-parse.y"
2558 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2561 #line 1058 "c-parse.y"
2562 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2565 #line 1060 "c-parse.y"
2566 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2569 #line 1062 "c-parse.y"
2570 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2573 #line 1080 "c-parse.y"
2574 { really_start_incremental_init (NULL_TREE);
2575 /* Note that the call to clear_momentary
2576 is in process_init_element. */
2577 push_momentary (); ;
2580 #line 1085 "c-parse.y"
2581 { yyval.ttype = pop_init_level (0);
2582 if (yyval.ttype == error_mark_node
2583 && ! (yychar == STRING || yychar == CONSTANT))
2586 pop_momentary_nofree (); ;
2589 #line 1093 "c-parse.y"
2590 { yyval.ttype = error_mark_node; ;
2593 #line 1099 "c-parse.y"
2595 pedwarn ("ANSI C forbids empty initializer braces"); ;
2598 #line 1113 "c-parse.y"
2599 { process_init_element (yyvsp[0].ttype); ;
2602 #line 1115 "c-parse.y"
2603 { push_init_level (0); ;
2606 #line 1117 "c-parse.y"
2607 { process_init_element (pop_init_level (0)); ;
2610 #line 1123 "c-parse.y"
2611 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
2614 #line 1126 "c-parse.y"
2615 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
2618 #line 1129 "c-parse.y"
2619 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2622 #line 1132 "c-parse.y"
2623 { set_init_label (yyvsp[-1].ttype); ;
2626 #line 1135 "c-parse.y"
2627 { set_init_label (yyvsp[-1].ttype); ;
2630 #line 1141 "c-parse.y"
2631 { push_c_function_context ();
2632 if (! start_function (current_declspecs, yyvsp[0].ttype,
2633 prefix_attributes, NULL_TREE, 1))
2635 pop_c_function_context ();
2638 reinit_parse_for_function (); ;
2641 #line 1150 "c-parse.y"
2642 { store_parm_decls (); ;
2645 #line 1158 "c-parse.y"
2646 { finish_function (1);
2647 pop_c_function_context (); ;
2650 #line 1164 "c-parse.y"
2651 { push_c_function_context ();
2652 if (! start_function (current_declspecs, yyvsp[0].ttype,
2653 prefix_attributes, NULL_TREE, 1))
2655 pop_c_function_context ();
2658 reinit_parse_for_function (); ;
2661 #line 1173 "c-parse.y"
2662 { store_parm_decls (); ;
2665 #line 1181 "c-parse.y"
2666 { finish_function (1);
2667 pop_c_function_context (); ;
2670 #line 1197 "c-parse.y"
2671 { yyval.ttype = yyvsp[-1].ttype; ;
2674 #line 1199 "c-parse.y"
2675 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2678 #line 1204 "c-parse.y"
2679 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2682 #line 1206 "c-parse.y"
2683 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2686 #line 1208 "c-parse.y"
2687 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2690 #line 1215 "c-parse.y"
2691 { yyval.ttype = yyvsp[0].ttype; ;
2694 #line 1226 "c-parse.y"
2695 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2698 #line 1231 "c-parse.y"
2699 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2702 #line 1233 "c-parse.y"
2703 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2706 #line 1235 "c-parse.y"
2707 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2710 #line 1242 "c-parse.y"
2711 { yyval.ttype = yyvsp[0].ttype; ;
2714 #line 1251 "c-parse.y"
2715 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2718 #line 1256 "c-parse.y"
2719 { yyval.ttype = yyvsp[-1].ttype; ;
2722 #line 1258 "c-parse.y"
2723 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2726 #line 1260 "c-parse.y"
2727 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2730 #line 1262 "c-parse.y"
2731 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2734 #line 1269 "c-parse.y"
2735 { yyval.ttype = yyvsp[0].ttype; ;
2738 #line 1275 "c-parse.y"
2739 { yyval.ttype = NULL_TREE; ;
2742 #line 1277 "c-parse.y"
2743 { yyval.ttype = yyvsp[0].ttype; ;
2746 #line 1282 "c-parse.y"
2747 { yyval.ttype = NULL_TREE; ;
2750 #line 1284 "c-parse.y"
2751 { yyval.ttype = yyvsp[0].ttype; ;
2754 #line 1289 "c-parse.y"
2755 { yyval.ttype = NULL_TREE; ;
2758 #line 1291 "c-parse.y"
2759 { yyval.ttype = yyvsp[0].ttype; ;
2762 #line 1296 "c-parse.y"
2763 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2764 /* Start scope of tag before parsing components. */
2768 #line 1300 "c-parse.y"
2769 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2772 #line 1302 "c-parse.y"
2773 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2774 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2778 #line 1306 "c-parse.y"
2779 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2782 #line 1308 "c-parse.y"
2783 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2786 #line 1310 "c-parse.y"
2787 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2790 #line 1312 "c-parse.y"
2791 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2792 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2796 #line 1316 "c-parse.y"
2797 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2800 #line 1318 "c-parse.y"
2801 { yyvsp[0].itype = suspend_momentary ();
2802 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2805 #line 1321 "c-parse.y"
2806 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
2807 resume_momentary (yyvsp[-5].itype); ;
2810 #line 1324 "c-parse.y"
2811 { yyvsp[0].itype = suspend_momentary ();
2812 yyval.ttype = start_enum (NULL_TREE); ;
2815 #line 1327 "c-parse.y"
2816 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
2817 resume_momentary (yyvsp[-5].itype); ;
2820 #line 1330 "c-parse.y"
2821 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2824 #line 1341 "c-parse.y"
2825 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2828 #line 1346 "c-parse.y"
2829 { yyval.ttype = yyvsp[0].ttype; ;
2832 #line 1348 "c-parse.y"
2833 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2834 pedwarn ("no semicolon at end of struct or union"); ;
2837 #line 1353 "c-parse.y"
2838 { yyval.ttype = NULL_TREE; ;
2841 #line 1355 "c-parse.y"
2842 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2845 #line 1357 "c-parse.y"
2847 pedwarn ("extra semicolon in struct or union specified"); ;
2850 #line 1372 "c-parse.y"
2851 { yyval.ttype = yyvsp[0].ttype;
2852 current_declspecs = TREE_VALUE (declspec_stack);
2853 prefix_attributes = TREE_PURPOSE (declspec_stack);
2854 declspec_stack = TREE_CHAIN (declspec_stack);
2855 resume_momentary (yyvsp[-1].itype); ;
2858 #line 1378 "c-parse.y"
2860 pedwarn ("ANSI C forbids member declarations with no members");
2861 shadow_tag(yyvsp[0].ttype);
2862 yyval.ttype = NULL_TREE; ;
2865 #line 1383 "c-parse.y"
2866 { yyval.ttype = yyvsp[0].ttype;
2867 current_declspecs = TREE_VALUE (declspec_stack);
2868 prefix_attributes = TREE_PURPOSE (declspec_stack);
2869 declspec_stack = TREE_CHAIN (declspec_stack);
2870 resume_momentary (yyvsp[-1].itype); ;
2873 #line 1389 "c-parse.y"
2875 pedwarn ("ANSI C forbids member declarations with no members");
2876 shadow_tag(yyvsp[0].ttype);
2877 yyval.ttype = NULL_TREE; ;
2880 #line 1394 "c-parse.y"
2881 { yyval.ttype = NULL_TREE; ;
2884 #line 1396 "c-parse.y"
2885 { yyval.ttype = yyvsp[0].ttype;
2886 pedantic = yyvsp[-1].itype; ;
2889 #line 1403 "c-parse.y"
2890 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2893 #line 1408 "c-parse.y"
2894 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2895 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2898 #line 1412 "c-parse.y"
2899 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2900 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2903 #line 1415 "c-parse.y"
2904 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2905 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2908 #line 1427 "c-parse.y"
2909 { if (yyvsp[-2].ttype == error_mark_node)
2910 yyval.ttype = yyvsp[-2].ttype;
2912 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2915 #line 1432 "c-parse.y"
2916 { yyval.ttype = error_mark_node; ;
2919 #line 1438 "c-parse.y"
2920 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2923 #line 1440 "c-parse.y"
2924 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2927 #line 1445 "c-parse.y"
2928 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2931 #line 1447 "c-parse.y"
2932 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2935 #line 1452 "c-parse.y"
2936 { yyval.ttype = NULL_TREE; ;
2939 #line 1458 "c-parse.y"
2940 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2943 #line 1460 "c-parse.y"
2944 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2947 #line 1465 "c-parse.y"
2948 { yyval.ttype = NULL_TREE; ;
2951 #line 1467 "c-parse.y"
2952 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2955 #line 1472 "c-parse.y"
2956 { yyval.ttype = yyvsp[-1].ttype; ;
2959 #line 1475 "c-parse.y"
2960 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2963 #line 1477 "c-parse.y"
2964 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2967 #line 1479 "c-parse.y"
2968 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2971 #line 1481 "c-parse.y"
2972 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2975 #line 1483 "c-parse.y"
2976 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2979 #line 1485 "c-parse.y"
2980 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2983 #line 1487 "c-parse.y"
2984 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2987 #line 1489 "c-parse.y"
2988 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2991 #line 1500 "c-parse.y"
2993 if (pedantic && yyvsp[0].ends_in_label)
2994 pedwarn ("ANSI C forbids label at end of compound statement");
2998 #line 1509 "c-parse.y"
2999 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3002 #line 1511 "c-parse.y"
3003 { yyval.ends_in_label = 0; ;
3006 #line 1523 "c-parse.y"
3007 { emit_line_note (input_filename, lineno);
3011 expand_start_bindings (0);
3015 #line 1536 "c-parse.y"
3017 pedwarn ("ANSI C forbids label declarations"); ;
3020 #line 1547 "c-parse.y"
3022 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3024 tree label = shadow_label (TREE_VALUE (link));
3025 C_DECLARED_LABEL_FLAG (label) = 1;
3026 declare_nonlocal_label (label);
3031 #line 1561 "c-parse.y"
3035 #line 1565 "c-parse.y"
3036 { compstmt_count++; ;
3039 #line 1568 "c-parse.y"
3040 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3043 #line 1570 "c-parse.y"
3044 { emit_line_note (input_filename, lineno);
3045 expand_end_bindings (getdecls (), 1, 0);
3046 yyval.ttype = poplevel (1, 1, 0);
3047 if (yychar == CONSTANT || yychar == STRING)
3048 pop_momentary_nofree ();
3053 #line 1578 "c-parse.y"
3054 { emit_line_note (input_filename, lineno);
3055 expand_end_bindings (getdecls (), kept_level_p (), 0);
3056 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3057 if (yychar == CONSTANT || yychar == STRING)
3058 pop_momentary_nofree ();
3063 #line 1586 "c-parse.y"
3064 { emit_line_note (input_filename, lineno);
3065 expand_end_bindings (getdecls (), kept_level_p (), 0);
3066 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3067 if (yychar == CONSTANT || yychar == STRING)
3068 pop_momentary_nofree ();
3073 #line 1606 "c-parse.y"
3074 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3075 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3077 yyval.itype = stmt_count;
3078 if_stmt_file = yyvsp[-5].filename;
3079 if_stmt_line = yyvsp[-4].lineno;
3080 position_after_white_space (); ;
3083 #line 1620 "c-parse.y"
3086 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3087 /* See comment in `while' alternative, above. */
3089 expand_start_loop_continue_elsewhere (1);
3090 position_after_white_space (); ;
3093 #line 1628 "c-parse.y"
3094 { expand_loop_continue_here (); ;
3097 #line 1632 "c-parse.y"
3098 { yyval.filename = input_filename; ;
3101 #line 1636 "c-parse.y"
3102 { yyval.lineno = lineno; ;
3105 #line 1641 "c-parse.y"
3109 #line 1646 "c-parse.y"
3113 #line 1651 "c-parse.y"
3114 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3117 #line 1656 "c-parse.y"
3118 { yyval.ends_in_label = 0; ;
3121 #line 1658 "c-parse.y"
3122 { yyval.ends_in_label = 1; ;
3125 #line 1664 "c-parse.y"
3129 #line 1667 "c-parse.y"
3131 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3132 /* It appears that this should not be done--that a non-lvalue array
3133 shouldn't get an error if the value isn't used.
3134 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3135 if it appears as a top-level expression,
3136 but says nothing about non-lvalue arrays. */
3138 /* Call default_conversion to get an error
3139 on referring to a register array if pedantic. */
3140 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3141 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3142 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3144 iterator_expand (yyvsp[-1].ttype);
3145 clear_momentary (); ;
3148 #line 1684 "c-parse.y"
3149 { c_expand_start_else ();
3150 yyvsp[-1].itype = stmt_count;
3151 position_after_white_space (); ;
3154 #line 1688 "c-parse.y"
3155 { c_expand_end_cond ();
3156 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3157 warning ("empty body in an else-statement"); ;
3160 #line 1692 "c-parse.y"
3161 { c_expand_end_cond ();
3162 /* This warning is here instead of in simple_if, because we
3163 do not want a warning if an empty if is followed by an
3164 else statement. Increment stmt_count so we don't
3165 give a second error if this is a nested `if'. */
3166 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3167 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3168 "empty body in an if-statement"); ;
3171 #line 1704 "c-parse.y"
3172 { c_expand_end_cond (); ;
3175 #line 1706 "c-parse.y"
3177 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3178 /* The emit_nop used to come before emit_line_note,
3179 but that made the nop seem like part of the preceding line.
3180 And that was confusing when the preceding line was
3181 inside of an if statement and was not really executed.
3182 I think it ought to work to put the nop after the line number.
3183 We will see. --rms, July 15, 1991. */
3187 #line 1716 "c-parse.y"
3188 { /* Don't start the loop till we have succeeded
3189 in parsing the end test. This is to make sure
3190 that we end every loop we start. */
3191 expand_start_loop (1);
3192 emit_line_note (input_filename, lineno);
3193 expand_exit_loop_if_false (NULL_PTR,
3194 truthvalue_conversion (yyvsp[-1].ttype));
3195 position_after_white_space (); ;
3198 #line 1725 "c-parse.y"
3199 { expand_end_loop (); ;
3202 #line 1728 "c-parse.y"
3203 { emit_line_note (input_filename, lineno);
3204 expand_exit_loop_if_false (NULL_PTR,
3205 truthvalue_conversion (yyvsp[-2].ttype));
3207 clear_momentary (); ;
3210 #line 1735 "c-parse.y"
3211 { expand_end_loop ();
3212 clear_momentary (); ;
3215 #line 1739 "c-parse.y"
3217 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3218 /* See comment in `while' alternative, above. */
3220 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3221 /* Next step is to call expand_start_loop_continue_elsewhere,
3222 but wait till after we parse the entire for (...).
3223 Otherwise, invalid input might cause us to call that
3224 fn without calling expand_end_loop. */
3228 #line 1751 "c-parse.y"
3229 { yyvsp[0].lineno = lineno;
3230 yyval.filename = input_filename; ;
3233 #line 1754 "c-parse.y"
3235 /* Start the loop. Doing this after parsing
3236 all the expressions ensures we will end the loop. */
3237 expand_start_loop_continue_elsewhere (1);
3238 /* Emit the end-test, with a line number. */
3239 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3240 if (yyvsp[-4].ttype)
3241 expand_exit_loop_if_false (NULL_PTR,
3242 truthvalue_conversion (yyvsp[-4].ttype));
3243 /* Don't let the tree nodes for $9 be discarded by
3244 clear_momentary during the parsing of the next stmt. */
3246 yyvsp[-3].lineno = lineno;
3247 yyvsp[-2].filename = input_filename;
3248 position_after_white_space (); ;
3251 #line 1770 "c-parse.y"
3252 { /* Emit the increment expression, with a line number. */
3253 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3254 expand_loop_continue_here ();
3255 if (yyvsp[-3].ttype)
3256 c_expand_expr_stmt (yyvsp[-3].ttype);
3257 if (yychar == CONSTANT || yychar == STRING)
3258 pop_momentary_nofree ();
3261 expand_end_loop (); ;
3264 #line 1781 "c-parse.y"
3266 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3267 c_expand_start_case (yyvsp[-1].ttype);
3268 /* Don't let the tree nodes for $3 be discarded by
3269 clear_momentary during the parsing of the next stmt. */
3271 position_after_white_space (); ;
3274 #line 1789 "c-parse.y"
3275 { expand_end_case (yyvsp[-3].ttype);
3276 if (yychar == CONSTANT || yychar == STRING)
3277 pop_momentary_nofree ();
3282 #line 1795 "c-parse.y"
3284 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3285 if ( ! expand_exit_something ())
3286 error ("break statement not within loop or switch"); ;
3289 #line 1800 "c-parse.y"
3291 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3292 if (! expand_continue_loop (NULL_PTR))
3293 error ("continue statement not within a loop"); ;
3296 #line 1805 "c-parse.y"
3298 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3299 c_expand_return (NULL_TREE); ;
3302 #line 1809 "c-parse.y"
3304 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3305 c_expand_return (yyvsp[-1].ttype); ;
3308 #line 1813 "c-parse.y"
3310 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3311 STRIP_NOPS (yyvsp[-2].ttype);
3312 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3313 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3314 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3315 expand_asm (yyvsp[-2].ttype);
3317 error ("argument of `asm' is not a constant string"); ;
3320 #line 1824 "c-parse.y"
3322 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3323 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3324 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3325 input_filename, lineno); ;
3328 #line 1831 "c-parse.y"
3330 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3331 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3332 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3333 input_filename, lineno); ;
3336 #line 1839 "c-parse.y"
3338 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3339 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3340 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3341 input_filename, lineno); ;
3344 #line 1845 "c-parse.y"
3347 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3348 decl = lookup_label (yyvsp[-1].ttype);
3351 TREE_USED (decl) = 1;
3357 #line 1856 "c-parse.y"
3359 pedwarn ("ANSI C forbids `goto *expr;'");
3361 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3362 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3365 #line 1871 "c-parse.y"
3367 /* The value returned by this action is */
3368 /* 1 if everything is OK */
3369 /* 0 in case of error or already bound iterator */
3372 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3373 error ("invalid `for (ITERATOR)' syntax");
3374 else if (! ITERATOR_P (yyvsp[-1].ttype))
3375 error ("`%s' is not an iterator",
3376 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3377 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3378 error ("`for (%s)' inside expansion of same iterator",
3379 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3383 iterator_for_loop_start (yyvsp[-1].ttype);
3388 #line 1892 "c-parse.y"
3390 if (yyvsp[-1].itype)
3391 iterator_for_loop_end (yyvsp[-3].ttype);
3395 #line 1927 "c-parse.y"
3396 { register tree value = check_case_value (yyvsp[-1].ttype);
3398 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3402 if (value != error_mark_node)
3407 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3408 pedwarn ("label must have integral type in ANSI C");
3410 success = pushcase (value, convert_and_check,
3414 error ("case label not within a switch statement");
3415 else if (success == 2)
3417 error ("duplicate case value");
3418 error_with_decl (duplicate, "this is the first entry for that value");
3420 else if (success == 3)
3421 warning ("case value out of range");
3422 else if (success == 5)
3423 error ("case label within scope of cleanup or variable array");
3425 position_after_white_space (); ;
3428 #line 1958 "c-parse.y"
3429 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3430 register tree value2 = check_case_value (yyvsp[-1].ttype);
3432 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3435 pedwarn ("ANSI C forbids case ranges");
3438 if (value1 != error_mark_node && value2 != error_mark_node)
3441 int success = pushcase_range (value1, value2,
3442 convert_and_check, label,
3445 error ("case label not within a switch statement");
3446 else if (success == 2)
3448 error ("duplicate case value");
3449 error_with_decl (duplicate, "this is the first entry for that value");
3451 else if (success == 3)
3452 warning ("case value out of range");
3453 else if (success == 4)
3454 warning ("empty case range");
3455 else if (success == 5)
3456 error ("case label within scope of cleanup or variable array");
3458 position_after_white_space (); ;
3461 #line 1989 "c-parse.y"
3465 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3466 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3469 error ("default label not within a switch statement");
3470 else if (success == 2)
3472 error ("multiple default labels in one switch");
3473 error_with_decl (duplicate, "this is the first default label");
3475 position_after_white_space (); ;
3478 #line 2004 "c-parse.y"
3479 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3483 expand_label (label);
3484 position_after_white_space (); ;
3487 #line 2016 "c-parse.y"
3488 { emit_line_note (input_filename, lineno);
3489 yyval.ttype = NULL_TREE; ;
3492 #line 2019 "c-parse.y"
3493 { emit_line_note (input_filename, lineno); ;
3496 #line 2024 "c-parse.y"
3497 { yyval.ttype = NULL_TREE; ;
3500 #line 2031 "c-parse.y"
3501 { yyval.ttype = NULL_TREE; ;
3504 #line 2038 "c-parse.y"
3505 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3508 #line 2043 "c-parse.y"
3509 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3512 #line 2048 "c-parse.y"
3513 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3516 #line 2050 "c-parse.y"
3517 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3520 #line 2056 "c-parse.y"
3522 clear_parm_order ();
3523 declare_parm_level (0); ;
3526 #line 2060 "c-parse.y"
3527 { yyval.ttype = yyvsp[0].ttype;
3528 parmlist_tags_warning ();
3529 poplevel (0, 0, 0); ;
3532 #line 2068 "c-parse.y"
3535 pedwarn ("ANSI C forbids forward parameter declarations");
3536 /* Mark the forward decls as such. */
3537 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3538 TREE_ASM_WRITTEN (parm) = 1;
3539 clear_parm_order (); ;
3542 #line 2076 "c-parse.y"
3543 { yyval.ttype = yyvsp[0].ttype; ;
3546 #line 2078 "c-parse.y"
3547 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3550 #line 2084 "c-parse.y"
3551 { yyval.ttype = get_parm_info (0); ;
3554 #line 2086 "c-parse.y"
3555 { yyval.ttype = get_parm_info (0);
3556 /* Gcc used to allow this as an extension. However, it does
3557 not work for all targets, and thus has been disabled.
3558 Also, since func (...) and func () are indistinguishable,
3559 it caused problems with the code in expand_builtin which
3560 tries to verify that BUILT_IN_NEXT_ARG is being used
3562 error ("ANSI C requires a named argument before `...'");
3566 #line 2096 "c-parse.y"
3567 { yyval.ttype = get_parm_info (1); ;
3570 #line 2098 "c-parse.y"
3571 { yyval.ttype = get_parm_info (0); ;
3574 #line 2103 "c-parse.y"
3575 { push_parm_decl (yyvsp[0].ttype); ;
3578 #line 2105 "c-parse.y"
3579 { push_parm_decl (yyvsp[0].ttype); ;
3582 #line 2112 "c-parse.y"
3583 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3585 build_tree_list (prefix_attributes,
3587 current_declspecs = TREE_VALUE (declspec_stack);
3588 prefix_attributes = TREE_PURPOSE (declspec_stack);
3589 declspec_stack = TREE_CHAIN (declspec_stack);
3590 resume_momentary (yyvsp[-2].itype); ;
3593 #line 2121 "c-parse.y"
3594 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3596 build_tree_list (prefix_attributes,
3598 current_declspecs = TREE_VALUE (declspec_stack);
3599 prefix_attributes = TREE_PURPOSE (declspec_stack);
3600 declspec_stack = TREE_CHAIN (declspec_stack);
3601 resume_momentary (yyvsp[-2].itype); ;
3604 #line 2130 "c-parse.y"
3605 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3607 build_tree_list (prefix_attributes,
3609 current_declspecs = TREE_VALUE (declspec_stack);
3610 prefix_attributes = TREE_PURPOSE (declspec_stack);
3611 declspec_stack = TREE_CHAIN (declspec_stack);
3612 resume_momentary (yyvsp[-2].itype); ;
3615 #line 2139 "c-parse.y"
3616 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3618 build_tree_list (prefix_attributes,
3620 current_declspecs = TREE_VALUE (declspec_stack);
3621 prefix_attributes = TREE_PURPOSE (declspec_stack);
3622 declspec_stack = TREE_CHAIN (declspec_stack);
3623 resume_momentary (yyvsp[-2].itype); ;
3626 #line 2149 "c-parse.y"
3627 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3629 build_tree_list (prefix_attributes,
3631 current_declspecs = TREE_VALUE (declspec_stack);
3632 prefix_attributes = TREE_PURPOSE (declspec_stack);
3633 declspec_stack = TREE_CHAIN (declspec_stack);
3634 resume_momentary (yyvsp[-2].itype); ;
3637 #line 2163 "c-parse.y"
3639 clear_parm_order ();
3640 declare_parm_level (1); ;
3643 #line 2167 "c-parse.y"
3644 { yyval.ttype = yyvsp[0].ttype;
3645 parmlist_tags_warning ();
3646 poplevel (0, 0, 0); ;
3649 #line 2175 "c-parse.y"
3651 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3652 if (TREE_VALUE (t) == NULL_TREE)
3653 error ("`...' in old-style identifier list");
3654 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3657 #line 2185 "c-parse.y"
3658 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3661 #line 2187 "c-parse.y"
3662 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3665 #line 2193 "c-parse.y"
3666 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3669 #line 2195 "c-parse.y"
3670 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3673 #line 2200 "c-parse.y"
3674 { yyval.itype = pedantic;
3678 /* the action file gets copied in in place of this dollarsign */
3679 #line 498 "/usr/lib/bison.simple"
3690 short *ssp1 = yyss - 1;
3691 fprintf (stderr, "state stack now");
3692 while (ssp1 != yyssp)
3693 fprintf (stderr, " %d", *++ssp1);
3694 fprintf (stderr, "\n");
3704 yylsp->first_line = yylloc.first_line;
3705 yylsp->first_column = yylloc.first_column;
3706 yylsp->last_line = (yylsp-1)->last_line;
3707 yylsp->last_column = (yylsp-1)->last_column;
3712 yylsp->last_line = (yylsp+yylen-1)->last_line;
3713 yylsp->last_column = (yylsp+yylen-1)->last_column;
3717 /* Now "shift" the result of the reduction.
3718 Determine what state that goes to,
3719 based on the state we popped back to
3720 and the rule number reduced by. */
3724 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3725 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3726 yystate = yytable[yystate];
3728 yystate = yydefgoto[yyn - YYNTBASE];
3732 yyerrlab: /* here on detecting error */
3735 /* If not already recovering from an error, report this error. */
3739 #ifdef YYERROR_VERBOSE
3740 yyn = yypact[yystate];
3742 if (yyn > YYFLAG && yyn < YYLAST)
3749 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3750 for (x = (yyn < 0 ? -yyn : 0);
3751 x < (sizeof(yytname) / sizeof(char *)); x++)
3752 if (yycheck[x + yyn] == x)
3753 size += strlen(yytname[x]) + 15, count++;
3754 msg = (char *) malloc(size + 15);
3757 strcpy(msg, "parse error");
3762 for (x = (yyn < 0 ? -yyn : 0);
3763 x < (sizeof(yytname) / sizeof(char *)); x++)
3764 if (yycheck[x + yyn] == x)
3766 strcat(msg, count == 0 ? ", expecting `" : " or `");
3767 strcat(msg, yytname[x]);
3776 yyerror ("parse error; also virtual memory exceeded");
3779 #endif /* YYERROR_VERBOSE */
3780 yyerror("parse error");
3784 yyerrlab1: /* here on error raised explicitly by an action */
3786 if (yyerrstatus == 3)
3788 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3790 /* return failure if at end of input */
3791 if (yychar == YYEOF)
3796 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3802 /* Else will try to reuse lookahead token
3803 after shifting the error token. */
3805 yyerrstatus = 3; /* Each real token shifted decrements this */
3809 yyerrdefault: /* current state does not do anything special for the error token. */
3812 /* This is wrong; only states that explicitly want error tokens
3813 should shift them. */
3814 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3815 if (yyn) goto yydefault;
3818 yyerrpop: /* pop the current state because it cannot handle the error token */
3820 if (yyssp == yyss) YYABORT;
3830 short *ssp1 = yyss - 1;
3831 fprintf (stderr, "Error: state stack now");
3832 while (ssp1 != yyssp)
3833 fprintf (stderr, " %d", *++ssp1);
3834 fprintf (stderr, "\n");
3840 yyn = yypact[yystate];
3845 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3864 fprintf(stderr, "Shifting error token, ");
3875 #line 2204 "c-parse.y"