2 /* A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.24
5 #define YYBISON 1 /* Identify Bison output. */
31 #define ASM_KEYWORD 282
43 #define ARITHCOMPARE 294
48 #define MINUSMINUS 299
49 #define HYPERUNARY 300
52 #define IMPLEMENTATION 303
62 #define OBJECTNAME 313
65 #define OBJC_STRING 316
80 #ifdef MULTIBYTE_CHARS
86 /* Since parsers are distinct for each language, put the language string
88 char *language_string = "GNU C";
96 /* Like YYERROR but do call yyerror. */
97 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
99 /* Cause the `yydebug' variable to be defined. */
103 typedef union {long itype; tree ttype; enum tree_code code;
104 char *filename; int lineno; int ends_in_label; } YYSTYPE;
105 #line 209 "c-parse.y"
107 /* Number of statements (loosely speaking) seen so far. */
108 static int stmt_count;
110 /* Input file and line number of the end of the body of last simple_if;
111 used by the stmt-rule immediately after simple_if returns. */
112 static char *if_stmt_file;
113 static int if_stmt_line;
115 /* List of types and structure classes of the current declaration. */
116 static tree current_declspecs = NULL_TREE;
117 static tree prefix_attributes = NULL_TREE;
119 /* Stack of saved values of current_declspecs and prefix_attributes. */
120 static tree declspec_stack;
122 /* 1 if we explained undeclared var errors. */
123 static int undeclared_variable_notice;
126 /* Tell yyparse how to print a token's value, if yydebug is set. */
128 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
129 extern void yyprint ();
144 #define YYLTYPE yyltype
158 #define YYFLAG -32768
161 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 238)
163 static const char yytranslate[] = { 0,
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, 80, 2, 2, 2, 52, 43, 2, 59,
168 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
169 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
170 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
176 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
190 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
191 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
192 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
193 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
194 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
195 70, 71, 72, 73, 74, 75
199 static const short yyprhs[] = { 0,
200 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
201 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
202 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
203 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
204 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
205 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
206 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
207 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
208 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
209 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
210 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
211 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
212 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
213 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
214 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
215 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
216 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
217 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
218 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
219 582, 585, 587, 591, 593, 594, 599, 601, 602, 611,
220 612, 619, 620, 626, 627, 632, 633, 639, 640, 641,
221 647, 648, 649, 655, 657, 659, 663, 667, 672, 676,
222 680, 684, 686, 690, 695, 699, 703, 707, 709, 713,
223 717, 721, 726, 730, 734, 736, 737, 745, 751, 754,
224 755, 763, 769, 772, 773, 782, 783, 791, 794, 795,
225 797, 798, 800, 802, 805, 806, 810, 813, 817, 819,
226 823, 825, 827, 830, 832, 836, 841, 848, 854, 856,
227 860, 862, 864, 868, 871, 874, 875, 877, 879, 882,
228 883, 886, 890, 894, 897, 901, 906, 910, 913, 917,
229 920, 922, 924, 927, 930, 931, 933, 936, 937, 938,
230 940, 942, 945, 949, 951, 954, 957, 964, 970, 976,
231 979, 982, 987, 988, 993, 994, 995, 999, 1004, 1008,
232 1010, 1012, 1014, 1016, 1019, 1020, 1025, 1027, 1031, 1032,
233 1033, 1041, 1047, 1050, 1051, 1052, 1053, 1066, 1067, 1074,
234 1077, 1080, 1083, 1087, 1094, 1103, 1114, 1127, 1131, 1136,
235 1138, 1140, 1141, 1148, 1152, 1158, 1161, 1164, 1165, 1167,
236 1168, 1170, 1171, 1173, 1175, 1179, 1184, 1186, 1190, 1191,
237 1194, 1197, 1198, 1203, 1206, 1207, 1209, 1211, 1215, 1217,
238 1221, 1226, 1231, 1236, 1241, 1246, 1247, 1250, 1252, 1255,
239 1257, 1261, 1263, 1267
242 static const short yyrhs[] = { -1,
243 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
244 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
245 0, 237, 88, 0, 122, 136, 77, 0, 129, 122,
246 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
247 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
248 77, 0, 0, 0, 125, 122, 165, 91, 116, 92,
249 196, 0, 125, 122, 165, 1, 0, 0, 0, 129,
250 122, 168, 93, 116, 94, 196, 0, 129, 122, 168,
251 1, 0, 0, 0, 122, 168, 95, 116, 96, 196,
252 0, 122, 168, 1, 0, 3, 0, 4, 0, 43,
253 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
254 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
255 101, 81, 107, 0, 113, 0, 50, 105, 0, 237,
256 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
257 0, 103, 59, 183, 76, 0, 104, 102, 0, 104,
258 59, 183, 76, 0, 33, 105, 0, 34, 105, 0,
259 11, 0, 29, 0, 102, 0, 59, 183, 76, 105,
260 0, 0, 59, 183, 76, 82, 106, 150, 78, 0,
261 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
262 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
263 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
264 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
265 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
266 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
267 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
268 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
269 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
270 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
271 0, 0, 59, 114, 197, 76, 0, 113, 59, 100,
272 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
273 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
274 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
275 10, 0, 202, 203, 119, 0, 117, 0, 191, 0,
276 118, 117, 0, 117, 191, 0, 127, 122, 135, 77,
277 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
278 77, 0, 202, 203, 124, 0, 120, 0, 191, 0,
279 121, 120, 0, 120, 191, 0, 0, 0, 125, 122,
280 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
281 159, 0, 129, 122, 162, 0, 125, 77, 0, 129,
282 77, 0, 237, 124, 0, 133, 126, 0, 129, 133,
283 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
284 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
285 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
286 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
287 130, 7, 0, 130, 5, 0, 133, 132, 0, 185,
288 133, 132, 0, 0, 132, 134, 0, 6, 0, 169,
289 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
290 183, 76, 0, 6, 0, 7, 0, 169, 0, 138,
291 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
292 0, 0, 27, 59, 115, 76, 0, 0, 165, 137,
293 142, 36, 139, 148, 0, 165, 137, 142, 0, 0,
294 168, 137, 142, 36, 141, 148, 0, 168, 137, 142,
295 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
296 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
297 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
298 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
299 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
300 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
301 0, 151, 174, 0, 152, 0, 151, 81, 152, 0,
302 107, 0, 0, 82, 153, 150, 78, 0, 1, 0,
303 0, 60, 107, 10, 107, 83, 36, 154, 152, 0,
304 0, 60, 107, 83, 36, 155, 152, 0, 0, 60,
305 107, 83, 156, 152, 0, 0, 97, 38, 157, 152,
306 0, 0, 58, 97, 36, 158, 152, 0, 0, 0,
307 165, 160, 116, 161, 197, 0, 0, 0, 168, 163,
308 116, 164, 197, 0, 166, 0, 168, 0, 59, 166,
309 76, 0, 166, 59, 232, 0, 166, 60, 99, 83,
310 0, 166, 60, 83, 0, 50, 186, 166, 0, 143,
311 123, 166, 0, 4, 0, 167, 59, 232, 0, 167,
312 60, 99, 83, 0, 167, 60, 83, 0, 50, 186,
313 167, 0, 143, 123, 167, 0, 4, 0, 168, 59,
314 232, 0, 59, 168, 76, 0, 50, 186, 168, 0,
315 168, 60, 99, 83, 0, 168, 60, 83, 0, 143,
316 123, 168, 0, 3, 0, 0, 13, 97, 82, 170,
317 176, 78, 142, 0, 13, 82, 176, 78, 142, 0,
318 13, 97, 0, 0, 14, 97, 82, 171, 176, 78,
319 142, 0, 14, 82, 176, 78, 142, 0, 14, 97,
320 0, 0, 12, 97, 82, 172, 181, 175, 78, 142,
321 0, 0, 12, 82, 173, 181, 175, 78, 142, 0,
322 12, 97, 0, 0, 81, 0, 0, 81, 0, 177,
323 0, 177, 178, 0, 0, 177, 178, 77, 0, 177,
324 77, 0, 131, 122, 179, 0, 131, 0, 185, 122,
325 179, 0, 185, 0, 1, 0, 237, 178, 0, 180,
326 0, 179, 81, 180, 0, 202, 203, 165, 142, 0,
327 202, 203, 165, 38, 107, 142, 0, 202, 203, 38,
328 107, 142, 0, 182, 0, 181, 81, 182, 0, 1,
329 0, 97, 0, 97, 36, 107, 0, 131, 184, 0,
330 185, 184, 0, 0, 187, 0, 7, 0, 185, 7,
331 0, 0, 186, 7, 0, 59, 187, 76, 0, 50,
332 186, 187, 0, 50, 186, 0, 187, 59, 225, 0,
333 187, 60, 99, 83, 0, 187, 60, 83, 0, 59,
334 225, 0, 60, 99, 83, 0, 60, 83, 0, 189,
335 0, 205, 0, 189, 205, 0, 189, 191, 0, 0,
336 188, 0, 1, 77, 0, 0, 0, 194, 0, 195,
337 0, 194, 195, 0, 32, 236, 77, 0, 197, 0,
338 1, 197, 0, 82, 78, 0, 82, 192, 193, 121,
339 190, 78, 0, 82, 192, 193, 1, 78, 0, 82,
340 192, 193, 188, 78, 0, 199, 204, 0, 199, 1,
341 0, 15, 59, 99, 76, 0, 0, 18, 201, 204,
342 17, 0, 0, 0, 202, 203, 207, 0, 202, 203,
343 218, 204, 0, 202, 203, 206, 0, 207, 0, 218,
344 0, 197, 0, 215, 0, 99, 77, 0, 0, 198,
345 16, 208, 204, 0, 198, 0, 198, 16, 1, 0,
346 0, 0, 17, 209, 59, 99, 76, 210, 204, 0,
347 200, 59, 99, 76, 77, 0, 200, 1, 0, 0,
348 0, 0, 19, 59, 220, 77, 211, 220, 77, 212,
349 220, 76, 213, 204, 0, 0, 20, 59, 99, 76,
350 214, 204, 0, 23, 77, 0, 24, 77, 0, 25,
351 77, 0, 25, 99, 77, 0, 27, 219, 59, 99,
352 76, 77, 0, 27, 219, 59, 99, 38, 221, 76,
353 77, 0, 27, 219, 59, 99, 38, 221, 38, 221,
354 76, 77, 0, 27, 219, 59, 99, 38, 221, 38,
355 221, 38, 224, 76, 77, 0, 26, 97, 77, 0,
356 26, 50, 99, 77, 0, 77, 0, 216, 0, 0,
357 19, 59, 113, 76, 217, 204, 0, 21, 107, 38,
358 0, 21, 107, 10, 107, 38, 0, 22, 38, 0,
359 97, 38, 0, 0, 7, 0, 0, 99, 0, 0,
360 222, 0, 223, 0, 222, 81, 223, 0, 9, 59,
361 99, 76, 0, 115, 0, 224, 81, 115, 0, 0,
362 226, 227, 0, 229, 76, 0, 0, 230, 77, 228,
363 227, 0, 1, 76, 0, 0, 10, 0, 230, 0,
364 230, 81, 10, 0, 231, 0, 230, 81, 231, 0,
365 125, 122, 167, 142, 0, 125, 122, 168, 142, 0,
366 125, 122, 184, 142, 0, 129, 122, 168, 142, 0,
367 129, 122, 184, 142, 0, 0, 233, 234, 0, 227,
368 0, 235, 76, 0, 3, 0, 235, 81, 3, 0,
369 97, 0, 236, 81, 97, 0, 31, 0
375 static const short yyrline[] = { 0,
376 236, 241, 255, 257, 257, 258, 260, 262, 263, 271,
377 275, 286, 291, 296, 298, 300, 301, 302, 307, 314,
378 316, 321, 326, 332, 334, 339, 344, 350, 352, 357,
379 364, 366, 369, 371, 373, 375, 377, 379, 381, 385,
380 389, 392, 395, 398, 402, 404, 407, 410, 414, 442,
381 448, 451, 454, 457, 459, 463, 467, 471, 473, 476,
382 480, 507, 509, 511, 513, 515, 517, 519, 521, 523,
383 525, 527, 529, 531, 533, 537, 539, 543, 545, 548,
384 552, 554, 561, 564, 567, 573, 672, 673, 675, 681,
385 683, 697, 720, 722, 724, 728, 734, 736, 741, 743,
386 748, 750, 751, 761, 766, 768, 769, 770, 777, 783,
387 788, 791, 799, 804, 806, 807, 808, 815, 826, 830,
388 836, 841, 846, 851, 853, 855, 864, 867, 871, 873,
389 875, 880, 884, 887, 891, 894, 896, 908, 911, 913,
390 915, 919, 923, 925, 928, 941, 944, 948, 950, 958,
391 959, 960, 964, 966, 972, 973, 974, 977, 979, 982,
392 984, 987, 990, 996, 1003, 1005, 1012, 1019, 1022, 1029,
393 1032, 1036, 1039, 1043, 1048, 1051, 1055, 1058, 1060, 1062,
394 1064, 1071, 1073, 1074, 1075, 1080, 1082, 1087, 1095, 1100,
395 1104, 1107, 1109, 1114, 1117, 1119, 1121, 1125, 1128, 1128,
396 1131, 1131, 1134, 1134, 1137, 1137, 1140, 1142, 1153, 1161,
397 1165, 1176, 1184, 1191, 1193, 1198, 1201, 1206, 1208, 1210,
398 1217, 1219, 1227, 1233, 1235, 1237, 1244, 1246, 1252, 1258,
399 1260, 1262, 1264, 1271, 1273, 1276, 1281, 1283, 1287, 1289,
400 1291, 1293, 1297, 1299, 1302, 1305, 1308, 1311, 1315, 1317,
401 1320, 1322, 1326, 1329, 1334, 1336, 1338, 1352, 1359, 1364,
402 1370, 1375, 1377, 1382, 1384, 1388, 1392, 1396, 1406, 1408,
403 1413, 1418, 1421, 1425, 1428, 1432, 1435, 1438, 1441, 1445,
404 1448, 1452, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470,
405 1480, 1488, 1490, 1492, 1496, 1498, 1501, 1504, 1515, 1517,
406 1522, 1524, 1527, 1541, 1544, 1547, 1549, 1557, 1565, 1576,
407 1581, 1584, 1597, 1605, 1609, 1613, 1617, 1623, 1627, 1632,
408 1635, 1640, 1643, 1644, 1661, 1666, 1669, 1681, 1683, 1693,
409 1703, 1704, 1712, 1715, 1727, 1731, 1748, 1758, 1767, 1772,
410 1777, 1782, 1786, 1790, 1801, 1808, 1815, 1822, 1833, 1839,
411 1842, 1847, 1870, 1904, 1929, 1960, 1975, 1986, 1990, 1994,
412 1997, 2002, 2004, 2007, 2009, 2013, 2018, 2021, 2027, 2032,
413 2037, 2039, 2048, 2049, 2055, 2057, 2067, 2069, 2073, 2076,
414 2082, 2092, 2101, 2110, 2120, 2134, 2139, 2144, 2146, 2155,
415 2158, 2163, 2166, 2170
418 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
419 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
420 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
421 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
422 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
423 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
424 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
425 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
426 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
427 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
428 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
429 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
430 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
431 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
432 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
433 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
434 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
435 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
436 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
437 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
438 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
439 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
440 "structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
441 "component_decl_list2","component_decl","components","component_declarator",
442 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
443 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
444 "label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
445 "do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
446 "stmt_or_label","stmt","@34","@35","@36","@37","@38","@39","@40","all_iter_stmt",
447 "all_iter_stmt_simple","@41","label","maybe_type_qual","xexpr","asm_operands",
448 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@42","parmlist_1",
449 "@43","parmlist_2","parms","parm","parmlist_or_identifiers","@44","parmlist_or_identifiers_1",
450 "identifiers","identifiers_or_typenames","extension",""
454 static const short yyr1[] = { 0,
455 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
456 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
457 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
458 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
459 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
460 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
461 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
462 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
463 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
464 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
465 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
466 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
467 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
468 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
469 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
470 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
471 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
472 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
473 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
474 150, 151, 151, 152, 153, 152, 152, 154, 152, 155,
475 152, 156, 152, 157, 152, 158, 152, 160, 161, 159,
476 163, 164, 162, 165, 165, 166, 166, 166, 166, 166,
477 166, 166, 167, 167, 167, 167, 167, 167, 168, 168,
478 168, 168, 168, 168, 168, 170, 169, 169, 169, 171,
479 169, 169, 169, 172, 169, 173, 169, 169, 174, 174,
480 175, 175, 176, 176, 177, 177, 177, 178, 178, 178,
481 178, 178, 178, 179, 179, 180, 180, 180, 181, 181,
482 181, 182, 182, 183, 183, 184, 184, 185, 185, 186,
483 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
484 188, 189, 189, 189, 190, 190, 191, 192, 193, 193,
485 194, 194, 195, 196, 196, 197, 197, 197, 197, 198,
486 198, 199, 201, 200, 202, 203, 204, 204, 205, 206,
487 206, 207, 207, 207, 208, 207, 207, 207, 209, 210,
488 207, 207, 207, 211, 212, 213, 207, 214, 207, 207,
489 207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
490 215, 217, 216, 218, 218, 218, 218, 219, 219, 220,
491 220, 221, 221, 222, 222, 223, 224, 224, 226, 225,
492 227, 228, 227, 227, 229, 229, 229, 229, 230, 230,
493 231, 231, 231, 231, 231, 233, 232, 234, 234, 235,
497 static const short yyr2[] = { 0,
498 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
499 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
500 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
502 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
503 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
504 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
505 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
506 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
507 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
508 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
509 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
510 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
511 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
512 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
513 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
514 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
515 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
516 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
517 2, 1, 3, 1, 0, 4, 1, 0, 8, 0,
518 6, 0, 5, 0, 4, 0, 5, 0, 0, 5,
519 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
520 3, 1, 3, 4, 3, 3, 3, 1, 3, 3,
521 3, 4, 3, 3, 1, 0, 7, 5, 2, 0,
522 7, 5, 2, 0, 8, 0, 7, 2, 0, 1,
523 0, 1, 1, 2, 0, 3, 2, 3, 1, 3,
524 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
525 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
526 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
527 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
528 1, 2, 3, 1, 2, 2, 6, 5, 5, 2,
529 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
530 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
531 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
532 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
533 1, 0, 6, 3, 5, 2, 2, 0, 1, 0,
534 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
535 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
536 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
540 static const short yydefact[] = { 3,
541 5, 0, 0, 0, 152, 143, 150, 142, 0, 0,
542 0, 0, 0, 0, 394, 18, 4, 8, 7, 0,
543 118, 118, 138, 129, 139, 172, 151, 0, 6, 16,
544 17, 31, 32, 246, 248, 255, 239, 255, 243, 0,
545 0, 0, 235, 280, 0, 0, 160, 119, 0, 15,
546 0, 14, 0, 140, 129, 141, 145, 144, 127, 173,
547 10, 0, 244, 0, 0, 236, 0, 240, 86, 87,
548 99, 56, 57, 0, 0, 0, 33, 35, 34, 0,
549 36, 37, 0, 38, 39, 0, 0, 40, 58, 0,
550 0, 62, 43, 45, 88, 0, 278, 0, 276, 148,
551 0, 276, 177, 0, 0, 11, 0, 0, 30, 0,
552 386, 0, 0, 170, 222, 280, 0, 0, 158, 119,
553 0, 214, 215, 0, 0, 128, 131, 155, 156, 130,
554 132, 157, 271, 272, 251, 269, 0, 170, 262, 257,
555 118, 254, 118, 0, 255, 170, 255, 54, 55, 49,
556 46, 0, 0, 0, 0, 48, 0, 0, 0, 50,
557 0, 52, 0, 0, 79, 77, 75, 0, 0, 0,
558 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
559 98, 0, 0, 41, 0, 100, 47, 153, 280, 369,
560 0, 274, 277, 146, 154, 279, 148, 275, 183, 184,
561 185, 182, 0, 175, 178, 281, 231, 230, 161, 162,
562 234, 0, 229, 0, 233, 0, 0, 28, 0, 315,
563 106, 316, 169, 171, 0, 0, 13, 0, 0, 22,
564 0, 170, 386, 0, 12, 26, 0, 0, 252, 0,
565 251, 238, 315, 256, 315, 263, 0, 242, 0, 90,
566 89, 298, 0, 0, 9, 44, 0, 0, 85, 84,
567 0, 0, 0, 0, 73, 74, 72, 71, 70, 68,
568 69, 63, 64, 65, 66, 67, 96, 95, 0, 42,
569 0, 284, 0, 288, 0, 290, 0, 369, 0, 149,
570 147, 0, 177, 41, 0, 0, 390, 376, 118, 118,
571 388, 0, 377, 379, 387, 0, 232, 297, 0, 108,
572 103, 107, 0, 167, 220, 216, 159, 221, 20, 166,
573 217, 219, 0, 24, 273, 270, 170, 0, 258, 264,
574 316, 260, 170, 170, 306, 299, 92, 60, 59, 51,
575 53, 0, 0, 78, 76, 93, 94, 283, 282, 370,
576 289, 285, 287, 0, 174, 176, 86, 0, 163, 374,
577 276, 276, 371, 372, 0, 389, 0, 0, 29, 304,
578 104, 118, 118, 135, 0, 0, 164, 218, 0, 247,
579 170, 315, 0, 237, 241, 0, 0, 300, 301, 0,
580 80, 83, 286, 179, 0, 181, 228, 280, 369, 119,
581 170, 170, 170, 280, 170, 170, 0, 378, 380, 391,
582 305, 111, 0, 112, 0, 135, 133, 189, 187, 186,
583 168, 21, 0, 25, 245, 265, 0, 170, 392, 0,
584 0, 0, 315, 0, 0, 115, 316, 292, 302, 197,
585 86, 0, 0, 195, 0, 194, 0, 249, 192, 0,
586 0, 284, 0, 386, 0, 381, 382, 383, 284, 384,
587 385, 373, 0, 0, 162, 134, 137, 136, 0, 165,
588 170, 0, 266, 303, 0, 308, 117, 116, 296, 0,
589 309, 294, 316, 293, 0, 0, 0, 0, 204, 61,
590 0, 191, 81, 180, 226, 280, 227, 223, 225, 0,
591 109, 110, 0, 268, 170, 393, 307, 0, 152, 0,
592 329, 313, 0, 0, 0, 0, 0, 0, 0, 0,
593 358, 350, 0, 0, 113, 118, 118, 322, 327, 0,
594 0, 319, 320, 323, 351, 321, 0, 206, 0, 202,
595 0, 0, 193, 0, 224, 188, 267, 0, 0, 315,
596 360, 0, 0, 356, 340, 341, 342, 0, 0, 0,
597 359, 0, 357, 324, 124, 0, 125, 0, 0, 311,
598 316, 310, 333, 0, 126, 0, 0, 200, 0, 196,
599 205, 0, 0, 0, 361, 45, 0, 0, 0, 354,
600 343, 0, 348, 0, 0, 122, 208, 0, 123, 211,
601 328, 315, 0, 0, 207, 0, 0, 203, 312, 0,
602 314, 352, 334, 338, 0, 349, 0, 120, 0, 121,
603 0, 326, 317, 315, 0, 198, 201, 330, 315, 360,
604 315, 355, 362, 0, 209, 212, 318, 332, 0, 315,
605 353, 0, 339, 0, 0, 363, 364, 344, 0, 0,
606 199, 331, 335, 0, 362, 0, 0, 210, 213, 360,
607 0, 0, 345, 365, 0, 366, 0, 0, 336, 367,
608 0, 346, 315, 0, 0, 337, 347, 368, 0, 0,
612 static const short yydefgoto[] = { 679,
613 1, 2, 3, 17, 18, 19, 231, 376, 237, 379,
614 113, 309, 445, 86, 153, 279, 88, 89, 90, 91,
615 92, 390, 93, 264, 263, 261, 450, 262, 94, 154,
616 95, 218, 219, 220, 371, 432, 433, 20, 108, 525,
617 299, 59, 372, 417, 300, 23, 99, 194, 24, 130,
618 118, 46, 114, 119, 423, 47, 375, 223, 224, 26,
619 203, 204, 205, 421, 469, 447, 448, 449, 488, 639,
620 607, 579, 542, 576, 596, 619, 649, 599, 621, 650,
621 210, 122, 495, 123, 27, 145, 147, 137, 62, 492,
622 240, 64, 65, 142, 329, 330, 135, 136, 101, 192,
623 102, 104, 193, 434, 435, 480, 221, 336, 387, 388,
624 389, 369, 370, 529, 530, 531, 550, 571, 313, 572,
625 438, 532, 533, 602, 549, 640, 630, 660, 673, 631,
626 534, 535, 629, 536, 562, 587, 645, 646, 647, 671,
627 284, 285, 301, 407, 302, 303, 304, 213, 214, 305,
631 static const short yypact[] = { 90,
632 99, 588, 588, 321,-32768,-32768,-32768,-32768, 77, 79,
633 85, 49, 75, 87,-32768,-32768,-32768,-32768,-32768, 194,
634 37, 2116, 245,-32768, 119,-32768,-32768, 588,-32768,-32768,
635 -32768,-32768,-32768,-32768, 111,-32768, 133,-32768, 143, 1958,
636 1892, 179,-32768,-32768, 194, 164,-32768, 119, 1352,-32768,
637 457,-32768, 194, 245,-32768, 119,-32768,-32768, 404,-32768,
638 -32768, 267,-32768, 181, 419,-32768, 201,-32768,-32768,-32768,
639 -32768,-32768,-32768, 1958, 1958, 397,-32768,-32768,-32768, 1958,
640 -32768,-32768, 848,-32768,-32768, 1958, 227, 229,-32768, 1985,
641 2012,-32768, 2202, 1091, 299, 1958,-32768, 240, 204,-32768,
642 242, 1002, 699, 441, 172,-32768, 457, 194,-32768, 264,
643 -32768, 1427, 360, 119,-32768,-32768, 457, 217,-32768, 119,
644 724, 344, 392, 220, 1412, 404,-32768,-32768,-32768,-32768,
645 119,-32768,-32768, 292, 250,-32768, 267, 119,-32768,-32768,
646 381, 300, 313, 822,-32768, 119,-32768,-32768,-32768,-32768,
647 -32768, 317, 320, 326, 343,-32768, 347, 1958, 848,-32768,
648 848,-32768, 1958, 1958, 390,-32768,-32768, 1958, 1958, 1958,
649 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958,-32768,
650 -32768, 397, 397, 1958, 1958,-32768,-32768,-32768,-32768, 204,
651 1487,-32768, 442, 277,-32768,-32768,-32768,-32768,-32768,-32768,
652 -32768,-32768, 106,-32768, 371,-32768, 392,-32768,-32768, 408,
653 392, 434,-32768, 636,-32768, 358, 372,-32768, 268, 59,
654 -32768,-32768, 433, 119, 226, 346,-32768, 457, 457,-32768,
655 360, 119,-32768, 1500,-32768,-32768, 360, 1958, 397, 387,
656 250,-32768,-32768,-32768,-32768,-32768, 394,-32768, 396,-32768,
657 -32768, 399, 405, 1781,-32768, 2202, 407, 410, 2202, 2202,
658 1958, 455, 1958, 1958, 1751, 578, 1357, 607, 873, 707,
659 707, 303, 303,-32768,-32768,-32768,-32768,-32768, 422, 229,
660 412, 56, 429,-32768, 904,-32768, 421,-32768, 1553,-32768,
661 277, 430, 699, 2039, 57, 449,-32768,-32768,-32768, 1709,
662 -32768, 453, 265,-32768,-32768, 115,-32768,-32768, 55,-32768,
663 -32768,-32768, 1083,-32768, 344,-32768,-32768, 344,-32768, 494,
664 -32768,-32768, 452,-32768, 2202,-32768, 119, 458, 451,-32768,
665 -32768, 451, 119, 119,-32768, 510,-32768,-32768,-32768,-32768,
666 -32768, 507, 1958, 2231, 2243,-32768,-32768, 442,-32768,-32768,
667 -32768,-32768,-32768, 464,-32768,-32768, 124, 474,-32768,-32768,
668 309, 67,-32768,-32768, 1679,-32768, 549, 326,-32768,-32768,
669 -32768, 476, 450,-32768, 1341, 55,-32768,-32768, 55,-32768,
670 119,-32768, 333,-32768,-32768, 397, 942, 510,-32768, 1161,
671 -32768, 2218,-32768,-32768, 1958,-32768,-32768,-32768, 67, 119,
672 144, 160, 119,-32768, 160, 119, 904,-32768,-32768,-32768,
673 -32768,-32768, 457,-32768, 194,-32768, 887,-32768,-32768, 2202,
674 -32768,-32768, 1341,-32768,-32768,-32768, 1958, 130,-32768, 266,
675 432, 667, 479, 481, 760,-32768,-32768,-32768,-32768,-32768,
676 522, 397, 1958,-32768, 526, 2202, 487, 497,-32768, 1958,
677 132, 207, 601,-32768, 1566,-32768,-32768,-32768, 176,-32768,
678 -32768,-32768, 279, 281, 52, 887,-32768,-32768, 1161,-32768,
679 2166, 1958,-32768,-32768, 397,-32768,-32768,-32768,-32768, 501,
680 -32768,-32768,-32768,-32768, 1647, 545, 2064, 1161,-32768,-32768,
681 1221,-32768, 2218,-32768, 454,-32768, 454,-32768,-32768, 500,
682 -32768,-32768, 506,-32768, 2166,-32768,-32768, 1727, 547, 527,
683 -32768,-32768, 529, 537, 1958, 559, 533, 536, 1905, 89,
684 592,-32768, 565, 540,-32768, 555, 2120,-32768, 590, 1024,
685 60,-32768,-32768,-32768,-32768,-32768, 1838,-32768, 1958, 597,
686 557, 1281,-32768, 813,-32768,-32768,-32768, 1958, 585,-32768,
687 1958, 1958, 2135,-32768,-32768,-32768,-32768, 568, 1958, 586,
688 -32768, 608,-32768,-32768,-32768, 457,-32768, 194, 1104,-32768,
689 -32768,-32768,-32768, 1958,-32768, 1281, 2117,-32768, 1281,-32768,
690 -32768, 593, 1958, 666,-32768, 275, 622, 632, 1958,-32768,
691 -32768, 637,-32768, 1958, 301,-32768, 108, 308,-32768, 1033,
692 -32768,-32768, 1727, 633,-32768, 677, 1281,-32768,-32768, 642,
693 -32768,-32768,-32768,-32768, 2184,-32768, 26,-32768, 360,-32768,
694 360,-32768,-32768,-32768, 643,-32768,-32768,-32768,-32768, 1958,
695 -32768,-32768, 710, 646,-32768,-32768,-32768,-32768, 1281,-32768,
696 -32768, 647,-32768, 668, 47, 651,-32768,-32768, 326, 326,
697 -32768,-32768,-32768, 1958, 710, 656, 710,-32768,-32768, 1958,
698 658, 48,-32768,-32768, 659,-32768, 434, 662,-32768, 299,
699 146,-32768,-32768, 663, 434,-32768,-32768, 299, 742, 743,
703 static const short yypgoto[] = {-32768,
704 -32768,-32768,-32768, 153,-32768,-32768,-32768,-32768,-32768,-32768,
705 -32768,-32768, -5,-32768, -40, 456, -137, 427,-32768,-32768,
706 -55,-32768, 398,-32768,-32768,-32768,-32768,-32768, 197,-32768,
707 -191, -207, 542,-32768,-32768, 332,-32768, 22, -98, 216,
708 0, 711,-32768, 351, 7, -7, -15, 573, 11, -171,
709 -365, -45, -107, -52,-32768,-32768,-32768, 206, 14, 53,
710 -32768, 483,-32768, 349,-32768, -411,-32768, -384,-32768,-32768,
711 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
712 -38, -63, -310, -13, -30,-32768,-32768,-32768,-32768,-32768,
713 551, 24,-32768, 630, 550, 414, 653, 558, 27, -57,
714 3, -89, -152, 365,-32768,-32768, -170,-32768,-32768,-32768,
715 411, -292, -128,-32768,-32768,-32768,-32768, -95, -285, -422,
716 367,-32768, 208,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
717 -32768,-32768,-32768, 209,-32768, -555, 149,-32768, 150,-32768,
718 525,-32768, -232,-32768,-32768,-32768, 459, -194,-32768,-32768,
726 static const short yytable[] = { 87,
727 98, 21, 21, 35, 37, 39, 49, 124, 22, 22,
728 28, 28, 121, 232, 54, 25, 25, 222, 148, 149,
729 295, 229, 290, 319, 151, 253, 225, 21, 132, 324,
730 156, 105, 55, 48, 22, 56, 28, 283, 321, 125,
731 187, 25, 51, 53, 198, 383, 280, 463, 310, 141,
732 401, 100, 350, 226, 209, 368, 134, 503, 48, -102,
733 573, 67, 206, 633, 120, 186, 48, 143, 311, 43,
734 150, 216, 131, 144, 642, 100, 541, 60, 110, 32,
735 33, 32, 33, 422, 655, 667, 424, 32, 33, -1,
736 207, 32, 33, 100, 211, 132, 14, 202, -2, 282,
737 60, 634, 232, 105, 665, 189, 543, 40, 60, 155,
738 111, 112, 197, 50, 190, 191, 404, 48, 574, 290,
739 120, 48, 656, 668, 222, 399, 191, 584, 141, 348,
740 120, 134, 359, 41, 110, 222, 252, -162, 559, 131,
741 -102, 222, 497, -162, 281, 42, 143, 331, 14, 331,
742 287, 485, 144, 197, 100, 29, 280, 581, 34, 14,
743 36, 315, 243, 132, 245, 318, 38, 472, 247, 100,
744 249, 100, 60, 14, 462, 317, 277, 278, 43, 622,
745 61, 292, 206, 60, -162, 257, 293, 258, -162, 14,
746 366, 605, 63, 323, 608, 367, 43, 508, 339, 394,
747 595, 637, 454, 455, 395, 14, 641, 494, 643, 43,
748 397, 207, 158, 206, 66, 211, 436, 652, 111, 112,
749 342, 674, 627, 14, 68, 404, 675, 25, 43, 115,
750 111, 112, 206, 134, 399, 191, 14, 103, 120, 411,
751 106, 120, 120, 44, 107, 468, 283, 208, 354, 57,
752 676, 58, 45, 189, 651, 14, 398, 451, 138, 498,
753 132, 477, 190, 191, 482, 399, 191, 133, 217, 32,
754 33, -105, -105, -105, -105, 116, 60, -105, 146, -105,
755 -105, -105, 128, 129, 117, 603, 331, 202, 9, 10,
756 11, 437, 54, 227, 468, -105, 235, 228, 25, 348,
757 107, 453, 157, 403, 406, 373, 348, 186, 452, 158,
758 55, 43, 397, 56, 459, 188, 5, 195, 7, 196,
759 361, 362, 212, 374, 9, 10, 11, 238, 180, 181,
760 239, 182, 183, 184, 185, 43, 115, 437, 14, 483,
761 13, 364, 474, 242, 428, 365, 475, 402, 405, -105,
762 612, 248, 177, 178, 179, 501, 528, 502, 398, 228,
763 217, 107, 14, -315, -315, -315, -315, 399, 191, 464,
764 427, -315, -315, -315, 400, 48, 244, 618, 25, 528,
765 429, 228, 116, 416, 620, 105, 132, -315, 107, -261,
766 -261, 117, 250, 413, 415, 251, 120, 30, 31, 32,
767 33, 465, 233, 234, 233, 234, 544, 252, 127, 128,
768 129, 635, 48, 636, 500, 9, 10, 11, 254, 139,
769 25, 316, 5, 255, 7, 97, 120, -82, 48, 294,
770 9, 10, 11, 14, 110, 132, 486, 320, 207, 211,
771 307, -101, 71, 43, 524, 207, 13, 206, 308, 15,
772 111, 112, 60, 5, 57, 7, 58, -259, -259, 43,
773 115, 9, 10, 11, 327, 400, 400, 524, 314, 506,
774 14, 333, 48, 334, 528, 670, 335, 13, 558, 523,
775 337, 187, 340, 678, 526, 341, 14, 288, 289, 232,
776 44, 527, 343, 537, 347, 140, -253, 346, 25, 45,
777 288, 289, 523, 351, 349, 355, 116, 582, 308, 476,
778 585, 588, 454, 455, 560, 117, 160, 162, 592, 54,
779 658, 659, 598, 222, 360, 222, 414, 597, 363, 377,
780 207, 382, 380, 604, 378, 381, 526, 55, 384, 385,
781 56, 386, 610, 527, 391, 537, 393, 566, 568, 396,
782 25, 410, 412, 617, 600, 256, -295, 400, 481, -31,
783 259, 260, 524, 489, 490, 265, 266, 267, 268, 269,
784 270, 271, 272, 273, 274, 275, 276, 491, 507, 120,
785 538, 48, 545, 546, -32, 548, 425, 551, 4, 585,
786 -118, 5, 6, 7, 8, 552, 554, 523, 561, 9,
787 10, 11, 563, 43, 397, 569, 456, 457, 458, 555,
788 460, 461, 556, 661, 12, 13, 564, 14, 15, 585,
789 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
790 14, 565, 578, 473, 580, 325, 296, -118, 297, 5,
791 6, 7, 8, 583, 591, 298, -118, 9, 10, 11,
792 496, 172, 173, 174, 175, 176, 177, 178, 179, 45,
793 344, 345, 593, 13, 16, 14, 594, 217, 609, -114,
794 -114, -114, -114, -114, -114, -114, 504, -114, -114, -114,
795 -114, -114, 611, -114, -114, -114, -114, -114, -114, -114,
796 -114, -114, -114, -114, -114, -114, -114, -114, 613, -114,
797 -114, 32, 33, 199, 200, 201, -114, 614, 625, -114,
798 547, -375, 626, 616, -114, -114, -114, 628, 644, 638,
799 -114, -114, 648, 653, 230, -114, 654, -19, -19, -19,
800 -19, 657, 663, 666, 669, -19, -19, -19, 672, 677,
801 392, 680, 681, -114, -114, -114, -114, 586, -114, 358,
802 110, -19, 575, -162, 175, 176, 177, 178, 179, -162,
803 217, 312, -315, -315, 478, 126, 466, -315, -315, 291,
804 -315, 470, 420, 246, -315, 356, -315, -315, -315, -315,
805 -315, -315, -315, -315, -315, -315, -315, 446, -315, 241,
806 -315, 328, -315, -315, 332, 426, 326, 479, 439, -315,
807 -162, 484, -315, 662, -162, -19, 664, -315, -315, -315,
808 623, 624, 352, -315, -315, 43, 397, 0, -315, 206,
809 420, 0, 139, 409, 471, 5, 0, 7, 97, 0,
810 0, 0, 0, 9, 10, 11, -315, -291, -315, -315,
811 487, -315, 14, 0, 0, 0, 0, 493, 152, 13,
812 69, 5, 15, 7, 97, 70, 71, 0, 72, 9,
813 10, 11, 496, 0, 0, 0, 446, 0, 0, 505,
814 0, 45, 0, 0, 0, 13, 73, 0, 15, 0,
815 74, 75, 0, 0, 0, 446, 0, 76, 446, 0,
816 77, 467, 128, 129, 0, 78, 79, 80, 9, 10,
817 11, 81, 82, 0, 296, 0, 83, 5, 6, 7,
818 8, 0, 553, 298, 0, 9, 10, 11, 173, 174,
819 175, 176, 177, 178, 179, 0, 84, 85, 0, -91,
820 0, 13, 0, 14, 0, 0, 577, 0, 0, 446,
821 0, 0, 431, 0, -315, -315, -315, -315, -315, -315,
822 -315, 0, -315, -315, -315, -315, -315, 0, -315, -315,
823 -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
824 -315, -315, -315, 446, -315, -315, 446, 0, 0, -375,
825 0, -315, 0, 0, -315, 0, 615, 0, 0, -315,
826 -315, -315, 0, 0, 0, -315, -315, 0, 0, 0,
827 -315, 0, 0, 0, 446, 5, 0, 7, 196, 0,
828 0, 0, 0, 9, 10, 11, 0, 0, -315, 0,
829 -315, -315, 0, -315, 570, 0, -315, -315, 0, 13,
830 0, -315, -315, 0, -315, 0, 446, 0, -315, 0,
831 -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
832 -315, 189, -315, 0, -315, 0, -315, -315, 0, 110,
833 190, 191, -162, -315, 0, 0, -315, 0, -162, 0,
834 0, -315, -315, -315, 0, 0, 0, -315, -315, 0,
835 0, 0, -315, 0, 0, 0, 5, 6, 7, 8,
836 0, 111, 112, 0, 9, 10, 11, 0, 0, 0,
837 -315, 0, -315, -315, 601, -315, -325, -325, 0, -162,
838 13, -325, -325, -162, -325, 0, 0, 0, -325, 0,
839 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
840 -325, 0, -325, 0, -325, 0, -325, -325, 0, 0,
841 0, 0, 0, -325, 180, 181, -325, 182, 183, 184,
842 185, -325, -325, -325, 0, 0, 0, -325, -325, 0,
843 0, 440, -325, 441, 33, 0, 0, 0, 70, 71,
844 0, 72, 0, 0, 0, 0, 0, 0, 0, 0,
845 -325, 0, -325, -325, 0, -325, 0, 0, 0, 73,
846 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
847 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
848 80, 0, 0, 0, 81, 82, 0, 0, 442, 83,
849 443, 440, 0, 441, 33, 0, 0, 0, 70, 71,
850 0, 72, 0, 0, 0, 0, 0, 0, -190, 84,
851 85, 0, 444, 0, 0, 0, 0, 0, 0, 73,
852 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
853 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
854 80, 0, 0, 0, 81, 82, 0, 0, 442, 83,
855 443, 440, 0, 441, 33, 0, 0, 0, 70, 71,
856 0, 72, 0, 0, 0, 0, 0, 0, -250, 84,
857 85, 0, 444, 0, 0, 0, 0, 0, 0, 73,
858 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
859 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
860 80, 0, 0, 0, 81, 82, 0, 0, 442, 83,
861 443, 418, 0, 69, 0, 0, 0, 0, 70, 71,
862 0, 72, 109, 0, 0, -27, -27, -27, -27, 84,
863 85, 0, 444, -27, -27, -27, 0, 0, 0, 73,
864 0, 15, 0, 74, 75, 0, 0, 0, 110, -27,
865 76, -162, 0, 77, 0, 0, 0, -162, 78, 79,
866 80, 0, 0, 0, 81, 82, 0, 0, 0, 83,
867 171, 172, 173, 174, 175, 176, 177, 178, 179, 0,
868 111, 112, 236, 0, 0, -23, -23, -23, -23, 84,
869 85, 0, 419, -23, -23, -23, 0, 0, -162, 69,
870 0, 0, -162, -27, 70, 71, 0, 72, 110, -23,
871 0, -162, 0, 0, 0, 0, 0, -162, 0, 0,
872 0, 0, 0, 0, 0, 73, 0, 15, 0, 74,
873 75, 0, 0, 0, 0, 0, 76, 0, 0, 77,
874 111, 112, 0, 0, 78, 79, 80, 0, 0, 0,
875 81, 82, 0, 0, 0, 83, 0, 0, -162, 69,
876 0, 0, -162, -23, 70, 71, 0, 72, 0, 0,
877 0, 0, 69, 0, 0, 84, 85, 70, 71, 215,
878 72, 0, 0, 0, 0, 73, 0, 15, 0, 74,
879 75, 0, 0, 0, 0, 0, 76, 0, 73, 77,
880 15, 0, 74, 75, 78, 79, 80, 0, 0, 76,
881 81, 82, 77, 0, 0, 83, 0, 78, 79, 80,
882 0, 0, 0, 81, 82, 69, 0, 0, 83, 0,
883 70, 71, 0, 72, 0, 84, 85, 0, 69, 286,
884 0, 0, 0, 70, 71, 0, 72, 0, 84, 85,
885 0, 73, 322, 15, 0, 74, 75, 0, 0, 0,
886 0, 0, 76, 0, 73, 77, 15, 0, 74, 75,
887 78, 79, 80, 0, 0, 76, 81, 82, 77, 0,
888 0, 83, 0, 78, 79, 80, 0, 0, 0, 81,
889 82, 0, 0, 0, 83, 0, 0, 0, 0, 0,
890 0, 84, 85, 0, 0, 353, 0, 0, 0, 0,
891 0, 0, 0, 0, 84, 85, 0, 0, 499, 441,
892 509, 6, 7, 8, 70, 71, 0, 72, 9, 10,
893 11, 510, 0, 511, 512, 513, 514, 515, 516, 517,
894 518, 519, 520, 521, 13, 73, 14, 15, 0, 74,
895 75, 0, 5, 6, 7, 8, 76, 0, 408, 77,
896 9, 10, 11, 0, 78, 79, 80, 0, 0, 0,
897 81, 82, 0, 0, 0, 83, 13, 0, 14, 0,
898 0, 0, 5, 6, 7, 8, 0, 0, 0, 0,
899 9, 10, 11, 522, 0, 84, 85, 0, 252, 441,
900 33, 0, 0, 0, 70, 71, 13, 72, 14, 0,
901 0, 510, 0, 511, 512, 513, 514, 515, 516, 517,
902 518, 519, 520, 521, 0, 73, 0, 15, 0, 74,
903 75, 0, 0, 0, 0, 0, 76, 0, 0, 77,
904 0, 0, 0, 0, 78, 79, 80, 0, 0, 0,
905 81, 82, 0, 69, 0, 83, 0, 0, 70, 71,
906 0, 72, 169, 170, 171, 172, 173, 174, 175, 176,
907 177, 178, 179, 522, 0, 84, 85, 0, 252, 73,
908 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
909 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
910 80, 0, 0, 0, 81, 82, 0, 0, 0, 83,
911 69, 5, 6, 7, 8, 70, 71, 0, 72, 9,
912 10, 11, 0, 0, 0, 0, 0, 0, 0, 84,
913 85, 0, 338, 0, 0, 13, 73, 14, 15, 0,
914 74, 75, 0, 0, 0, 0, 0, 76, 0, 0,
915 77, 0, 0, 0, 0, 78, 79, 80, 0, 0,
916 0, 81, 82, 0, 69, 5, 83, 7, 97, 70,
917 71, 0, 72, 9, 10, 11, 0, 69, 0, 0,
918 0, 0, 70, 71, 0, 72, 84, 85, 0, 13,
919 73, 0, 15, 0, 74, 75, 0, 0, 0, 0,
920 0, 76, 0, 73, 77, 15, 0, 74, 75, 78,
921 79, 80, 0, 0, 76, 81, 82, 77, 0, 0,
922 83, 0, 78, 79, 80, 0, 0, 0, 81, 82,
923 69, 0, 0, 83, 0, 70, 71, 0, 72, 0,
924 84, 85, 0, 0, 0, 0, 0, 0, 0, 0,
925 0, 557, 0, 84, 85, 0, 73, 69, 15, 0,
926 74, 75, 70, 71, 0, 72, 0, 76, 0, 0,
927 77, 0, 0, 0, 0, 78, 79, 80, 0, 0,
928 0, 81, 82, 73, 69, 15, 83, 74, 75, 70,
929 71, 0, 72, 0, 76, 0, 0, 77, 0, 0,
930 0, 0, 78, 79, 80, 0, 84, 85, 81, 82,
931 73, 357, 15, 159, 74, 75, 70, 71, 0, 72,
932 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
933 79, 80, 0, 84, 85, 81, 82, 73, 0, 15,
934 161, 74, 75, 539, 0, 0, 0, 0, 76, 0,
935 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
936 84, 85, 81, 82, 0, 0, 0, 83, 163, 164,
937 165, 0, 166, 167, 168, 169, 170, 171, 172, 173,
938 174, 175, 176, 177, 178, 179, 0, 84, 85, 5,
939 6, 7, 8, 5, 6, 7, 8, 9, 10, 11,
940 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 13, 589, 14, 540, 13, 0, 14,
942 0, 163, 164, 165, 0, 166, 167, 168, 169, 170,
943 171, 172, 173, 174, 175, 176, 177, 178, 179, 163,
944 164, 165, 590, 166, 167, 168, 169, 170, 171, 172,
945 173, 174, 175, 176, 177, 178, 179, 0, 0, 0,
946 0, 0, 52, 0, 0, 14, 567, 0, 0, 606,
947 163, 164, 165, 0, 166, 167, 168, 169, 170, 171,
948 172, 173, 174, 175, 176, 177, 178, 179, 163, 164,
949 165, 632, 166, 167, 168, 169, 170, 171, 172, 173,
950 174, 175, 176, 177, 178, 179, 163, 164, 165, 0,
951 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
952 176, 177, 178, 179, 165, 0, 166, 167, 168, 169,
953 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
954 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
955 177, 178, 179, 168, 169, 170, 171, 172, 173, 174,
956 175, 176, 177, 178, 179
959 static const short yycheck[] = { 40,
960 41, 2, 3, 9, 10, 11, 20, 53, 2, 3,
961 2, 3, 51, 121, 22, 2, 3, 113, 74, 75,
962 212, 120, 194, 231, 80, 154, 116, 28, 59, 237,
963 86, 45, 22, 20, 28, 22, 28, 190, 233, 53,
964 96, 28, 21, 22, 102, 331, 184, 413, 219, 65,
965 361, 41, 285, 117, 107, 1, 62, 469, 45, 1,
966 1, 38, 7, 38, 51, 9, 53, 65, 10, 3,
967 76, 112, 59, 65, 630, 65, 488, 25, 27, 3,
968 4, 3, 4, 376, 38, 38, 379, 3, 4, 0,
969 104, 3, 4, 83, 108, 126, 30, 103, 0, 189,
970 48, 76, 210, 117, 660, 50, 491, 59, 56, 83,
971 59, 60, 102, 77, 59, 60, 50, 104, 59, 291,
972 107, 108, 76, 76, 220, 59, 60, 550, 144, 282,
973 117, 137, 76, 59, 27, 231, 82, 30, 50, 126,
974 82, 237, 453, 36, 185, 59, 144, 243, 30, 245,
975 191, 437, 144, 143, 144, 3, 294, 542, 82, 30,
976 82, 225, 141, 194, 143, 229, 82, 38, 145, 159,
977 147, 161, 120, 30, 407, 228, 182, 183, 3, 602,
978 28, 76, 7, 131, 77, 159, 81, 161, 81, 30,
979 76, 576, 82, 234, 579, 81, 3, 483, 254, 76,
980 566, 624, 59, 60, 81, 30, 629, 76, 631, 3,
981 4, 225, 81, 7, 82, 229, 387, 640, 59, 60,
982 261, 76, 607, 30, 82, 50, 81, 214, 3, 4,
983 59, 60, 7, 239, 59, 60, 30, 59, 225, 368,
984 77, 228, 229, 50, 81, 417, 399, 76, 289, 5,
985 673, 7, 59, 50, 639, 30, 50, 395, 78, 454,
986 291, 432, 59, 60, 435, 59, 60, 1, 1, 3,
987 4, 4, 5, 6, 7, 50, 224, 10, 78, 12,
988 13, 14, 6, 7, 59, 571, 382, 293, 12, 13,
989 14, 387, 300, 77, 466, 28, 77, 81, 285, 452,
990 81, 400, 76, 361, 362, 313, 459, 9, 398, 81,
991 300, 3, 4, 300, 404, 76, 4, 76, 6, 7,
992 299, 300, 59, 313, 12, 13, 14, 36, 54, 55,
993 81, 57, 58, 59, 60, 3, 4, 433, 30, 435,
994 28, 77, 77, 138, 383, 81, 81, 361, 362, 82,
995 76, 146, 50, 51, 52, 77, 485, 77, 50, 81,
996 1, 81, 30, 4, 5, 6, 7, 59, 60, 415,
997 38, 12, 13, 14, 361, 362, 77, 77, 365, 508,
998 386, 81, 50, 373, 77, 399, 417, 28, 81, 77,
999 78, 59, 76, 372, 373, 76, 383, 77, 78, 3,
1000 4, 415, 59, 60, 59, 60, 496, 82, 5, 6,
1001 7, 619, 399, 621, 455, 12, 13, 14, 76, 1,
1002 407, 76, 4, 77, 6, 7, 413, 38, 415, 59,
1003 12, 13, 14, 30, 27, 466, 442, 232, 452, 453,
1004 83, 82, 9, 3, 485, 459, 28, 7, 77, 31,
1005 59, 60, 400, 4, 5, 6, 7, 77, 78, 3,
1006 4, 12, 13, 14, 78, 452, 453, 508, 36, 475,
1007 30, 78, 459, 78, 603, 667, 78, 28, 519, 485,
1008 76, 537, 76, 675, 485, 76, 30, 59, 60, 597,
1009 50, 485, 38, 485, 83, 77, 78, 76, 485, 59,
1010 59, 60, 508, 83, 76, 76, 50, 548, 77, 78,
1011 551, 552, 59, 60, 520, 59, 90, 91, 559, 527,
1012 649, 650, 568, 619, 76, 621, 77, 566, 76, 36,
1013 544, 81, 327, 574, 83, 78, 537, 527, 333, 334,
1014 527, 32, 583, 537, 38, 537, 83, 526, 527, 76,
1015 537, 3, 77, 594, 568, 158, 78, 544, 78, 38,
1016 163, 164, 603, 38, 78, 168, 169, 170, 171, 172,
1017 173, 174, 175, 176, 177, 178, 179, 81, 78, 566,
1018 36, 568, 83, 78, 38, 59, 381, 59, 1, 630,
1019 3, 4, 5, 6, 7, 59, 38, 603, 7, 12,
1020 13, 14, 38, 3, 4, 16, 401, 402, 403, 77,
1021 405, 406, 77, 654, 27, 28, 77, 30, 31, 660,
1022 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1023 30, 77, 36, 428, 78, 238, 1, 50, 3, 4,
1024 5, 6, 7, 59, 77, 10, 59, 12, 13, 14,
1025 50, 45, 46, 47, 48, 49, 50, 51, 52, 59,
1026 263, 264, 77, 28, 77, 30, 59, 1, 76, 3,
1027 4, 5, 6, 7, 8, 9, 471, 11, 12, 13,
1028 14, 15, 17, 17, 18, 19, 20, 21, 22, 23,
1029 24, 25, 26, 27, 28, 29, 30, 31, 77, 33,
1030 34, 3, 4, 5, 6, 7, 40, 76, 76, 43,
1031 505, 76, 36, 77, 48, 49, 50, 76, 9, 77,
1032 54, 55, 77, 77, 1, 59, 59, 4, 5, 6,
1033 7, 81, 77, 76, 76, 12, 13, 14, 77, 77,
1034 343, 0, 0, 77, 78, 79, 80, 551, 82, 294,
1035 27, 28, 537, 30, 48, 49, 50, 51, 52, 36,
1036 1, 220, 3, 4, 433, 55, 416, 8, 9, 197,
1037 11, 423, 375, 144, 15, 293, 17, 18, 19, 20,
1038 21, 22, 23, 24, 25, 26, 27, 390, 29, 137,
1039 31, 241, 33, 34, 245, 382, 239, 433, 388, 40,
1040 77, 435, 43, 655, 81, 82, 657, 48, 49, 50,
1041 603, 603, 288, 54, 55, 3, 4, -1, 59, 7,
1042 423, -1, 1, 365, 427, 4, -1, 6, 7, -1,
1043 -1, -1, -1, 12, 13, 14, 77, 78, 79, 80,
1044 443, 82, 30, -1, -1, -1, -1, 450, 1, 28,
1045 3, 4, 31, 6, 7, 8, 9, -1, 11, 12,
1046 13, 14, 50, -1, -1, -1, 469, -1, -1, 472,
1047 -1, 59, -1, -1, -1, 28, 29, -1, 31, -1,
1048 33, 34, -1, -1, -1, 488, -1, 40, 491, -1,
1049 43, 5, 6, 7, -1, 48, 49, 50, 12, 13,
1050 14, 54, 55, -1, 1, -1, 59, 4, 5, 6,
1051 7, -1, 515, 10, -1, 12, 13, 14, 46, 47,
1052 48, 49, 50, 51, 52, -1, 79, 80, -1, 82,
1053 -1, 28, -1, 30, -1, -1, 539, -1, -1, 542,
1054 -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
1055 9, -1, 11, 12, 13, 14, 15, -1, 17, 18,
1056 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1057 29, 30, 31, 576, 33, 34, 579, -1, -1, 76,
1058 -1, 40, -1, -1, 43, -1, 589, -1, -1, 48,
1059 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1060 59, -1, -1, -1, 607, 4, -1, 6, 7, -1,
1061 -1, -1, -1, 12, 13, 14, -1, -1, 77, -1,
1062 79, 80, -1, 82, 1, -1, 3, 4, -1, 28,
1063 -1, 8, 9, -1, 11, -1, 639, -1, 15, -1,
1064 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1065 27, 50, 29, -1, 31, -1, 33, 34, -1, 27,
1066 59, 60, 30, 40, -1, -1, 43, -1, 36, -1,
1067 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1068 -1, -1, 59, -1, -1, -1, 4, 5, 6, 7,
1069 -1, 59, 60, -1, 12, 13, 14, -1, -1, -1,
1070 77, -1, 79, 80, 1, 82, 3, 4, -1, 77,
1071 28, 8, 9, 81, 11, -1, -1, -1, 15, -1,
1072 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1073 27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1074 -1, -1, -1, 40, 54, 55, 43, 57, 58, 59,
1075 60, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1076 -1, 1, 59, 3, 4, -1, -1, -1, 8, 9,
1077 -1, 11, -1, -1, -1, -1, -1, -1, -1, -1,
1078 77, -1, 79, 80, -1, 82, -1, -1, -1, 29,
1079 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1080 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1081 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1082 60, 1, -1, 3, 4, -1, -1, -1, 8, 9,
1083 -1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
1084 80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
1085 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1086 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1087 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1088 60, 1, -1, 3, 4, -1, -1, -1, 8, 9,
1089 -1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
1090 80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
1091 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1092 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1093 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1094 60, 1, -1, 3, -1, -1, -1, -1, 8, 9,
1095 -1, 11, 1, -1, -1, 4, 5, 6, 7, 79,
1096 80, -1, 82, 12, 13, 14, -1, -1, -1, 29,
1097 -1, 31, -1, 33, 34, -1, -1, -1, 27, 28,
1098 40, 30, -1, 43, -1, -1, -1, 36, 48, 49,
1099 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1100 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1101 59, 60, 1, -1, -1, 4, 5, 6, 7, 79,
1102 80, -1, 82, 12, 13, 14, -1, -1, 77, 3,
1103 -1, -1, 81, 82, 8, 9, -1, 11, 27, 28,
1104 -1, 30, -1, -1, -1, -1, -1, 36, -1, -1,
1105 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1106 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1107 59, 60, -1, -1, 48, 49, 50, -1, -1, -1,
1108 54, 55, -1, -1, -1, 59, -1, -1, 77, 3,
1109 -1, -1, 81, 82, 8, 9, -1, 11, -1, -1,
1110 -1, -1, 3, -1, -1, 79, 80, 8, 9, 83,
1111 11, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1112 34, -1, -1, -1, -1, -1, 40, -1, 29, 43,
1113 31, -1, 33, 34, 48, 49, 50, -1, -1, 40,
1114 54, 55, 43, -1, -1, 59, -1, 48, 49, 50,
1115 -1, -1, -1, 54, 55, 3, -1, -1, 59, -1,
1116 8, 9, -1, 11, -1, 79, 80, -1, 3, 83,
1117 -1, -1, -1, 8, 9, -1, 11, -1, 79, 80,
1118 -1, 29, 83, 31, -1, 33, 34, -1, -1, -1,
1119 -1, -1, 40, -1, 29, 43, 31, -1, 33, 34,
1120 48, 49, 50, -1, -1, 40, 54, 55, 43, -1,
1121 -1, 59, -1, 48, 49, 50, -1, -1, -1, 54,
1122 55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1123 -1, 79, 80, -1, -1, 83, -1, -1, -1, -1,
1124 -1, -1, -1, -1, 79, 80, -1, -1, 83, 3,
1125 4, 5, 6, 7, 8, 9, -1, 11, 12, 13,
1126 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1127 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
1128 34, -1, 4, 5, 6, 7, 40, -1, 10, 43,
1129 12, 13, 14, -1, 48, 49, 50, -1, -1, -1,
1130 54, 55, -1, -1, -1, 59, 28, -1, 30, -1,
1131 -1, -1, 4, 5, 6, 7, -1, -1, -1, -1,
1132 12, 13, 14, 77, -1, 79, 80, -1, 82, 3,
1133 4, -1, -1, -1, 8, 9, 28, 11, 30, -1,
1134 -1, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1135 24, 25, 26, 27, -1, 29, -1, 31, -1, 33,
1136 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1137 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1138 54, 55, -1, 3, -1, 59, -1, -1, 8, 9,
1139 -1, 11, 42, 43, 44, 45, 46, 47, 48, 49,
1140 50, 51, 52, 77, -1, 79, 80, -1, 82, 29,
1141 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1142 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1143 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1144 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1145 13, 14, -1, -1, -1, -1, -1, -1, -1, 79,
1146 80, -1, 82, -1, -1, 28, 29, 30, 31, -1,
1147 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1148 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1149 -1, 54, 55, -1, 3, 4, 59, 6, 7, 8,
1150 9, -1, 11, 12, 13, 14, -1, 3, -1, -1,
1151 -1, -1, 8, 9, -1, 11, 79, 80, -1, 28,
1152 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1153 -1, 40, -1, 29, 43, 31, -1, 33, 34, 48,
1154 49, 50, -1, -1, 40, 54, 55, 43, -1, -1,
1155 59, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1156 3, -1, -1, 59, -1, 8, 9, -1, 11, -1,
1157 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
1158 -1, 77, -1, 79, 80, -1, 29, 3, 31, -1,
1159 33, 34, 8, 9, -1, 11, -1, 40, -1, -1,
1160 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1161 -1, 54, 55, 29, 3, 31, 59, 33, 34, 8,
1162 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1163 -1, -1, 48, 49, 50, -1, 79, 80, 54, 55,
1164 29, 3, 31, 59, 33, 34, 8, 9, -1, 11,
1165 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1166 49, 50, -1, 79, 80, 54, 55, 29, -1, 31,
1167 59, 33, 34, 10, -1, -1, -1, -1, 40, -1,
1168 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1169 79, 80, 54, 55, -1, -1, -1, 59, 35, 36,
1170 37, -1, 39, 40, 41, 42, 43, 44, 45, 46,
1171 47, 48, 49, 50, 51, 52, -1, 79, 80, 4,
1172 5, 6, 7, 4, 5, 6, 7, 12, 13, 14,
1173 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1174 -1, -1, -1, 28, 10, 30, 83, 28, -1, 30,
1175 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
1176 44, 45, 46, 47, 48, 49, 50, 51, 52, 35,
1177 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1178 46, 47, 48, 49, 50, 51, 52, -1, -1, -1,
1179 -1, -1, 77, -1, -1, 30, 77, -1, -1, 83,
1180 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
1181 45, 46, 47, 48, 49, 50, 51, 52, 35, 36,
1182 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1183 47, 48, 49, 50, 51, 52, 35, 36, 37, -1,
1184 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1185 49, 50, 51, 52, 37, -1, 39, 40, 41, 42,
1186 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1187 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1188 50, 51, 52, 41, 42, 43, 44, 45, 46, 47,
1191 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1192 #line 3 "/usr/local/share/bison.simple"
1194 /* Skeleton output parser for bison,
1195 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1197 This program is free software; you can redistribute it and/or modify
1198 it under the terms of the GNU General Public License as published by
1199 the Free Software Foundation; either version 2, or (at your option)
1202 This program is distributed in the hope that it will be useful,
1203 but WITHOUT ANY WARRANTY; without even the implied warranty of
1204 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1205 GNU General Public License for more details.
1207 You should have received a copy of the GNU General Public License
1208 along with this program; if not, write to the Free Software
1209 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1211 /* As a special exception, when this file is copied by Bison into a
1212 Bison output file, you may use that output file without restriction.
1213 This special exception was added by the Free Software Foundation
1214 in version 1.24 of Bison. */
1218 #define alloca __builtin_alloca
1219 #else /* not GNU C. */
1220 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1222 #else /* not sparc */
1223 #if defined (MSDOS) && !defined (__TURBOC__)
1225 #else /* not MSDOS, or __TURBOC__ */
1229 #else /* not MSDOS, __TURBOC__, or _AIX */
1233 void *alloca (unsigned int);
1235 #else /* not __cplusplus */
1237 #endif /* not __cplusplus */
1239 #endif /* not _AIX */
1240 #endif /* not MSDOS, or __TURBOC__ */
1241 #endif /* not sparc. */
1242 #endif /* not GNU C. */
1243 #endif /* alloca not defined. */
1245 /* This is the parser code that is written into each bison parser
1246 when the %semantic_parser declaration is not specified in the grammar.
1247 It was written by Richard Stallman by simplifying the hairy parser
1248 used when %semantic_parser is specified. */
1250 /* Note: there must be only one dollar sign in this file.
1251 It is replaced by the list of actions, each action
1252 as one case of the switch. */
1254 #define yyerrok (yyerrstatus = 0)
1255 #define yyclearin (yychar = YYEMPTY)
1258 #define YYACCEPT return(0)
1259 #define YYABORT return(1)
1260 #define YYERROR goto yyerrlab1
1261 /* Like YYERROR except do call yyerror.
1262 This remains here temporarily to ease the
1263 transition to the new meaning of YYERROR, for GCC.
1264 Once GCC version 2 has supplanted version 1, this can go. */
1265 #define YYFAIL goto yyerrlab
1266 #define YYRECOVERING() (!!yyerrstatus)
1267 #define YYBACKUP(token, value) \
1269 if (yychar == YYEMPTY && yylen == 1) \
1270 { yychar = (token), yylval = (value); \
1271 yychar1 = YYTRANSLATE (yychar); \
1276 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1280 #define YYERRCODE 256
1283 #define YYLEX yylex()
1289 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1291 #define YYLEX yylex(&yylval, &yylloc)
1293 #else /* not YYLSP_NEEDED */
1295 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1297 #define YYLEX yylex(&yylval)
1299 #endif /* not YYLSP_NEEDED */
1302 /* If nonreentrant, generate the variables here */
1306 int yychar; /* the lookahead symbol */
1307 YYSTYPE yylval; /* the semantic value of the */
1308 /* lookahead symbol */
1311 YYLTYPE yylloc; /* location data for the lookahead */
1315 int yynerrs; /* number of parse errors so far */
1316 #endif /* not YYPURE */
1319 int yydebug; /* nonzero means print parse trace */
1320 /* Since this is uninitialized, it does not stop multiple parsers
1324 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1327 #define YYINITDEPTH 200
1330 /* YYMAXDEPTH is the maximum size the stacks can grow to
1331 (effective only if the built-in stack extension method is used). */
1338 #define YYMAXDEPTH 10000
1341 /* Prevent warning if -Wstrict-prototypes. */
1346 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1347 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1348 #else /* not GNU C or C++ */
1351 /* This is the most reliable way to avoid incompatibilities
1352 in available built-in functions on various systems. */
1354 __yy_memcpy (from, to, count)
1359 register char *f = from;
1360 register char *t = to;
1361 register int i = count;
1367 #else /* __cplusplus */
1369 /* This is the most reliable way to avoid incompatibilities
1370 in available built-in functions on various systems. */
1372 __yy_memcpy (char *from, char *to, int count)
1374 register char *f = from;
1375 register char *t = to;
1376 register int i = count;
1385 #line 192 "/usr/local/share/bison.simple"
1387 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1388 into yyparse. The argument should have type void *.
1389 It should actually point to an object.
1390 Grammar actions can access the variable by casting it
1391 to the proper pointer type. */
1393 #ifdef YYPARSE_PARAM
1394 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1396 #define YYPARSE_PARAM
1397 #define YYPARSE_PARAM_DECL
1401 yyparse(YYPARSE_PARAM)
1404 register int yystate;
1406 register short *yyssp;
1407 register YYSTYPE *yyvsp;
1408 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1409 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1411 short yyssa[YYINITDEPTH]; /* the state stack */
1412 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1414 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1415 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1418 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1419 YYLTYPE *yyls = yylsa;
1422 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1424 #define YYPOPSTACK (yyvsp--, yyssp--)
1427 int yystacksize = YYINITDEPTH;
1438 YYSTYPE yyval; /* the variable used to return */
1439 /* semantic values from the action */
1446 fprintf(stderr, "Starting parse\n");
1452 yychar = YYEMPTY; /* Cause a token to be read. */
1454 /* Initialize stack pointers.
1455 Waste one element of value and location stack
1456 so that they stay on the same level as the state stack.
1457 The wasted elements are never initialized. */
1465 /* Push a new state, which is found in yystate . */
1466 /* In all cases, when you get here, the value and location stacks
1467 have just been pushed. so pushing a state here evens the stacks. */
1472 if (yyssp >= yyss + yystacksize - 1)
1474 /* Give user a chance to reallocate the stack */
1475 /* Use copies of these so that the &'s don't force the real ones into memory. */
1476 YYSTYPE *yyvs1 = yyvs;
1477 short *yyss1 = yyss;
1479 YYLTYPE *yyls1 = yyls;
1482 /* Get the current used size of the three stacks, in elements. */
1483 int size = yyssp - yyss + 1;
1486 /* Each stack pointer address is followed by the size of
1487 the data in use in that stack, in bytes. */
1489 /* This used to be a conditional around just the two extra args,
1490 but that might be undefined if yyoverflow is a macro. */
1491 yyoverflow("parser stack overflow",
1492 &yyss1, size * sizeof (*yyssp),
1493 &yyvs1, size * sizeof (*yyvsp),
1494 &yyls1, size * sizeof (*yylsp),
1497 yyoverflow("parser stack overflow",
1498 &yyss1, size * sizeof (*yyssp),
1499 &yyvs1, size * sizeof (*yyvsp),
1503 yyss = yyss1; yyvs = yyvs1;
1507 #else /* no yyoverflow */
1508 /* Extend the stack our own way. */
1509 if (yystacksize >= YYMAXDEPTH)
1511 yyerror("parser stack overflow");
1515 if (yystacksize > YYMAXDEPTH)
1516 yystacksize = YYMAXDEPTH;
1517 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1518 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1519 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1520 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1522 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1523 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1525 #endif /* no yyoverflow */
1527 yyssp = yyss + size - 1;
1528 yyvsp = yyvs + size - 1;
1530 yylsp = yyls + size - 1;
1535 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1538 if (yyssp >= yyss + yystacksize - 1)
1544 fprintf(stderr, "Entering state %d\n", yystate);
1550 /* Do appropriate processing given the current state. */
1551 /* Read a lookahead token if we need one and don't already have one. */
1554 /* First try to decide what to do without reference to lookahead token. */
1556 yyn = yypact[yystate];
1560 /* Not known => get a lookahead token if don't already have one. */
1562 /* yychar is either YYEMPTY or YYEOF
1563 or a valid token in external form. */
1565 if (yychar == YYEMPTY)
1569 fprintf(stderr, "Reading a token: ");
1574 /* Convert token to internal form (in yychar1) for indexing tables with */
1576 if (yychar <= 0) /* This means end of input. */
1579 yychar = YYEOF; /* Don't call YYLEX any more */
1583 fprintf(stderr, "Now at end of input.\n");
1588 yychar1 = YYTRANSLATE(yychar);
1593 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1594 /* Give the individual parser a way to print the precise meaning
1595 of a token, for further debugging info. */
1597 YYPRINT (stderr, yychar, yylval);
1599 fprintf (stderr, ")\n");
1605 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1610 /* yyn is what to do for this token type in this state.
1611 Negative => reduce, -yyn is rule number.
1612 Positive => shift, yyn is new state.
1613 New state is final state => don't bother to shift,
1614 just return success.
1615 0, or most negative number => error. */
1630 /* Shift the lookahead token. */
1634 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1637 /* Discard the token being shifted unless it is eof. */
1638 if (yychar != YYEOF)
1646 /* count tokens shifted since error; after three, turn off error status. */
1647 if (yyerrstatus) yyerrstatus--;
1652 /* Do the default action for the current state. */
1655 yyn = yydefact[yystate];
1659 /* Do a reduction. yyn is the number of a rule to reduce with. */
1663 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1670 fprintf (stderr, "Reducing via rule %d (line %d), ",
1673 /* Print the symbols being reduced, and their result. */
1674 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1675 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1676 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1684 #line 237 "c-parse.y"
1686 pedwarn ("ANSI C forbids an empty source file");
1691 #line 242 "c-parse.y"
1693 /* In case there were missing closebraces,
1694 get us back to the global binding level. */
1695 while (! global_bindings_p ())
1701 #line 256 "c-parse.y"
1702 {yyval.ttype = NULL_TREE; ;
1705 #line 257 "c-parse.y"
1706 {yyval.ttype = NULL_TREE; ;
1709 #line 264 "c-parse.y"
1710 { STRIP_NOPS (yyvsp[-2].ttype);
1711 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1712 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1713 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1714 assemble_asm (yyvsp[-2].ttype);
1716 error ("argument of `asm' is not a constant string"); ;
1719 #line 272 "c-parse.y"
1720 { pedantic = yyvsp[-1].itype; ;
1723 #line 277 "c-parse.y"
1725 error ("ANSI C forbids data definition with no type or storage class");
1726 else if (!flag_traditional)
1727 warning ("data definition has no type or storage class");
1729 current_declspecs = TREE_VALUE (declspec_stack);
1730 prefix_attributes = TREE_PURPOSE (declspec_stack);
1731 declspec_stack = TREE_CHAIN (declspec_stack);
1732 resume_momentary (yyvsp[-2].itype); ;
1735 #line 287 "c-parse.y"
1736 { current_declspecs = TREE_VALUE (declspec_stack);
1737 prefix_attributes = TREE_PURPOSE (declspec_stack);
1738 declspec_stack = TREE_CHAIN (declspec_stack);
1739 resume_momentary (yyvsp[-2].itype); ;
1742 #line 292 "c-parse.y"
1743 { current_declspecs = TREE_VALUE (declspec_stack);
1744 prefix_attributes = TREE_PURPOSE (declspec_stack);
1745 declspec_stack = TREE_CHAIN (declspec_stack);
1746 resume_momentary (yyvsp[-2].itype); ;
1749 #line 297 "c-parse.y"
1750 { pedwarn ("empty declaration"); ;
1753 #line 299 "c-parse.y"
1754 { shadow_tag (yyvsp[-1].ttype); ;
1757 #line 303 "c-parse.y"
1759 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1762 #line 309 "c-parse.y"
1763 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1764 prefix_attributes, NULL_TREE, 0))
1766 reinit_parse_for_function (); ;
1769 #line 314 "c-parse.y"
1770 { store_parm_decls (); ;
1773 #line 316 "c-parse.y"
1774 { finish_function (0);
1775 current_declspecs = TREE_VALUE (declspec_stack);
1776 prefix_attributes = TREE_PURPOSE (declspec_stack);
1777 declspec_stack = TREE_CHAIN (declspec_stack);
1778 resume_momentary (yyvsp[-5].itype); ;
1781 #line 322 "c-parse.y"
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[-2].itype); ;
1788 #line 327 "c-parse.y"
1789 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1790 prefix_attributes, NULL_TREE, 0))
1792 reinit_parse_for_function (); ;
1795 #line 332 "c-parse.y"
1796 { store_parm_decls (); ;
1799 #line 334 "c-parse.y"
1800 { finish_function (0);
1801 current_declspecs = TREE_VALUE (declspec_stack);
1802 prefix_attributes = TREE_PURPOSE (declspec_stack);
1803 declspec_stack = TREE_CHAIN (declspec_stack);
1804 resume_momentary (yyvsp[-5].itype); ;
1807 #line 340 "c-parse.y"
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[-2].itype); ;
1814 #line 345 "c-parse.y"
1815 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1816 prefix_attributes, NULL_TREE, 0))
1818 reinit_parse_for_function (); ;
1821 #line 350 "c-parse.y"
1822 { store_parm_decls (); ;
1825 #line 352 "c-parse.y"
1826 { finish_function (0);
1827 current_declspecs = TREE_VALUE (declspec_stack);
1828 prefix_attributes = TREE_PURPOSE (declspec_stack);
1829 declspec_stack = TREE_CHAIN (declspec_stack);
1830 resume_momentary (yyvsp[-5].itype); ;
1833 #line 358 "c-parse.y"
1834 { current_declspecs = TREE_VALUE (declspec_stack);
1835 prefix_attributes = TREE_PURPOSE (declspec_stack);
1836 declspec_stack = TREE_CHAIN (declspec_stack);
1837 resume_momentary (yyvsp[-2].itype); ;
1840 #line 370 "c-parse.y"
1841 { yyval.code = ADDR_EXPR; ;
1844 #line 372 "c-parse.y"
1845 { yyval.code = NEGATE_EXPR; ;
1848 #line 374 "c-parse.y"
1849 { yyval.code = CONVERT_EXPR; ;
1852 #line 376 "c-parse.y"
1853 { yyval.code = PREINCREMENT_EXPR; ;
1856 #line 378 "c-parse.y"
1857 { yyval.code = PREDECREMENT_EXPR; ;
1860 #line 380 "c-parse.y"
1861 { yyval.code = BIT_NOT_EXPR; ;
1864 #line 382 "c-parse.y"
1865 { yyval.code = TRUTH_NOT_EXPR; ;
1868 #line 386 "c-parse.y"
1869 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1872 #line 391 "c-parse.y"
1873 { yyval.ttype = NULL_TREE; ;
1876 #line 397 "c-parse.y"
1877 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1880 #line 399 "c-parse.y"
1881 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1884 #line 405 "c-parse.y"
1885 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1888 #line 408 "c-parse.y"
1889 { yyval.ttype = yyvsp[0].ttype;
1890 pedantic = yyvsp[-1].itype; ;
1893 #line 411 "c-parse.y"
1894 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1895 overflow_warning (yyval.ttype); ;
1898 #line 415 "c-parse.y"
1899 { tree label = lookup_label (yyvsp[0].ttype);
1901 pedwarn ("ANSI C forbids `&&'");
1903 yyval.ttype = null_pointer_node;
1906 TREE_USED (label) = 1;
1907 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1908 TREE_CONSTANT (yyval.ttype) = 1;
1913 #line 443 "c-parse.y"
1914 { skip_evaluation--;
1915 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1916 && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1917 error ("`sizeof' applied to a bit-field");
1918 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1921 #line 449 "c-parse.y"
1922 { skip_evaluation--;
1923 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1926 #line 452 "c-parse.y"
1927 { skip_evaluation--;
1928 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1931 #line 455 "c-parse.y"
1932 { skip_evaluation--;
1933 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1936 #line 458 "c-parse.y"
1937 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1940 #line 460 "c-parse.y"
1941 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1944 #line 464 "c-parse.y"
1945 { skip_evaluation++; ;
1948 #line 468 "c-parse.y"
1949 { skip_evaluation++; ;
1952 #line 474 "c-parse.y"
1953 { tree type = groktypename (yyvsp[-2].ttype);
1954 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1957 #line 477 "c-parse.y"
1958 { start_init (NULL_TREE, NULL, 0);
1959 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1960 really_start_incremental_init (yyvsp[-2].ttype); ;
1963 #line 481 "c-parse.y"
1965 tree result = pop_init_level (0);
1966 tree type = yyvsp[-5].ttype;
1970 pedwarn ("ANSI C forbids constructor expressions");
1971 if (TYPE_NAME (type) != 0)
1973 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1974 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1976 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1980 yyval.ttype = result;
1981 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1983 int failure = complete_array_type (type, yyval.ttype, 1);
1990 #line 510 "c-parse.y"
1991 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1994 #line 512 "c-parse.y"
1995 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1998 #line 514 "c-parse.y"
1999 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2002 #line 516 "c-parse.y"
2003 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2006 #line 518 "c-parse.y"
2007 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2010 #line 520 "c-parse.y"
2011 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2014 #line 522 "c-parse.y"
2015 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2018 #line 524 "c-parse.y"
2019 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2022 #line 526 "c-parse.y"
2023 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2026 #line 528 "c-parse.y"
2027 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2030 #line 530 "c-parse.y"
2031 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2034 #line 532 "c-parse.y"
2035 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2038 #line 534 "c-parse.y"
2039 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2040 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2043 #line 537 "c-parse.y"
2044 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2045 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2048 #line 540 "c-parse.y"
2049 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2050 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2053 #line 543 "c-parse.y"
2054 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2055 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2058 #line 546 "c-parse.y"
2059 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2060 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2063 #line 549 "c-parse.y"
2064 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2065 - (yyvsp[-4].ttype == boolean_false_node)); ;
2068 #line 552 "c-parse.y"
2069 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2070 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2073 #line 555 "c-parse.y"
2075 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2076 /* Make sure first operand is calculated only once. */
2077 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2078 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2079 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2082 #line 562 "c-parse.y"
2083 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2084 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2087 #line 565 "c-parse.y"
2088 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2089 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2092 #line 568 "c-parse.y"
2093 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2094 /* This inhibits warnings in truthvalue_conversion. */
2095 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2098 #line 575 "c-parse.y"
2100 yyval.ttype = lastiddecl;
2101 if (!yyval.ttype || yyval.ttype == error_mark_node)
2103 if (yychar == YYEMPTY)
2108 /* Ordinary implicit function declaration. */
2109 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2110 assemble_external (yyval.ttype);
2111 TREE_USED (yyval.ttype) = 1;
2114 else if (current_function_decl == 0)
2116 error ("`%s' undeclared here (not in a function)",
2117 IDENTIFIER_POINTER (yyvsp[0].ttype));
2118 yyval.ttype = error_mark_node;
2123 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2124 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2126 error ("`%s' undeclared (first use this function)",
2127 IDENTIFIER_POINTER (yyvsp[0].ttype));
2129 if (! undeclared_variable_notice)
2131 error ("(Each undeclared identifier is reported only once");
2132 error ("for each function it appears in.)");
2133 undeclared_variable_notice = 1;
2136 yyval.ttype = error_mark_node;
2137 /* Prevent repeated error messages. */
2138 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2139 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2143 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2144 yyval.ttype = error_mark_node;
2145 else if (C_DECL_ANTICIPATED (yyval.ttype))
2147 /* The first time we see a build-in function used,
2148 if it has not been declared. */
2149 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2150 if (yychar == YYEMPTY)
2154 /* Omit the implicit declaration we
2155 would ordinarily do, so we don't lose
2156 the actual built in type.
2157 But print a diagnostic for the mismatch. */
2158 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2159 error ("`%s' implicitly declared as function",
2160 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2161 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2162 != TYPE_MODE (integer_type_node))
2163 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2165 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2166 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2167 /* If it really returns void, change that to int. */
2168 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2169 TREE_TYPE (yyval.ttype)
2170 = build_function_type (integer_type_node,
2171 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2174 pedwarn ("built-in function `%s' used without declaration",
2175 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2177 /* Do what we would ordinarily do when a fn is used. */
2178 assemble_external (yyval.ttype);
2179 TREE_USED (yyval.ttype) = 1;
2183 assemble_external (yyval.ttype);
2184 TREE_USED (yyval.ttype) = 1;
2187 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2189 yyval.ttype = DECL_INITIAL (yyval.ttype);
2190 /* This is to prevent an enum whose value is 0
2191 from being considered a null pointer constant. */
2192 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2193 TREE_CONSTANT (yyval.ttype) = 1;
2198 #line 674 "c-parse.y"
2199 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2202 #line 676 "c-parse.y"
2203 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2204 if (class == 'e' || class == '1'
2205 || class == '2' || class == '<')
2206 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2207 yyval.ttype = yyvsp[-1].ttype; ;
2210 #line 682 "c-parse.y"
2211 { yyval.ttype = error_mark_node; ;
2214 #line 684 "c-parse.y"
2215 { if (current_function_decl == 0)
2217 error ("braced-group within expression allowed only inside a function");
2220 /* We must force a BLOCK for this level
2221 so that, if it is not expanded later,
2222 there is a way to turn off the entire subtree of blocks
2223 that are contained in it. */
2225 push_iterator_stack ();
2226 push_label_level ();
2227 yyval.ttype = expand_start_stmt_expr (); ;
2230 #line 698 "c-parse.y"
2233 pedwarn ("ANSI C forbids braced-groups within expressions");
2234 pop_iterator_stack ();
2236 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2237 /* The statements have side effects, so the group does. */
2238 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2240 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2242 /* Make a BIND_EXPR for the BLOCK already made. */
2243 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2244 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2245 /* Remove the block from the tree at this point.
2246 It gets put back at the proper place
2247 when the BIND_EXPR is expanded. */
2248 delete_block (yyvsp[-1].ttype);
2251 yyval.ttype = yyvsp[-1].ttype;
2255 #line 721 "c-parse.y"
2256 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2259 #line 723 "c-parse.y"
2260 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2263 #line 725 "c-parse.y"
2265 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2269 #line 729 "c-parse.y"
2271 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2273 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2277 #line 735 "c-parse.y"
2278 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2281 #line 737 "c-parse.y"
2282 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2285 #line 744 "c-parse.y"
2286 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2289 #line 753 "c-parse.y"
2290 { c_mark_varargs ();
2292 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2295 #line 763 "c-parse.y"
2299 #line 779 "c-parse.y"
2300 { current_declspecs = TREE_VALUE (declspec_stack);
2301 prefix_attributes = TREE_PURPOSE (declspec_stack);
2302 declspec_stack = TREE_CHAIN (declspec_stack);
2303 resume_momentary (yyvsp[-2].itype); ;
2306 #line 784 "c-parse.y"
2307 { current_declspecs = TREE_VALUE (declspec_stack);
2308 prefix_attributes = TREE_PURPOSE (declspec_stack);
2309 declspec_stack = TREE_CHAIN (declspec_stack);
2310 resume_momentary (yyvsp[-2].itype); ;
2313 #line 789 "c-parse.y"
2314 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2315 pedwarn ("empty declaration"); ;
2318 #line 792 "c-parse.y"
2319 { pedwarn ("empty declaration"); ;
2322 #line 801 "c-parse.y"
2326 #line 816 "c-parse.y"
2327 { yyval.itype = suspend_momentary ();
2328 pending_xref_error ();
2329 declspec_stack = tree_cons (prefix_attributes,
2332 split_specs_attrs (yyvsp[0].ttype,
2333 ¤t_declspecs, &prefix_attributes); ;
2336 #line 827 "c-parse.y"
2337 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2340 #line 832 "c-parse.y"
2341 { current_declspecs = TREE_VALUE (declspec_stack);
2342 prefix_attributes = TREE_PURPOSE (declspec_stack);
2343 declspec_stack = TREE_CHAIN (declspec_stack);
2344 resume_momentary (yyvsp[-2].itype); ;
2347 #line 837 "c-parse.y"
2348 { current_declspecs = TREE_VALUE (declspec_stack);
2349 prefix_attributes = TREE_PURPOSE (declspec_stack);
2350 declspec_stack = TREE_CHAIN (declspec_stack);
2351 resume_momentary (yyvsp[-2].itype); ;
2354 #line 842 "c-parse.y"
2355 { current_declspecs = TREE_VALUE (declspec_stack);
2356 prefix_attributes = TREE_PURPOSE (declspec_stack);
2357 declspec_stack = TREE_CHAIN (declspec_stack);
2358 resume_momentary (yyvsp[-1].itype); ;
2361 #line 847 "c-parse.y"
2362 { current_declspecs = TREE_VALUE (declspec_stack);
2363 prefix_attributes = TREE_PURPOSE (declspec_stack);
2364 declspec_stack = TREE_CHAIN (declspec_stack);
2365 resume_momentary (yyvsp[-1].itype); ;
2368 #line 852 "c-parse.y"
2369 { shadow_tag (yyvsp[-1].ttype); ;
2372 #line 854 "c-parse.y"
2373 { pedwarn ("empty declaration"); ;
2376 #line 856 "c-parse.y"
2377 { pedantic = yyvsp[-1].itype; ;
2380 #line 866 "c-parse.y"
2381 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2384 #line 868 "c-parse.y"
2385 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2388 #line 872 "c-parse.y"
2389 { yyval.ttype = NULL_TREE; ;
2392 #line 874 "c-parse.y"
2393 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2396 #line 876 "c-parse.y"
2397 { if (extra_warnings)
2398 warning ("`%s' is not at beginning of declaration",
2399 IDENTIFIER_POINTER (yyvsp[0].ttype));
2400 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2403 #line 881 "c-parse.y"
2404 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2407 #line 886 "c-parse.y"
2408 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2411 #line 888 "c-parse.y"
2412 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2415 #line 893 "c-parse.y"
2416 { yyval.ttype = NULL_TREE; ;
2419 #line 895 "c-parse.y"
2420 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2423 #line 897 "c-parse.y"
2424 { if (extra_warnings)
2425 warning ("`%s' is not at beginning of declaration",
2426 IDENTIFIER_POINTER (yyvsp[0].ttype));
2427 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2430 #line 910 "c-parse.y"
2431 { yyval.ttype = yyvsp[0].ttype; ;
2434 #line 912 "c-parse.y"
2435 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2438 #line 914 "c-parse.y"
2439 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2442 #line 916 "c-parse.y"
2443 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2446 #line 921 "c-parse.y"
2447 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2448 TREE_STATIC (yyval.ttype) = 1; ;
2451 #line 924 "c-parse.y"
2452 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2455 #line 926 "c-parse.y"
2456 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2457 TREE_STATIC (yyval.ttype) = 1; ;
2460 #line 929 "c-parse.y"
2461 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2462 warning ("`%s' is not at beginning of declaration",
2463 IDENTIFIER_POINTER (yyvsp[0].ttype));
2464 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2465 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2468 #line 943 "c-parse.y"
2469 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2472 #line 945 "c-parse.y"
2473 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2476 #line 949 "c-parse.y"
2477 { yyval.ttype = NULL_TREE; ;
2480 #line 951 "c-parse.y"
2481 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2484 #line 961 "c-parse.y"
2485 { /* For a typedef name, record the meaning, not the name.
2486 In case of `foo foo, bar;'. */
2487 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2490 #line 965 "c-parse.y"
2491 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2494 #line 967 "c-parse.y"
2495 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2498 #line 989 "c-parse.y"
2499 { yyval.ttype = NULL_TREE; ;
2502 #line 991 "c-parse.y"
2503 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2504 yyval.ttype = yyvsp[-1].ttype;
2508 #line 998 "c-parse.y"
2509 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2510 yyvsp[-1].ttype, prefix_attributes);
2511 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2514 #line 1003 "c-parse.y"
2516 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2519 #line 1006 "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);
2526 #line 1014 "c-parse.y"
2527 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2528 yyvsp[-1].ttype, prefix_attributes);
2529 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2532 #line 1019 "c-parse.y"
2534 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2535 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2538 #line 1023 "c-parse.y"
2539 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2540 yyvsp[0].ttype, prefix_attributes);
2541 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2544 #line 1031 "c-parse.y"
2545 { yyval.ttype = NULL_TREE; ;
2548 #line 1033 "c-parse.y"
2549 { yyval.ttype = yyvsp[0].ttype; ;
2552 #line 1038 "c-parse.y"
2553 { yyval.ttype = yyvsp[0].ttype; ;
2556 #line 1040 "c-parse.y"
2557 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2560 #line 1045 "c-parse.y"
2561 { yyval.ttype = yyvsp[-2].ttype; ;
2564 #line 1050 "c-parse.y"
2565 { yyval.ttype = yyvsp[0].ttype; ;
2568 #line 1052 "c-parse.y"
2569 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2572 #line 1057 "c-parse.y"
2573 { yyval.ttype = NULL_TREE; ;
2576 #line 1059 "c-parse.y"
2577 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2580 #line 1061 "c-parse.y"
2581 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2584 #line 1063 "c-parse.y"
2585 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2588 #line 1065 "c-parse.y"
2589 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2592 #line 1083 "c-parse.y"
2593 { really_start_incremental_init (NULL_TREE);
2594 /* Note that the call to clear_momentary
2595 is in process_init_element. */
2596 push_momentary (); ;
2599 #line 1088 "c-parse.y"
2600 { yyval.ttype = pop_init_level (0);
2601 if (yyval.ttype == error_mark_node
2602 && ! (yychar == STRING || yychar == CONSTANT))
2605 pop_momentary_nofree (); ;
2608 #line 1096 "c-parse.y"
2609 { yyval.ttype = error_mark_node; ;
2612 #line 1102 "c-parse.y"
2614 pedwarn ("ANSI C forbids empty initializer braces"); ;
2617 #line 1116 "c-parse.y"
2618 { process_init_element (yyvsp[0].ttype); ;
2621 #line 1118 "c-parse.y"
2622 { push_init_level (0); ;
2625 #line 1120 "c-parse.y"
2626 { process_init_element (pop_init_level (0)); ;
2629 #line 1126 "c-parse.y"
2630 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
2633 #line 1129 "c-parse.y"
2634 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
2637 #line 1132 "c-parse.y"
2638 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2641 #line 1135 "c-parse.y"
2642 { set_init_label (yyvsp[-1].ttype); ;
2645 #line 1138 "c-parse.y"
2646 { set_init_label (yyvsp[-1].ttype); ;
2649 #line 1144 "c-parse.y"
2650 { push_c_function_context ();
2651 if (! start_function (current_declspecs, yyvsp[0].ttype,
2652 prefix_attributes, NULL_TREE, 1))
2654 pop_c_function_context ();
2657 reinit_parse_for_function (); ;
2660 #line 1153 "c-parse.y"
2661 { store_parm_decls (); ;
2664 #line 1161 "c-parse.y"
2665 { finish_function (1);
2666 pop_c_function_context (); ;
2669 #line 1167 "c-parse.y"
2670 { push_c_function_context ();
2671 if (! start_function (current_declspecs, yyvsp[0].ttype,
2672 prefix_attributes, NULL_TREE, 1))
2674 pop_c_function_context ();
2677 reinit_parse_for_function (); ;
2680 #line 1176 "c-parse.y"
2681 { store_parm_decls (); ;
2684 #line 1184 "c-parse.y"
2685 { finish_function (1);
2686 pop_c_function_context (); ;
2689 #line 1200 "c-parse.y"
2690 { yyval.ttype = yyvsp[-1].ttype; ;
2693 #line 1202 "c-parse.y"
2694 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2697 #line 1207 "c-parse.y"
2698 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2701 #line 1209 "c-parse.y"
2702 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2705 #line 1211 "c-parse.y"
2706 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2709 #line 1218 "c-parse.y"
2710 { yyval.ttype = yyvsp[0].ttype; ;
2713 #line 1229 "c-parse.y"
2714 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2717 #line 1234 "c-parse.y"
2718 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2721 #line 1236 "c-parse.y"
2722 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2725 #line 1238 "c-parse.y"
2726 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2729 #line 1245 "c-parse.y"
2730 { yyval.ttype = yyvsp[0].ttype; ;
2733 #line 1254 "c-parse.y"
2734 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2737 #line 1259 "c-parse.y"
2738 { yyval.ttype = yyvsp[-1].ttype; ;
2741 #line 1261 "c-parse.y"
2742 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2745 #line 1263 "c-parse.y"
2746 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2749 #line 1265 "c-parse.y"
2750 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2753 #line 1272 "c-parse.y"
2754 { yyval.ttype = yyvsp[0].ttype; ;
2757 #line 1278 "c-parse.y"
2758 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2759 /* Start scope of tag before parsing components. */
2763 #line 1282 "c-parse.y"
2764 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2767 #line 1284 "c-parse.y"
2768 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2769 yyvsp[-2].ttype, yyvsp[0].ttype);
2773 #line 1288 "c-parse.y"
2774 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2777 #line 1290 "c-parse.y"
2778 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2781 #line 1292 "c-parse.y"
2782 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2785 #line 1294 "c-parse.y"
2786 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2787 yyvsp[-2].ttype, yyvsp[0].ttype);
2791 #line 1298 "c-parse.y"
2792 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2795 #line 1300 "c-parse.y"
2796 { yyvsp[0].itype = suspend_momentary ();
2797 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2800 #line 1303 "c-parse.y"
2801 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2802 resume_momentary (yyvsp[-5].itype); ;
2805 #line 1306 "c-parse.y"
2806 { yyvsp[0].itype = suspend_momentary ();
2807 yyval.ttype = start_enum (NULL_TREE); ;
2810 #line 1309 "c-parse.y"
2811 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2812 resume_momentary (yyvsp[-5].itype); ;
2815 #line 1312 "c-parse.y"
2816 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2819 #line 1323 "c-parse.y"
2820 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2823 #line 1328 "c-parse.y"
2824 { yyval.ttype = yyvsp[0].ttype; ;
2827 #line 1330 "c-parse.y"
2828 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2829 pedwarn ("no semicolon at end of struct or union"); ;
2832 #line 1335 "c-parse.y"
2833 { yyval.ttype = NULL_TREE; ;
2836 #line 1337 "c-parse.y"
2837 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2840 #line 1339 "c-parse.y"
2842 pedwarn ("extra semicolon in struct or union specified"); ;
2845 #line 1354 "c-parse.y"
2846 { yyval.ttype = yyvsp[0].ttype;
2847 current_declspecs = TREE_VALUE (declspec_stack);
2848 prefix_attributes = TREE_PURPOSE (declspec_stack);
2849 declspec_stack = TREE_CHAIN (declspec_stack);
2850 resume_momentary (yyvsp[-1].itype); ;
2853 #line 1360 "c-parse.y"
2855 pedwarn ("ANSI C forbids member declarations with no members");
2856 shadow_tag(yyvsp[0].ttype);
2857 yyval.ttype = NULL_TREE; ;
2860 #line 1365 "c-parse.y"
2861 { yyval.ttype = yyvsp[0].ttype;
2862 current_declspecs = TREE_VALUE (declspec_stack);
2863 prefix_attributes = TREE_PURPOSE (declspec_stack);
2864 declspec_stack = TREE_CHAIN (declspec_stack);
2865 resume_momentary (yyvsp[-1].itype); ;
2868 #line 1371 "c-parse.y"
2870 pedwarn ("ANSI C forbids member declarations with no members");
2871 shadow_tag(yyvsp[0].ttype);
2872 yyval.ttype = NULL_TREE; ;
2875 #line 1376 "c-parse.y"
2876 { yyval.ttype = NULL_TREE; ;
2879 #line 1378 "c-parse.y"
2880 { yyval.ttype = yyvsp[0].ttype;
2881 pedantic = yyvsp[-1].itype; ;
2884 #line 1385 "c-parse.y"
2885 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2888 #line 1390 "c-parse.y"
2889 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2890 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2893 #line 1394 "c-parse.y"
2894 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2895 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2898 #line 1397 "c-parse.y"
2899 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2900 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2903 #line 1409 "c-parse.y"
2904 { if (yyvsp[-2].ttype == error_mark_node)
2905 yyval.ttype = yyvsp[-2].ttype;
2907 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2910 #line 1414 "c-parse.y"
2911 { yyval.ttype = error_mark_node; ;
2914 #line 1420 "c-parse.y"
2915 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2918 #line 1422 "c-parse.y"
2919 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2922 #line 1427 "c-parse.y"
2923 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2926 #line 1429 "c-parse.y"
2927 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2930 #line 1434 "c-parse.y"
2931 { yyval.ttype = NULL_TREE; ;
2934 #line 1440 "c-parse.y"
2935 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2938 #line 1442 "c-parse.y"
2939 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2942 #line 1447 "c-parse.y"
2943 { yyval.ttype = NULL_TREE; ;
2946 #line 1449 "c-parse.y"
2947 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2950 #line 1454 "c-parse.y"
2951 { yyval.ttype = yyvsp[-1].ttype; ;
2954 #line 1457 "c-parse.y"
2955 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2958 #line 1459 "c-parse.y"
2959 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2962 #line 1461 "c-parse.y"
2963 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2966 #line 1463 "c-parse.y"
2967 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2970 #line 1465 "c-parse.y"
2971 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2974 #line 1467 "c-parse.y"
2975 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2978 #line 1469 "c-parse.y"
2979 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2982 #line 1471 "c-parse.y"
2983 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2986 #line 1482 "c-parse.y"
2988 if (pedantic && yyvsp[0].ends_in_label)
2989 pedwarn ("ANSI C forbids label at end of compound statement");
2993 #line 1491 "c-parse.y"
2994 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
2997 #line 1493 "c-parse.y"
2998 { yyval.ends_in_label = 0; ;
3001 #line 1505 "c-parse.y"
3002 { emit_line_note (input_filename, lineno);
3006 expand_start_bindings (0);
3010 #line 1518 "c-parse.y"
3012 pedwarn ("ANSI C forbids label declarations"); ;
3015 #line 1529 "c-parse.y"
3017 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3019 tree label = shadow_label (TREE_VALUE (link));
3020 C_DECLARED_LABEL_FLAG (label) = 1;
3021 declare_nonlocal_label (label);
3026 #line 1543 "c-parse.y"
3030 #line 1548 "c-parse.y"
3031 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3034 #line 1550 "c-parse.y"
3035 { emit_line_note (input_filename, lineno);
3036 expand_end_bindings (getdecls (), 1, 0);
3037 yyval.ttype = poplevel (1, 1, 0);
3038 if (yychar == CONSTANT || yychar == STRING)
3039 pop_momentary_nofree ();
3044 #line 1558 "c-parse.y"
3045 { emit_line_note (input_filename, lineno);
3046 expand_end_bindings (getdecls (), kept_level_p (), 0);
3047 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3048 if (yychar == CONSTANT || yychar == STRING)
3049 pop_momentary_nofree ();
3054 #line 1566 "c-parse.y"
3055 { emit_line_note (input_filename, lineno);
3056 expand_end_bindings (getdecls (), kept_level_p (), 0);
3057 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3058 if (yychar == CONSTANT || yychar == STRING)
3059 pop_momentary_nofree ();
3064 #line 1586 "c-parse.y"
3065 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3066 expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
3067 yyval.itype = stmt_count;
3068 if_stmt_file = yyvsp[-5].filename;
3069 if_stmt_line = yyvsp[-4].lineno;
3070 position_after_white_space (); ;
3073 #line 1599 "c-parse.y"
3075 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3076 /* See comment in `while' alternative, above. */
3078 expand_start_loop_continue_elsewhere (1);
3079 position_after_white_space (); ;
3082 #line 1606 "c-parse.y"
3083 { expand_loop_continue_here (); ;
3086 #line 1610 "c-parse.y"
3087 { yyval.filename = input_filename; ;
3090 #line 1614 "c-parse.y"
3091 { yyval.lineno = lineno; ;
3094 #line 1619 "c-parse.y"
3098 #line 1624 "c-parse.y"
3102 #line 1629 "c-parse.y"
3103 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3106 #line 1634 "c-parse.y"
3107 { yyval.ends_in_label = 0; ;
3110 #line 1636 "c-parse.y"
3111 { yyval.ends_in_label = 1; ;
3114 #line 1642 "c-parse.y"
3118 #line 1645 "c-parse.y"
3120 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3121 /* It appears that this should not be done--that a non-lvalue array
3122 shouldn't get an error if the value isn't used.
3123 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3124 if it appears as a top-level expression,
3125 but says nothing about non-lvalue arrays. */
3127 /* Call default_conversion to get an error
3128 on referring to a register array if pedantic. */
3129 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3130 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3131 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3133 iterator_expand (yyvsp[-1].ttype);
3134 clear_momentary (); ;
3137 #line 1662 "c-parse.y"
3138 { expand_start_else ();
3139 yyvsp[-1].itype = stmt_count;
3140 position_after_white_space (); ;
3143 #line 1666 "c-parse.y"
3144 { expand_end_cond ();
3145 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3146 warning ("empty body in an else-statement"); ;
3149 #line 1670 "c-parse.y"
3150 { expand_end_cond ();
3151 /* This warning is here instead of in simple_if, because we
3152 do not want a warning if an empty if is followed by an
3153 else statement. Increment stmt_count so we don't
3154 give a second error if this is a nested `if'. */
3155 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3156 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3157 "empty body in an if-statement"); ;
3160 #line 1682 "c-parse.y"
3161 { expand_end_cond (); ;
3164 #line 1684 "c-parse.y"
3166 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3167 /* The emit_nop used to come before emit_line_note,
3168 but that made the nop seem like part of the preceding line.
3169 And that was confusing when the preceding line was
3170 inside of an if statement and was not really executed.
3171 I think it ought to work to put the nop after the line number.
3172 We will see. --rms, July 15, 1991. */
3176 #line 1694 "c-parse.y"
3177 { /* Don't start the loop till we have succeeded
3178 in parsing the end test. This is to make sure
3179 that we end every loop we start. */
3180 expand_start_loop (1);
3181 emit_line_note (input_filename, lineno);
3182 expand_exit_loop_if_false (NULL_PTR,
3183 truthvalue_conversion (yyvsp[-1].ttype));
3184 position_after_white_space (); ;
3187 #line 1703 "c-parse.y"
3188 { expand_end_loop (); ;
3191 #line 1706 "c-parse.y"
3192 { emit_line_note (input_filename, lineno);
3193 expand_exit_loop_if_false (NULL_PTR,
3194 truthvalue_conversion (yyvsp[-2].ttype));
3196 clear_momentary (); ;
3199 #line 1713 "c-parse.y"
3200 { expand_end_loop ();
3201 clear_momentary (); ;
3204 #line 1717 "c-parse.y"
3206 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3207 /* See comment in `while' alternative, above. */
3209 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3210 /* Next step is to call expand_start_loop_continue_elsewhere,
3211 but wait till after we parse the entire for (...).
3212 Otherwise, invalid input might cause us to call that
3213 fn without calling expand_end_loop. */
3217 #line 1729 "c-parse.y"
3218 { yyvsp[0].lineno = lineno;
3219 yyval.filename = input_filename; ;
3222 #line 1732 "c-parse.y"
3224 /* Start the loop. Doing this after parsing
3225 all the expressions ensures we will end the loop. */
3226 expand_start_loop_continue_elsewhere (1);
3227 /* Emit the end-test, with a line number. */
3228 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3229 if (yyvsp[-4].ttype)
3230 expand_exit_loop_if_false (NULL_PTR,
3231 truthvalue_conversion (yyvsp[-4].ttype));
3232 /* Don't let the tree nodes for $9 be discarded by
3233 clear_momentary during the parsing of the next stmt. */
3235 yyvsp[-3].lineno = lineno;
3236 yyvsp[-2].filename = input_filename;
3237 position_after_white_space (); ;
3240 #line 1748 "c-parse.y"
3241 { /* Emit the increment expression, with a line number. */
3242 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3243 expand_loop_continue_here ();
3244 if (yyvsp[-3].ttype)
3245 c_expand_expr_stmt (yyvsp[-3].ttype);
3246 if (yychar == CONSTANT || yychar == STRING)
3247 pop_momentary_nofree ();
3250 expand_end_loop (); ;
3253 #line 1759 "c-parse.y"
3255 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3256 c_expand_start_case (yyvsp[-1].ttype);
3257 /* Don't let the tree nodes for $3 be discarded by
3258 clear_momentary during the parsing of the next stmt. */
3260 position_after_white_space (); ;
3263 #line 1767 "c-parse.y"
3264 { expand_end_case (yyvsp[-3].ttype);
3265 if (yychar == CONSTANT || yychar == STRING)
3266 pop_momentary_nofree ();
3271 #line 1773 "c-parse.y"
3273 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3274 if ( ! expand_exit_something ())
3275 error ("break statement not within loop or switch"); ;
3278 #line 1778 "c-parse.y"
3280 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3281 if (! expand_continue_loop (NULL_PTR))
3282 error ("continue statement not within a loop"); ;
3285 #line 1783 "c-parse.y"
3287 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3288 c_expand_return (NULL_TREE); ;
3291 #line 1787 "c-parse.y"
3293 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3294 c_expand_return (yyvsp[-1].ttype); ;
3297 #line 1791 "c-parse.y"
3299 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3300 STRIP_NOPS (yyvsp[-2].ttype);
3301 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3302 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3303 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3304 expand_asm (yyvsp[-2].ttype);
3306 error ("argument of `asm' is not a constant string"); ;
3309 #line 1802 "c-parse.y"
3311 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3312 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3313 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3314 input_filename, lineno); ;
3317 #line 1809 "c-parse.y"
3319 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3320 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3321 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3322 input_filename, lineno); ;
3325 #line 1817 "c-parse.y"
3327 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3328 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3329 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3330 input_filename, lineno); ;
3333 #line 1823 "c-parse.y"
3336 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3337 decl = lookup_label (yyvsp[-1].ttype);
3340 TREE_USED (decl) = 1;
3346 #line 1834 "c-parse.y"
3348 pedwarn ("ANSI C forbids `goto *expr;'");
3350 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3351 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3354 #line 1849 "c-parse.y"
3356 /* The value returned by this action is */
3357 /* 1 if everything is OK */
3358 /* 0 in case of error or already bound iterator */
3361 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3362 error ("invalid `for (ITERATOR)' syntax");
3363 else if (! ITERATOR_P (yyvsp[-1].ttype))
3364 error ("`%s' is not an iterator",
3365 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3366 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3367 error ("`for (%s)' inside expansion of same iterator",
3368 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3372 iterator_for_loop_start (yyvsp[-1].ttype);
3377 #line 1870 "c-parse.y"
3379 if (yyvsp[-1].itype)
3380 iterator_for_loop_end (yyvsp[-3].ttype);
3384 #line 1905 "c-parse.y"
3385 { register tree value = check_case_value (yyvsp[-1].ttype);
3387 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3391 if (value != error_mark_node)
3394 int success = pushcase (value, convert_and_check,
3397 error ("case label not within a switch statement");
3398 else if (success == 2)
3400 error ("duplicate case value");
3401 error_with_decl (duplicate, "this is the first entry for that value");
3403 else if (success == 3)
3404 warning ("case value out of range");
3405 else if (success == 5)
3406 error ("case label within scope of cleanup or variable array");
3408 position_after_white_space (); ;
3411 #line 1930 "c-parse.y"
3412 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3413 register tree value2 = check_case_value (yyvsp[-1].ttype);
3415 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3418 pedwarn ("ANSI C forbids case ranges");
3421 if (value1 != error_mark_node && value2 != error_mark_node)
3424 int success = pushcase_range (value1, value2,
3425 convert_and_check, label,
3428 error ("case label not within a switch statement");
3429 else if (success == 2)
3431 error ("duplicate case value");
3432 error_with_decl (duplicate, "this is the first entry for that value");
3434 else if (success == 3)
3435 warning ("case value out of range");
3436 else if (success == 4)
3437 warning ("empty case range");
3438 else if (success == 5)
3439 error ("case label within scope of cleanup or variable array");
3441 position_after_white_space (); ;
3444 #line 1961 "c-parse.y"
3448 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3449 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3452 error ("default label not within a switch statement");
3453 else if (success == 2)
3455 error ("multiple default labels in one switch");
3456 error_with_decl (duplicate, "this is the first default label");
3458 position_after_white_space (); ;
3461 #line 1976 "c-parse.y"
3462 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3466 expand_label (label);
3467 position_after_white_space (); ;
3470 #line 1988 "c-parse.y"
3471 { emit_line_note (input_filename, lineno);
3472 yyval.ttype = NULL_TREE; ;
3475 #line 1991 "c-parse.y"
3476 { emit_line_note (input_filename, lineno); ;
3479 #line 1996 "c-parse.y"
3480 { yyval.ttype = NULL_TREE; ;
3483 #line 2003 "c-parse.y"
3484 { yyval.ttype = NULL_TREE; ;
3487 #line 2010 "c-parse.y"
3488 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3491 #line 2015 "c-parse.y"
3492 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3495 #line 2020 "c-parse.y"
3496 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3499 #line 2022 "c-parse.y"
3500 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3503 #line 2028 "c-parse.y"
3505 clear_parm_order ();
3506 declare_parm_level (0); ;
3509 #line 2032 "c-parse.y"
3510 { yyval.ttype = yyvsp[0].ttype;
3511 parmlist_tags_warning ();
3512 poplevel (0, 0, 0); ;
3515 #line 2040 "c-parse.y"
3518 pedwarn ("ANSI C forbids forward parameter declarations");
3519 /* Mark the forward decls as such. */
3520 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3521 TREE_ASM_WRITTEN (parm) = 1;
3522 clear_parm_order (); ;
3525 #line 2048 "c-parse.y"
3526 { yyval.ttype = yyvsp[0].ttype; ;
3529 #line 2050 "c-parse.y"
3530 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3533 #line 2056 "c-parse.y"
3534 { yyval.ttype = get_parm_info (0); ;
3537 #line 2058 "c-parse.y"
3538 { yyval.ttype = get_parm_info (0);
3539 /* Gcc used to allow this as an extension. However, it does
3540 not work for all targets, and thus has been disabled.
3541 Also, since func (...) and func () are indistinguishable,
3542 it caused problems with the code in expand_builtin which
3543 tries to verify that BUILT_IN_NEXT_ARG is being used
3545 error ("ANSI C requires a named argument before `...'");
3549 #line 2068 "c-parse.y"
3550 { yyval.ttype = get_parm_info (1); ;
3553 #line 2070 "c-parse.y"
3554 { yyval.ttype = get_parm_info (0); ;
3557 #line 2075 "c-parse.y"
3558 { push_parm_decl (yyvsp[0].ttype); ;
3561 #line 2077 "c-parse.y"
3562 { push_parm_decl (yyvsp[0].ttype); ;
3565 #line 2084 "c-parse.y"
3566 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3568 build_tree_list (prefix_attributes,
3570 current_declspecs = TREE_VALUE (declspec_stack);
3571 prefix_attributes = TREE_PURPOSE (declspec_stack);
3572 declspec_stack = TREE_CHAIN (declspec_stack);
3573 resume_momentary (yyvsp[-2].itype); ;
3576 #line 2093 "c-parse.y"
3577 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3579 build_tree_list (prefix_attributes,
3581 current_declspecs = TREE_VALUE (declspec_stack);
3582 prefix_attributes = TREE_PURPOSE (declspec_stack);
3583 declspec_stack = TREE_CHAIN (declspec_stack);
3584 resume_momentary (yyvsp[-2].itype); ;
3587 #line 2102 "c-parse.y"
3588 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3590 build_tree_list (prefix_attributes,
3592 current_declspecs = TREE_VALUE (declspec_stack);
3593 prefix_attributes = TREE_PURPOSE (declspec_stack);
3594 declspec_stack = TREE_CHAIN (declspec_stack);
3595 resume_momentary (yyvsp[-2].itype); ;
3598 #line 2111 "c-parse.y"
3599 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3601 build_tree_list (prefix_attributes,
3603 current_declspecs = TREE_VALUE (declspec_stack);
3604 prefix_attributes = TREE_PURPOSE (declspec_stack);
3605 declspec_stack = TREE_CHAIN (declspec_stack);
3606 resume_momentary (yyvsp[-2].itype); ;
3609 #line 2121 "c-parse.y"
3610 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3612 build_tree_list (prefix_attributes,
3614 current_declspecs = TREE_VALUE (declspec_stack);
3615 prefix_attributes = TREE_PURPOSE (declspec_stack);
3616 declspec_stack = TREE_CHAIN (declspec_stack);
3617 resume_momentary (yyvsp[-2].itype); ;
3620 #line 2135 "c-parse.y"
3622 clear_parm_order ();
3623 declare_parm_level (1); ;
3626 #line 2139 "c-parse.y"
3627 { yyval.ttype = yyvsp[0].ttype;
3628 parmlist_tags_warning ();
3629 poplevel (0, 0, 0); ;
3632 #line 2147 "c-parse.y"
3634 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3635 if (TREE_VALUE (t) == NULL_TREE)
3636 error ("`...' in old-style identifier list");
3637 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3640 #line 2157 "c-parse.y"
3641 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3644 #line 2159 "c-parse.y"
3645 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3648 #line 2165 "c-parse.y"
3649 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3652 #line 2167 "c-parse.y"
3653 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3656 #line 2172 "c-parse.y"
3657 { yyval.itype = pedantic;
3661 /* the action file gets copied in in place of this dollarsign */
3662 #line 487 "/usr/local/share/bison.simple"
3673 short *ssp1 = yyss - 1;
3674 fprintf (stderr, "state stack now");
3675 while (ssp1 != yyssp)
3676 fprintf (stderr, " %d", *++ssp1);
3677 fprintf (stderr, "\n");
3687 yylsp->first_line = yylloc.first_line;
3688 yylsp->first_column = yylloc.first_column;
3689 yylsp->last_line = (yylsp-1)->last_line;
3690 yylsp->last_column = (yylsp-1)->last_column;
3695 yylsp->last_line = (yylsp+yylen-1)->last_line;
3696 yylsp->last_column = (yylsp+yylen-1)->last_column;
3700 /* Now "shift" the result of the reduction.
3701 Determine what state that goes to,
3702 based on the state we popped back to
3703 and the rule number reduced by. */
3707 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3708 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3709 yystate = yytable[yystate];
3711 yystate = yydefgoto[yyn - YYNTBASE];
3715 yyerrlab: /* here on detecting error */
3718 /* If not already recovering from an error, report this error. */
3722 #ifdef YYERROR_VERBOSE
3723 yyn = yypact[yystate];
3725 if (yyn > YYFLAG && yyn < YYLAST)
3732 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3733 for (x = (yyn < 0 ? -yyn : 0);
3734 x < (sizeof(yytname) / sizeof(char *)); x++)
3735 if (yycheck[x + yyn] == x)
3736 size += strlen(yytname[x]) + 15, count++;
3737 msg = (char *) malloc(size + 15);
3740 strcpy(msg, "parse error");
3745 for (x = (yyn < 0 ? -yyn : 0);
3746 x < (sizeof(yytname) / sizeof(char *)); x++)
3747 if (yycheck[x + yyn] == x)
3749 strcat(msg, count == 0 ? ", expecting `" : " or `");
3750 strcat(msg, yytname[x]);
3759 yyerror ("parse error; also virtual memory exceeded");
3762 #endif /* YYERROR_VERBOSE */
3763 yyerror("parse error");
3767 yyerrlab1: /* here on error raised explicitly by an action */
3769 if (yyerrstatus == 3)
3771 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3773 /* return failure if at end of input */
3774 if (yychar == YYEOF)
3779 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3785 /* Else will try to reuse lookahead token
3786 after shifting the error token. */
3788 yyerrstatus = 3; /* Each real token shifted decrements this */
3792 yyerrdefault: /* current state does not do anything special for the error token. */
3795 /* This is wrong; only states that explicitly want error tokens
3796 should shift them. */
3797 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3798 if (yyn) goto yydefault;
3801 yyerrpop: /* pop the current state because it cannot handle the error token */
3803 if (yyssp == yyss) YYABORT;
3813 short *ssp1 = yyss - 1;
3814 fprintf (stderr, "Error: state stack now");
3815 while (ssp1 != yyssp)
3816 fprintf (stderr, " %d", *++ssp1);
3817 fprintf (stderr, "\n");
3823 yyn = yypact[yystate];
3828 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3847 fprintf(stderr, "Shifting error token, ");
3858 #line 2176 "c-parse.y"