2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
81 #ifdef MULTIBYTE_CHARS
86 /* Since parsers are distinct for each language, put the language string
88 char *language_string = "GNU C";
90 /* Like YYERROR but do call yyerror. */
91 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
93 /* Cause the `yydebug' variable to be defined. */
97 typedef union {long itype; tree ttype; enum tree_code code;
98 char *filename; int lineno; int ends_in_label; } YYSTYPE;
101 /* Number of statements (loosely speaking) and compound statements
103 static int stmt_count;
104 static int compstmt_count;
106 /* Input file and line number of the end of the body of last simple_if;
107 used by the stmt-rule immediately after simple_if returns. */
108 static char *if_stmt_file;
109 static int if_stmt_line;
111 /* List of types and structure classes of the current declaration. */
112 static tree current_declspecs = NULL_TREE;
113 static tree prefix_attributes = NULL_TREE;
115 /* Stack of saved values of current_declspecs and prefix_attributes. */
116 static tree declspec_stack;
118 /* 1 if we explained undeclared var errors. */
119 static int undeclared_variable_notice;
122 /* Tell yyparse how to print a token's value, if yydebug is set. */
124 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
125 extern void yyprint PROTO ((FILE *, int, YYSTYPE));
137 #define YYFLAG -32768
140 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 239)
142 static const char yytranslate[] = { 0,
143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
147 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
148 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
149 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
169 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
170 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
171 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
172 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
173 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
174 70, 71, 72, 73, 74, 75
178 static const short yyprhs[] = { 0,
179 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
180 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
181 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
182 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
183 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
184 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
185 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
186 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
187 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
188 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
189 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
190 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
191 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
192 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
193 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
194 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
195 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
196 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
197 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
198 582, 585, 587, 591, 593, 594, 599, 601, 602, 611,
199 612, 619, 620, 626, 627, 632, 633, 639, 640, 641,
200 647, 648, 649, 655, 657, 659, 663, 667, 672, 676,
201 680, 684, 686, 690, 695, 699, 703, 707, 709, 713,
202 717, 721, 726, 730, 734, 736, 737, 745, 751, 754,
203 755, 763, 769, 772, 773, 782, 783, 791, 794, 795,
204 797, 798, 800, 802, 805, 806, 810, 813, 817, 819,
205 823, 825, 827, 830, 832, 836, 841, 848, 854, 856,
206 860, 862, 864, 868, 871, 874, 875, 877, 879, 882,
207 883, 886, 890, 894, 897, 901, 906, 910, 913, 917,
208 920, 922, 924, 927, 930, 931, 933, 936, 937, 938,
209 940, 942, 945, 949, 951, 954, 956, 959, 966, 972,
210 978, 981, 984, 989, 990, 995, 996, 997, 1001, 1006,
211 1010, 1012, 1014, 1016, 1018, 1021, 1022, 1027, 1029, 1033,
212 1034, 1035, 1043, 1049, 1052, 1053, 1054, 1055, 1068, 1069,
213 1076, 1079, 1082, 1085, 1089, 1096, 1105, 1116, 1129, 1133,
214 1138, 1140, 1142, 1143, 1150, 1154, 1160, 1163, 1166, 1167,
215 1169, 1170, 1172, 1173, 1175, 1177, 1181, 1186, 1188, 1192,
216 1193, 1196, 1199, 1200, 1205, 1208, 1209, 1211, 1213, 1217,
217 1219, 1223, 1228, 1233, 1238, 1243, 1248, 1249, 1252, 1254,
218 1257, 1259, 1263, 1265, 1269
221 static const short yyrhs[] = { -1,
222 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
223 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
224 0, 238, 88, 0, 122, 136, 77, 0, 129, 122,
225 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
226 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
227 77, 0, 0, 0, 125, 122, 165, 91, 116, 92,
228 196, 0, 125, 122, 165, 1, 0, 0, 0, 129,
229 122, 168, 93, 116, 94, 196, 0, 129, 122, 168,
230 1, 0, 0, 0, 122, 168, 95, 116, 96, 196,
231 0, 122, 168, 1, 0, 3, 0, 4, 0, 43,
232 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
233 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
234 101, 81, 107, 0, 113, 0, 50, 105, 0, 238,
235 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
236 0, 103, 59, 183, 76, 0, 104, 102, 0, 104,
237 59, 183, 76, 0, 33, 105, 0, 34, 105, 0,
238 11, 0, 29, 0, 102, 0, 59, 183, 76, 105,
239 0, 0, 59, 183, 76, 82, 106, 150, 78, 0,
240 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
241 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
242 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
243 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
244 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
245 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
246 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
247 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
248 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
249 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
250 0, 0, 59, 114, 198, 76, 0, 113, 59, 100,
251 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
252 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
253 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
254 10, 0, 203, 204, 119, 0, 117, 0, 191, 0,
255 118, 117, 0, 117, 191, 0, 127, 122, 135, 77,
256 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
257 77, 0, 203, 204, 124, 0, 120, 0, 191, 0,
258 121, 120, 0, 120, 191, 0, 0, 0, 125, 122,
259 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
260 159, 0, 129, 122, 162, 0, 125, 77, 0, 129,
261 77, 0, 238, 124, 0, 133, 126, 0, 129, 133,
262 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
263 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
264 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
265 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
266 130, 7, 0, 130, 5, 0, 133, 132, 0, 185,
267 133, 132, 0, 0, 132, 134, 0, 6, 0, 169,
268 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
269 183, 76, 0, 6, 0, 7, 0, 169, 0, 138,
270 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
271 0, 0, 27, 59, 115, 76, 0, 0, 165, 137,
272 142, 36, 139, 148, 0, 165, 137, 142, 0, 0,
273 168, 137, 142, 36, 141, 148, 0, 168, 137, 142,
274 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
275 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
276 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
277 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
278 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
279 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
280 0, 151, 174, 0, 152, 0, 151, 81, 152, 0,
281 107, 0, 0, 82, 153, 150, 78, 0, 1, 0,
282 0, 60, 107, 10, 107, 83, 36, 154, 152, 0,
283 0, 60, 107, 83, 36, 155, 152, 0, 0, 60,
284 107, 83, 156, 152, 0, 0, 97, 38, 157, 152,
285 0, 0, 58, 97, 36, 158, 152, 0, 0, 0,
286 165, 160, 116, 161, 198, 0, 0, 0, 168, 163,
287 116, 164, 198, 0, 166, 0, 168, 0, 59, 166,
288 76, 0, 166, 59, 233, 0, 166, 60, 99, 83,
289 0, 166, 60, 83, 0, 50, 186, 166, 0, 143,
290 123, 166, 0, 4, 0, 167, 59, 233, 0, 167,
291 60, 99, 83, 0, 167, 60, 83, 0, 50, 186,
292 167, 0, 143, 123, 167, 0, 4, 0, 168, 59,
293 233, 0, 59, 168, 76, 0, 50, 186, 168, 0,
294 168, 60, 99, 83, 0, 168, 60, 83, 0, 143,
295 123, 168, 0, 3, 0, 0, 13, 97, 82, 170,
296 176, 78, 142, 0, 13, 82, 176, 78, 142, 0,
297 13, 97, 0, 0, 14, 97, 82, 171, 176, 78,
298 142, 0, 14, 82, 176, 78, 142, 0, 14, 97,
299 0, 0, 12, 97, 82, 172, 181, 175, 78, 142,
300 0, 0, 12, 82, 173, 181, 175, 78, 142, 0,
301 12, 97, 0, 0, 81, 0, 0, 81, 0, 177,
302 0, 177, 178, 0, 0, 177, 178, 77, 0, 177,
303 77, 0, 131, 122, 179, 0, 131, 0, 185, 122,
304 179, 0, 185, 0, 1, 0, 238, 178, 0, 180,
305 0, 179, 81, 180, 0, 203, 204, 165, 142, 0,
306 203, 204, 165, 38, 107, 142, 0, 203, 204, 38,
307 107, 142, 0, 182, 0, 181, 81, 182, 0, 1,
308 0, 97, 0, 97, 36, 107, 0, 131, 184, 0,
309 185, 184, 0, 0, 187, 0, 7, 0, 185, 7,
310 0, 0, 186, 7, 0, 59, 187, 76, 0, 50,
311 186, 187, 0, 50, 186, 0, 187, 59, 226, 0,
312 187, 60, 99, 83, 0, 187, 60, 83, 0, 59,
313 226, 0, 60, 99, 83, 0, 60, 83, 0, 189,
314 0, 206, 0, 189, 206, 0, 189, 191, 0, 0,
315 188, 0, 1, 77, 0, 0, 0, 194, 0, 195,
316 0, 194, 195, 0, 32, 237, 77, 0, 198, 0,
317 1, 198, 0, 82, 0, 197, 78, 0, 197, 192,
318 193, 121, 190, 78, 0, 197, 192, 193, 1, 78,
319 0, 197, 192, 193, 188, 78, 0, 200, 205, 0,
320 200, 1, 0, 15, 59, 99, 76, 0, 0, 18,
321 202, 205, 17, 0, 0, 0, 203, 204, 208, 0,
322 203, 204, 219, 205, 0, 203, 204, 207, 0, 208,
323 0, 219, 0, 198, 0, 216, 0, 99, 77, 0,
324 0, 199, 16, 209, 205, 0, 199, 0, 199, 16,
325 1, 0, 0, 0, 17, 210, 59, 99, 76, 211,
326 205, 0, 201, 59, 99, 76, 77, 0, 201, 1,
327 0, 0, 0, 0, 19, 59, 221, 77, 212, 221,
328 77, 213, 221, 76, 214, 205, 0, 0, 20, 59,
329 99, 76, 215, 205, 0, 23, 77, 0, 24, 77,
330 0, 25, 77, 0, 25, 99, 77, 0, 27, 220,
331 59, 99, 76, 77, 0, 27, 220, 59, 99, 38,
332 222, 76, 77, 0, 27, 220, 59, 99, 38, 222,
333 38, 222, 76, 77, 0, 27, 220, 59, 99, 38,
334 222, 38, 222, 38, 225, 76, 77, 0, 26, 97,
335 77, 0, 26, 50, 99, 77, 0, 77, 0, 217,
336 0, 0, 19, 59, 113, 76, 218, 205, 0, 21,
337 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
338 38, 0, 97, 38, 0, 0, 7, 0, 0, 99,
339 0, 0, 223, 0, 224, 0, 223, 81, 224, 0,
340 9, 59, 99, 76, 0, 115, 0, 225, 81, 115,
341 0, 0, 227, 228, 0, 230, 76, 0, 0, 231,
342 77, 229, 228, 0, 1, 76, 0, 0, 10, 0,
343 231, 0, 231, 81, 10, 0, 232, 0, 231, 81,
344 232, 0, 125, 122, 167, 142, 0, 125, 122, 168,
345 142, 0, 125, 122, 184, 142, 0, 129, 122, 168,
346 142, 0, 129, 122, 184, 142, 0, 0, 234, 235,
347 0, 228, 0, 236, 76, 0, 3, 0, 236, 81,
348 3, 0, 97, 0, 237, 81, 97, 0, 31, 0
354 static const short yyrline[] = { 0,
355 231, 236, 250, 252, 252, 253, 255, 257, 258, 266,
356 270, 281, 286, 291, 293, 295, 296, 297, 302, 309,
357 311, 316, 321, 327, 329, 334, 339, 345, 347, 352,
358 359, 361, 364, 366, 368, 370, 372, 374, 376, 380,
359 384, 387, 390, 393, 397, 399, 402, 405, 409, 437,
360 443, 446, 449, 452, 454, 458, 462, 466, 468, 471,
361 475, 502, 504, 506, 508, 510, 512, 514, 516, 518,
362 520, 522, 524, 526, 528, 532, 534, 538, 540, 543,
363 547, 549, 556, 559, 562, 568, 667, 668, 670, 676,
364 678, 692, 715, 717, 719, 723, 729, 731, 736, 738,
365 743, 745, 746, 756, 761, 763, 764, 765, 772, 778,
366 783, 786, 794, 799, 801, 802, 803, 810, 821, 825,
367 831, 836, 841, 846, 848, 850, 859, 862, 866, 868,
368 870, 875, 879, 882, 886, 889, 891, 903, 906, 908,
369 910, 914, 918, 920, 923, 936, 939, 943, 945, 953,
370 954, 955, 959, 961, 967, 968, 969, 972, 974, 977,
371 979, 982, 985, 991, 998, 1000, 1007, 1014, 1017, 1024,
372 1027, 1031, 1034, 1038, 1043, 1046, 1050, 1053, 1055, 1057,
373 1059, 1066, 1068, 1069, 1070, 1075, 1077, 1082, 1090, 1095,
374 1099, 1102, 1104, 1109, 1112, 1114, 1116, 1120, 1123, 1123,
375 1126, 1126, 1129, 1129, 1132, 1132, 1135, 1137, 1148, 1156,
376 1160, 1171, 1179, 1186, 1188, 1193, 1196, 1201, 1203, 1205,
377 1212, 1214, 1222, 1228, 1230, 1232, 1239, 1241, 1247, 1253,
378 1255, 1257, 1259, 1266, 1268, 1271, 1276, 1278, 1282, 1284,
379 1286, 1288, 1292, 1294, 1297, 1300, 1303, 1306, 1310, 1312,
380 1315, 1317, 1321, 1324, 1329, 1331, 1333, 1347, 1354, 1359,
381 1365, 1370, 1372, 1377, 1379, 1383, 1387, 1391, 1401, 1403,
382 1408, 1413, 1416, 1420, 1423, 1427, 1430, 1433, 1436, 1440,
383 1443, 1447, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465,
384 1475, 1483, 1485, 1487, 1491, 1493, 1496, 1499, 1510, 1512,
385 1517, 1519, 1522, 1536, 1539, 1542, 1544, 1546, 1554, 1562,
386 1573, 1578, 1581, 1595, 1604, 1608, 1612, 1616, 1622, 1626,
387 1631, 1634, 1639, 1642, 1643, 1660, 1665, 1668, 1680, 1682,
388 1692, 1702, 1703, 1711, 1714, 1726, 1730, 1747, 1757, 1766,
389 1771, 1776, 1781, 1785, 1789, 1800, 1807, 1814, 1821, 1832,
390 1838, 1841, 1846, 1869, 1903, 1934, 1965, 1980, 1991, 1995,
391 1999, 2002, 2007, 2009, 2012, 2014, 2018, 2023, 2026, 2032,
392 2037, 2042, 2044, 2053, 2054, 2060, 2062, 2072, 2074, 2078,
393 2081, 2087, 2097, 2106, 2115, 2125, 2139, 2144, 2149, 2151,
394 2160, 2163, 2168, 2171, 2175
399 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
401 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
402 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
403 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
404 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
405 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
406 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
407 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
408 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
409 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
410 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
411 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
412 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
413 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
414 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
415 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
416 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
417 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
418 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
419 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
420 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
421 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
422 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
423 "structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
424 "component_decl_list2","component_decl","components","component_declarator",
425 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
426 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
427 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
428 "if_prefix","do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt",
429 "lineno_stmt_or_label","stmt_or_label","stmt","@34","@35","@36","@37","@38",
430 "@39","@40","all_iter_stmt","all_iter_stmt_simple","@41","label","maybe_type_qual",
431 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
432 "@42","parmlist_1","@43","parmlist_2","parms","parm","parmlist_or_identifiers",
433 "@44","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
437 static const short yyr1[] = { 0,
438 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
439 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
440 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
441 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
442 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
443 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
444 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
445 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
446 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
447 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
448 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
449 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
450 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
451 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
452 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
453 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
454 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
455 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
456 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
457 150, 151, 151, 152, 153, 152, 152, 154, 152, 155,
458 152, 156, 152, 157, 152, 158, 152, 160, 161, 159,
459 163, 164, 162, 165, 165, 166, 166, 166, 166, 166,
460 166, 166, 167, 167, 167, 167, 167, 167, 168, 168,
461 168, 168, 168, 168, 168, 170, 169, 169, 169, 171,
462 169, 169, 169, 172, 169, 173, 169, 169, 174, 174,
463 175, 175, 176, 176, 177, 177, 177, 178, 178, 178,
464 178, 178, 178, 179, 179, 180, 180, 180, 181, 181,
465 181, 182, 182, 183, 183, 184, 184, 185, 185, 186,
466 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
467 188, 189, 189, 189, 190, 190, 191, 192, 193, 193,
468 194, 194, 195, 196, 196, 197, 198, 198, 198, 198,
469 199, 199, 200, 202, 201, 203, 204, 205, 205, 206,
470 207, 207, 208, 208, 208, 209, 208, 208, 208, 210,
471 211, 208, 208, 208, 212, 213, 214, 208, 215, 208,
472 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
473 208, 216, 218, 217, 219, 219, 219, 219, 220, 220,
474 221, 221, 222, 222, 223, 223, 224, 225, 225, 227,
475 226, 228, 229, 228, 228, 230, 230, 230, 230, 231,
476 231, 232, 232, 232, 232, 232, 234, 233, 235, 235,
477 236, 236, 237, 237, 238
480 static const short yyr2[] = { 0,
481 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
482 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
483 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
485 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
486 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
487 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
488 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
489 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
490 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
491 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
492 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
493 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
494 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
495 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
496 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
497 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
498 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
499 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
500 2, 1, 3, 1, 0, 4, 1, 0, 8, 0,
501 6, 0, 5, 0, 4, 0, 5, 0, 0, 5,
502 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
503 3, 1, 3, 4, 3, 3, 3, 1, 3, 3,
504 3, 4, 3, 3, 1, 0, 7, 5, 2, 0,
505 7, 5, 2, 0, 8, 0, 7, 2, 0, 1,
506 0, 1, 1, 2, 0, 3, 2, 3, 1, 3,
507 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
508 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
509 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
510 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
511 1, 2, 3, 1, 2, 1, 2, 6, 5, 5,
512 2, 2, 4, 0, 4, 0, 0, 3, 4, 3,
513 1, 1, 1, 1, 2, 0, 4, 1, 3, 0,
514 0, 7, 5, 2, 0, 0, 0, 12, 0, 6,
515 2, 2, 2, 3, 6, 8, 10, 12, 3, 4,
516 1, 1, 0, 6, 3, 5, 2, 2, 0, 1,
517 0, 1, 0, 1, 1, 3, 4, 1, 3, 0,
518 2, 2, 0, 4, 2, 0, 1, 1, 3, 1,
519 3, 4, 4, 4, 4, 4, 0, 2, 1, 2,
523 static const short yydefact[] = { 3,
524 5, 0, 0, 0, 152, 143, 150, 142, 0, 0,
525 0, 0, 0, 0, 395, 18, 4, 8, 7, 0,
526 118, 118, 138, 129, 139, 172, 151, 0, 6, 16,
527 17, 31, 32, 246, 248, 255, 239, 255, 243, 0,
528 0, 0, 235, 280, 0, 0, 160, 119, 0, 15,
529 0, 14, 0, 140, 129, 141, 145, 144, 127, 173,
530 10, 0, 244, 0, 0, 236, 0, 240, 86, 87,
531 99, 56, 57, 0, 0, 0, 33, 35, 34, 0,
532 36, 37, 0, 38, 39, 0, 0, 40, 58, 0,
533 0, 62, 43, 45, 88, 0, 278, 0, 276, 148,
534 0, 276, 177, 0, 0, 11, 0, 0, 30, 0,
535 387, 0, 0, 170, 222, 280, 0, 0, 158, 119,
536 0, 214, 215, 0, 0, 128, 131, 155, 156, 130,
537 132, 157, 271, 272, 251, 269, 0, 170, 262, 257,
538 118, 254, 118, 0, 255, 170, 255, 54, 55, 49,
539 46, 0, 0, 0, 0, 48, 0, 0, 0, 50,
540 0, 52, 0, 0, 79, 77, 75, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
542 98, 0, 0, 41, 0, 100, 47, 153, 280, 370,
543 0, 274, 277, 146, 154, 279, 148, 275, 183, 184,
544 185, 182, 0, 175, 178, 281, 231, 230, 161, 162,
545 234, 0, 229, 0, 233, 0, 0, 28, 0, 316,
546 106, 317, 169, 171, 0, 0, 13, 0, 0, 22,
547 0, 170, 387, 0, 12, 26, 0, 0, 252, 0,
548 251, 238, 316, 256, 316, 263, 0, 242, 0, 90,
549 89, 306, 298, 0, 0, 9, 44, 0, 0, 85,
550 84, 0, 0, 0, 0, 73, 74, 72, 71, 70,
551 68, 69, 63, 64, 65, 66, 67, 96, 95, 0,
552 42, 0, 284, 0, 288, 0, 290, 0, 370, 0,
553 149, 147, 0, 177, 41, 0, 0, 391, 377, 118,
554 118, 389, 0, 378, 380, 388, 0, 232, 297, 0,
555 108, 103, 107, 0, 167, 220, 216, 159, 221, 20,
556 166, 217, 219, 0, 24, 273, 270, 170, 0, 258,
557 264, 317, 260, 170, 170, 307, 299, 92, 60, 59,
558 51, 53, 0, 0, 78, 76, 93, 94, 283, 282,
559 371, 289, 285, 287, 0, 174, 176, 86, 0, 163,
560 375, 276, 276, 372, 373, 0, 390, 0, 0, 29,
561 304, 104, 118, 118, 135, 0, 0, 164, 218, 0,
562 247, 170, 316, 0, 237, 241, 0, 0, 300, 301,
563 0, 80, 83, 286, 179, 0, 181, 228, 280, 370,
564 119, 170, 170, 170, 280, 170, 170, 0, 379, 381,
565 392, 305, 111, 0, 112, 0, 135, 133, 189, 187,
566 186, 168, 21, 0, 25, 245, 265, 0, 170, 393,
567 0, 0, 0, 316, 0, 0, 115, 317, 292, 302,
568 197, 86, 0, 0, 195, 0, 194, 0, 249, 192,
569 0, 0, 284, 0, 387, 0, 382, 383, 384, 284,
570 385, 386, 374, 0, 0, 162, 134, 137, 136, 0,
571 165, 170, 0, 266, 303, 0, 309, 117, 116, 296,
572 0, 310, 294, 317, 293, 0, 0, 0, 0, 204,
573 61, 0, 191, 81, 180, 226, 280, 227, 223, 225,
574 0, 109, 110, 0, 268, 170, 394, 308, 0, 152,
575 0, 330, 314, 0, 0, 0, 0, 0, 0, 0,
576 0, 359, 351, 0, 0, 113, 118, 118, 323, 328,
577 0, 0, 320, 321, 324, 352, 322, 0, 206, 0,
578 202, 0, 0, 193, 0, 224, 188, 267, 0, 0,
579 316, 361, 0, 0, 357, 341, 342, 343, 0, 0,
580 0, 360, 0, 358, 325, 124, 0, 125, 0, 0,
581 312, 317, 311, 334, 0, 126, 0, 0, 200, 0,
582 196, 205, 0, 0, 0, 362, 45, 0, 0, 0,
583 355, 344, 0, 349, 0, 0, 122, 208, 0, 123,
584 211, 329, 316, 0, 0, 207, 0, 0, 203, 313,
585 0, 315, 353, 335, 339, 0, 350, 0, 120, 0,
586 121, 0, 327, 318, 316, 0, 198, 201, 331, 316,
587 361, 316, 356, 363, 0, 209, 212, 319, 333, 0,
588 316, 354, 0, 340, 0, 0, 364, 365, 345, 0,
589 0, 199, 332, 336, 0, 363, 0, 0, 210, 213,
590 361, 0, 0, 346, 366, 0, 367, 0, 0, 337,
591 368, 0, 347, 316, 0, 0, 338, 348, 369, 0,
595 static const short yydefgoto[] = { 680,
596 1, 2, 3, 17, 18, 19, 231, 377, 237, 380,
597 113, 310, 446, 86, 153, 280, 88, 89, 90, 91,
598 92, 391, 93, 265, 264, 262, 451, 263, 94, 154,
599 95, 218, 219, 220, 372, 433, 434, 20, 108, 526,
600 300, 59, 373, 418, 301, 23, 99, 194, 24, 130,
601 118, 46, 114, 119, 424, 47, 376, 223, 224, 26,
602 203, 204, 205, 422, 470, 448, 449, 450, 489, 640,
603 608, 580, 543, 577, 597, 620, 650, 600, 622, 651,
604 210, 122, 496, 123, 27, 145, 147, 137, 62, 493,
605 240, 64, 65, 142, 330, 331, 135, 136, 101, 192,
606 102, 104, 193, 435, 436, 481, 221, 337, 388, 389,
607 390, 370, 253, 371, 530, 531, 532, 551, 572, 314,
608 573, 439, 533, 534, 603, 550, 641, 631, 661, 674,
609 632, 535, 536, 630, 537, 563, 588, 646, 647, 648,
610 672, 285, 286, 302, 408, 303, 304, 305, 213, 214,
614 static const short yypact[] = { 66,
615 82, 2070, 2070, 286,-32768,-32768,-32768,-32768, 77, 84,
616 103, 30, 55, 79,-32768,-32768,-32768,-32768,-32768, 60,
617 113, 405, 142,-32768, 183,-32768,-32768, 2070,-32768,-32768,
618 -32768,-32768,-32768,-32768, 163,-32768, 170,-32768, 173, 1932,
619 1866, 165,-32768,-32768, 60, 35,-32768, 183, 589,-32768,
620 530,-32768, 60, 142,-32768, 183,-32768,-32768, 1138,-32768,
621 -32768, 458,-32768, 192, 267,-32768, 200,-32768,-32768,-32768,
622 -32768,-32768,-32768, 1932, 1932, 229,-32768,-32768,-32768, 1932,
623 -32768,-32768, 850,-32768,-32768, 1932, 206, 211,-32768, 1959,
624 1986,-32768, 2136, 366, 288, 1932,-32768, 243, 161,-32768,
625 271, 438, 842, 237, 150,-32768, 530, 60,-32768, 254,
626 -32768, 1408, 361, 183,-32768,-32768, 530, 106,-32768, 183,
627 732, 389, 413, 112, 1354, 1138,-32768,-32768,-32768,-32768,
628 183,-32768,-32768, 318, 297,-32768, 458, 183,-32768,-32768,
629 412, 306, 639, 824,-32768, 183,-32768,-32768,-32768,-32768,
630 -32768, 315, 321, 322, 331,-32768, 352, 1932, 850,-32768,
631 850,-32768, 1932, 1932, 401,-32768,-32768, 1932, 1932, 1932,
632 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932,-32768,
633 -32768, 229, 229, 1932, 1932,-32768,-32768,-32768,-32768, 161,
634 1421,-32768, 442, 648,-32768,-32768,-32768,-32768,-32768,-32768,
635 -32768,-32768, 93,-32768, 394,-32768, 413,-32768,-32768, 443,
636 413, 466,-32768, 907,-32768, 377, 407,-32768, 323, 59,
637 -32768,-32768, 456, 183, 199, 283,-32768, 530, 530,-32768,
638 361, 183,-32768, 1474,-32768,-32768, 361, 1932, 229, 400,
639 297,-32768,-32768,-32768,-32768,-32768, 409,-32768, 416,-32768,
640 -32768,-32768, 418, 423, 1755,-32768, 2136, 427, 432, 2136,
641 2136, 1932, 479, 1932, 1932, 1725, 2193, 1903, 1130, 1357,
642 960, 960, 455, 455,-32768,-32768,-32768,-32768,-32768, 450,
643 211, 448, 310, 296,-32768, 628,-32768, 457,-32768, 1487,
644 -32768, 648, 465, 842, 2013, 52, 467,-32768,-32768,-32768,
645 1088,-32768, 470, 257,-32768,-32768, 154,-32768,-32768, 57,
646 -32768,-32768,-32768, 861,-32768, 389,-32768,-32768, 389,-32768,
647 512,-32768,-32768, 468,-32768, 2136,-32768, 183, 475, 473,
648 -32768,-32768, 473, 183, 183,-32768, 526,-32768,-32768,-32768,
649 -32768,-32768, 523, 1932, 2171, 2183,-32768,-32768, 442,-32768,
650 -32768,-32768,-32768,-32768, 482,-32768,-32768, 209, 490,-32768,
651 -32768, 177, 67,-32768,-32768, 1058,-32768, 576, 322,-32768,
652 -32768,-32768, 505, 451,-32768, 1343, 57,-32768,-32768, 57,
653 -32768, 183,-32768, 261,-32768,-32768, 229, 944, 526,-32768,
654 1163,-32768, 2065,-32768,-32768, 1932,-32768,-32768,-32768, 67,
655 183, 137, 242, 183,-32768, 242, 183, 628,-32768,-32768,
656 -32768,-32768,-32768, 530,-32768, 60,-32768, 387,-32768,-32768,
657 2136,-32768,-32768, 1343,-32768,-32768,-32768, 1932, 187,-32768,
658 276, 433, 672, 507, 508, 762,-32768,-32768,-32768,-32768,
659 -32768, 549, 229, 1932,-32768, 550, 2136, 514, 516,-32768,
660 1932, 250, 188, 609,-32768, 1540,-32768,-32768,-32768, 216,
661 -32768,-32768,-32768, 309, 325, 155, 387,-32768,-32768, 1163,
662 -32768, 1642, 1932,-32768,-32768, 229,-32768,-32768,-32768,-32768,
663 520,-32768,-32768,-32768,-32768, 1621, 564, 2109, 1163,-32768,
664 -32768, 1223,-32768, 2065,-32768, 459,-32768, 459,-32768,-32768,
665 524,-32768,-32768, 532,-32768, 1642,-32768,-32768, 1701, 573,
666 555,-32768,-32768, 559, 561, 1932, 584, 546, 547, 1879,
667 201, 619,-32768, 590, 553,-32768, 567, 794,-32768, 611,
668 1026, 61,-32768,-32768,-32768,-32768,-32768, 1812,-32768, 1932,
669 600, 569, 1283,-32768, 302,-32768,-32768,-32768, 1932, 591,
670 -32768, 1932, 1932, 1565,-32768,-32768,-32768,-32768, 580, 1932,
671 588,-32768, 610,-32768,-32768,-32768, 530,-32768, 60, 1106,
672 -32768,-32768,-32768,-32768, 1932,-32768, 1283, 2091,-32768, 1283,
673 -32768,-32768, 596, 1932, 665,-32768, 868, 630, 612, 1932,
674 -32768,-32768, 632,-32768, 1932, 350,-32768, 227, 355,-32768,
675 955,-32768,-32768, 1701, 634,-32768, 675, 1283,-32768,-32768,
676 637,-32768,-32768,-32768,-32768, 2158,-32768, 39,-32768, 361,
677 -32768, 361,-32768,-32768,-32768, 641,-32768,-32768,-32768,-32768,
678 1932,-32768,-32768, 705, 642,-32768,-32768,-32768,-32768, 1283,
679 -32768,-32768, 646,-32768, 666, 47, 643,-32768,-32768, 322,
680 322,-32768,-32768,-32768, 1932, 705, 651, 705,-32768,-32768,
681 1932, 653, 48,-32768,-32768, 654,-32768, 466, 655,-32768,
682 288, 303,-32768,-32768, 657, 466,-32768,-32768, 288, 735,
686 static const short yypgoto[] = {-32768,
687 -32768,-32768,-32768, 65,-32768,-32768,-32768,-32768,-32768,-32768,
688 -32768,-32768, -5,-32768, -40, 446, -137, 424,-32768,-32768,
689 -55,-32768, 399,-32768,-32768,-32768,-32768,-32768, 190,-32768,
690 -191, -207, 527,-32768,-32768, 314,-32768, 22, -98, 215,
691 0, 700,-32768, 339, 7, -7, -15, 560, 11, -149,
692 -366, -45, -107, -52,-32768,-32768,-32768, 202, 14, 53,
693 -32768, 464,-32768, 337,-32768, -378,-32768, -409,-32768,-32768,
694 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
695 -38, -68, -298, -13, -30,-32768,-32768,-32768,-32768,-32768,
696 528, 41,-32768, 620, 522, 391, 635, 537, 1, -79,
697 -11, -89, -139, 344,-32768,-32768, -180,-32768,-32768,-32768,
698 403, -278,-32768, -128,-32768,-32768,-32768,-32768, -95, -286,
699 -495, 358,-32768, 193,-32768,-32768,-32768,-32768,-32768,-32768,
700 -32768,-32768,-32768,-32768, 214,-32768, -556, 147,-32768, 146,
701 -32768, 531,-32768, -233,-32768,-32768,-32768, 449, -195,-32768,
702 -32768,-32768,-32768, 9
709 static const short yytable[] = { 87,
710 98, 21, 21, 35, 37, 39, 49, 124, 22, 22,
711 28, 28, 121, 232, 54, 25, 25, 222, 148, 149,
712 296, 229, 198, 320, 151, 254, 225, 21, 132, 325,
713 156, 105, 55, 48, 22, 56, 28, 322, 311, 125,
714 187, 25, 51, 53, 291, 384, 281, 464, 226, 141,
715 284, 100, 351, 143, 209, 585, 134, 369, 48, -102,
716 186, 574, 43, 402, 120, -1, 48, 29, 312, 43,
717 150, 216, 131, 144, 643, 100, 634, 60, 67, 32,
718 33, -2, 544, 155, 656, 668, 32, 33, 40, 14,
719 207, 504, 61, 100, 211, 132, 14, 202, 423, 283,
720 60, 425, 232, 105, 666, 32, 33, 623, 60, 44,
721 542, 106, 197, 41, 635, 107, 405, 48, 45, 575,
722 120, 48, 657, 669, 222, 400, 191, 360, 141, 638,
723 120, 134, 143, 582, 642, 222, 644, 42, 252, 131,
724 -102, 222, 291, 349, 282, 653, 57, 332, 58, 332,
725 288, 486, 144, 197, 100, 498, 316, 281, 34, 258,
726 319, 259, 243, 132, 245, 36, 14, 606, 293, 100,
727 609, 100, 60, 294, 463, 318, 278, 279, 677, 43,
728 398, 110, 227, 60, 38, 247, 228, 249, 235, 50,
729 43, 398, 107, 324, 206, 455, 456, 509, 628, 340,
730 596, 43, 115, 32, 33, 206, 14, 437, 111, 112,
731 189, 207, 14, 111, 112, 211, 14, 14, 43, 190,
732 191, 343, 206, 103, 473, 208, 399, 25, 14, 367,
733 652, 32, 33, 134, 368, 400, 191, 399, 120, 43,
734 412, 120, 120, 206, 63, 14, 400, 191, 116, 355,
735 560, 66, 478, 110, 68, 483, -162, 117, 452, 499,
736 284, 132, -162, 43, 115, 405, 14, 139, 469, 138,
737 5, 14, 7, 97, 400, 191, 60, 146, 9, 10,
738 11, 157, 404, 407, 395, 604, 44, 332, 202, 396,
739 14, 158, 438, 54, 13, 45, 186, 15, 428, 25,
740 111, 112, 454, -162, 43, 398, 374, -162, 206, 453,
741 116, 55, 212, 349, 56, 460, 206, 469, 188, 117,
742 349, 362, 363, 217, 375, 495, -105, -105, -105, -105,
743 158, 14, -105, 365, -105, -105, -105, 366, 438, 242,
744 484, 233, 234, 140, -253, 429, 195, 248, 403, 406,
745 -105, 497, 475, 238, 289, 290, 476, 529, 317, 189,
746 45, 217, 30, 31, -316, -316, -316, -316, 190, 191,
747 465, 350, -316, -316, -316, 401, 48, 239, 675, 25,
748 529, 430, 244, 676, 417, 502, 105, 132, -316, 228,
749 250, 468, 128, 129, 414, 416, 251, 120, 9, 10,
750 11, 503, 466, 252, -105, 107, 255, 545, 5, 6,
751 7, 8, 636, 48, 637, 501, 9, 10, 11, 180,
752 181, 25, 182, 183, 184, 185, 619, 120, 256, 48,
753 228, 621, 13, 321, 14, 107, 132, 487, -82, 207,
754 211, 5, -101, 7, 196, 525, 207, 233, 234, 9,
755 10, 11, 295, 60, 5, 57, 7, 58, 133, 308,
756 32, 33, 9, 10, 11, 13, 401, 401, 525, 110,
757 507, 111, 112, 48, 71, 529, 671, 328, 13, 559,
758 524, 52, 187, 309, 679, 527, 334, 189, -259, -259,
759 232, 315, 528, 335, 538, 336, 190, 191, 338, 25,
760 289, 290, 341, 524, 177, 178, 179, 342, 583, 309,
761 477, 586, 589, 160, 162, 561, 344, 455, 456, 593,
762 54, 659, 660, 599, 222, 347, 222, 415, 598, 381,
763 348, 207, 43, 115, 605, 385, 386, 527, 55, 352,
764 356, 56, 361, 611, 528, 364, 538, 378, 567, 569,
765 379, 25, 382, 383, 618, 601, 257, 387, 401, 14,
766 392, 260, 261, 525, 394, 397, 266, 267, 268, 269,
767 270, 271, 272, 273, 274, 275, 276, 277, 411, 116,
768 120, 413, 48, 426, -295, 482, -31, 490, 117, 109,
769 586, 491, -27, -27, -27, -27, 492, 508, 524, 539,
770 -27, -27, -27, 457, 458, 459, 546, 461, 462, 547,
771 -32, 43, 398, 549, 662, 110, -27, 552, -162, 553,
772 586, 555, 556, 557, -162, 562, 570, 564, 297, 565,
773 474, 5, 6, 7, 8, 579, 326, 299, 14, 9,
774 10, 11, 5, 566, 7, 196, 581, 111, 112, 584,
775 9, 10, 11, 128, 129, 13, 592, 14, 497, 9,
776 10, 11, 345, 346, 594, -162, 13, 45, 595, -162,
777 -27, 610, 217, 505, -114, -114, -114, -114, -114, -114,
778 -114, 612, -114, -114, -114, -114, -114, 615, -114, -114,
779 -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
780 -114, -114, -114, -376, -114, -114, 614, 548, 617, 626,
781 627, -114, 629, 645, -114, -261, -261, 639, 649, -114,
782 -114, -114, 654, 658, 655, -114, -114, 664, 667, 670,
783 -114, 673, 230, 678, 681, -19, -19, -19, -19, 682,
784 359, 587, 393, -19, -19, -19, 313, 479, -114, -114,
785 -114, -114, 576, -114, 126, 467, 292, 357, 110, -19,
786 471, -162, 217, 246, -316, -316, 333, -162, 329, -316,
787 -316, 241, -316, 427, 421, 327, -316, 480, -316, -316,
788 -316, -316, -316, -316, -316, -316, -316, -316, -316, 447,
789 -316, 440, -316, 485, -316, -316, 624, 5, 6, 7,
790 8, -316, 663, 665, -316, 9, 10, 11, -162, -316,
791 -316, -316, -162, -19, 410, -316, -316, 625, 0, 353,
792 -316, 13, 421, 14, 139, 0, 472, 5, 0, 7,
793 97, 0, 0, 0, 0, 9, 10, 11, -316, -291,
794 -316, -316, 488, -316, 32, 33, 199, 200, 201, 494,
795 152, 13, 69, 5, 15, 7, 97, 70, 71, 0,
796 72, 9, 10, 11, 5, 6, 7, 8, 447, 0,
797 568, 506, 9, 10, 11, 0, 0, 13, 73, 0,
798 15, 0, 74, 75, 0, 0, 0, 447, 13, 76,
799 447, 0, 77, 0, 0, 0, 0, 78, 79, 80,
800 0, 0, 0, 81, 82, 0, 0, 297, 83, 298,
801 5, 6, 7, 8, 554, 0, 299, 0, 9, 10,
802 11, 180, 181, 0, 182, 183, 184, 185, 84, 85,
803 0, -91, 0, 0, 13, 0, 14, 0, 578, 0,
804 0, 447, 0, 613, 432, 0, -316, -316, -316, -316,
805 -316, -316, -316, 0, -316, -316, -316, -316, -316, 0,
806 -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
807 -316, -316, -316, -316, -316, 447, -316, -316, 447, 0,
808 0, 110, -376, -316, -162, 0, -316, 0, 616, 0,
809 -162, -316, -316, -316, 0, 0, 0, -316, -316, 0,
810 0, 0, -316, 0, 0, 0, 447, 175, 176, 177,
811 178, 179, 0, 111, 112, 0, 0, 0, 0, 0,
812 -316, 0, -316, -316, 0, -316, 571, 0, -316, -316,
813 0, -162, 0, -316, -316, -162, -316, 0, 447, 0,
814 -316, 0, -316, -316, -316, -316, -316, -316, -316, -316,
815 -316, -316, -316, 0, -316, 0, -316, 0, -316, -316,
816 0, 5, 6, 7, 8, -316, 0, 409, -316, 9,
817 10, 11, 0, -316, -316, -316, 0, 0, 0, -316,
818 -316, 0, 0, 0, -316, 13, 0, 14, 0, 0,
819 0, 5, 6, 7, 8, 0, 0, 0, 0, 9,
820 10, 11, -316, 0, -316, -316, 602, -316, -326, -326,
821 0, 0, 0, -326, -326, 13, -326, 14, 0, 0,
822 -326, 0, -326, -326, -326, -326, -326, -326, -326, -326,
823 -326, -326, -326, 0, -326, 0, -326, 0, -326, -326,
824 0, 0, 127, 128, 129, -326, 0, 0, -326, 9,
825 10, 11, 0, -326, -326, -326, 0, 0, 0, -326,
826 -326, 0, 0, 441, -326, 442, 33, 14, 0, 0,
827 70, 71, 0, 72, 172, 173, 174, 175, 176, 177,
828 178, 179, -326, 0, -326, -326, 0, -326, 0, 0,
829 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
830 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
831 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
832 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
833 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
834 -190, 84, 85, 0, 445, 0, 0, 0, 0, 0,
835 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
836 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
837 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
838 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
839 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
840 -250, 84, 85, 0, 445, 0, 0, 0, 0, 0,
841 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
842 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
843 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
844 443, 83, 444, 419, 0, 69, 0, 0, 0, 0,
845 70, 71, 0, 72, 236, 0, 0, -23, -23, -23,
846 -23, 84, 85, 0, 445, -23, -23, -23, 0, 0,
847 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
848 110, -23, 76, -162, 0, 77, 0, 0, 0, -162,
849 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
850 0, 83, 173, 174, 175, 176, 177, 178, 179, 0,
851 69, 0, 111, 112, 0, 70, 71, 0, 72, 0,
852 0, 84, 85, 69, 420, 0, 0, 0, 70, 71,
853 -162, 72, 0, 0, -162, -23, 73, 0, 15, 0,
854 74, 75, 0, 0, 0, 0, 0, 76, 0, 73,
855 77, 15, 0, 74, 75, 78, 79, 80, 0, 0,
856 76, 81, 82, 77, 0, 0, 83, 0, 78, 79,
857 80, 0, 0, 0, 81, 82, 69, 0, 0, 83,
858 0, 70, 71, 0, 72, 0, 84, 85, 0, 69,
859 215, 0, 0, 0, 70, 71, 0, 72, 0, 84,
860 85, 0, 73, 287, 15, 0, 74, 75, 0, 0,
861 0, 0, 0, 76, 0, 73, 77, 15, 0, 74,
862 75, 78, 79, 80, 0, 0, 76, 81, 82, 77,
863 0, 0, 83, 0, 78, 79, 80, 0, 0, 0,
864 81, 82, 69, 0, 0, 83, 0, 70, 71, 0,
865 72, 0, 84, 85, 0, 0, 323, 0, 0, 0,
866 0, 0, 0, 0, 0, 84, 85, 0, 73, 354,
867 15, 0, 74, 75, 590, 0, 0, 0, 0, 76,
868 0, 0, 77, 0, 0, 0, 0, 78, 79, 80,
869 0, 0, 0, 81, 82, 0, 0, 0, 83, 163,
870 164, 165, 591, 166, 167, 168, 169, 170, 171, 172,
871 173, 174, 175, 176, 177, 178, 179, 0, 84, 85,
872 0, 0, 500, 442, 510, 6, 7, 8, 70, 71,
873 0, 72, 9, 10, 11, 511, 0, 512, 513, 514,
874 515, 516, 517, 518, 519, 520, 521, 522, 13, 73,
875 14, 15, 0, 74, 75, 0, 0, 0, 0, 0,
876 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
877 80, 14, 0, 0, 81, 82, 163, 164, 165, 83,
878 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
879 176, 177, 178, 179, 0, 0, 0, 523, 0, 84,
880 85, 0, 252, 442, 33, 0, 0, 0, 70, 71,
881 0, 72, 0, 0, 0, 511, 0, 512, 513, 514,
882 515, 516, 517, 518, 519, 520, 521, 522, 0, 73,
883 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
884 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
885 80, 0, 0, 0, 81, 82, 0, 69, 0, 83,
886 0, 0, 70, 71, 0, 72, 169, 170, 171, 172,
887 173, 174, 175, 176, 177, 178, 179, 523, 0, 84,
888 85, 0, 252, 73, 0, 15, 0, 74, 75, 0,
889 0, 0, 0, 0, 76, 0, 0, 77, 0, 0,
890 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
891 0, 0, 0, 83, 69, 5, 6, 7, 8, 70,
892 71, 0, 72, 9, 10, 11, 0, 0, 0, 0,
893 0, 0, 0, 84, 85, 0, 339, 0, 0, 13,
894 73, 14, 15, 0, 74, 75, 0, 0, 0, 0,
895 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
896 79, 80, 0, 0, 0, 81, 82, 0, 69, 5,
897 83, 7, 97, 70, 71, 0, 72, 9, 10, 11,
898 0, 69, 0, 0, 0, 0, 70, 71, 0, 72,
899 84, 85, 0, 13, 73, 0, 15, 0, 74, 75,
900 0, 0, 0, 0, 0, 76, 0, 73, 77, 15,
901 0, 74, 75, 78, 79, 80, 0, 0, 76, 81,
902 82, 77, 0, 0, 83, 0, 78, 79, 80, 0,
903 0, 0, 81, 82, 69, 0, 0, 83, 0, 70,
904 71, 0, 72, 0, 84, 85, 171, 172, 173, 174,
905 175, 176, 177, 178, 179, 558, 0, 84, 85, 0,
906 73, 69, 15, 0, 74, 75, 70, 71, 0, 72,
907 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
908 79, 80, 0, 0, 0, 81, 82, 73, 69, 15,
909 83, 74, 75, 70, 71, 0, 72, 0, 76, 0,
910 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
911 84, 85, 81, 82, 73, 358, 15, 159, 74, 75,
912 70, 71, 0, 72, 0, 76, 0, 0, 77, 0,
913 0, 0, 0, 78, 79, 80, 0, 84, 85, 81,
914 82, 73, 0, 15, 161, 74, 75, 0, 0, 0,
915 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
916 78, 79, 80, 0, 84, 85, 81, 82, 0, 0,
917 4, 83, -118, 5, 6, 7, 8, 0, 0, 0,
918 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
919 0, 84, 85, 0, 0, 0, 12, 13, 0, 14,
920 15, 165, 0, 166, 167, 168, 169, 170, 171, 172,
921 173, 174, 175, 176, 177, 178, 179, 0, 540, -118,
922 0, 0, 0, 0, 0, 163, 164, 165, -118, 166,
923 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
924 177, 178, 179, 163, 164, 165, 16, 166, 167, 168,
925 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
926 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
927 163, 164, 165, 607, 166, 167, 168, 169, 170, 171,
928 172, 173, 174, 175, 176, 177, 178, 179, 0, 0,
929 0, 541, 163, 164, 165, 633, 166, 167, 168, 169,
930 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
931 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
932 177, 178, 179, 168, 169, 170, 171, 172, 173, 174,
933 175, 176, 177, 178, 179, 170, 171, 172, 173, 174,
934 175, 176, 177, 178, 179
937 static const short yycheck[] = { 40,
938 41, 2, 3, 9, 10, 11, 20, 53, 2, 3,
939 2, 3, 51, 121, 22, 2, 3, 113, 74, 75,
940 212, 120, 102, 231, 80, 154, 116, 28, 59, 237,
941 86, 45, 22, 20, 28, 22, 28, 233, 219, 53,
942 96, 28, 21, 22, 194, 332, 184, 414, 117, 65,
943 190, 41, 286, 65, 107, 551, 62, 1, 45, 1,
944 9, 1, 3, 362, 51, 0, 53, 3, 10, 3,
945 76, 112, 59, 65, 631, 65, 38, 25, 38, 3,
946 4, 0, 492, 83, 38, 38, 3, 4, 59, 30,
947 104, 470, 28, 83, 108, 126, 30, 103, 377, 189,
948 48, 380, 210, 117, 661, 3, 4, 603, 56, 50,
949 489, 77, 102, 59, 76, 81, 50, 104, 59, 59,
950 107, 108, 76, 76, 220, 59, 60, 76, 144, 625,
951 117, 137, 144, 543, 630, 231, 632, 59, 82, 126,
952 82, 237, 292, 283, 185, 641, 5, 243, 7, 245,
953 191, 438, 144, 143, 144, 454, 225, 295, 82, 159,
954 229, 161, 141, 194, 143, 82, 30, 577, 76, 159,
955 580, 161, 120, 81, 408, 228, 182, 183, 674, 3,
956 4, 27, 77, 131, 82, 145, 81, 147, 77, 77,
957 3, 4, 81, 234, 7, 59, 60, 484, 608, 255,
958 567, 3, 4, 3, 4, 7, 30, 388, 59, 60,
959 50, 225, 30, 59, 60, 229, 30, 30, 3, 59,
960 60, 262, 7, 59, 38, 76, 50, 214, 30, 76,
961 640, 3, 4, 239, 81, 59, 60, 50, 225, 3,
962 369, 228, 229, 7, 82, 30, 59, 60, 50, 290,
963 50, 82, 433, 27, 82, 436, 30, 59, 396, 455,
964 400, 292, 36, 3, 4, 50, 30, 1, 418, 78,
965 4, 30, 6, 7, 59, 60, 224, 78, 12, 13,
966 14, 76, 362, 363, 76, 572, 50, 383, 294, 81,
967 30, 81, 388, 301, 28, 59, 9, 31, 38, 286,
968 59, 60, 401, 77, 3, 4, 314, 81, 7, 399,
969 50, 301, 59, 453, 301, 405, 7, 467, 76, 59,
970 460, 300, 301, 1, 314, 76, 4, 5, 6, 7,
971 81, 30, 10, 77, 12, 13, 14, 81, 434, 138,
972 436, 59, 60, 77, 78, 384, 76, 146, 362, 363,
973 28, 50, 77, 36, 59, 60, 81, 486, 76, 50,
974 59, 1, 77, 78, 4, 5, 6, 7, 59, 60,
975 416, 76, 12, 13, 14, 362, 363, 81, 76, 366,
976 509, 387, 77, 81, 374, 77, 400, 418, 28, 81,
977 76, 5, 6, 7, 373, 374, 76, 384, 12, 13,
978 14, 77, 416, 82, 82, 81, 76, 497, 4, 5,
979 6, 7, 620, 400, 622, 456, 12, 13, 14, 54,
980 55, 408, 57, 58, 59, 60, 77, 414, 77, 416,
981 81, 77, 28, 232, 30, 81, 467, 443, 38, 453,
982 454, 4, 82, 6, 7, 486, 460, 59, 60, 12,
983 13, 14, 59, 401, 4, 5, 6, 7, 1, 83,
984 3, 4, 12, 13, 14, 28, 453, 454, 509, 27,
985 476, 59, 60, 460, 9, 604, 668, 78, 28, 520,
986 486, 77, 538, 77, 676, 486, 78, 50, 77, 78,
987 598, 36, 486, 78, 486, 78, 59, 60, 76, 486,
988 59, 60, 76, 509, 50, 51, 52, 76, 549, 77,
989 78, 552, 553, 90, 91, 521, 38, 59, 60, 560,
990 528, 650, 651, 569, 620, 76, 622, 77, 567, 328,
991 83, 545, 3, 4, 575, 334, 335, 538, 528, 83,
992 76, 528, 76, 584, 538, 76, 538, 36, 527, 528,
993 83, 538, 78, 81, 595, 569, 158, 32, 545, 30,
994 38, 163, 164, 604, 83, 76, 168, 169, 170, 171,
995 172, 173, 174, 175, 176, 177, 178, 179, 3, 50,
996 567, 77, 569, 382, 78, 78, 38, 38, 59, 1,
997 631, 78, 4, 5, 6, 7, 81, 78, 604, 36,
998 12, 13, 14, 402, 403, 404, 83, 406, 407, 78,
999 38, 3, 4, 59, 655, 27, 28, 59, 30, 59,
1000 661, 38, 77, 77, 36, 7, 16, 38, 1, 77,
1001 429, 4, 5, 6, 7, 36, 238, 10, 30, 12,
1002 13, 14, 4, 77, 6, 7, 78, 59, 60, 59,
1003 12, 13, 14, 6, 7, 28, 77, 30, 50, 12,
1004 13, 14, 264, 265, 77, 77, 28, 59, 59, 81,
1005 82, 76, 1, 472, 3, 4, 5, 6, 7, 8,
1006 9, 17, 11, 12, 13, 14, 15, 76, 17, 18,
1007 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1008 29, 30, 31, 76, 33, 34, 77, 506, 77, 76,
1009 36, 40, 76, 9, 43, 77, 78, 77, 77, 48,
1010 49, 50, 77, 81, 59, 54, 55, 77, 76, 76,
1011 59, 77, 1, 77, 0, 4, 5, 6, 7, 0,
1012 295, 552, 344, 12, 13, 14, 220, 434, 77, 78,
1013 79, 80, 538, 82, 55, 417, 197, 294, 27, 28,
1014 424, 30, 1, 144, 3, 4, 245, 36, 241, 8,
1015 9, 137, 11, 383, 376, 239, 15, 434, 17, 18,
1016 19, 20, 21, 22, 23, 24, 25, 26, 27, 391,
1017 29, 389, 31, 436, 33, 34, 604, 4, 5, 6,
1018 7, 40, 656, 658, 43, 12, 13, 14, 77, 48,
1019 49, 50, 81, 82, 366, 54, 55, 604, -1, 289,
1020 59, 28, 424, 30, 1, -1, 428, 4, -1, 6,
1021 7, -1, -1, -1, -1, 12, 13, 14, 77, 78,
1022 79, 80, 444, 82, 3, 4, 5, 6, 7, 451,
1023 1, 28, 3, 4, 31, 6, 7, 8, 9, -1,
1024 11, 12, 13, 14, 4, 5, 6, 7, 470, -1,
1025 77, 473, 12, 13, 14, -1, -1, 28, 29, -1,
1026 31, -1, 33, 34, -1, -1, -1, 489, 28, 40,
1027 492, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1028 -1, -1, -1, 54, 55, -1, -1, 1, 59, 3,
1029 4, 5, 6, 7, 516, -1, 10, -1, 12, 13,
1030 14, 54, 55, -1, 57, 58, 59, 60, 79, 80,
1031 -1, 82, -1, -1, 28, -1, 30, -1, 540, -1,
1032 -1, 543, -1, 76, 1, -1, 3, 4, 5, 6,
1033 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
1034 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1035 27, 28, 29, 30, 31, 577, 33, 34, 580, -1,
1036 -1, 27, 76, 40, 30, -1, 43, -1, 590, -1,
1037 36, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1038 -1, -1, 59, -1, -1, -1, 608, 48, 49, 50,
1039 51, 52, -1, 59, 60, -1, -1, -1, -1, -1,
1040 77, -1, 79, 80, -1, 82, 1, -1, 3, 4,
1041 -1, 77, -1, 8, 9, 81, 11, -1, 640, -1,
1042 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1043 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1044 -1, 4, 5, 6, 7, 40, -1, 10, 43, 12,
1045 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1046 55, -1, -1, -1, 59, 28, -1, 30, -1, -1,
1047 -1, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1048 13, 14, 77, -1, 79, 80, 1, 82, 3, 4,
1049 -1, -1, -1, 8, 9, 28, 11, 30, -1, -1,
1050 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1051 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1052 -1, -1, 5, 6, 7, 40, -1, -1, 43, 12,
1053 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1054 55, -1, -1, 1, 59, 3, 4, 30, -1, -1,
1055 8, 9, -1, 11, 45, 46, 47, 48, 49, 50,
1056 51, 52, 77, -1, 79, 80, -1, 82, -1, -1,
1057 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1058 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1059 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1060 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1061 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1062 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1063 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1064 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1065 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1066 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1067 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1068 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1069 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1070 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1071 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1072 58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
1073 8, 9, -1, 11, 1, -1, -1, 4, 5, 6,
1074 7, 79, 80, -1, 82, 12, 13, 14, -1, -1,
1075 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1076 27, 28, 40, 30, -1, 43, -1, -1, -1, 36,
1077 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1078 -1, 59, 46, 47, 48, 49, 50, 51, 52, -1,
1079 3, -1, 59, 60, -1, 8, 9, -1, 11, -1,
1080 -1, 79, 80, 3, 82, -1, -1, -1, 8, 9,
1081 77, 11, -1, -1, 81, 82, 29, -1, 31, -1,
1082 33, 34, -1, -1, -1, -1, -1, 40, -1, 29,
1083 43, 31, -1, 33, 34, 48, 49, 50, -1, -1,
1084 40, 54, 55, 43, -1, -1, 59, -1, 48, 49,
1085 50, -1, -1, -1, 54, 55, 3, -1, -1, 59,
1086 -1, 8, 9, -1, 11, -1, 79, 80, -1, 3,
1087 83, -1, -1, -1, 8, 9, -1, 11, -1, 79,
1088 80, -1, 29, 83, 31, -1, 33, 34, -1, -1,
1089 -1, -1, -1, 40, -1, 29, 43, 31, -1, 33,
1090 34, 48, 49, 50, -1, -1, 40, 54, 55, 43,
1091 -1, -1, 59, -1, 48, 49, 50, -1, -1, -1,
1092 54, 55, 3, -1, -1, 59, -1, 8, 9, -1,
1093 11, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1094 -1, -1, -1, -1, -1, 79, 80, -1, 29, 83,
1095 31, -1, 33, 34, 10, -1, -1, -1, -1, 40,
1096 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1097 -1, -1, -1, 54, 55, -1, -1, -1, 59, 35,
1098 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1099 46, 47, 48, 49, 50, 51, 52, -1, 79, 80,
1100 -1, -1, 83, 3, 4, 5, 6, 7, 8, 9,
1101 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1102 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1103 30, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1104 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1105 50, 30, -1, -1, 54, 55, 35, 36, 37, 59,
1106 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1107 49, 50, 51, 52, -1, -1, -1, 77, -1, 79,
1108 80, -1, 82, 3, 4, -1, -1, -1, 8, 9,
1109 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1110 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1111 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1112 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1113 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
1114 -1, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1115 46, 47, 48, 49, 50, 51, 52, 77, -1, 79,
1116 80, -1, 82, 29, -1, 31, -1, 33, 34, -1,
1117 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1118 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1119 -1, -1, -1, 59, 3, 4, 5, 6, 7, 8,
1120 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
1121 -1, -1, -1, 79, 80, -1, 82, -1, -1, 28,
1122 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1123 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1124 49, 50, -1, -1, -1, 54, 55, -1, 3, 4,
1125 59, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1126 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1127 79, 80, -1, 28, 29, -1, 31, -1, 33, 34,
1128 -1, -1, -1, -1, -1, 40, -1, 29, 43, 31,
1129 -1, 33, 34, 48, 49, 50, -1, -1, 40, 54,
1130 55, 43, -1, -1, 59, -1, 48, 49, 50, -1,
1131 -1, -1, 54, 55, 3, -1, -1, 59, -1, 8,
1132 9, -1, 11, -1, 79, 80, 44, 45, 46, 47,
1133 48, 49, 50, 51, 52, 77, -1, 79, 80, -1,
1134 29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
1135 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1136 49, 50, -1, -1, -1, 54, 55, 29, 3, 31,
1137 59, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1138 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1139 79, 80, 54, 55, 29, 3, 31, 59, 33, 34,
1140 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1141 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1142 55, 29, -1, 31, 59, 33, 34, -1, -1, -1,
1143 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1144 48, 49, 50, -1, 79, 80, 54, 55, -1, -1,
1145 1, 59, 3, 4, 5, 6, 7, -1, -1, -1,
1146 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1147 -1, 79, 80, -1, -1, -1, 27, 28, -1, 30,
1148 31, 37, -1, 39, 40, 41, 42, 43, 44, 45,
1149 46, 47, 48, 49, 50, 51, 52, -1, 10, 50,
1150 -1, -1, -1, -1, -1, 35, 36, 37, 59, 39,
1151 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1152 50, 51, 52, 35, 36, 37, 77, 39, 40, 41,
1153 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1154 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1155 35, 36, 37, 83, 39, 40, 41, 42, 43, 44,
1156 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1157 -1, 83, 35, 36, 37, 38, 39, 40, 41, 42,
1158 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1159 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1160 50, 51, 52, 41, 42, 43, 44, 45, 46, 47,
1161 48, 49, 50, 51, 52, 43, 44, 45, 46, 47,
1164 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1165 #line 3 "/usr/share/bison.simple"
1167 /* Skeleton output parser for bison,
1168 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1170 This program is free software; you can redistribute it and/or modify
1171 it under the terms of the GNU General Public License as published by
1172 the Free Software Foundation; either version 2, or (at your option)
1175 This program is distributed in the hope that it will be useful,
1176 but WITHOUT ANY WARRANTY; without even the implied warranty of
1177 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1178 GNU General Public License for more details.
1180 You should have received a copy of the GNU General Public License
1181 along with this program; if not, write to the Free Software
1182 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1184 /* As a special exception, when this file is copied by Bison into a
1185 Bison output file, you may use that output file without restriction.
1186 This special exception was added by the Free Software Foundation
1187 in version 1.24 of Bison. */
1191 #define alloca __builtin_alloca
1192 #else /* not GNU C. */
1193 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1195 #else /* not sparc */
1196 #if defined (MSDOS) && !defined (__TURBOC__)
1198 #else /* not MSDOS, or __TURBOC__ */
1202 #else /* not MSDOS, __TURBOC__, or _AIX */
1206 void *alloca (unsigned int);
1208 #else /* not __cplusplus */
1210 #endif /* not __cplusplus */
1212 #endif /* not _AIX */
1213 #endif /* not MSDOS, or __TURBOC__ */
1214 #endif /* not sparc. */
1215 #endif /* not GNU C. */
1216 #endif /* alloca not defined. */
1218 /* This is the parser code that is written into each bison parser
1219 when the %semantic_parser declaration is not specified in the grammar.
1220 It was written by Richard Stallman by simplifying the hairy parser
1221 used when %semantic_parser is specified. */
1223 /* Note: there must be only one dollar sign in this file.
1224 It is replaced by the list of actions, each action
1225 as one case of the switch. */
1227 #define yyerrok (yyerrstatus = 0)
1228 #define yyclearin (yychar = YYEMPTY)
1231 #define YYACCEPT return(0)
1232 #define YYABORT return(1)
1233 #define YYERROR goto yyerrlab1
1234 /* Like YYERROR except do call yyerror.
1235 This remains here temporarily to ease the
1236 transition to the new meaning of YYERROR, for GCC.
1237 Once GCC version 2 has supplanted version 1, this can go. */
1238 #define YYFAIL goto yyerrlab
1239 #define YYRECOVERING() (!!yyerrstatus)
1240 #define YYBACKUP(token, value) \
1242 if (yychar == YYEMPTY && yylen == 1) \
1243 { yychar = (token), yylval = (value); \
1244 yychar1 = YYTRANSLATE (yychar); \
1249 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1253 #define YYERRCODE 256
1256 #define YYLEX yylex()
1262 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1264 #define YYLEX yylex(&yylval, &yylloc)
1266 #else /* not YYLSP_NEEDED */
1268 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1270 #define YYLEX yylex(&yylval)
1272 #endif /* not YYLSP_NEEDED */
1275 /* If nonreentrant, generate the variables here */
1279 int yychar; /* the lookahead symbol */
1280 YYSTYPE yylval; /* the semantic value of the */
1281 /* lookahead symbol */
1284 YYLTYPE yylloc; /* location data for the lookahead */
1288 int yynerrs; /* number of parse errors so far */
1289 #endif /* not YYPURE */
1292 int yydebug; /* nonzero means print parse trace */
1293 /* Since this is uninitialized, it does not stop multiple parsers
1297 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1300 #define YYINITDEPTH 200
1303 /* YYMAXDEPTH is the maximum size the stacks can grow to
1304 (effective only if the built-in stack extension method is used). */
1311 #define YYMAXDEPTH 10000
1314 /* Prevent warning if -Wstrict-prototypes. */
1319 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1320 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1321 #else /* not GNU C or C++ */
1324 /* This is the most reliable way to avoid incompatibilities
1325 in available built-in functions on various systems. */
1327 __yy_memcpy (to, from, count)
1332 register char *f = from;
1333 register char *t = to;
1334 register int i = count;
1340 #else /* __cplusplus */
1342 /* This is the most reliable way to avoid incompatibilities
1343 in available built-in functions on various systems. */
1345 __yy_memcpy (char *to, char *from, int count)
1347 register char *f = from;
1348 register char *t = to;
1349 register int i = count;
1358 #line 196 "/usr/share/bison.simple"
1360 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1361 into yyparse. The argument should have type void *.
1362 It should actually point to an object.
1363 Grammar actions can access the variable by casting it
1364 to the proper pointer type. */
1366 #ifdef YYPARSE_PARAM
1368 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1369 #define YYPARSE_PARAM_DECL
1370 #else /* not __cplusplus */
1371 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1372 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1373 #endif /* not __cplusplus */
1374 #else /* not YYPARSE_PARAM */
1375 #define YYPARSE_PARAM_ARG
1376 #define YYPARSE_PARAM_DECL
1377 #endif /* not YYPARSE_PARAM */
1380 yyparse(YYPARSE_PARAM_ARG)
1383 register int yystate;
1385 register short *yyssp;
1386 register YYSTYPE *yyvsp;
1387 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1388 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1390 short yyssa[YYINITDEPTH]; /* the state stack */
1391 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1393 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1394 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1397 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1398 YYLTYPE *yyls = yylsa;
1401 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1403 #define YYPOPSTACK (yyvsp--, yyssp--)
1406 int yystacksize = YYINITDEPTH;
1417 YYSTYPE yyval; /* the variable used to return */
1418 /* semantic values from the action */
1425 fprintf(stderr, "Starting parse\n");
1431 yychar = YYEMPTY; /* Cause a token to be read. */
1433 /* Initialize stack pointers.
1434 Waste one element of value and location stack
1435 so that they stay on the same level as the state stack.
1436 The wasted elements are never initialized. */
1444 /* Push a new state, which is found in yystate . */
1445 /* In all cases, when you get here, the value and location stacks
1446 have just been pushed. so pushing a state here evens the stacks. */
1451 if (yyssp >= yyss + yystacksize - 1)
1453 /* Give user a chance to reallocate the stack */
1454 /* Use copies of these so that the &'s don't force the real ones into memory. */
1455 YYSTYPE *yyvs1 = yyvs;
1456 short *yyss1 = yyss;
1458 YYLTYPE *yyls1 = yyls;
1461 /* Get the current used size of the three stacks, in elements. */
1462 int size = yyssp - yyss + 1;
1465 /* Each stack pointer address is followed by the size of
1466 the data in use in that stack, in bytes. */
1468 /* This used to be a conditional around just the two extra args,
1469 but that might be undefined if yyoverflow is a macro. */
1470 yyoverflow("parser stack overflow",
1471 &yyss1, size * sizeof (*yyssp),
1472 &yyvs1, size * sizeof (*yyvsp),
1473 &yyls1, size * sizeof (*yylsp),
1476 yyoverflow("parser stack overflow",
1477 &yyss1, size * sizeof (*yyssp),
1478 &yyvs1, size * sizeof (*yyvsp),
1482 yyss = yyss1; yyvs = yyvs1;
1486 #else /* no yyoverflow */
1487 /* Extend the stack our own way. */
1488 if (yystacksize >= YYMAXDEPTH)
1490 yyerror("parser stack overflow");
1494 if (yystacksize > YYMAXDEPTH)
1495 yystacksize = YYMAXDEPTH;
1496 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1497 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1498 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1499 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1501 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1502 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1504 #endif /* no yyoverflow */
1506 yyssp = yyss + size - 1;
1507 yyvsp = yyvs + size - 1;
1509 yylsp = yyls + size - 1;
1514 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1517 if (yyssp >= yyss + yystacksize - 1)
1523 fprintf(stderr, "Entering state %d\n", yystate);
1529 /* Do appropriate processing given the current state. */
1530 /* Read a lookahead token if we need one and don't already have one. */
1533 /* First try to decide what to do without reference to lookahead token. */
1535 yyn = yypact[yystate];
1539 /* Not known => get a lookahead token if don't already have one. */
1541 /* yychar is either YYEMPTY or YYEOF
1542 or a valid token in external form. */
1544 if (yychar == YYEMPTY)
1548 fprintf(stderr, "Reading a token: ");
1553 /* Convert token to internal form (in yychar1) for indexing tables with */
1555 if (yychar <= 0) /* This means end of input. */
1558 yychar = YYEOF; /* Don't call YYLEX any more */
1562 fprintf(stderr, "Now at end of input.\n");
1567 yychar1 = YYTRANSLATE(yychar);
1572 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1573 /* Give the individual parser a way to print the precise meaning
1574 of a token, for further debugging info. */
1576 YYPRINT (stderr, yychar, yylval);
1578 fprintf (stderr, ")\n");
1584 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1589 /* yyn is what to do for this token type in this state.
1590 Negative => reduce, -yyn is rule number.
1591 Positive => shift, yyn is new state.
1592 New state is final state => don't bother to shift,
1593 just return success.
1594 0, or most negative number => error. */
1609 /* Shift the lookahead token. */
1613 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1616 /* Discard the token being shifted unless it is eof. */
1617 if (yychar != YYEOF)
1625 /* count tokens shifted since error; after three, turn off error status. */
1626 if (yyerrstatus) yyerrstatus--;
1631 /* Do the default action for the current state. */
1634 yyn = yydefact[yystate];
1638 /* Do a reduction. yyn is the number of a rule to reduce with. */
1642 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1649 fprintf (stderr, "Reducing via rule %d (line %d), ",
1652 /* Print the symbols being reduced, and their result. */
1653 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1654 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1655 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1663 #line 232 "c-parse.y"
1665 pedwarn ("ANSI C forbids an empty source file");
1670 #line 237 "c-parse.y"
1672 /* In case there were missing closebraces,
1673 get us back to the global binding level. */
1674 while (! global_bindings_p ())
1680 #line 251 "c-parse.y"
1681 {yyval.ttype = NULL_TREE; ;
1684 #line 252 "c-parse.y"
1685 {yyval.ttype = NULL_TREE; ;
1688 #line 259 "c-parse.y"
1689 { STRIP_NOPS (yyvsp[-2].ttype);
1690 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1691 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1692 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1693 assemble_asm (yyvsp[-2].ttype);
1695 error ("argument of `asm' is not a constant string"); ;
1698 #line 267 "c-parse.y"
1699 { pedantic = yyvsp[-1].itype; ;
1702 #line 272 "c-parse.y"
1704 error ("ANSI C forbids data definition with no type or storage class");
1705 else if (!flag_traditional)
1706 warning ("data definition has no type or storage class");
1708 current_declspecs = TREE_VALUE (declspec_stack);
1709 prefix_attributes = TREE_PURPOSE (declspec_stack);
1710 declspec_stack = TREE_CHAIN (declspec_stack);
1711 resume_momentary (yyvsp[-2].itype); ;
1714 #line 282 "c-parse.y"
1715 { current_declspecs = TREE_VALUE (declspec_stack);
1716 prefix_attributes = TREE_PURPOSE (declspec_stack);
1717 declspec_stack = TREE_CHAIN (declspec_stack);
1718 resume_momentary (yyvsp[-2].itype); ;
1721 #line 287 "c-parse.y"
1722 { current_declspecs = TREE_VALUE (declspec_stack);
1723 prefix_attributes = TREE_PURPOSE (declspec_stack);
1724 declspec_stack = TREE_CHAIN (declspec_stack);
1725 resume_momentary (yyvsp[-2].itype); ;
1728 #line 292 "c-parse.y"
1729 { pedwarn ("empty declaration"); ;
1732 #line 294 "c-parse.y"
1733 { shadow_tag (yyvsp[-1].ttype); ;
1736 #line 298 "c-parse.y"
1738 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1741 #line 304 "c-parse.y"
1742 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1743 prefix_attributes, NULL_TREE, 0))
1745 reinit_parse_for_function (); ;
1748 #line 309 "c-parse.y"
1749 { store_parm_decls (); ;
1752 #line 311 "c-parse.y"
1753 { finish_function (0);
1754 current_declspecs = TREE_VALUE (declspec_stack);
1755 prefix_attributes = TREE_PURPOSE (declspec_stack);
1756 declspec_stack = TREE_CHAIN (declspec_stack);
1757 resume_momentary (yyvsp[-5].itype); ;
1760 #line 317 "c-parse.y"
1761 { current_declspecs = TREE_VALUE (declspec_stack);
1762 prefix_attributes = TREE_PURPOSE (declspec_stack);
1763 declspec_stack = TREE_CHAIN (declspec_stack);
1764 resume_momentary (yyvsp[-2].itype); ;
1767 #line 322 "c-parse.y"
1768 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1769 prefix_attributes, NULL_TREE, 0))
1771 reinit_parse_for_function (); ;
1774 #line 327 "c-parse.y"
1775 { store_parm_decls (); ;
1778 #line 329 "c-parse.y"
1779 { finish_function (0);
1780 current_declspecs = TREE_VALUE (declspec_stack);
1781 prefix_attributes = TREE_PURPOSE (declspec_stack);
1782 declspec_stack = TREE_CHAIN (declspec_stack);
1783 resume_momentary (yyvsp[-5].itype); ;
1786 #line 335 "c-parse.y"
1787 { current_declspecs = TREE_VALUE (declspec_stack);
1788 prefix_attributes = TREE_PURPOSE (declspec_stack);
1789 declspec_stack = TREE_CHAIN (declspec_stack);
1790 resume_momentary (yyvsp[-2].itype); ;
1793 #line 340 "c-parse.y"
1794 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1795 prefix_attributes, NULL_TREE, 0))
1797 reinit_parse_for_function (); ;
1800 #line 345 "c-parse.y"
1801 { store_parm_decls (); ;
1804 #line 347 "c-parse.y"
1805 { finish_function (0);
1806 current_declspecs = TREE_VALUE (declspec_stack);
1807 prefix_attributes = TREE_PURPOSE (declspec_stack);
1808 declspec_stack = TREE_CHAIN (declspec_stack);
1809 resume_momentary (yyvsp[-5].itype); ;
1812 #line 353 "c-parse.y"
1813 { current_declspecs = TREE_VALUE (declspec_stack);
1814 prefix_attributes = TREE_PURPOSE (declspec_stack);
1815 declspec_stack = TREE_CHAIN (declspec_stack);
1816 resume_momentary (yyvsp[-2].itype); ;
1819 #line 365 "c-parse.y"
1820 { yyval.code = ADDR_EXPR; ;
1823 #line 367 "c-parse.y"
1824 { yyval.code = NEGATE_EXPR; ;
1827 #line 369 "c-parse.y"
1828 { yyval.code = CONVERT_EXPR; ;
1831 #line 371 "c-parse.y"
1832 { yyval.code = PREINCREMENT_EXPR; ;
1835 #line 373 "c-parse.y"
1836 { yyval.code = PREDECREMENT_EXPR; ;
1839 #line 375 "c-parse.y"
1840 { yyval.code = BIT_NOT_EXPR; ;
1843 #line 377 "c-parse.y"
1844 { yyval.code = TRUTH_NOT_EXPR; ;
1847 #line 381 "c-parse.y"
1848 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1851 #line 386 "c-parse.y"
1852 { yyval.ttype = NULL_TREE; ;
1855 #line 392 "c-parse.y"
1856 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1859 #line 394 "c-parse.y"
1860 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1863 #line 400 "c-parse.y"
1864 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1867 #line 403 "c-parse.y"
1868 { yyval.ttype = yyvsp[0].ttype;
1869 pedantic = yyvsp[-1].itype; ;
1872 #line 406 "c-parse.y"
1873 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1874 overflow_warning (yyval.ttype); ;
1877 #line 410 "c-parse.y"
1878 { tree label = lookup_label (yyvsp[0].ttype);
1880 pedwarn ("ANSI C forbids `&&'");
1882 yyval.ttype = null_pointer_node;
1885 TREE_USED (label) = 1;
1886 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1887 TREE_CONSTANT (yyval.ttype) = 1;
1892 #line 438 "c-parse.y"
1893 { skip_evaluation--;
1894 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1895 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1896 error ("`sizeof' applied to a bit-field");
1897 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1900 #line 444 "c-parse.y"
1901 { skip_evaluation--;
1902 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1905 #line 447 "c-parse.y"
1906 { skip_evaluation--;
1907 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1910 #line 450 "c-parse.y"
1911 { skip_evaluation--;
1912 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1915 #line 453 "c-parse.y"
1916 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1919 #line 455 "c-parse.y"
1920 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1923 #line 459 "c-parse.y"
1924 { skip_evaluation++; ;
1927 #line 463 "c-parse.y"
1928 { skip_evaluation++; ;
1931 #line 469 "c-parse.y"
1932 { tree type = groktypename (yyvsp[-2].ttype);
1933 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1936 #line 472 "c-parse.y"
1937 { start_init (NULL_TREE, NULL, 0);
1938 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1939 really_start_incremental_init (yyvsp[-2].ttype); ;
1942 #line 476 "c-parse.y"
1944 tree result = pop_init_level (0);
1945 tree type = yyvsp[-5].ttype;
1949 pedwarn ("ANSI C forbids constructor expressions");
1950 if (TYPE_NAME (type) != 0)
1952 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1953 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1955 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1959 yyval.ttype = result;
1960 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1962 int failure = complete_array_type (type, yyval.ttype, 1);
1969 #line 505 "c-parse.y"
1970 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1973 #line 507 "c-parse.y"
1974 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1977 #line 509 "c-parse.y"
1978 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1981 #line 511 "c-parse.y"
1982 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1985 #line 513 "c-parse.y"
1986 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1989 #line 515 "c-parse.y"
1990 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1993 #line 517 "c-parse.y"
1994 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1997 #line 519 "c-parse.y"
1998 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2001 #line 521 "c-parse.y"
2002 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2005 #line 523 "c-parse.y"
2006 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2009 #line 525 "c-parse.y"
2010 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2013 #line 527 "c-parse.y"
2014 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2017 #line 529 "c-parse.y"
2018 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2019 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2022 #line 532 "c-parse.y"
2023 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2024 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2027 #line 535 "c-parse.y"
2028 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2029 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2032 #line 538 "c-parse.y"
2033 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2034 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2037 #line 541 "c-parse.y"
2038 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2039 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2042 #line 544 "c-parse.y"
2043 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2044 - (yyvsp[-4].ttype == boolean_false_node)); ;
2047 #line 547 "c-parse.y"
2048 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2049 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2052 #line 550 "c-parse.y"
2054 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2055 /* Make sure first operand is calculated only once. */
2056 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2057 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2058 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2061 #line 557 "c-parse.y"
2062 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2063 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2066 #line 560 "c-parse.y"
2067 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2068 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2071 #line 563 "c-parse.y"
2072 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2073 /* This inhibits warnings in truthvalue_conversion. */
2074 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2077 #line 570 "c-parse.y"
2079 yyval.ttype = lastiddecl;
2080 if (!yyval.ttype || yyval.ttype == error_mark_node)
2082 if (yychar == YYEMPTY)
2087 /* Ordinary implicit function declaration. */
2088 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2089 assemble_external (yyval.ttype);
2090 TREE_USED (yyval.ttype) = 1;
2093 else if (current_function_decl == 0)
2095 error ("`%s' undeclared here (not in a function)",
2096 IDENTIFIER_POINTER (yyvsp[0].ttype));
2097 yyval.ttype = error_mark_node;
2102 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2103 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2105 error ("`%s' undeclared (first use in this function)",
2106 IDENTIFIER_POINTER (yyvsp[0].ttype));
2108 if (! undeclared_variable_notice)
2110 error ("(Each undeclared identifier is reported only once");
2111 error ("for each function it appears in.)");
2112 undeclared_variable_notice = 1;
2115 yyval.ttype = error_mark_node;
2116 /* Prevent repeated error messages. */
2117 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2118 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2122 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2123 yyval.ttype = error_mark_node;
2124 else if (C_DECL_ANTICIPATED (yyval.ttype))
2126 /* The first time we see a build-in function used,
2127 if it has not been declared. */
2128 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2129 if (yychar == YYEMPTY)
2133 /* Omit the implicit declaration we
2134 would ordinarily do, so we don't lose
2135 the actual built in type.
2136 But print a diagnostic for the mismatch. */
2137 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2138 error ("`%s' implicitly declared as function",
2139 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2140 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2141 != TYPE_MODE (integer_type_node))
2142 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2144 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2145 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2146 /* If it really returns void, change that to int. */
2147 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2148 TREE_TYPE (yyval.ttype)
2149 = build_function_type (integer_type_node,
2150 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2153 pedwarn ("built-in function `%s' used without declaration",
2154 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2156 /* Do what we would ordinarily do when a fn is used. */
2157 assemble_external (yyval.ttype);
2158 TREE_USED (yyval.ttype) = 1;
2162 assemble_external (yyval.ttype);
2163 TREE_USED (yyval.ttype) = 1;
2166 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2168 yyval.ttype = DECL_INITIAL (yyval.ttype);
2169 /* This is to prevent an enum whose value is 0
2170 from being considered a null pointer constant. */
2171 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2172 TREE_CONSTANT (yyval.ttype) = 1;
2177 #line 669 "c-parse.y"
2178 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2181 #line 671 "c-parse.y"
2182 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2183 if (class == 'e' || class == '1'
2184 || class == '2' || class == '<')
2185 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2186 yyval.ttype = yyvsp[-1].ttype; ;
2189 #line 677 "c-parse.y"
2190 { yyval.ttype = error_mark_node; ;
2193 #line 679 "c-parse.y"
2194 { if (current_function_decl == 0)
2196 error ("braced-group within expression allowed only inside a function");
2199 /* We must force a BLOCK for this level
2200 so that, if it is not expanded later,
2201 there is a way to turn off the entire subtree of blocks
2202 that are contained in it. */
2204 push_iterator_stack ();
2205 push_label_level ();
2206 yyval.ttype = expand_start_stmt_expr (); ;
2209 #line 693 "c-parse.y"
2212 pedwarn ("ANSI C forbids braced-groups within expressions");
2213 pop_iterator_stack ();
2215 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2216 /* The statements have side effects, so the group does. */
2217 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2219 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2221 /* Make a BIND_EXPR for the BLOCK already made. */
2222 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2223 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2224 /* Remove the block from the tree at this point.
2225 It gets put back at the proper place
2226 when the BIND_EXPR is expanded. */
2227 delete_block (yyvsp[-1].ttype);
2230 yyval.ttype = yyvsp[-1].ttype;
2234 #line 716 "c-parse.y"
2235 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2238 #line 718 "c-parse.y"
2239 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2242 #line 720 "c-parse.y"
2244 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2248 #line 724 "c-parse.y"
2250 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2252 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2256 #line 730 "c-parse.y"
2257 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2260 #line 732 "c-parse.y"
2261 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2264 #line 739 "c-parse.y"
2265 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2268 #line 748 "c-parse.y"
2269 { c_mark_varargs ();
2271 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2274 #line 758 "c-parse.y"
2278 #line 774 "c-parse.y"
2279 { current_declspecs = TREE_VALUE (declspec_stack);
2280 prefix_attributes = TREE_PURPOSE (declspec_stack);
2281 declspec_stack = TREE_CHAIN (declspec_stack);
2282 resume_momentary (yyvsp[-2].itype); ;
2285 #line 779 "c-parse.y"
2286 { current_declspecs = TREE_VALUE (declspec_stack);
2287 prefix_attributes = TREE_PURPOSE (declspec_stack);
2288 declspec_stack = TREE_CHAIN (declspec_stack);
2289 resume_momentary (yyvsp[-2].itype); ;
2292 #line 784 "c-parse.y"
2293 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2294 pedwarn ("empty declaration"); ;
2297 #line 787 "c-parse.y"
2298 { pedwarn ("empty declaration"); ;
2301 #line 796 "c-parse.y"
2305 #line 811 "c-parse.y"
2306 { yyval.itype = suspend_momentary ();
2307 pending_xref_error ();
2308 declspec_stack = tree_cons (prefix_attributes,
2311 split_specs_attrs (yyvsp[0].ttype,
2312 ¤t_declspecs, &prefix_attributes); ;
2315 #line 822 "c-parse.y"
2316 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2319 #line 827 "c-parse.y"
2320 { current_declspecs = TREE_VALUE (declspec_stack);
2321 prefix_attributes = TREE_PURPOSE (declspec_stack);
2322 declspec_stack = TREE_CHAIN (declspec_stack);
2323 resume_momentary (yyvsp[-2].itype); ;
2326 #line 832 "c-parse.y"
2327 { current_declspecs = TREE_VALUE (declspec_stack);
2328 prefix_attributes = TREE_PURPOSE (declspec_stack);
2329 declspec_stack = TREE_CHAIN (declspec_stack);
2330 resume_momentary (yyvsp[-2].itype); ;
2333 #line 837 "c-parse.y"
2334 { current_declspecs = TREE_VALUE (declspec_stack);
2335 prefix_attributes = TREE_PURPOSE (declspec_stack);
2336 declspec_stack = TREE_CHAIN (declspec_stack);
2337 resume_momentary (yyvsp[-1].itype); ;
2340 #line 842 "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[-1].itype); ;
2347 #line 847 "c-parse.y"
2348 { shadow_tag (yyvsp[-1].ttype); ;
2351 #line 849 "c-parse.y"
2352 { pedwarn ("empty declaration"); ;
2355 #line 851 "c-parse.y"
2356 { pedantic = yyvsp[-1].itype; ;
2359 #line 861 "c-parse.y"
2360 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2363 #line 863 "c-parse.y"
2364 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2367 #line 867 "c-parse.y"
2368 { yyval.ttype = NULL_TREE; ;
2371 #line 869 "c-parse.y"
2372 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2375 #line 871 "c-parse.y"
2376 { if (extra_warnings)
2377 warning ("`%s' is not at beginning of declaration",
2378 IDENTIFIER_POINTER (yyvsp[0].ttype));
2379 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2382 #line 876 "c-parse.y"
2383 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2386 #line 881 "c-parse.y"
2387 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2390 #line 883 "c-parse.y"
2391 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2394 #line 888 "c-parse.y"
2395 { yyval.ttype = NULL_TREE; ;
2398 #line 890 "c-parse.y"
2399 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2402 #line 892 "c-parse.y"
2403 { if (extra_warnings)
2404 warning ("`%s' is not at beginning of declaration",
2405 IDENTIFIER_POINTER (yyvsp[0].ttype));
2406 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2409 #line 905 "c-parse.y"
2410 { yyval.ttype = yyvsp[0].ttype; ;
2413 #line 907 "c-parse.y"
2414 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2417 #line 909 "c-parse.y"
2418 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2421 #line 911 "c-parse.y"
2422 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2425 #line 916 "c-parse.y"
2426 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2427 TREE_STATIC (yyval.ttype) = 1; ;
2430 #line 919 "c-parse.y"
2431 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2434 #line 921 "c-parse.y"
2435 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2436 TREE_STATIC (yyval.ttype) = 1; ;
2439 #line 924 "c-parse.y"
2440 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2441 warning ("`%s' is not at beginning of declaration",
2442 IDENTIFIER_POINTER (yyvsp[0].ttype));
2443 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2444 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2447 #line 938 "c-parse.y"
2448 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2451 #line 940 "c-parse.y"
2452 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2455 #line 944 "c-parse.y"
2456 { yyval.ttype = NULL_TREE; ;
2459 #line 946 "c-parse.y"
2460 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2463 #line 956 "c-parse.y"
2464 { /* For a typedef name, record the meaning, not the name.
2465 In case of `foo foo, bar;'. */
2466 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2469 #line 960 "c-parse.y"
2470 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2473 #line 962 "c-parse.y"
2474 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2477 #line 984 "c-parse.y"
2478 { yyval.ttype = NULL_TREE; ;
2481 #line 986 "c-parse.y"
2482 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2483 yyval.ttype = yyvsp[-1].ttype;
2487 #line 993 "c-parse.y"
2488 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2489 yyvsp[-1].ttype, prefix_attributes);
2490 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2493 #line 998 "c-parse.y"
2495 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2498 #line 1001 "c-parse.y"
2499 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2500 yyvsp[0].ttype, prefix_attributes);
2501 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2505 #line 1009 "c-parse.y"
2506 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2507 yyvsp[-1].ttype, prefix_attributes);
2508 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2511 #line 1014 "c-parse.y"
2513 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2514 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2517 #line 1018 "c-parse.y"
2518 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2519 yyvsp[0].ttype, prefix_attributes);
2520 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2523 #line 1026 "c-parse.y"
2524 { yyval.ttype = NULL_TREE; ;
2527 #line 1028 "c-parse.y"
2528 { yyval.ttype = yyvsp[0].ttype; ;
2531 #line 1033 "c-parse.y"
2532 { yyval.ttype = yyvsp[0].ttype; ;
2535 #line 1035 "c-parse.y"
2536 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2539 #line 1040 "c-parse.y"
2540 { yyval.ttype = yyvsp[-2].ttype; ;
2543 #line 1045 "c-parse.y"
2544 { yyval.ttype = yyvsp[0].ttype; ;
2547 #line 1047 "c-parse.y"
2548 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2551 #line 1052 "c-parse.y"
2552 { yyval.ttype = NULL_TREE; ;
2555 #line 1054 "c-parse.y"
2556 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2559 #line 1056 "c-parse.y"
2560 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2563 #line 1058 "c-parse.y"
2564 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2567 #line 1060 "c-parse.y"
2568 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2571 #line 1078 "c-parse.y"
2572 { really_start_incremental_init (NULL_TREE);
2573 /* Note that the call to clear_momentary
2574 is in process_init_element. */
2575 push_momentary (); ;
2578 #line 1083 "c-parse.y"
2579 { yyval.ttype = pop_init_level (0);
2580 if (yyval.ttype == error_mark_node
2581 && ! (yychar == STRING || yychar == CONSTANT))
2584 pop_momentary_nofree (); ;
2587 #line 1091 "c-parse.y"
2588 { yyval.ttype = error_mark_node; ;
2591 #line 1097 "c-parse.y"
2593 pedwarn ("ANSI C forbids empty initializer braces"); ;
2596 #line 1111 "c-parse.y"
2597 { process_init_element (yyvsp[0].ttype); ;
2600 #line 1113 "c-parse.y"
2601 { push_init_level (0); ;
2604 #line 1115 "c-parse.y"
2605 { process_init_element (pop_init_level (0)); ;
2608 #line 1121 "c-parse.y"
2609 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
2612 #line 1124 "c-parse.y"
2613 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
2616 #line 1127 "c-parse.y"
2617 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2620 #line 1130 "c-parse.y"
2621 { set_init_label (yyvsp[-1].ttype); ;
2624 #line 1133 "c-parse.y"
2625 { set_init_label (yyvsp[-1].ttype); ;
2628 #line 1139 "c-parse.y"
2629 { push_c_function_context ();
2630 if (! start_function (current_declspecs, yyvsp[0].ttype,
2631 prefix_attributes, NULL_TREE, 1))
2633 pop_c_function_context ();
2636 reinit_parse_for_function (); ;
2639 #line 1148 "c-parse.y"
2640 { store_parm_decls (); ;
2643 #line 1156 "c-parse.y"
2644 { finish_function (1);
2645 pop_c_function_context (); ;
2648 #line 1162 "c-parse.y"
2649 { push_c_function_context ();
2650 if (! start_function (current_declspecs, yyvsp[0].ttype,
2651 prefix_attributes, NULL_TREE, 1))
2653 pop_c_function_context ();
2656 reinit_parse_for_function (); ;
2659 #line 1171 "c-parse.y"
2660 { store_parm_decls (); ;
2663 #line 1179 "c-parse.y"
2664 { finish_function (1);
2665 pop_c_function_context (); ;
2668 #line 1195 "c-parse.y"
2669 { yyval.ttype = yyvsp[-1].ttype; ;
2672 #line 1197 "c-parse.y"
2673 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2676 #line 1202 "c-parse.y"
2677 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2680 #line 1204 "c-parse.y"
2681 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2684 #line 1206 "c-parse.y"
2685 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2688 #line 1213 "c-parse.y"
2689 { yyval.ttype = yyvsp[0].ttype; ;
2692 #line 1224 "c-parse.y"
2693 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2696 #line 1229 "c-parse.y"
2697 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2700 #line 1231 "c-parse.y"
2701 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2704 #line 1233 "c-parse.y"
2705 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2708 #line 1240 "c-parse.y"
2709 { yyval.ttype = yyvsp[0].ttype; ;
2712 #line 1249 "c-parse.y"
2713 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2716 #line 1254 "c-parse.y"
2717 { yyval.ttype = yyvsp[-1].ttype; ;
2720 #line 1256 "c-parse.y"
2721 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2724 #line 1258 "c-parse.y"
2725 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2728 #line 1260 "c-parse.y"
2729 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2732 #line 1267 "c-parse.y"
2733 { yyval.ttype = yyvsp[0].ttype; ;
2736 #line 1273 "c-parse.y"
2737 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2738 /* Start scope of tag before parsing components. */
2742 #line 1277 "c-parse.y"
2743 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2746 #line 1279 "c-parse.y"
2747 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2748 yyvsp[-2].ttype, yyvsp[0].ttype);
2752 #line 1283 "c-parse.y"
2753 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2756 #line 1285 "c-parse.y"
2757 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2760 #line 1287 "c-parse.y"
2761 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2764 #line 1289 "c-parse.y"
2765 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2766 yyvsp[-2].ttype, yyvsp[0].ttype);
2770 #line 1293 "c-parse.y"
2771 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2774 #line 1295 "c-parse.y"
2775 { yyvsp[0].itype = suspend_momentary ();
2776 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2779 #line 1298 "c-parse.y"
2780 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2781 resume_momentary (yyvsp[-5].itype); ;
2784 #line 1301 "c-parse.y"
2785 { yyvsp[0].itype = suspend_momentary ();
2786 yyval.ttype = start_enum (NULL_TREE); ;
2789 #line 1304 "c-parse.y"
2790 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2791 resume_momentary (yyvsp[-5].itype); ;
2794 #line 1307 "c-parse.y"
2795 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2798 #line 1318 "c-parse.y"
2799 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2802 #line 1323 "c-parse.y"
2803 { yyval.ttype = yyvsp[0].ttype; ;
2806 #line 1325 "c-parse.y"
2807 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2808 pedwarn ("no semicolon at end of struct or union"); ;
2811 #line 1330 "c-parse.y"
2812 { yyval.ttype = NULL_TREE; ;
2815 #line 1332 "c-parse.y"
2816 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2819 #line 1334 "c-parse.y"
2821 pedwarn ("extra semicolon in struct or union specified"); ;
2824 #line 1349 "c-parse.y"
2825 { yyval.ttype = yyvsp[0].ttype;
2826 current_declspecs = TREE_VALUE (declspec_stack);
2827 prefix_attributes = TREE_PURPOSE (declspec_stack);
2828 declspec_stack = TREE_CHAIN (declspec_stack);
2829 resume_momentary (yyvsp[-1].itype); ;
2832 #line 1355 "c-parse.y"
2834 pedwarn ("ANSI C forbids member declarations with no members");
2835 shadow_tag(yyvsp[0].ttype);
2836 yyval.ttype = NULL_TREE; ;
2839 #line 1360 "c-parse.y"
2840 { yyval.ttype = yyvsp[0].ttype;
2841 current_declspecs = TREE_VALUE (declspec_stack);
2842 prefix_attributes = TREE_PURPOSE (declspec_stack);
2843 declspec_stack = TREE_CHAIN (declspec_stack);
2844 resume_momentary (yyvsp[-1].itype); ;
2847 #line 1366 "c-parse.y"
2849 pedwarn ("ANSI C forbids member declarations with no members");
2850 shadow_tag(yyvsp[0].ttype);
2851 yyval.ttype = NULL_TREE; ;
2854 #line 1371 "c-parse.y"
2855 { yyval.ttype = NULL_TREE; ;
2858 #line 1373 "c-parse.y"
2859 { yyval.ttype = yyvsp[0].ttype;
2860 pedantic = yyvsp[-1].itype; ;
2863 #line 1380 "c-parse.y"
2864 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2867 #line 1385 "c-parse.y"
2868 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2869 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2872 #line 1389 "c-parse.y"
2873 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2874 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2877 #line 1392 "c-parse.y"
2878 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2879 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2882 #line 1404 "c-parse.y"
2883 { if (yyvsp[-2].ttype == error_mark_node)
2884 yyval.ttype = yyvsp[-2].ttype;
2886 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2889 #line 1409 "c-parse.y"
2890 { yyval.ttype = error_mark_node; ;
2893 #line 1415 "c-parse.y"
2894 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2897 #line 1417 "c-parse.y"
2898 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2901 #line 1422 "c-parse.y"
2902 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2905 #line 1424 "c-parse.y"
2906 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2909 #line 1429 "c-parse.y"
2910 { yyval.ttype = NULL_TREE; ;
2913 #line 1435 "c-parse.y"
2914 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2917 #line 1437 "c-parse.y"
2918 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2921 #line 1442 "c-parse.y"
2922 { yyval.ttype = NULL_TREE; ;
2925 #line 1444 "c-parse.y"
2926 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2929 #line 1449 "c-parse.y"
2930 { yyval.ttype = yyvsp[-1].ttype; ;
2933 #line 1452 "c-parse.y"
2934 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2937 #line 1454 "c-parse.y"
2938 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2941 #line 1456 "c-parse.y"
2942 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2945 #line 1458 "c-parse.y"
2946 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2949 #line 1460 "c-parse.y"
2950 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2953 #line 1462 "c-parse.y"
2954 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2957 #line 1464 "c-parse.y"
2958 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2961 #line 1466 "c-parse.y"
2962 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2965 #line 1477 "c-parse.y"
2967 if (pedantic && yyvsp[0].ends_in_label)
2968 pedwarn ("ANSI C forbids label at end of compound statement");
2972 #line 1486 "c-parse.y"
2973 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
2976 #line 1488 "c-parse.y"
2977 { yyval.ends_in_label = 0; ;
2980 #line 1500 "c-parse.y"
2981 { emit_line_note (input_filename, lineno);
2985 expand_start_bindings (0);
2989 #line 1513 "c-parse.y"
2991 pedwarn ("ANSI C forbids label declarations"); ;
2994 #line 1524 "c-parse.y"
2996 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
2998 tree label = shadow_label (TREE_VALUE (link));
2999 C_DECLARED_LABEL_FLAG (label) = 1;
3000 declare_nonlocal_label (label);
3005 #line 1538 "c-parse.y"
3009 #line 1542 "c-parse.y"
3010 { compstmt_count++; ;
3013 #line 1545 "c-parse.y"
3014 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3017 #line 1547 "c-parse.y"
3018 { emit_line_note (input_filename, lineno);
3019 expand_end_bindings (getdecls (), 1, 0);
3020 yyval.ttype = poplevel (1, 1, 0);
3021 if (yychar == CONSTANT || yychar == STRING)
3022 pop_momentary_nofree ();
3027 #line 1555 "c-parse.y"
3028 { emit_line_note (input_filename, lineno);
3029 expand_end_bindings (getdecls (), kept_level_p (), 0);
3030 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3031 if (yychar == CONSTANT || yychar == STRING)
3032 pop_momentary_nofree ();
3037 #line 1563 "c-parse.y"
3038 { emit_line_note (input_filename, lineno);
3039 expand_end_bindings (getdecls (), kept_level_p (), 0);
3040 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3041 if (yychar == CONSTANT || yychar == STRING)
3042 pop_momentary_nofree ();
3047 #line 1583 "c-parse.y"
3048 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3049 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3051 yyval.itype = stmt_count;
3052 if_stmt_file = yyvsp[-5].filename;
3053 if_stmt_line = yyvsp[-4].lineno;
3054 position_after_white_space (); ;
3057 #line 1597 "c-parse.y"
3060 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3061 /* See comment in `while' alternative, above. */
3063 expand_start_loop_continue_elsewhere (1);
3064 position_after_white_space (); ;
3067 #line 1605 "c-parse.y"
3068 { expand_loop_continue_here (); ;
3071 #line 1609 "c-parse.y"
3072 { yyval.filename = input_filename; ;
3075 #line 1613 "c-parse.y"
3076 { yyval.lineno = lineno; ;
3079 #line 1618 "c-parse.y"
3083 #line 1623 "c-parse.y"
3087 #line 1628 "c-parse.y"
3088 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3091 #line 1633 "c-parse.y"
3092 { yyval.ends_in_label = 0; ;
3095 #line 1635 "c-parse.y"
3096 { yyval.ends_in_label = 1; ;
3099 #line 1641 "c-parse.y"
3103 #line 1644 "c-parse.y"
3105 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3106 /* It appears that this should not be done--that a non-lvalue array
3107 shouldn't get an error if the value isn't used.
3108 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3109 if it appears as a top-level expression,
3110 but says nothing about non-lvalue arrays. */
3112 /* Call default_conversion to get an error
3113 on referring to a register array if pedantic. */
3114 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3115 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3116 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3118 iterator_expand (yyvsp[-1].ttype);
3119 clear_momentary (); ;
3122 #line 1661 "c-parse.y"
3123 { c_expand_start_else ();
3124 yyvsp[-1].itype = stmt_count;
3125 position_after_white_space (); ;
3128 #line 1665 "c-parse.y"
3129 { c_expand_end_cond ();
3130 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3131 warning ("empty body in an else-statement"); ;
3134 #line 1669 "c-parse.y"
3135 { c_expand_end_cond ();
3136 /* This warning is here instead of in simple_if, because we
3137 do not want a warning if an empty if is followed by an
3138 else statement. Increment stmt_count so we don't
3139 give a second error if this is a nested `if'. */
3140 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3141 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3142 "empty body in an if-statement"); ;
3145 #line 1681 "c-parse.y"
3146 { c_expand_end_cond (); ;
3149 #line 1683 "c-parse.y"
3151 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3152 /* The emit_nop used to come before emit_line_note,
3153 but that made the nop seem like part of the preceding line.
3154 And that was confusing when the preceding line was
3155 inside of an if statement and was not really executed.
3156 I think it ought to work to put the nop after the line number.
3157 We will see. --rms, July 15, 1991. */
3161 #line 1693 "c-parse.y"
3162 { /* Don't start the loop till we have succeeded
3163 in parsing the end test. This is to make sure
3164 that we end every loop we start. */
3165 expand_start_loop (1);
3166 emit_line_note (input_filename, lineno);
3167 expand_exit_loop_if_false (NULL_PTR,
3168 truthvalue_conversion (yyvsp[-1].ttype));
3169 position_after_white_space (); ;
3172 #line 1702 "c-parse.y"
3173 { expand_end_loop (); ;
3176 #line 1705 "c-parse.y"
3177 { emit_line_note (input_filename, lineno);
3178 expand_exit_loop_if_false (NULL_PTR,
3179 truthvalue_conversion (yyvsp[-2].ttype));
3181 clear_momentary (); ;
3184 #line 1712 "c-parse.y"
3185 { expand_end_loop ();
3186 clear_momentary (); ;
3189 #line 1716 "c-parse.y"
3191 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3192 /* See comment in `while' alternative, above. */
3194 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3195 /* Next step is to call expand_start_loop_continue_elsewhere,
3196 but wait till after we parse the entire for (...).
3197 Otherwise, invalid input might cause us to call that
3198 fn without calling expand_end_loop. */
3202 #line 1728 "c-parse.y"
3203 { yyvsp[0].lineno = lineno;
3204 yyval.filename = input_filename; ;
3207 #line 1731 "c-parse.y"
3209 /* Start the loop. Doing this after parsing
3210 all the expressions ensures we will end the loop. */
3211 expand_start_loop_continue_elsewhere (1);
3212 /* Emit the end-test, with a line number. */
3213 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3214 if (yyvsp[-4].ttype)
3215 expand_exit_loop_if_false (NULL_PTR,
3216 truthvalue_conversion (yyvsp[-4].ttype));
3217 /* Don't let the tree nodes for $9 be discarded by
3218 clear_momentary during the parsing of the next stmt. */
3220 yyvsp[-3].lineno = lineno;
3221 yyvsp[-2].filename = input_filename;
3222 position_after_white_space (); ;
3225 #line 1747 "c-parse.y"
3226 { /* Emit the increment expression, with a line number. */
3227 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3228 expand_loop_continue_here ();
3229 if (yyvsp[-3].ttype)
3230 c_expand_expr_stmt (yyvsp[-3].ttype);
3231 if (yychar == CONSTANT || yychar == STRING)
3232 pop_momentary_nofree ();
3235 expand_end_loop (); ;
3238 #line 1758 "c-parse.y"
3240 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3241 c_expand_start_case (yyvsp[-1].ttype);
3242 /* Don't let the tree nodes for $3 be discarded by
3243 clear_momentary during the parsing of the next stmt. */
3245 position_after_white_space (); ;
3248 #line 1766 "c-parse.y"
3249 { expand_end_case (yyvsp[-3].ttype);
3250 if (yychar == CONSTANT || yychar == STRING)
3251 pop_momentary_nofree ();
3256 #line 1772 "c-parse.y"
3258 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3259 if ( ! expand_exit_something ())
3260 error ("break statement not within loop or switch"); ;
3263 #line 1777 "c-parse.y"
3265 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3266 if (! expand_continue_loop (NULL_PTR))
3267 error ("continue statement not within a loop"); ;
3270 #line 1782 "c-parse.y"
3272 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3273 c_expand_return (NULL_TREE); ;
3276 #line 1786 "c-parse.y"
3278 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3279 c_expand_return (yyvsp[-1].ttype); ;
3282 #line 1790 "c-parse.y"
3284 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3285 STRIP_NOPS (yyvsp[-2].ttype);
3286 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3287 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3288 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3289 expand_asm (yyvsp[-2].ttype);
3291 error ("argument of `asm' is not a constant string"); ;
3294 #line 1801 "c-parse.y"
3296 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3297 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3298 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3299 input_filename, lineno); ;
3302 #line 1808 "c-parse.y"
3304 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3305 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3306 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3307 input_filename, lineno); ;
3310 #line 1816 "c-parse.y"
3312 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3313 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3314 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3315 input_filename, lineno); ;
3318 #line 1822 "c-parse.y"
3321 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3322 decl = lookup_label (yyvsp[-1].ttype);
3325 TREE_USED (decl) = 1;
3331 #line 1833 "c-parse.y"
3333 pedwarn ("ANSI C forbids `goto *expr;'");
3335 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3336 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3339 #line 1848 "c-parse.y"
3341 /* The value returned by this action is */
3342 /* 1 if everything is OK */
3343 /* 0 in case of error or already bound iterator */
3346 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3347 error ("invalid `for (ITERATOR)' syntax");
3348 else if (! ITERATOR_P (yyvsp[-1].ttype))
3349 error ("`%s' is not an iterator",
3350 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3351 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3352 error ("`for (%s)' inside expansion of same iterator",
3353 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3357 iterator_for_loop_start (yyvsp[-1].ttype);
3362 #line 1869 "c-parse.y"
3364 if (yyvsp[-1].itype)
3365 iterator_for_loop_end (yyvsp[-3].ttype);
3369 #line 1904 "c-parse.y"
3370 { register tree value = check_case_value (yyvsp[-1].ttype);
3372 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3376 if (value != error_mark_node)
3381 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3382 pedwarn ("label must have integral type in ANSI C");
3384 success = pushcase (value, convert_and_check,
3388 error ("case label not within a switch statement");
3389 else if (success == 2)
3391 error ("duplicate case value");
3392 error_with_decl (duplicate, "this is the first entry for that value");
3394 else if (success == 3)
3395 warning ("case value out of range");
3396 else if (success == 5)
3397 error ("case label within scope of cleanup or variable array");
3399 position_after_white_space (); ;
3402 #line 1935 "c-parse.y"
3403 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3404 register tree value2 = check_case_value (yyvsp[-1].ttype);
3406 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3409 pedwarn ("ANSI C forbids case ranges");
3412 if (value1 != error_mark_node && value2 != error_mark_node)
3415 int success = pushcase_range (value1, value2,
3416 convert_and_check, label,
3419 error ("case label not within a switch statement");
3420 else if (success == 2)
3422 error ("duplicate case value");
3423 error_with_decl (duplicate, "this is the first entry for that value");
3425 else if (success == 3)
3426 warning ("case value out of range");
3427 else if (success == 4)
3428 warning ("empty case range");
3429 else if (success == 5)
3430 error ("case label within scope of cleanup or variable array");
3432 position_after_white_space (); ;
3435 #line 1966 "c-parse.y"
3439 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3440 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3443 error ("default label not within a switch statement");
3444 else if (success == 2)
3446 error ("multiple default labels in one switch");
3447 error_with_decl (duplicate, "this is the first default label");
3449 position_after_white_space (); ;
3452 #line 1981 "c-parse.y"
3453 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3457 expand_label (label);
3458 position_after_white_space (); ;
3461 #line 1993 "c-parse.y"
3462 { emit_line_note (input_filename, lineno);
3463 yyval.ttype = NULL_TREE; ;
3466 #line 1996 "c-parse.y"
3467 { emit_line_note (input_filename, lineno); ;
3470 #line 2001 "c-parse.y"
3471 { yyval.ttype = NULL_TREE; ;
3474 #line 2008 "c-parse.y"
3475 { yyval.ttype = NULL_TREE; ;
3478 #line 2015 "c-parse.y"
3479 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3482 #line 2020 "c-parse.y"
3483 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3486 #line 2025 "c-parse.y"
3487 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3490 #line 2027 "c-parse.y"
3491 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3494 #line 2033 "c-parse.y"
3496 clear_parm_order ();
3497 declare_parm_level (0); ;
3500 #line 2037 "c-parse.y"
3501 { yyval.ttype = yyvsp[0].ttype;
3502 parmlist_tags_warning ();
3503 poplevel (0, 0, 0); ;
3506 #line 2045 "c-parse.y"
3509 pedwarn ("ANSI C forbids forward parameter declarations");
3510 /* Mark the forward decls as such. */
3511 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3512 TREE_ASM_WRITTEN (parm) = 1;
3513 clear_parm_order (); ;
3516 #line 2053 "c-parse.y"
3517 { yyval.ttype = yyvsp[0].ttype; ;
3520 #line 2055 "c-parse.y"
3521 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3524 #line 2061 "c-parse.y"
3525 { yyval.ttype = get_parm_info (0); ;
3528 #line 2063 "c-parse.y"
3529 { yyval.ttype = get_parm_info (0);
3530 /* Gcc used to allow this as an extension. However, it does
3531 not work for all targets, and thus has been disabled.
3532 Also, since func (...) and func () are indistinguishable,
3533 it caused problems with the code in expand_builtin which
3534 tries to verify that BUILT_IN_NEXT_ARG is being used
3536 error ("ANSI C requires a named argument before `...'");
3540 #line 2073 "c-parse.y"
3541 { yyval.ttype = get_parm_info (1); ;
3544 #line 2075 "c-parse.y"
3545 { yyval.ttype = get_parm_info (0); ;
3548 #line 2080 "c-parse.y"
3549 { push_parm_decl (yyvsp[0].ttype); ;
3552 #line 2082 "c-parse.y"
3553 { push_parm_decl (yyvsp[0].ttype); ;
3556 #line 2089 "c-parse.y"
3557 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3559 build_tree_list (prefix_attributes,
3561 current_declspecs = TREE_VALUE (declspec_stack);
3562 prefix_attributes = TREE_PURPOSE (declspec_stack);
3563 declspec_stack = TREE_CHAIN (declspec_stack);
3564 resume_momentary (yyvsp[-2].itype); ;
3567 #line 2098 "c-parse.y"
3568 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3570 build_tree_list (prefix_attributes,
3572 current_declspecs = TREE_VALUE (declspec_stack);
3573 prefix_attributes = TREE_PURPOSE (declspec_stack);
3574 declspec_stack = TREE_CHAIN (declspec_stack);
3575 resume_momentary (yyvsp[-2].itype); ;
3578 #line 2107 "c-parse.y"
3579 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3581 build_tree_list (prefix_attributes,
3583 current_declspecs = TREE_VALUE (declspec_stack);
3584 prefix_attributes = TREE_PURPOSE (declspec_stack);
3585 declspec_stack = TREE_CHAIN (declspec_stack);
3586 resume_momentary (yyvsp[-2].itype); ;
3589 #line 2116 "c-parse.y"
3590 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3592 build_tree_list (prefix_attributes,
3594 current_declspecs = TREE_VALUE (declspec_stack);
3595 prefix_attributes = TREE_PURPOSE (declspec_stack);
3596 declspec_stack = TREE_CHAIN (declspec_stack);
3597 resume_momentary (yyvsp[-2].itype); ;
3600 #line 2126 "c-parse.y"
3601 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3603 build_tree_list (prefix_attributes,
3605 current_declspecs = TREE_VALUE (declspec_stack);
3606 prefix_attributes = TREE_PURPOSE (declspec_stack);
3607 declspec_stack = TREE_CHAIN (declspec_stack);
3608 resume_momentary (yyvsp[-2].itype); ;
3611 #line 2140 "c-parse.y"
3613 clear_parm_order ();
3614 declare_parm_level (1); ;
3617 #line 2144 "c-parse.y"
3618 { yyval.ttype = yyvsp[0].ttype;
3619 parmlist_tags_warning ();
3620 poplevel (0, 0, 0); ;
3623 #line 2152 "c-parse.y"
3625 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3626 if (TREE_VALUE (t) == NULL_TREE)
3627 error ("`...' in old-style identifier list");
3628 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3631 #line 2162 "c-parse.y"
3632 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3635 #line 2164 "c-parse.y"
3636 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3639 #line 2170 "c-parse.y"
3640 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3643 #line 2172 "c-parse.y"
3644 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3647 #line 2177 "c-parse.y"
3648 { yyval.itype = pedantic;
3652 /* the action file gets copied in in place of this dollarsign */
3653 #line 498 "/usr/share/bison.simple"
3664 short *ssp1 = yyss - 1;
3665 fprintf (stderr, "state stack now");
3666 while (ssp1 != yyssp)
3667 fprintf (stderr, " %d", *++ssp1);
3668 fprintf (stderr, "\n");
3678 yylsp->first_line = yylloc.first_line;
3679 yylsp->first_column = yylloc.first_column;
3680 yylsp->last_line = (yylsp-1)->last_line;
3681 yylsp->last_column = (yylsp-1)->last_column;
3686 yylsp->last_line = (yylsp+yylen-1)->last_line;
3687 yylsp->last_column = (yylsp+yylen-1)->last_column;
3691 /* Now "shift" the result of the reduction.
3692 Determine what state that goes to,
3693 based on the state we popped back to
3694 and the rule number reduced by. */
3698 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3699 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3700 yystate = yytable[yystate];
3702 yystate = yydefgoto[yyn - YYNTBASE];
3706 yyerrlab: /* here on detecting error */
3709 /* If not already recovering from an error, report this error. */
3713 #ifdef YYERROR_VERBOSE
3714 yyn = yypact[yystate];
3716 if (yyn > YYFLAG && yyn < YYLAST)
3723 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3724 for (x = (yyn < 0 ? -yyn : 0);
3725 x < (sizeof(yytname) / sizeof(char *)); x++)
3726 if (yycheck[x + yyn] == x)
3727 size += strlen(yytname[x]) + 15, count++;
3728 msg = (char *) malloc(size + 15);
3731 strcpy(msg, "parse error");
3736 for (x = (yyn < 0 ? -yyn : 0);
3737 x < (sizeof(yytname) / sizeof(char *)); x++)
3738 if (yycheck[x + yyn] == x)
3740 strcat(msg, count == 0 ? ", expecting `" : " or `");
3741 strcat(msg, yytname[x]);
3750 yyerror ("parse error; also virtual memory exceeded");
3753 #endif /* YYERROR_VERBOSE */
3754 yyerror("parse error");
3758 yyerrlab1: /* here on error raised explicitly by an action */
3760 if (yyerrstatus == 3)
3762 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3764 /* return failure if at end of input */
3765 if (yychar == YYEOF)
3770 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3776 /* Else will try to reuse lookahead token
3777 after shifting the error token. */
3779 yyerrstatus = 3; /* Each real token shifted decrements this */
3783 yyerrdefault: /* current state does not do anything special for the error token. */
3786 /* This is wrong; only states that explicitly want error tokens
3787 should shift them. */
3788 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3789 if (yyn) goto yydefault;
3792 yyerrpop: /* pop the current state because it cannot handle the error token */
3794 if (yyssp == yyss) YYABORT;
3804 short *ssp1 = yyss - 1;
3805 fprintf (stderr, "Error: state stack now");
3806 while (ssp1 != yyssp)
3807 fprintf (stderr, " %d", *++ssp1);
3808 fprintf (stderr, "\n");
3814 yyn = yypact[yystate];
3819 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3838 fprintf(stderr, "Shifting error token, ");
3849 #line 2181 "c-parse.y"