2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
82 #ifdef MULTIBYTE_CHARS
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
407 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
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/cygnus/latest-940103/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(TO,FROM,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 (to
, from
, 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 *to
, char *from
, int count
)
1355 register char *f
= from
;
1356 register char *t
= to
;
1357 register int i
= count
;
1366 #line 196 "/usr/cygnus/latest-940103/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
1376 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1377 #define YYPARSE_PARAM_DECL
1378 #else /* not __cplusplus */
1379 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1380 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1381 #endif /* not __cplusplus */
1382 #else /* not YYPARSE_PARAM */
1383 #define YYPARSE_PARAM_ARG
1384 #define YYPARSE_PARAM_DECL
1385 #endif /* not YYPARSE_PARAM */
1388 yyparse(YYPARSE_PARAM_ARG
)
1391 register int yystate
;
1393 register short *yyssp
;
1394 register YYSTYPE
*yyvsp
;
1395 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1396 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1398 short yyssa
[YYINITDEPTH
]; /* the state stack */
1399 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1401 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1402 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1405 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1406 YYLTYPE
*yyls
= yylsa
;
1409 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1411 #define YYPOPSTACK (yyvsp--, yyssp--)
1414 int yystacksize
= YYINITDEPTH
;
1425 YYSTYPE yyval
; /* the variable used to return */
1426 /* semantic values from the action */
1433 fprintf(stderr
, "Starting parse\n");
1439 yychar
= YYEMPTY
; /* Cause a token to be read. */
1441 /* Initialize stack pointers.
1442 Waste one element of value and location stack
1443 so that they stay on the same level as the state stack.
1444 The wasted elements are never initialized. */
1452 /* Push a new state, which is found in yystate . */
1453 /* In all cases, when you get here, the value and location stacks
1454 have just been pushed. so pushing a state here evens the stacks. */
1459 if (yyssp
>= yyss
+ yystacksize
- 1)
1461 /* Give user a chance to reallocate the stack */
1462 /* Use copies of these so that the &'s don't force the real ones into memory. */
1463 YYSTYPE
*yyvs1
= yyvs
;
1464 short *yyss1
= yyss
;
1466 YYLTYPE
*yyls1
= yyls
;
1469 /* Get the current used size of the three stacks, in elements. */
1470 int size
= yyssp
- yyss
+ 1;
1473 /* Each stack pointer address is followed by the size of
1474 the data in use in that stack, in bytes. */
1476 /* This used to be a conditional around just the two extra args,
1477 but that might be undefined if yyoverflow is a macro. */
1478 yyoverflow("parser stack overflow",
1479 &yyss1
, size
* sizeof (*yyssp
),
1480 &yyvs1
, size
* sizeof (*yyvsp
),
1481 &yyls1
, size
* sizeof (*yylsp
),
1484 yyoverflow("parser stack overflow",
1485 &yyss1
, size
* sizeof (*yyssp
),
1486 &yyvs1
, size
* sizeof (*yyvsp
),
1490 yyss
= yyss1
; yyvs
= yyvs1
;
1494 #else /* no yyoverflow */
1495 /* Extend the stack our own way. */
1496 if (yystacksize
>= YYMAXDEPTH
)
1498 yyerror("parser stack overflow");
1502 if (yystacksize
> YYMAXDEPTH
)
1503 yystacksize
= YYMAXDEPTH
;
1504 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1505 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1506 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1507 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1509 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1510 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1512 #endif /* no yyoverflow */
1514 yyssp
= yyss
+ size
- 1;
1515 yyvsp
= yyvs
+ size
- 1;
1517 yylsp
= yyls
+ size
- 1;
1522 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1525 if (yyssp
>= yyss
+ yystacksize
- 1)
1531 fprintf(stderr
, "Entering state %d\n", yystate
);
1537 /* Do appropriate processing given the current state. */
1538 /* Read a lookahead token if we need one and don't already have one. */
1541 /* First try to decide what to do without reference to lookahead token. */
1543 yyn
= yypact
[yystate
];
1547 /* Not known => get a lookahead token if don't already have one. */
1549 /* yychar is either YYEMPTY or YYEOF
1550 or a valid token in external form. */
1552 if (yychar
== YYEMPTY
)
1556 fprintf(stderr
, "Reading a token: ");
1561 /* Convert token to internal form (in yychar1) for indexing tables with */
1563 if (yychar
<= 0) /* This means end of input. */
1566 yychar
= YYEOF
; /* Don't call YYLEX any more */
1570 fprintf(stderr
, "Now at end of input.\n");
1575 yychar1
= YYTRANSLATE(yychar
);
1580 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1581 /* Give the individual parser a way to print the precise meaning
1582 of a token, for further debugging info. */
1584 YYPRINT (stderr
, yychar
, yylval
);
1586 fprintf (stderr
, ")\n");
1592 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1597 /* yyn is what to do for this token type in this state.
1598 Negative => reduce, -yyn is rule number.
1599 Positive => shift, yyn is new state.
1600 New state is final state => don't bother to shift,
1601 just return success.
1602 0, or most negative number => error. */
1617 /* Shift the lookahead token. */
1621 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1624 /* Discard the token being shifted unless it is eof. */
1625 if (yychar
!= YYEOF
)
1633 /* count tokens shifted since error; after three, turn off error status. */
1634 if (yyerrstatus
) yyerrstatus
--;
1639 /* Do the default action for the current state. */
1642 yyn
= yydefact
[yystate
];
1646 /* Do a reduction. yyn is the number of a rule to reduce with. */
1650 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1657 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1660 /* Print the symbols being reduced, and their result. */
1661 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1662 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1663 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1671 #line 240 "c-parse.y"
1673 pedwarn ("ANSI C forbids an empty source file");
1678 #line 245 "c-parse.y"
1680 /* In case there were missing closebraces,
1681 get us back to the global binding level. */
1682 while (! global_bindings_p ())
1688 #line 259 "c-parse.y"
1689 {yyval
.ttype
= NULL_TREE
; ;
1692 #line 260 "c-parse.y"
1693 {yyval
.ttype
= NULL_TREE
; ;
1696 #line 267 "c-parse.y"
1697 { STRIP_NOPS (yyvsp
[-2].ttype
);
1698 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1699 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1700 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1701 assemble_asm (yyvsp
[-2].ttype
);
1703 error ("argument of `asm' is not a constant string"); ;
1706 #line 275 "c-parse.y"
1707 { pedantic
= yyvsp
[-1].itype
; ;
1710 #line 280 "c-parse.y"
1712 error ("ANSI C forbids data definition with no type or storage class");
1713 else if (!flag_traditional
)
1714 warning ("data definition has no type or storage class");
1716 current_declspecs
= TREE_VALUE (declspec_stack
);
1717 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1718 declspec_stack
= TREE_CHAIN (declspec_stack
);
1719 resume_momentary (yyvsp
[-2].itype
); ;
1722 #line 290 "c-parse.y"
1723 { current_declspecs
= TREE_VALUE (declspec_stack
);
1724 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1725 declspec_stack
= TREE_CHAIN (declspec_stack
);
1726 resume_momentary (yyvsp
[-2].itype
); ;
1729 #line 295 "c-parse.y"
1730 { current_declspecs
= TREE_VALUE (declspec_stack
);
1731 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1732 declspec_stack
= TREE_CHAIN (declspec_stack
);
1733 resume_momentary (yyvsp
[-2].itype
); ;
1736 #line 300 "c-parse.y"
1737 { pedwarn ("empty declaration"); ;
1740 #line 302 "c-parse.y"
1741 { shadow_tag (yyvsp
[-1].ttype
); ;
1744 #line 306 "c-parse.y"
1746 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1749 #line 312 "c-parse.y"
1750 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1751 prefix_attributes
, NULL_TREE
, 0))
1753 reinit_parse_for_function (); ;
1756 #line 317 "c-parse.y"
1757 { store_parm_decls (); ;
1760 #line 319 "c-parse.y"
1761 { finish_function (0);
1762 current_declspecs
= TREE_VALUE (declspec_stack
);
1763 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1764 declspec_stack
= TREE_CHAIN (declspec_stack
);
1765 resume_momentary (yyvsp
[-5].itype
); ;
1768 #line 325 "c-parse.y"
1769 { current_declspecs
= TREE_VALUE (declspec_stack
);
1770 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1771 declspec_stack
= TREE_CHAIN (declspec_stack
);
1772 resume_momentary (yyvsp
[-2].itype
); ;
1775 #line 330 "c-parse.y"
1776 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1777 prefix_attributes
, NULL_TREE
, 0))
1779 reinit_parse_for_function (); ;
1782 #line 335 "c-parse.y"
1783 { store_parm_decls (); ;
1786 #line 337 "c-parse.y"
1787 { finish_function (0);
1788 current_declspecs
= TREE_VALUE (declspec_stack
);
1789 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1790 declspec_stack
= TREE_CHAIN (declspec_stack
);
1791 resume_momentary (yyvsp
[-5].itype
); ;
1794 #line 343 "c-parse.y"
1795 { current_declspecs
= TREE_VALUE (declspec_stack
);
1796 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1797 declspec_stack
= TREE_CHAIN (declspec_stack
);
1798 resume_momentary (yyvsp
[-2].itype
); ;
1801 #line 348 "c-parse.y"
1802 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1803 prefix_attributes
, NULL_TREE
, 0))
1805 reinit_parse_for_function (); ;
1808 #line 353 "c-parse.y"
1809 { store_parm_decls (); ;
1812 #line 355 "c-parse.y"
1813 { finish_function (0);
1814 current_declspecs
= TREE_VALUE (declspec_stack
);
1815 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1816 declspec_stack
= TREE_CHAIN (declspec_stack
);
1817 resume_momentary (yyvsp
[-5].itype
); ;
1820 #line 361 "c-parse.y"
1821 { current_declspecs
= TREE_VALUE (declspec_stack
);
1822 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1823 declspec_stack
= TREE_CHAIN (declspec_stack
);
1824 resume_momentary (yyvsp
[-2].itype
); ;
1827 #line 373 "c-parse.y"
1828 { yyval
.code
= ADDR_EXPR
; ;
1831 #line 375 "c-parse.y"
1832 { yyval
.code
= NEGATE_EXPR
; ;
1835 #line 377 "c-parse.y"
1836 { yyval
.code
= CONVERT_EXPR
; ;
1839 #line 379 "c-parse.y"
1840 { yyval
.code
= PREINCREMENT_EXPR
; ;
1843 #line 381 "c-parse.y"
1844 { yyval
.code
= PREDECREMENT_EXPR
; ;
1847 #line 383 "c-parse.y"
1848 { yyval
.code
= BIT_NOT_EXPR
; ;
1851 #line 385 "c-parse.y"
1852 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1855 #line 389 "c-parse.y"
1856 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1859 #line 394 "c-parse.y"
1860 { yyval
.ttype
= NULL_TREE
; ;
1863 #line 400 "c-parse.y"
1864 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1867 #line 402 "c-parse.y"
1868 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1871 #line 408 "c-parse.y"
1872 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1875 #line 411 "c-parse.y"
1876 { yyval
.ttype
= yyvsp
[0].ttype
;
1877 pedantic
= yyvsp
[-1].itype
; ;
1880 #line 414 "c-parse.y"
1881 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1882 overflow_warning (yyval
.ttype
); ;
1885 #line 418 "c-parse.y"
1886 { tree label
= lookup_label (yyvsp
[0].ttype
);
1888 pedwarn ("ANSI C forbids `&&'");
1890 yyval
.ttype
= null_pointer_node
;
1893 TREE_USED (label
) = 1;
1894 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1895 TREE_CONSTANT (yyval
.ttype
) = 1;
1900 #line 446 "c-parse.y"
1901 { skip_evaluation
--;
1902 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1903 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1904 error ("`sizeof' applied to a bit-field");
1905 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1908 #line 452 "c-parse.y"
1909 { skip_evaluation
--;
1910 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1913 #line 455 "c-parse.y"
1914 { skip_evaluation
--;
1915 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1918 #line 458 "c-parse.y"
1919 { skip_evaluation
--;
1920 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1923 #line 461 "c-parse.y"
1924 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1927 #line 463 "c-parse.y"
1928 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1931 #line 467 "c-parse.y"
1932 { skip_evaluation
++; ;
1935 #line 471 "c-parse.y"
1936 { skip_evaluation
++; ;
1939 #line 477 "c-parse.y"
1940 { tree type
= groktypename (yyvsp
[-2].ttype
);
1941 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1944 #line 480 "c-parse.y"
1945 { start_init (NULL_TREE
, NULL
, 0);
1946 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1947 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1950 #line 484 "c-parse.y"
1952 tree result
= pop_init_level (0);
1953 tree type
= yyvsp
[-5].ttype
;
1957 pedwarn ("ANSI C forbids constructor expressions");
1958 if (TYPE_NAME (type
) != 0)
1960 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1961 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1963 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
1967 yyval
.ttype
= result
;
1968 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
1970 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
1977 #line 513 "c-parse.y"
1978 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1981 #line 515 "c-parse.y"
1982 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1985 #line 517 "c-parse.y"
1986 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1989 #line 519 "c-parse.y"
1990 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1993 #line 521 "c-parse.y"
1994 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1997 #line 523 "c-parse.y"
1998 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2001 #line 525 "c-parse.y"
2002 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2005 #line 527 "c-parse.y"
2006 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2009 #line 529 "c-parse.y"
2010 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2013 #line 531 "c-parse.y"
2014 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2017 #line 533 "c-parse.y"
2018 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2021 #line 535 "c-parse.y"
2022 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2025 #line 537 "c-parse.y"
2026 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2027 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2030 #line 540 "c-parse.y"
2031 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2032 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2035 #line 543 "c-parse.y"
2036 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2037 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2040 #line 546 "c-parse.y"
2041 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2042 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2045 #line 549 "c-parse.y"
2046 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2047 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2050 #line 552 "c-parse.y"
2051 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2052 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2055 #line 555 "c-parse.y"
2056 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2057 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2060 #line 558 "c-parse.y"
2062 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2063 /* Make sure first operand is calculated only once. */
2064 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2065 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2066 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2069 #line 565 "c-parse.y"
2070 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2071 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2074 #line 568 "c-parse.y"
2075 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2076 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2079 #line 571 "c-parse.y"
2080 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2081 /* This inhibits warnings in truthvalue_conversion. */
2082 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2085 #line 578 "c-parse.y"
2087 yyval
.ttype
= lastiddecl
;
2088 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2090 if (yychar
== YYEMPTY
)
2095 /* Ordinary implicit function declaration. */
2096 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2097 assemble_external (yyval
.ttype
);
2098 TREE_USED (yyval
.ttype
) = 1;
2101 else if (current_function_decl
== 0)
2103 error ("`%s' undeclared here (not in a function)",
2104 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2105 yyval
.ttype
= error_mark_node
;
2110 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2111 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2113 error ("`%s' undeclared (first use this function)",
2114 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2116 if (! undeclared_variable_notice
)
2118 error ("(Each undeclared identifier is reported only once");
2119 error ("for each function it appears in.)");
2120 undeclared_variable_notice
= 1;
2123 yyval
.ttype
= error_mark_node
;
2124 /* Prevent repeated error messages. */
2125 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2126 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2130 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2131 yyval
.ttype
= error_mark_node
;
2132 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2134 /* The first time we see a build-in function used,
2135 if it has not been declared. */
2136 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2137 if (yychar
== YYEMPTY
)
2141 /* Omit the implicit declaration we
2142 would ordinarily do, so we don't lose
2143 the actual built in type.
2144 But print a diagnostic for the mismatch. */
2145 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2146 error ("`%s' implicitly declared as function",
2147 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2148 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2149 != TYPE_MODE (integer_type_node
))
2150 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2152 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2153 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2154 /* If it really returns void, change that to int. */
2155 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2156 TREE_TYPE (yyval
.ttype
)
2157 = build_function_type (integer_type_node
,
2158 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2161 pedwarn ("built-in function `%s' used without declaration",
2162 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2164 /* Do what we would ordinarily do when a fn is used. */
2165 assemble_external (yyval
.ttype
);
2166 TREE_USED (yyval
.ttype
) = 1;
2170 assemble_external (yyval
.ttype
);
2171 TREE_USED (yyval
.ttype
) = 1;
2174 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2176 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2177 /* This is to prevent an enum whose value is 0
2178 from being considered a null pointer constant. */
2179 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2180 TREE_CONSTANT (yyval
.ttype
) = 1;
2185 #line 677 "c-parse.y"
2186 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2189 #line 679 "c-parse.y"
2190 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2191 if (class == 'e' || class == '1'
2192 || class == '2' || class == '<')
2193 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2194 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2197 #line 685 "c-parse.y"
2198 { yyval
.ttype
= error_mark_node
; ;
2201 #line 687 "c-parse.y"
2202 { if (current_function_decl
== 0)
2204 error ("braced-group within expression allowed only inside a function");
2207 /* We must force a BLOCK for this level
2208 so that, if it is not expanded later,
2209 there is a way to turn off the entire subtree of blocks
2210 that are contained in it. */
2212 push_iterator_stack ();
2213 push_label_level ();
2214 yyval
.ttype
= expand_start_stmt_expr (); ;
2217 #line 701 "c-parse.y"
2220 pedwarn ("ANSI C forbids braced-groups within expressions");
2221 pop_iterator_stack ();
2223 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2224 /* The statements have side effects, so the group does. */
2225 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2227 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2229 /* Make a BIND_EXPR for the BLOCK already made. */
2230 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2231 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2232 /* Remove the block from the tree at this point.
2233 It gets put back at the proper place
2234 when the BIND_EXPR is expanded. */
2235 delete_block (yyvsp
[-1].ttype
);
2238 yyval
.ttype
= yyvsp
[-1].ttype
;
2242 #line 724 "c-parse.y"
2243 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2246 #line 726 "c-parse.y"
2247 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2250 #line 728 "c-parse.y"
2252 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2256 #line 732 "c-parse.y"
2258 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2260 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2264 #line 738 "c-parse.y"
2265 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2268 #line 740 "c-parse.y"
2269 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2272 #line 747 "c-parse.y"
2273 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2276 #line 756 "c-parse.y"
2277 { c_mark_varargs ();
2279 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2282 #line 766 "c-parse.y"
2286 #line 782 "c-parse.y"
2287 { current_declspecs
= TREE_VALUE (declspec_stack
);
2288 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2289 declspec_stack
= TREE_CHAIN (declspec_stack
);
2290 resume_momentary (yyvsp
[-2].itype
); ;
2293 #line 787 "c-parse.y"
2294 { current_declspecs
= TREE_VALUE (declspec_stack
);
2295 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2296 declspec_stack
= TREE_CHAIN (declspec_stack
);
2297 resume_momentary (yyvsp
[-2].itype
); ;
2300 #line 792 "c-parse.y"
2301 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2302 pedwarn ("empty declaration"); ;
2305 #line 795 "c-parse.y"
2306 { pedwarn ("empty declaration"); ;
2309 #line 804 "c-parse.y"
2313 #line 819 "c-parse.y"
2314 { yyval
.itype
= suspend_momentary ();
2315 pending_xref_error ();
2316 declspec_stack
= tree_cons (prefix_attributes
,
2319 split_specs_attrs (yyvsp
[0].ttype
,
2320 ¤t_declspecs
, &prefix_attributes
); ;
2323 #line 830 "c-parse.y"
2324 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2327 #line 835 "c-parse.y"
2328 { current_declspecs
= TREE_VALUE (declspec_stack
);
2329 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2330 declspec_stack
= TREE_CHAIN (declspec_stack
);
2331 resume_momentary (yyvsp
[-2].itype
); ;
2334 #line 840 "c-parse.y"
2335 { current_declspecs
= TREE_VALUE (declspec_stack
);
2336 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2337 declspec_stack
= TREE_CHAIN (declspec_stack
);
2338 resume_momentary (yyvsp
[-2].itype
); ;
2341 #line 845 "c-parse.y"
2342 { current_declspecs
= TREE_VALUE (declspec_stack
);
2343 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2344 declspec_stack
= TREE_CHAIN (declspec_stack
);
2345 resume_momentary (yyvsp
[-1].itype
); ;
2348 #line 850 "c-parse.y"
2349 { current_declspecs
= TREE_VALUE (declspec_stack
);
2350 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2351 declspec_stack
= TREE_CHAIN (declspec_stack
);
2352 resume_momentary (yyvsp
[-1].itype
); ;
2355 #line 855 "c-parse.y"
2356 { shadow_tag (yyvsp
[-1].ttype
); ;
2359 #line 857 "c-parse.y"
2360 { pedwarn ("empty declaration"); ;
2363 #line 859 "c-parse.y"
2364 { pedantic
= yyvsp
[-1].itype
; ;
2367 #line 869 "c-parse.y"
2368 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2371 #line 871 "c-parse.y"
2372 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2375 #line 875 "c-parse.y"
2376 { yyval
.ttype
= NULL_TREE
; ;
2379 #line 877 "c-parse.y"
2380 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2383 #line 879 "c-parse.y"
2384 { if (extra_warnings
)
2385 warning ("`%s' is not at beginning of declaration",
2386 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2387 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2390 #line 884 "c-parse.y"
2391 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2394 #line 889 "c-parse.y"
2395 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2398 #line 891 "c-parse.y"
2399 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2402 #line 896 "c-parse.y"
2403 { yyval
.ttype
= NULL_TREE
; ;
2406 #line 898 "c-parse.y"
2407 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2410 #line 900 "c-parse.y"
2411 { if (extra_warnings
)
2412 warning ("`%s' is not at beginning of declaration",
2413 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2414 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2417 #line 913 "c-parse.y"
2418 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2421 #line 915 "c-parse.y"
2422 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2425 #line 917 "c-parse.y"
2426 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2429 #line 919 "c-parse.y"
2430 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2433 #line 924 "c-parse.y"
2434 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2435 TREE_STATIC (yyval
.ttype
) = 1; ;
2438 #line 927 "c-parse.y"
2439 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2442 #line 929 "c-parse.y"
2443 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2444 TREE_STATIC (yyval
.ttype
) = 1; ;
2447 #line 932 "c-parse.y"
2448 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2449 warning ("`%s' is not at beginning of declaration",
2450 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2451 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2452 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2455 #line 946 "c-parse.y"
2456 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2459 #line 948 "c-parse.y"
2460 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2463 #line 952 "c-parse.y"
2464 { yyval
.ttype
= NULL_TREE
; ;
2467 #line 954 "c-parse.y"
2468 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2471 #line 964 "c-parse.y"
2472 { /* For a typedef name, record the meaning, not the name.
2473 In case of `foo foo, bar;'. */
2474 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2477 #line 968 "c-parse.y"
2478 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2481 #line 970 "c-parse.y"
2482 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2485 #line 992 "c-parse.y"
2486 { yyval
.ttype
= NULL_TREE
; ;
2489 #line 994 "c-parse.y"
2490 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2491 yyval
.ttype
= yyvsp
[-1].ttype
;
2495 #line 1001 "c-parse.y"
2496 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2497 yyvsp
[-1].ttype
, prefix_attributes
);
2498 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2501 #line 1006 "c-parse.y"
2503 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2506 #line 1009 "c-parse.y"
2507 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2508 yyvsp
[0].ttype
, prefix_attributes
);
2509 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2513 #line 1017 "c-parse.y"
2514 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2515 yyvsp
[-1].ttype
, prefix_attributes
);
2516 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2519 #line 1022 "c-parse.y"
2521 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2522 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2525 #line 1026 "c-parse.y"
2526 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2527 yyvsp
[0].ttype
, prefix_attributes
);
2528 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2531 #line 1034 "c-parse.y"
2532 { yyval
.ttype
= NULL_TREE
; ;
2535 #line 1036 "c-parse.y"
2536 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2539 #line 1041 "c-parse.y"
2540 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2543 #line 1043 "c-parse.y"
2544 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2547 #line 1048 "c-parse.y"
2548 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2551 #line 1053 "c-parse.y"
2552 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2555 #line 1055 "c-parse.y"
2556 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2559 #line 1060 "c-parse.y"
2560 { yyval
.ttype
= NULL_TREE
; ;
2563 #line 1062 "c-parse.y"
2564 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2567 #line 1064 "c-parse.y"
2568 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2571 #line 1066 "c-parse.y"
2572 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2575 #line 1068 "c-parse.y"
2576 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2579 #line 1086 "c-parse.y"
2580 { really_start_incremental_init (NULL_TREE
);
2581 /* Note that the call to clear_momentary
2582 is in process_init_element. */
2583 push_momentary (); ;
2586 #line 1091 "c-parse.y"
2587 { yyval
.ttype
= pop_init_level (0);
2588 if (yyval
.ttype
== error_mark_node
2589 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2592 pop_momentary_nofree (); ;
2595 #line 1099 "c-parse.y"
2596 { yyval
.ttype
= error_mark_node
; ;
2599 #line 1105 "c-parse.y"
2601 pedwarn ("ANSI C forbids empty initializer braces"); ;
2604 #line 1119 "c-parse.y"
2605 { process_init_element (yyvsp
[0].ttype
); ;
2608 #line 1121 "c-parse.y"
2609 { push_init_level (0); ;
2612 #line 1123 "c-parse.y"
2613 { process_init_element (pop_init_level (0)); ;
2616 #line 1129 "c-parse.y"
2617 { set_init_index (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
); ;
2620 #line 1132 "c-parse.y"
2621 { set_init_index (yyvsp
[-2].ttype
, NULL_TREE
); ;
2624 #line 1135 "c-parse.y"
2625 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2628 #line 1138 "c-parse.y"
2629 { set_init_label (yyvsp
[-1].ttype
); ;
2632 #line 1141 "c-parse.y"
2633 { set_init_label (yyvsp
[-1].ttype
); ;
2636 #line 1147 "c-parse.y"
2637 { push_c_function_context ();
2638 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2639 prefix_attributes
, NULL_TREE
, 1))
2641 pop_c_function_context ();
2644 reinit_parse_for_function (); ;
2647 #line 1156 "c-parse.y"
2648 { store_parm_decls (); ;
2651 #line 1164 "c-parse.y"
2652 { finish_function (1);
2653 pop_c_function_context (); ;
2656 #line 1170 "c-parse.y"
2657 { push_c_function_context ();
2658 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2659 prefix_attributes
, NULL_TREE
, 1))
2661 pop_c_function_context ();
2664 reinit_parse_for_function (); ;
2667 #line 1179 "c-parse.y"
2668 { store_parm_decls (); ;
2671 #line 1187 "c-parse.y"
2672 { finish_function (1);
2673 pop_c_function_context (); ;
2676 #line 1203 "c-parse.y"
2677 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2680 #line 1205 "c-parse.y"
2681 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2684 #line 1210 "c-parse.y"
2685 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2688 #line 1212 "c-parse.y"
2689 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2692 #line 1214 "c-parse.y"
2693 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2696 #line 1221 "c-parse.y"
2697 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2700 #line 1232 "c-parse.y"
2701 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2704 #line 1237 "c-parse.y"
2705 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2708 #line 1239 "c-parse.y"
2709 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2712 #line 1241 "c-parse.y"
2713 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2716 #line 1248 "c-parse.y"
2717 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2720 #line 1257 "c-parse.y"
2721 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2724 #line 1262 "c-parse.y"
2725 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2728 #line 1264 "c-parse.y"
2729 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2732 #line 1266 "c-parse.y"
2733 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2736 #line 1268 "c-parse.y"
2737 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2740 #line 1275 "c-parse.y"
2741 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2744 #line 1281 "c-parse.y"
2745 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2746 /* Start scope of tag before parsing components. */
2750 #line 1285 "c-parse.y"
2751 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2754 #line 1287 "c-parse.y"
2755 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2756 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2760 #line 1291 "c-parse.y"
2761 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2764 #line 1293 "c-parse.y"
2765 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2768 #line 1295 "c-parse.y"
2769 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2772 #line 1297 "c-parse.y"
2773 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2774 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2778 #line 1301 "c-parse.y"
2779 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2782 #line 1303 "c-parse.y"
2783 { yyvsp
[0].itype
= suspend_momentary ();
2784 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2787 #line 1306 "c-parse.y"
2788 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2789 resume_momentary (yyvsp
[-5].itype
); ;
2792 #line 1309 "c-parse.y"
2793 { yyvsp
[0].itype
= suspend_momentary ();
2794 yyval
.ttype
= start_enum (NULL_TREE
); ;
2797 #line 1312 "c-parse.y"
2798 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2799 resume_momentary (yyvsp
[-5].itype
); ;
2802 #line 1315 "c-parse.y"
2803 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2806 #line 1326 "c-parse.y"
2807 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
2810 #line 1331 "c-parse.y"
2811 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2814 #line 1333 "c-parse.y"
2815 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2816 pedwarn ("no semicolon at end of struct or union"); ;
2819 #line 1338 "c-parse.y"
2820 { yyval
.ttype
= NULL_TREE
; ;
2823 #line 1340 "c-parse.y"
2824 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2827 #line 1342 "c-parse.y"
2829 pedwarn ("extra semicolon in struct or union specified"); ;
2832 #line 1357 "c-parse.y"
2833 { yyval
.ttype
= yyvsp
[0].ttype
;
2834 current_declspecs
= TREE_VALUE (declspec_stack
);
2835 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2836 declspec_stack
= TREE_CHAIN (declspec_stack
);
2837 resume_momentary (yyvsp
[-1].itype
); ;
2840 #line 1363 "c-parse.y"
2842 pedwarn ("ANSI C forbids member declarations with no members");
2843 shadow_tag(yyvsp
[0].ttype
);
2844 yyval
.ttype
= NULL_TREE
; ;
2847 #line 1368 "c-parse.y"
2848 { yyval
.ttype
= yyvsp
[0].ttype
;
2849 current_declspecs
= TREE_VALUE (declspec_stack
);
2850 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2851 declspec_stack
= TREE_CHAIN (declspec_stack
);
2852 resume_momentary (yyvsp
[-1].itype
); ;
2855 #line 1374 "c-parse.y"
2857 pedwarn ("ANSI C forbids member declarations with no members");
2858 shadow_tag(yyvsp
[0].ttype
);
2859 yyval
.ttype
= NULL_TREE
; ;
2862 #line 1379 "c-parse.y"
2863 { yyval
.ttype
= NULL_TREE
; ;
2866 #line 1381 "c-parse.y"
2867 { yyval
.ttype
= yyvsp
[0].ttype
;
2868 pedantic
= yyvsp
[-1].itype
; ;
2871 #line 1388 "c-parse.y"
2872 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2875 #line 1393 "c-parse.y"
2876 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2877 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2880 #line 1397 "c-parse.y"
2881 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2882 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2885 #line 1400 "c-parse.y"
2886 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2887 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2890 #line 1412 "c-parse.y"
2891 { if (yyvsp
[-2].ttype
== error_mark_node
)
2892 yyval
.ttype
= yyvsp
[-2].ttype
;
2894 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2897 #line 1417 "c-parse.y"
2898 { yyval
.ttype
= error_mark_node
; ;
2901 #line 1423 "c-parse.y"
2902 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2905 #line 1425 "c-parse.y"
2906 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2909 #line 1430 "c-parse.y"
2910 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2913 #line 1432 "c-parse.y"
2914 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2917 #line 1437 "c-parse.y"
2918 { yyval
.ttype
= NULL_TREE
; ;
2921 #line 1443 "c-parse.y"
2922 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2925 #line 1445 "c-parse.y"
2926 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2929 #line 1450 "c-parse.y"
2930 { yyval
.ttype
= NULL_TREE
; ;
2933 #line 1452 "c-parse.y"
2934 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2937 #line 1457 "c-parse.y"
2938 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2941 #line 1460 "c-parse.y"
2942 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2945 #line 1462 "c-parse.y"
2946 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
2949 #line 1464 "c-parse.y"
2950 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2953 #line 1466 "c-parse.y"
2954 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2957 #line 1468 "c-parse.y"
2958 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2961 #line 1470 "c-parse.y"
2962 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2965 #line 1472 "c-parse.y"
2966 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2969 #line 1474 "c-parse.y"
2970 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
2973 #line 1485 "c-parse.y"
2975 if (pedantic
&& yyvsp
[0].ends_in_label
)
2976 pedwarn ("ANSI C forbids label at end of compound statement");
2980 #line 1494 "c-parse.y"
2981 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
2984 #line 1496 "c-parse.y"
2985 { yyval
.ends_in_label
= 0; ;
2988 #line 1508 "c-parse.y"
2989 { emit_line_note (input_filename
, lineno
);
2993 expand_start_bindings (0);
2997 #line 1521 "c-parse.y"
2999 pedwarn ("ANSI C forbids label declarations"); ;
3002 #line 1532 "c-parse.y"
3004 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3006 tree label
= shadow_label (TREE_VALUE (link
));
3007 C_DECLARED_LABEL_FLAG (label
) = 1;
3008 declare_nonlocal_label (label
);
3013 #line 1546 "c-parse.y"
3017 #line 1550 "c-parse.y"
3018 { compstmt_count
++; ;
3021 #line 1553 "c-parse.y"
3022 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3025 #line 1555 "c-parse.y"
3026 { emit_line_note (input_filename
, lineno
);
3027 expand_end_bindings (getdecls (), 1, 0);
3028 yyval
.ttype
= poplevel (1, 1, 0);
3029 if (yychar
== CONSTANT
|| yychar
== STRING
)
3030 pop_momentary_nofree ();
3035 #line 1563 "c-parse.y"
3036 { emit_line_note (input_filename
, lineno
);
3037 expand_end_bindings (getdecls (), kept_level_p (), 0);
3038 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3039 if (yychar
== CONSTANT
|| yychar
== STRING
)
3040 pop_momentary_nofree ();
3045 #line 1571 "c-parse.y"
3046 { emit_line_note (input_filename
, lineno
);
3047 expand_end_bindings (getdecls (), kept_level_p (), 0);
3048 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3049 if (yychar
== CONSTANT
|| yychar
== STRING
)
3050 pop_momentary_nofree ();
3055 #line 1591 "c-parse.y"
3056 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3057 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3059 yyval
.itype
= stmt_count
;
3060 if_stmt_file
= yyvsp
[-5].filename
;
3061 if_stmt_line
= yyvsp
[-4].lineno
;
3062 position_after_white_space (); ;
3065 #line 1605 "c-parse.y"
3068 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3069 /* See comment in `while' alternative, above. */
3071 expand_start_loop_continue_elsewhere (1);
3072 position_after_white_space (); ;
3075 #line 1613 "c-parse.y"
3076 { expand_loop_continue_here (); ;
3079 #line 1617 "c-parse.y"
3080 { yyval
.filename
= input_filename
; ;
3083 #line 1621 "c-parse.y"
3084 { yyval
.lineno
= lineno
; ;
3087 #line 1626 "c-parse.y"
3091 #line 1631 "c-parse.y"
3095 #line 1636 "c-parse.y"
3096 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3099 #line 1641 "c-parse.y"
3100 { yyval
.ends_in_label
= 0; ;
3103 #line 1643 "c-parse.y"
3104 { yyval
.ends_in_label
= 1; ;
3107 #line 1649 "c-parse.y"
3111 #line 1652 "c-parse.y"
3113 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3114 /* It appears that this should not be done--that a non-lvalue array
3115 shouldn't get an error if the value isn't used.
3116 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3117 if it appears as a top-level expression,
3118 but says nothing about non-lvalue arrays. */
3120 /* Call default_conversion to get an error
3121 on referring to a register array if pedantic. */
3122 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3123 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3124 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3126 iterator_expand (yyvsp
[-1].ttype
);
3127 clear_momentary (); ;
3130 #line 1669 "c-parse.y"
3131 { c_expand_start_else ();
3132 yyvsp
[-1].itype
= stmt_count
;
3133 position_after_white_space (); ;
3136 #line 1673 "c-parse.y"
3137 { c_expand_end_cond ();
3138 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3139 warning ("empty body in an else-statement"); ;
3142 #line 1677 "c-parse.y"
3143 { c_expand_end_cond ();
3144 /* This warning is here instead of in simple_if, because we
3145 do not want a warning if an empty if is followed by an
3146 else statement. Increment stmt_count so we don't
3147 give a second error if this is a nested `if'. */
3148 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3149 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3150 "empty body in an if-statement"); ;
3153 #line 1689 "c-parse.y"
3154 { c_expand_end_cond (); ;
3157 #line 1691 "c-parse.y"
3159 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3160 /* The emit_nop used to come before emit_line_note,
3161 but that made the nop seem like part of the preceding line.
3162 And that was confusing when the preceding line was
3163 inside of an if statement and was not really executed.
3164 I think it ought to work to put the nop after the line number.
3165 We will see. --rms, July 15, 1991. */
3169 #line 1701 "c-parse.y"
3170 { /* Don't start the loop till we have succeeded
3171 in parsing the end test. This is to make sure
3172 that we end every loop we start. */
3173 expand_start_loop (1);
3174 emit_line_note (input_filename
, lineno
);
3175 expand_exit_loop_if_false (NULL_PTR
,
3176 truthvalue_conversion (yyvsp
[-1].ttype
));
3177 position_after_white_space (); ;
3180 #line 1710 "c-parse.y"
3181 { expand_end_loop (); ;
3184 #line 1713 "c-parse.y"
3185 { emit_line_note (input_filename
, lineno
);
3186 expand_exit_loop_if_false (NULL_PTR
,
3187 truthvalue_conversion (yyvsp
[-2].ttype
));
3189 clear_momentary (); ;
3192 #line 1720 "c-parse.y"
3193 { expand_end_loop ();
3194 clear_momentary (); ;
3197 #line 1724 "c-parse.y"
3199 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3200 /* See comment in `while' alternative, above. */
3202 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3203 /* Next step is to call expand_start_loop_continue_elsewhere,
3204 but wait till after we parse the entire for (...).
3205 Otherwise, invalid input might cause us to call that
3206 fn without calling expand_end_loop. */
3210 #line 1736 "c-parse.y"
3211 { yyvsp
[0].lineno
= lineno
;
3212 yyval
.filename
= input_filename
; ;
3215 #line 1739 "c-parse.y"
3217 /* Start the loop. Doing this after parsing
3218 all the expressions ensures we will end the loop. */
3219 expand_start_loop_continue_elsewhere (1);
3220 /* Emit the end-test, with a line number. */
3221 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3222 if (yyvsp
[-4].ttype
)
3223 expand_exit_loop_if_false (NULL_PTR
,
3224 truthvalue_conversion (yyvsp
[-4].ttype
));
3225 /* Don't let the tree nodes for $9 be discarded by
3226 clear_momentary during the parsing of the next stmt. */
3228 yyvsp
[-3].lineno
= lineno
;
3229 yyvsp
[-2].filename
= input_filename
;
3230 position_after_white_space (); ;
3233 #line 1755 "c-parse.y"
3234 { /* Emit the increment expression, with a line number. */
3235 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3236 expand_loop_continue_here ();
3237 if (yyvsp
[-3].ttype
)
3238 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3239 if (yychar
== CONSTANT
|| yychar
== STRING
)
3240 pop_momentary_nofree ();
3243 expand_end_loop (); ;
3246 #line 1766 "c-parse.y"
3248 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3249 c_expand_start_case (yyvsp
[-1].ttype
);
3250 /* Don't let the tree nodes for $3 be discarded by
3251 clear_momentary during the parsing of the next stmt. */
3253 position_after_white_space (); ;
3256 #line 1774 "c-parse.y"
3257 { expand_end_case (yyvsp
[-3].ttype
);
3258 if (yychar
== CONSTANT
|| yychar
== STRING
)
3259 pop_momentary_nofree ();
3264 #line 1780 "c-parse.y"
3266 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3267 if ( ! expand_exit_something ())
3268 error ("break statement not within loop or switch"); ;
3271 #line 1785 "c-parse.y"
3273 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3274 if (! expand_continue_loop (NULL_PTR
))
3275 error ("continue statement not within a loop"); ;
3278 #line 1790 "c-parse.y"
3280 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3281 c_expand_return (NULL_TREE
); ;
3284 #line 1794 "c-parse.y"
3286 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3287 c_expand_return (yyvsp
[-1].ttype
); ;
3290 #line 1798 "c-parse.y"
3292 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3293 STRIP_NOPS (yyvsp
[-2].ttype
);
3294 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3295 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3296 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3297 expand_asm (yyvsp
[-2].ttype
);
3299 error ("argument of `asm' is not a constant string"); ;
3302 #line 1809 "c-parse.y"
3304 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3305 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3306 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3307 input_filename
, lineno
); ;
3310 #line 1816 "c-parse.y"
3312 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3313 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3314 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3315 input_filename
, lineno
); ;
3318 #line 1824 "c-parse.y"
3320 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3321 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3322 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3323 input_filename
, lineno
); ;
3326 #line 1830 "c-parse.y"
3329 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3330 decl
= lookup_label (yyvsp
[-1].ttype
);
3333 TREE_USED (decl
) = 1;
3339 #line 1841 "c-parse.y"
3341 pedwarn ("ANSI C forbids `goto *expr;'");
3343 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3344 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3347 #line 1856 "c-parse.y"
3349 /* The value returned by this action is */
3350 /* 1 if everything is OK */
3351 /* 0 in case of error or already bound iterator */
3354 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3355 error ("invalid `for (ITERATOR)' syntax");
3356 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3357 error ("`%s' is not an iterator",
3358 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3359 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3360 error ("`for (%s)' inside expansion of same iterator",
3361 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3365 iterator_for_loop_start (yyvsp
[-1].ttype
);
3370 #line 1877 "c-parse.y"
3372 if (yyvsp
[-1].itype
)
3373 iterator_for_loop_end (yyvsp
[-3].ttype
);
3377 #line 1912 "c-parse.y"
3378 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3380 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3384 if (value
!= error_mark_node
)
3387 int success
= pushcase (value
, convert_and_check
,
3390 error ("case label not within a switch statement");
3391 else if (success
== 2)
3393 error ("duplicate case value");
3394 error_with_decl (duplicate
, "this is the first entry for that value");
3396 else if (success
== 3)
3397 warning ("case value out of range");
3398 else if (success
== 5)
3399 error ("case label within scope of cleanup or variable array");
3401 position_after_white_space (); ;
3404 #line 1937 "c-parse.y"
3405 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3406 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3408 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3411 pedwarn ("ANSI C forbids case ranges");
3414 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3417 int success
= pushcase_range (value1
, value2
,
3418 convert_and_check
, label
,
3421 error ("case label not within a switch statement");
3422 else if (success
== 2)
3424 error ("duplicate case value");
3425 error_with_decl (duplicate
, "this is the first entry for that value");
3427 else if (success
== 3)
3428 warning ("case value out of range");
3429 else if (success
== 4)
3430 warning ("empty case range");
3431 else if (success
== 5)
3432 error ("case label within scope of cleanup or variable array");
3434 position_after_white_space (); ;
3437 #line 1968 "c-parse.y"
3441 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3442 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3445 error ("default label not within a switch statement");
3446 else if (success
== 2)
3448 error ("multiple default labels in one switch");
3449 error_with_decl (duplicate
, "this is the first default label");
3451 position_after_white_space (); ;
3454 #line 1983 "c-parse.y"
3455 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
3459 expand_label (label
);
3460 position_after_white_space (); ;
3463 #line 1995 "c-parse.y"
3464 { emit_line_note (input_filename
, lineno
);
3465 yyval
.ttype
= NULL_TREE
; ;
3468 #line 1998 "c-parse.y"
3469 { emit_line_note (input_filename
, lineno
); ;
3472 #line 2003 "c-parse.y"
3473 { yyval
.ttype
= NULL_TREE
; ;
3476 #line 2010 "c-parse.y"
3477 { yyval
.ttype
= NULL_TREE
; ;
3480 #line 2017 "c-parse.y"
3481 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3484 #line 2022 "c-parse.y"
3485 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3488 #line 2027 "c-parse.y"
3489 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3492 #line 2029 "c-parse.y"
3493 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3496 #line 2035 "c-parse.y"
3498 clear_parm_order ();
3499 declare_parm_level (0); ;
3502 #line 2039 "c-parse.y"
3503 { yyval
.ttype
= yyvsp
[0].ttype
;
3504 parmlist_tags_warning ();
3505 poplevel (0, 0, 0); ;
3508 #line 2047 "c-parse.y"
3511 pedwarn ("ANSI C forbids forward parameter declarations");
3512 /* Mark the forward decls as such. */
3513 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3514 TREE_ASM_WRITTEN (parm
) = 1;
3515 clear_parm_order (); ;
3518 #line 2055 "c-parse.y"
3519 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3522 #line 2057 "c-parse.y"
3523 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3526 #line 2063 "c-parse.y"
3527 { yyval
.ttype
= get_parm_info (0); ;
3530 #line 2065 "c-parse.y"
3531 { yyval
.ttype
= get_parm_info (0);
3532 /* Gcc used to allow this as an extension. However, it does
3533 not work for all targets, and thus has been disabled.
3534 Also, since func (...) and func () are indistinguishable,
3535 it caused problems with the code in expand_builtin which
3536 tries to verify that BUILT_IN_NEXT_ARG is being used
3538 error ("ANSI C requires a named argument before `...'");
3542 #line 2075 "c-parse.y"
3543 { yyval
.ttype
= get_parm_info (1); ;
3546 #line 2077 "c-parse.y"
3547 { yyval
.ttype
= get_parm_info (0); ;
3550 #line 2082 "c-parse.y"
3551 { push_parm_decl (yyvsp
[0].ttype
); ;
3554 #line 2084 "c-parse.y"
3555 { push_parm_decl (yyvsp
[0].ttype
); ;
3558 #line 2091 "c-parse.y"
3559 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3561 build_tree_list (prefix_attributes
,
3563 current_declspecs
= TREE_VALUE (declspec_stack
);
3564 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3565 declspec_stack
= TREE_CHAIN (declspec_stack
);
3566 resume_momentary (yyvsp
[-2].itype
); ;
3569 #line 2100 "c-parse.y"
3570 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3572 build_tree_list (prefix_attributes
,
3574 current_declspecs
= TREE_VALUE (declspec_stack
);
3575 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3576 declspec_stack
= TREE_CHAIN (declspec_stack
);
3577 resume_momentary (yyvsp
[-2].itype
); ;
3580 #line 2109 "c-parse.y"
3581 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3583 build_tree_list (prefix_attributes
,
3585 current_declspecs
= TREE_VALUE (declspec_stack
);
3586 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3587 declspec_stack
= TREE_CHAIN (declspec_stack
);
3588 resume_momentary (yyvsp
[-2].itype
); ;
3591 #line 2118 "c-parse.y"
3592 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3594 build_tree_list (prefix_attributes
,
3596 current_declspecs
= TREE_VALUE (declspec_stack
);
3597 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3598 declspec_stack
= TREE_CHAIN (declspec_stack
);
3599 resume_momentary (yyvsp
[-2].itype
); ;
3602 #line 2128 "c-parse.y"
3603 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3605 build_tree_list (prefix_attributes
,
3607 current_declspecs
= TREE_VALUE (declspec_stack
);
3608 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3609 declspec_stack
= TREE_CHAIN (declspec_stack
);
3610 resume_momentary (yyvsp
[-2].itype
); ;
3613 #line 2142 "c-parse.y"
3615 clear_parm_order ();
3616 declare_parm_level (1); ;
3619 #line 2146 "c-parse.y"
3620 { yyval
.ttype
= yyvsp
[0].ttype
;
3621 parmlist_tags_warning ();
3622 poplevel (0, 0, 0); ;
3625 #line 2154 "c-parse.y"
3627 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3628 if (TREE_VALUE (t
) == NULL_TREE
)
3629 error ("`...' in old-style identifier list");
3630 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3633 #line 2164 "c-parse.y"
3634 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3637 #line 2166 "c-parse.y"
3638 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3641 #line 2172 "c-parse.y"
3642 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3645 #line 2174 "c-parse.y"
3646 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3649 #line 2179 "c-parse.y"
3650 { yyval
.itype
= pedantic
;
3654 /* the action file gets copied in in place of this dollarsign */
3655 #line 498 "/usr/cygnus/latest-940103/share/bison.simple"
3666 short *ssp1
= yyss
- 1;
3667 fprintf (stderr
, "state stack now");
3668 while (ssp1
!= yyssp
)
3669 fprintf (stderr
, " %d", *++ssp1
);
3670 fprintf (stderr
, "\n");
3680 yylsp
->first_line
= yylloc
.first_line
;
3681 yylsp
->first_column
= yylloc
.first_column
;
3682 yylsp
->last_line
= (yylsp
-1)->last_line
;
3683 yylsp
->last_column
= (yylsp
-1)->last_column
;
3688 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3689 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3693 /* Now "shift" the result of the reduction.
3694 Determine what state that goes to,
3695 based on the state we popped back to
3696 and the rule number reduced by. */
3700 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3701 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3702 yystate
= yytable
[yystate
];
3704 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3708 yyerrlab
: /* here on detecting error */
3711 /* If not already recovering from an error, report this error. */
3715 #ifdef YYERROR_VERBOSE
3716 yyn
= yypact
[yystate
];
3718 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3725 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3726 for (x
= (yyn
< 0 ? -yyn
: 0);
3727 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3728 if (yycheck
[x
+ yyn
] == x
)
3729 size
+= strlen(yytname
[x
]) + 15, count
++;
3730 msg
= (char *) malloc(size
+ 15);
3733 strcpy(msg
, "parse error");
3738 for (x
= (yyn
< 0 ? -yyn
: 0);
3739 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3740 if (yycheck
[x
+ yyn
] == x
)
3742 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3743 strcat(msg
, yytname
[x
]);
3752 yyerror ("parse error; also virtual memory exceeded");
3755 #endif /* YYERROR_VERBOSE */
3756 yyerror("parse error");
3760 yyerrlab1
: /* here on error raised explicitly by an action */
3762 if (yyerrstatus
== 3)
3764 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3766 /* return failure if at end of input */
3767 if (yychar
== YYEOF
)
3772 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3778 /* Else will try to reuse lookahead token
3779 after shifting the error token. */
3781 yyerrstatus
= 3; /* Each real token shifted decrements this */
3785 yyerrdefault
: /* current state does not do anything special for the error token. */
3788 /* This is wrong; only states that explicitly want error tokens
3789 should shift them. */
3790 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3791 if (yyn
) goto yydefault
;
3794 yyerrpop
: /* pop the current state because it cannot handle the error token */
3796 if (yyssp
== yyss
) YYABORT
;
3806 short *ssp1
= yyss
- 1;
3807 fprintf (stderr
, "Error: state stack now");
3808 while (ssp1
!= yyssp
)
3809 fprintf (stderr
, " %d", *++ssp1
);
3810 fprintf (stderr
, "\n");
3816 yyn
= yypact
[yystate
];
3821 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3840 fprintf(stderr
, "Shifting error token, ");
3851 #line 2183 "c-parse.y"