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