2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
82 #ifdef MULTIBYTE_CHARS
87 /* Since parsers are distinct for each language, put the language string
89 char *language_string
= "GNU C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
98 typedef union {long itype
; tree ttype
; enum tree_code code
;
99 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
100 #line 204 "c-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
104 static int stmt_count
;
105 static int compstmt_count
;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file
;
110 static int if_stmt_line
;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs
= NULL_TREE
;
114 static tree prefix_attributes
= NULL_TREE
;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack
;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice
;
123 /* Tell yyparse how to print a token's value, if yydebug is set. */
125 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
126 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
138 #define YYFLAG -32768
141 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241)
143 static const char yytranslate
[] = { 0,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
148 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
150 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
170 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
171 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
172 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
173 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
174 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
175 70, 71, 72, 73, 74, 75
179 static const short yyprhs
[] = { 0,
180 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
181 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
182 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
183 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
184 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
185 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
186 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
187 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
188 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
189 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
190 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
191 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
192 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
193 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
194 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
195 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
196 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
197 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
198 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
199 582, 585, 587, 591, 595, 598, 599, 604, 606, 607,
200 612, 614, 616, 618, 621, 624, 630, 634, 635, 636,
201 642, 643, 644, 650, 652, 654, 658, 662, 667, 671,
202 675, 679, 681, 685, 690, 695, 699, 703, 707, 709,
203 713, 717, 721, 726, 731, 735, 739, 741, 743, 746,
204 748, 751, 753, 756, 757, 765, 771, 774, 775, 783,
205 789, 792, 793, 802, 803, 811, 814, 815, 817, 818,
206 820, 822, 825, 826, 830, 833, 837, 839, 843, 845,
207 847, 850, 852, 856, 861, 868, 874, 876, 880, 882,
208 884, 888, 891, 894, 895, 897, 899, 902, 903, 906,
209 910, 914, 917, 921, 926, 930, 933, 937, 940, 942,
210 944, 947, 950, 951, 953, 956, 957, 958, 960, 962,
211 965, 969, 971, 974, 976, 979, 986, 992, 998, 1001,
212 1004, 1009, 1010, 1015, 1016, 1017, 1021, 1026, 1030, 1032,
213 1034, 1036, 1038, 1041, 1042, 1047, 1049, 1053, 1054, 1055,
214 1063, 1069, 1072, 1073, 1074, 1075, 1088, 1089, 1096, 1099,
215 1102, 1105, 1109, 1116, 1125, 1136, 1149, 1153, 1158, 1160,
216 1162, 1163, 1170, 1174, 1180, 1183, 1187, 1188, 1190, 1191,
217 1193, 1194, 1196, 1198, 1202, 1207, 1209, 1213, 1214, 1217,
218 1220, 1221, 1226, 1229, 1230, 1232, 1234, 1238, 1240, 1244,
219 1249, 1254, 1259, 1264, 1269, 1270, 1273, 1275, 1278, 1280,
223 static const short yyrhs
[] = { -1,
224 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
225 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
226 0, 240, 88, 0, 122, 136, 77, 0, 129, 122,
227 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
228 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
229 77, 0, 0, 0, 125, 122, 164, 91, 116, 92,
230 198, 0, 125, 122, 164, 1, 0, 0, 0, 129,
231 122, 167, 93, 116, 94, 198, 0, 129, 122, 167,
232 1, 0, 0, 0, 122, 167, 95, 116, 96, 198,
233 0, 122, 167, 1, 0, 3, 0, 4, 0, 43,
234 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
235 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
236 101, 81, 107, 0, 113, 0, 50, 105, 0, 240,
237 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
238 0, 103, 59, 185, 76, 0, 104, 102, 0, 104,
239 59, 185, 76, 0, 33, 105, 0, 34, 105, 0,
240 11, 0, 29, 0, 102, 0, 59, 185, 76, 105,
241 0, 0, 59, 185, 76, 82, 106, 150, 78, 0,
242 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
243 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
244 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
245 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
246 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
247 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
248 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
249 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
250 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
251 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
252 0, 0, 59, 114, 200, 76, 0, 113, 59, 100,
253 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
254 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
255 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
256 10, 0, 205, 206, 119, 0, 117, 0, 193, 0,
257 118, 117, 0, 117, 193, 0, 127, 122, 135, 77,
258 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
259 77, 0, 205, 206, 124, 0, 120, 0, 193, 0,
260 121, 120, 0, 120, 193, 0, 0, 0, 125, 122,
261 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
262 158, 0, 129, 122, 161, 0, 125, 77, 0, 129,
263 77, 0, 240, 124, 0, 133, 126, 0, 129, 133,
264 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
265 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
266 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
267 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
268 130, 7, 0, 130, 5, 0, 133, 132, 0, 187,
269 133, 132, 0, 0, 132, 134, 0, 6, 0, 171,
270 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
271 185, 76, 0, 6, 0, 7, 0, 171, 0, 138,
272 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
273 0, 0, 27, 59, 115, 76, 0, 0, 164, 137,
274 142, 36, 139, 148, 0, 164, 137, 142, 0, 0,
275 167, 137, 142, 36, 141, 148, 0, 167, 137, 142,
276 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
277 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
278 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
279 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
280 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
281 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
282 0, 151, 176, 0, 152, 0, 151, 81, 152, 0,
283 156, 36, 154, 0, 157, 154, 0, 0, 97, 38,
284 153, 154, 0, 154, 0, 0, 82, 155, 150, 78,
285 0, 107, 0, 1, 0, 157, 0, 156, 157, 0,
286 58, 97, 0, 60, 107, 10, 107, 83, 0, 60,
287 107, 83, 0, 0, 0, 164, 159, 116, 160, 200,
288 0, 0, 0, 167, 162, 116, 163, 200, 0, 165,
289 0, 167, 0, 59, 165, 76, 0, 165, 59, 235,
290 0, 165, 60, 99, 83, 0, 165, 60, 83, 0,
291 50, 188, 165, 0, 143, 123, 165, 0, 4, 0,
292 166, 59, 235, 0, 166, 60, 50, 83, 0, 166,
293 60, 99, 83, 0, 166, 60, 83, 0, 50, 188,
294 166, 0, 143, 123, 166, 0, 4, 0, 167, 59,
295 235, 0, 59, 167, 76, 0, 50, 188, 167, 0,
296 167, 60, 50, 83, 0, 167, 60, 99, 83, 0,
297 167, 60, 83, 0, 143, 123, 167, 0, 3, 0,
298 13, 0, 13, 143, 0, 14, 0, 14, 143, 0,
299 12, 0, 12, 143, 0, 0, 168, 97, 82, 172,
300 178, 78, 142, 0, 168, 82, 178, 78, 142, 0,
301 168, 97, 0, 0, 169, 97, 82, 173, 178, 78,
302 142, 0, 169, 82, 178, 78, 142, 0, 169, 97,
303 0, 0, 170, 97, 82, 174, 183, 177, 78, 142,
304 0, 0, 170, 82, 175, 183, 177, 78, 142, 0,
305 170, 97, 0, 0, 81, 0, 0, 81, 0, 179,
306 0, 179, 180, 0, 0, 179, 180, 77, 0, 179,
307 77, 0, 131, 122, 181, 0, 131, 0, 187, 122,
308 181, 0, 187, 0, 1, 0, 240, 180, 0, 182,
309 0, 181, 81, 182, 0, 205, 206, 164, 142, 0,
310 205, 206, 164, 38, 107, 142, 0, 205, 206, 38,
311 107, 142, 0, 184, 0, 183, 81, 184, 0, 1,
312 0, 97, 0, 97, 36, 107, 0, 131, 186, 0,
313 187, 186, 0, 0, 189, 0, 7, 0, 187, 7,
314 0, 0, 188, 7, 0, 59, 189, 76, 0, 50,
315 188, 189, 0, 50, 188, 0, 189, 59, 228, 0,
316 189, 60, 99, 83, 0, 189, 60, 83, 0, 59,
317 228, 0, 60, 99, 83, 0, 60, 83, 0, 191,
318 0, 208, 0, 191, 208, 0, 191, 193, 0, 0,
319 190, 0, 1, 77, 0, 0, 0, 196, 0, 197,
320 0, 196, 197, 0, 32, 239, 77, 0, 200, 0,
321 1, 200, 0, 82, 0, 199, 78, 0, 199, 194,
322 195, 121, 192, 78, 0, 199, 194, 195, 1, 78,
323 0, 199, 194, 195, 190, 78, 0, 202, 207, 0,
324 202, 1, 0, 15, 59, 99, 76, 0, 0, 18,
325 204, 207, 17, 0, 0, 0, 205, 206, 210, 0,
326 205, 206, 221, 207, 0, 205, 206, 209, 0, 210,
327 0, 221, 0, 200, 0, 218, 0, 99, 77, 0,
328 0, 201, 16, 211, 207, 0, 201, 0, 201, 16,
329 1, 0, 0, 0, 17, 212, 59, 99, 76, 213,
330 207, 0, 203, 59, 99, 76, 77, 0, 203, 1,
331 0, 0, 0, 0, 19, 59, 223, 77, 214, 223,
332 77, 215, 223, 76, 216, 207, 0, 0, 20, 59,
333 99, 76, 217, 207, 0, 23, 77, 0, 24, 77,
334 0, 25, 77, 0, 25, 99, 77, 0, 27, 222,
335 59, 99, 76, 77, 0, 27, 222, 59, 99, 38,
336 224, 76, 77, 0, 27, 222, 59, 99, 38, 224,
337 38, 224, 76, 77, 0, 27, 222, 59, 99, 38,
338 224, 38, 224, 38, 227, 76, 77, 0, 26, 97,
339 77, 0, 26, 50, 99, 77, 0, 77, 0, 219,
340 0, 0, 19, 59, 113, 76, 220, 207, 0, 21,
341 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
342 38, 0, 97, 38, 142, 0, 0, 7, 0, 0,
343 99, 0, 0, 225, 0, 226, 0, 225, 81, 226,
344 0, 9, 59, 99, 76, 0, 115, 0, 227, 81,
345 115, 0, 0, 229, 230, 0, 232, 76, 0, 0,
346 233, 77, 231, 230, 0, 1, 76, 0, 0, 10,
347 0, 233, 0, 233, 81, 10, 0, 234, 0, 233,
348 81, 234, 0, 125, 122, 166, 142, 0, 125, 122,
349 167, 142, 0, 125, 122, 186, 142, 0, 129, 122,
350 167, 142, 0, 129, 122, 186, 142, 0, 0, 236,
351 237, 0, 230, 0, 238, 76, 0, 3, 0, 238,
352 81, 3, 0, 97, 0, 239, 81, 97, 0, 31,
359 static const short yyrline
[] = { 0,
360 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
361 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
362 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
363 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
364 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
365 445, 448, 451, 454, 456, 460, 464, 468, 470, 473,
366 477, 504, 506, 508, 510, 512, 514, 516, 518, 520,
367 522, 524, 526, 528, 530, 534, 536, 540, 542, 545,
368 549, 551, 558, 561, 564, 570, 669, 670, 672, 678,
369 680, 694, 717, 719, 721, 725, 731, 733, 738, 740,
370 745, 747, 748, 758, 763, 765, 766, 767, 774, 780,
371 785, 788, 796, 801, 803, 804, 805, 812, 823, 827,
372 833, 838, 843, 848, 850, 852, 861, 864, 868, 870,
373 872, 877, 881, 884, 888, 891, 893, 905, 908, 910,
374 912, 916, 920, 922, 925, 938, 941, 945, 947, 955,
375 956, 957, 961, 963, 969, 970, 971, 974, 976, 979,
376 981, 984, 987, 993, 1000, 1002, 1009, 1016, 1019, 1026,
377 1029, 1033, 1036, 1040, 1045, 1048, 1052, 1055, 1057, 1059,
378 1061, 1068, 1070, 1071, 1072, 1077, 1079, 1084, 1092, 1097,
379 1101, 1104, 1106, 1111, 1113, 1114, 1117, 1117, 1120, 1123,
380 1125, 1127, 1130, 1132, 1135, 1141, 1143, 1147, 1158, 1166,
381 1170, 1181, 1189, 1196, 1198, 1203, 1206, 1211, 1213, 1215,
382 1222, 1224, 1232, 1238, 1243, 1245, 1247, 1254, 1256, 1262,
383 1268, 1270, 1272, 1277, 1279, 1286, 1288, 1291, 1294, 1298,
384 1301, 1305, 1308, 1312, 1317, 1319, 1323, 1325, 1327, 1329,
385 1333, 1335, 1338, 1341, 1344, 1347, 1351, 1353, 1356, 1358,
386 1363, 1366, 1371, 1373, 1375, 1389, 1396, 1401, 1407, 1412,
387 1414, 1419, 1421, 1425, 1429, 1433, 1443, 1445, 1450, 1455,
388 1458, 1462, 1465, 1469, 1472, 1475, 1478, 1482, 1485, 1489,
389 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1517, 1525,
390 1527, 1529, 1533, 1535, 1538, 1541, 1552, 1554, 1559, 1561,
391 1564, 1578, 1581, 1584, 1586, 1588, 1596, 1604, 1615, 1620,
392 1623, 1637, 1646, 1650, 1654, 1658, 1664, 1668, 1673, 1676,
393 1681, 1684, 1685, 1702, 1707, 1710, 1722, 1724, 1734, 1744,
394 1745, 1753, 1756, 1768, 1772, 1789, 1799, 1808, 1813, 1818,
395 1823, 1827, 1831, 1842, 1849, 1856, 1863, 1874, 1880, 1883,
396 1888, 1911, 1945, 1976, 2007, 2022, 2036, 2040, 2044, 2047,
397 2052, 2054, 2057, 2059, 2063, 2068, 2071, 2077, 2082, 2087,
398 2089, 2098, 2099, 2105, 2107, 2117, 2119, 2123, 2126, 2132,
399 2142, 2151, 2160, 2170, 2184, 2189, 2194, 2196, 2205, 2208,
405 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
407 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
408 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
409 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
410 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
411 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
412 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
413 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
414 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
415 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
416 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
417 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
418 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
419 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
420 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
421 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
422 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
423 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
424 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
425 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
426 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
427 "@19","initval","@20","designator_list","designator","nested_function","@21",
428 "@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
429 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
430 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
431 "component_decl_list2","component_decl","components","component_declarator",
432 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
433 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
434 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
435 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
436 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
437 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
438 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
439 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
440 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
444 static const short yyr1
[] = { 0,
445 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
446 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
447 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
448 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
449 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
450 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
451 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
452 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
453 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
454 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
455 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
456 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
457 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
458 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
459 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
460 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
461 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
462 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
463 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
464 150, 151, 151, 152, 152, 153, 152, 152, 155, 154,
465 154, 154, 156, 156, 157, 157, 157, 159, 160, 158,
466 162, 163, 161, 164, 164, 165, 165, 165, 165, 165,
467 165, 165, 166, 166, 166, 166, 166, 166, 166, 167,
468 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
469 169, 170, 170, 172, 171, 171, 171, 173, 171, 171,
470 171, 174, 171, 175, 171, 171, 176, 176, 177, 177,
471 178, 178, 179, 179, 179, 180, 180, 180, 180, 180,
472 180, 181, 181, 182, 182, 182, 183, 183, 183, 184,
473 184, 185, 185, 186, 186, 187, 187, 188, 188, 189,
474 189, 189, 189, 189, 189, 189, 189, 189, 190, 191,
475 191, 191, 192, 192, 193, 194, 195, 195, 196, 196,
476 197, 198, 198, 199, 200, 200, 200, 200, 201, 201,
477 202, 204, 203, 205, 206, 207, 207, 208, 209, 209,
478 210, 210, 210, 211, 210, 210, 210, 212, 213, 210,
479 210, 210, 214, 215, 216, 210, 217, 210, 210, 210,
480 210, 210, 210, 210, 210, 210, 210, 210, 210, 218,
481 220, 219, 221, 221, 221, 221, 222, 222, 223, 223,
482 224, 224, 225, 225, 226, 227, 227, 229, 228, 230,
483 231, 230, 230, 232, 232, 232, 232, 233, 233, 234,
484 234, 234, 234, 234, 236, 235, 237, 237, 238, 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, 3, 2, 0, 4, 1, 0, 4,
509 1, 1, 1, 2, 2, 5, 3, 0, 0, 5,
510 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
511 3, 1, 3, 4, 4, 3, 3, 3, 1, 3,
512 3, 3, 4, 4, 3, 3, 1, 1, 2, 1,
513 2, 1, 2, 0, 7, 5, 2, 0, 7, 5,
514 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
515 1, 2, 0, 3, 2, 3, 1, 3, 1, 1,
516 2, 1, 3, 4, 6, 5, 1, 3, 1, 1,
517 3, 2, 2, 0, 1, 1, 2, 0, 2, 3,
518 3, 2, 3, 4, 3, 2, 3, 2, 1, 1,
519 2, 2, 0, 1, 2, 0, 0, 1, 1, 2,
520 3, 1, 2, 1, 2, 6, 5, 5, 2, 2,
521 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
522 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
523 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
524 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
525 0, 6, 3, 5, 2, 3, 0, 1, 0, 1,
526 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
527 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
528 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
532 static const short yydefact
[] = { 3,
533 5, 0, 0, 0, 152, 143, 150, 142, 242, 238,
534 240, 0, 0, 0, 403, 18, 4, 8, 7, 0,
535 118, 118, 138, 129, 139, 172, 0, 0, 0, 151,
536 0, 6, 16, 17, 243, 239, 241, 0, 0, 0,
537 237, 288, 0, 0, 160, 119, 0, 15, 0, 14,
538 0, 140, 129, 141, 145, 144, 127, 173, 31, 32,
539 263, 247, 263, 251, 254, 256, 10, 86, 87, 99,
540 56, 57, 0, 0, 0, 33, 35, 34, 0, 36,
541 37, 0, 38, 39, 0, 0, 40, 58, 0, 0,
542 62, 43, 45, 88, 0, 286, 0, 284, 148, 0,
543 284, 177, 0, 0, 11, 0, 0, 30, 0, 395,
544 0, 0, 170, 222, 288, 0, 0, 158, 119, 0,
545 214, 215, 0, 0, 128, 131, 155, 156, 130, 132,
546 157, 0, 0, 244, 0, 248, 0, 252, 54, 55,
547 49, 46, 0, 0, 0, 0, 48, 0, 0, 0,
548 50, 0, 52, 0, 0, 79, 77, 75, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550 97, 98, 0, 0, 41, 0, 100, 47, 153, 288,
551 378, 0, 282, 285, 146, 154, 287, 148, 283, 183,
552 184, 185, 182, 0, 175, 178, 289, 232, 231, 161,
553 162, 236, 0, 230, 0, 0, 235, 0, 0, 28,
554 0, 324, 106, 325, 169, 171, 0, 0, 13, 0,
555 0, 22, 0, 170, 395, 0, 12, 26, 0, 170,
556 270, 265, 118, 262, 118, 0, 263, 170, 263, 279,
557 280, 259, 277, 0, 90, 89, 314, 306, 0, 0,
558 9, 44, 0, 0, 85, 84, 0, 0, 0, 0,
559 73, 74, 72, 71, 70, 68, 69, 63, 64, 65,
560 66, 67, 96, 95, 0, 42, 0, 292, 0, 296,
561 0, 298, 0, 378, 0, 149, 147, 0, 177, 41,
562 0, 0, 399, 385, 118, 118, 397, 0, 386, 388,
563 396, 0, 233, 234, 305, 0, 108, 103, 107, 0,
564 167, 220, 216, 159, 221, 20, 166, 217, 219, 0,
565 24, 246, 324, 264, 324, 271, 0, 250, 0, 0,
566 260, 0, 259, 315, 307, 92, 60, 59, 51, 53,
567 0, 0, 78, 76, 93, 94, 291, 290, 379, 297,
568 293, 295, 0, 174, 176, 86, 0, 163, 383, 284,
569 284, 380, 381, 0, 398, 0, 0, 29, 312, 104,
570 118, 118, 135, 0, 0, 164, 218, 0, 266, 272,
571 325, 268, 170, 170, 281, 278, 170, 0, 0, 0,
572 308, 309, 0, 80, 83, 294, 179, 0, 181, 229,
573 288, 378, 119, 170, 170, 170, 288, 170, 170, 0,
574 387, 389, 400, 313, 111, 0, 112, 0, 135, 133,
575 189, 187, 186, 168, 21, 0, 25, 324, 0, 245,
576 249, 255, 170, 401, 0, 0, 0, 324, 0, 0,
577 115, 325, 300, 310, 202, 86, 0, 0, 199, 0,
578 201, 0, 257, 192, 198, 0, 0, 0, 0, 292,
579 0, 395, 0, 390, 391, 392, 292, 393, 394, 382,
580 0, 0, 162, 134, 137, 136, 0, 165, 273, 0,
581 170, 253, 311, 0, 317, 117, 116, 304, 0, 318,
582 302, 325, 301, 0, 205, 0, 0, 196, 61, 0,
583 191, 0, 204, 195, 81, 180, 227, 288, 228, 223,
584 0, 226, 0, 109, 110, 0, 170, 0, 274, 402,
585 316, 0, 152, 0, 338, 322, 0, 0, 0, 0,
586 0, 0, 0, 0, 367, 359, 0, 0, 113, 118,
587 118, 331, 336, 0, 0, 328, 329, 332, 360, 330,
588 0, 0, 207, 0, 0, 193, 194, 0, 224, 225,
589 188, 276, 170, 0, 0, 324, 369, 0, 0, 365,
590 349, 350, 351, 0, 0, 0, 368, 0, 170, 333,
591 124, 0, 125, 0, 0, 320, 325, 319, 342, 0,
592 126, 0, 200, 197, 275, 0, 0, 0, 370, 45,
593 0, 0, 0, 363, 352, 0, 357, 0, 366, 0,
594 122, 208, 0, 123, 211, 337, 324, 0, 0, 206,
595 321, 0, 323, 361, 343, 347, 0, 358, 0, 120,
596 0, 121, 0, 335, 326, 324, 0, 339, 324, 369,
597 324, 364, 371, 0, 209, 212, 327, 341, 324, 362,
598 0, 348, 0, 0, 372, 373, 353, 0, 0, 340,
599 344, 0, 371, 0, 0, 210, 213, 369, 0, 0,
600 354, 374, 0, 375, 0, 0, 345, 376, 0, 355,
601 324, 0, 0, 346, 356, 377, 0, 0, 0
604 static const short yydefgoto
[] = { 687,
605 1, 2, 3, 17, 18, 19, 223, 375, 229, 378,
606 112, 306, 450, 85, 144, 275, 87, 88, 89, 90,
607 91, 393, 92, 260, 259, 257, 458, 258, 93, 145,
608 94, 210, 211, 212, 370, 437, 438, 20, 107, 539,
609 295, 57, 371, 420, 296, 23, 98, 185, 24, 129,
610 117, 44, 113, 118, 426, 45, 374, 215, 216, 26,
611 194, 195, 196, 424, 477, 452, 453, 454, 555, 455,
612 497, 456, 457, 611, 631, 658, 614, 633, 659, 201,
613 121, 507, 122, 27, 28, 29, 30, 237, 239, 244,
614 137, 501, 332, 132, 133, 234, 379, 380, 242, 243,
615 100, 183, 101, 103, 184, 439, 440, 489, 213, 335,
616 390, 391, 392, 368, 248, 369, 543, 544, 545, 566,
617 587, 310, 588, 443, 546, 547, 617, 565, 649, 640,
618 668, 681, 641, 548, 549, 639, 550, 578, 601, 654,
619 655, 656, 679, 280, 281, 297, 410, 298, 299, 300,
620 204, 205, 301, 302, 435, 95
623 static const short yypact
[] = { 74,
624 97, 2227, 2227, 54,-32768,-32768,-32768,-32768, 17, 17,
625 17, 87, 94, 134,-32768,-32768,-32768,-32768,-32768, 369,
626 5, 476, 261,-32768, 17,-32768, 59, 61, 90,-32768,
627 2227,-32768,-32768,-32768, 17, 17, 17, 2089, 2023, 189,
628 -32768,-32768, 369, 129,-32768, 17, 320,-32768, 519,-32768,
629 369, 261,-32768, 17,-32768,-32768, 793,-32768,-32768,-32768,
630 -32768, 114,-32768, 181,-32768, 191,-32768,-32768,-32768,-32768,
631 -32768,-32768, 2089, 2089, 241,-32768,-32768,-32768, 2089,-32768,
632 -32768, 708,-32768,-32768, 2089, 40, 211,-32768, 2116, 2143,
633 -32768, 2293, 1062, 286, 2089,-32768, 247, 210,-32768, 254,
634 1674, 639, 272, 276,-32768, 519, 369,-32768, 238,-32768,
635 1451, 357, 17,-32768,-32768, 519, 137,-32768, 17, 1438,
636 378, 395, 232, 1376, 793,-32768,-32768,-32768,-32768, 17,
637 -32768, 259, 870,-32768, 282,-32768, 228,-32768,-32768,-32768,
638 -32768,-32768, 305, 307, 328, 337,-32768, 277, 2089, 708,
639 -32768, 708,-32768, 2089, 2089, 355,-32768,-32768, 2089, 2089,
640 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
641 -32768,-32768, 241, 241, 2089, 2089,-32768,-32768,-32768,-32768,
642 210, 1478,-32768, 398, 438,-32768,-32768,-32768,-32768,-32768,
643 -32768,-32768,-32768, 14,-32768, 361,-32768, 395,-32768,-32768,
644 400, 395, 426,-32768, 402, 1533,-32768, 363, 371,-32768,
645 767, 48,-32768,-32768, 430, 17, 461, 281,-32768, 519,
646 519,-32768, 357, 17,-32768, 1560,-32768,-32768, 357, 17,
647 -32768,-32768, 385, 392, 209, 1323,-32768, 17,-32768,-32768,
648 457, 393,-32768, 228,-32768,-32768,-32768, 416, 420, 1912,
649 -32768, 2293, 421, 423, 2293, 2293, 2089, 463, 2089, 2089,
650 1667, 1881, 2060, 936, 1098, 760, 760, 294, 294,-32768,
651 -32768,-32768,-32768,-32768, 432, 211, 419, 246, 315,-32768,
652 1052,-32768, 431,-32768, 1615,-32768, 438, 433, 639, 2170,
653 44, 437,-32768,-32768,-32768, 1542,-32768, 439, 239,-32768,
654 -32768, 66,-32768,-32768,-32768, 47,-32768,-32768,-32768, 1027,
655 -32768, 378,-32768,-32768, 378,-32768, 480,-32768,-32768, 436,
656 -32768,-32768,-32768,-32768,-32768,-32768, 443,-32768, 447, 2089,
657 241, 449, 393,-32768, 496,-32768,-32768,-32768,-32768,-32768,
658 493, 2089, 2328, 1586,-32768,-32768, 398,-32768,-32768,-32768,
659 -32768,-32768, 455,-32768,-32768, 99, 465,-32768,-32768, 221,
660 374,-32768,-32768, 1465,-32768, 543, 328,-32768,-32768,-32768,
661 471, 172,-32768, 1312, 47,-32768,-32768, 47, 469,-32768,
662 -32768, 469, 17, 17, 2293,-32768, 17, 477, 241, 813,
663 496,-32768, 1132,-32768, 2222,-32768,-32768, 2089,-32768,-32768,
664 -32768, 374, 17, 135, 258, 17,-32768, 258, 17, 1052,
665 -32768,-32768,-32768,-32768,-32768, 519,-32768, 369,-32768, 845,
666 -32768,-32768, 2293,-32768,-32768, 1312,-32768,-32768, 205,-32768,
667 -32768,-32768, 17,-32768, 278, 394, 646, 478, 483, 912,
668 -32768,-32768,-32768,-32768,-32768, 516, 241, 2089,-32768, 520,
669 2293, 485, 484,-32768,-32768, 123, 1252, 2089, 111, 167,
670 688,-32768, 1642,-32768,-32768,-32768, 269,-32768,-32768,-32768,
671 301, 311, 225, 845,-32768,-32768, 1132,-32768,-32768, 2089,
672 160,-32768,-32768, 241,-32768,-32768,-32768,-32768, 486,-32768,
673 -32768,-32768,-32768, 1778,-32768, 2266, 1132,-32768,-32768, 1192,
674 -32768, 1367,-32768,-32768, 2222,-32768, 417,-32768, 417,-32768,
675 1697,-32768, 489,-32768,-32768, 490, 1799, 2089,-32768,-32768,
676 -32768, 1858, 529, 514,-32768,-32768, 515, 534, 2089, 537,
677 502, 518, 2036, 52, 589,-32768, 559, 522,-32768, 523,
678 607,-32768, 585, 995, 45,-32768,-32768,-32768,-32768,-32768,
679 1969, 2089,-32768, 525, 1367,-32768,-32768, 950,-32768,-32768,
680 -32768,-32768, 1799, 2089, 545,-32768, 2089, 2089, 1722,-32768,
681 -32768,-32768,-32768, 528, 2089, 532,-32768, 557, 17,-32768,
682 -32768, 519,-32768, 369, 1075,-32768,-32768,-32768,-32768, 2089,
683 -32768, 2248,-32768,-32768,-32768, 541, 2089, 601,-32768, 849,
684 546, 549, 2089,-32768,-32768, 556,-32768, 2089,-32768, 317,
685 -32768, 359, 345,-32768, 672,-32768,-32768, 1858, 550,-32768,
686 -32768, 558,-32768,-32768,-32768,-32768, 2315,-32768, 23,-32768,
687 357,-32768, 357,-32768,-32768,-32768, 561,-32768,-32768, 2089,
688 -32768,-32768, 613, 563,-32768,-32768,-32768,-32768,-32768,-32768,
689 571,-32768, 577, 33, 581,-32768,-32768, 328, 328,-32768,
690 -32768, 2089, 613, 606, 613,-32768,-32768, 2089, 602, 34,
691 -32768,-32768, 609,-32768, 426, 610,-32768, 286, 157,-32768,
692 -32768, 611, 426,-32768,-32768, 286, 690, 693,-32768
695 static const short yypgoto
[] = {-32768,
696 -32768,-32768,-32768, 81,-32768,-32768,-32768,-32768,-32768,-32768,
697 -32768,-32768, -24,-32768, -38, 407, -139, 193,-32768,-32768,
698 -4,-32768, 422,-32768,-32768,-32768,-32768,-32768, 131,-32768,
699 -196, -202, 491,-32768,-32768, 268,-32768, -5, -91, 156,
700 9, 657,-32768, 308, 11, -7, -88, 542, 4, -163,
701 -378, -45, -100, -65,-32768,-32768,-32768, 223, 57, 82,
702 -32768, 424,-32768, 303,-32768, -401,-32768, 233,-32768, -422,
703 -32768,-32768, 279,-32768,-32768,-32768,-32768,-32768,-32768, -39,
704 -59, -316, -18,-32768,-32768,-32768, -33,-32768,-32768,-32768,
705 -32768,-32768, 401, -32,-32768, 507, 425, 316, 501, 415,
706 39, -67, -79, -97, -152, 321,-32768,-32768, -179,-32768,
707 -32768,-32768, 364, -209,-32768, -126,-32768,-32768,-32768,-32768,
708 -89, -331, -514, 314,-32768, 142,-32768,-32768,-32768,-32768,
709 -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, -553, 102,
710 -32768, 101,-32768, 492,-32768, -242,-32768,-32768,-32768, 405,
711 -195,-32768,-32768,-32768,-32768, 6
718 static const short yytable
[] = { 86,
719 97, 47, 62, 64, 66, 123, 291, 31, 31, 120,
720 21, 21, 22, 22, 52, 49, 51, 217, 249, 224,
721 316, 286, 214, 131, 104, 53, 321, 221, 279, 318,
722 135, 307, 124, 189, 504, 276, 31, 471, 349, 21,
723 200, 22, 99, 404, 233, 589, 14, 367, -102, 429,
724 141, 598, 177, 235, 59, 60, 218, 308, 25, 25,
725 643, 59, 60, 59, 60, 35, 36, 37, 139, 140,
726 663, 675, 208, -1, 142, 516, 46, 193, 54, 557,
727 147, 48, 278, 32, 198, 99, 651, 25, 202, 288,
728 178, 131, 59, 60, 289, 554, -2, 104, 644, 46,
729 224, 575, 634, 590, 188, 119, 58, 46, 664, 676,
730 494, 67, 241, 130, 673, 148, 58, 58, 58, 358,
731 146, 647, 214, 286, 650, 347, 652, 58, 247, -102,
732 33, 34, 594, 214, 660, 58, 99, 277, 236, 214,
733 61, 365, 63, 283, 509, 38, 366, 233, 273, 274,
734 276, 131, 39, 99, 314, 99, 235, 312, 502, 46,
735 522, 315, 119, 46, 14, 425, 684, 470, 427, 41,
736 400, 65, 119, 197, 397, 5, 55, 7, 56, 398,
737 447, 130, 448, 9, 10, 11, 506, 320, 253, 14,
738 254, 149, 40, 462, 463, 134, 14, 518, 198, 13,
739 58, 142, 202, 610, 327, 105, 329, 41, 114, 106,
740 441, 58, 5, 219, 7, 187, 401, 220, 341, 241,
741 9, 10, 11, 41, 400, 402, 182, 323, 240, 325,
742 59, 60, 682, 381, 14, 381, 13, 683, 188, 99,
743 414, 236, 480, 59, 60, 338, 353, 102, 417, 279,
744 14, 109, 197, 131, 115, 618, 476, 486, 459, 180,
745 491, 25, 136, 116, 193, 55, 510, 56, 181, 182,
746 401, 41, 138, 119, 41, 197, 119, 119, 197, 402,
747 182, 151, 153, 110, 111, -269, -269, 14, 52, 360,
748 361, 149, 406, 409, 177, 180, 203, 58, 14, 53,
749 442, 14, 372, 460, 181, 182, 241, 347, 227, 467,
750 476, 461, 106, 373, 347, 363, 110, 111, 407, 364,
751 108, 42, 179, -27, -27, -27, -27, 402, 182, 186,
752 43, -27, -27, -27, 110, 111, 230, 25, 381, 225,
753 226, 405, 408, 168, 169, 170, 109, -27, 442, -162,
754 492, 199, 54, 251, 483, -162, 313, 209, 484, 238,
755 -324, -324, -324, -324, 434, 416, 418, 542, -324, -324,
756 -324, 41, 472, 284, 285, 419, 41, 514, 110, 111,
757 245, 220, 246, 104, -324, 109, 131, 515, -162, 481,
758 348, 106, -82, 630, -162, 542, -162, 220, 14, 473,
759 -162, -27, 292, 14, 293, 5, 6, 7, 8, 247,
760 558, 294, 250, 9, 10, 11, 403, 46, 42, 290,
761 25, 632, 495, 407, 513, 106, 109, 43, 645, 13,
762 646, 14, 402, 182, 70, -162, 225, 226, -101, -162,
763 131, 198, 202, 127, 128, 304, 317, 305, 198, 9,
764 10, 11, 322, 110, 111, 538, 284, 285, 46, 520,
765 328, -267, -267, 41, 114, 311, 25, 197, 324, 537,
766 305, 485, 119, 331, 46, 462, 463, -384, 678, 5,
767 6, 7, 8, 538, 58, 119, 686, 9, 10, 11,
768 14, 542, 330, 334, 574, 336, 339, 537, 340, 551,
769 342, 346, 540, 13, 541, 14, 142, 345, 354, 576,
770 115, 224, 359, 350, 362, 376, 403, 403, 377, 116,
771 383, 41, 114, 46, 384, 596, 387, 389, 599, 602,
772 394, 666, 667, 52, 582, 584, 606, 396, 613, 198,
773 399, 214, 612, 214, 53, 413, 178, 415, 14, 428,
774 25, 619, 50, -31, 433, -303, 551, 498, 622, 540,
775 490, 541, 499, 521, 500, 615, -32, 561, 115, 629,
776 252, 560, 564, 567, 570, 255, 256, 116, 571, 538,
777 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
778 271, 272, 568, 537, 572, 577, 579, 54, 580, 581,
779 585, 599, 593, 597, 605, 430, 431, 25, 607, 432,
780 5, 6, 7, 8, 403, 608, 621, 623, 9, 10,
781 11, 653, 625, 669, 626, 637, 464, 465, 466, 599,
782 468, 469, 628, 638, 13, 662, 14, 648, 119, 657,
783 46, 59, 60, 190, 191, 192, 209, 661, -114, -114,
784 -114, -114, -114, -114, -114, 482, -114, -114, -114, -114,
785 -114, 665, -114, -114, -114, -114, -114, -114, -114, -114,
786 -114, -114, -114, -114, -114, -114, -114, 674, -114, -114,
787 343, 344, 671, 583, 677, -114, 680, 685, -114, 688,
788 41, 400, 689, -114, -114, -114, 357, 600, 109, -114,
789 -114, -162, 309, 519, -114, 487, 591, -162, 143, 125,
790 68, 5, 355, 7, 96, 69, 70, 14, 71, 9,
791 10, 11, -114, -114, -114, -114, 474, -114, 478, 287,
792 110, 111, 556, 388, 503, 13, 72, 508, 15, 562,
793 73, 74, 326, 479, 333, 386, 43, 75, -162, 382,
794 76, 385, -162, 493, 444, 77, 78, 79, 488, 635,
795 636, 80, 81, 395, 670, 672, 82, 209, 412, 0,
796 -105, -105, -105, -105, 0, 351, -105, 0, -105, -105,
797 -105, 0, 0, 0, 0, 595, 83, 84, 0, -91,
798 0, 0, 0, 0, -105, 423, 0, 126, 127, 128,
799 0, 609, 0, 0, 9, 10, 11, 166, 167, 168,
800 169, 170, 0, 436, 451, -324, -324, -324, -324, -324,
801 -324, -324, 14, -324, -324, -324, -324, -324, 0, -324,
802 -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
803 -324, -324, -324, -324, 0, -324, -324, 423, -105, 475,
804 127, 128, -324, 0, 0, -324, 9, 10, 11, 0,
805 -324, -324, -324, 0, 0, 0, -324, -324, 0, 496,
806 231, -324, 0, 5, 0, 7, 96, 0, 451, 505,
807 0, 9, 10, 11, 0, 0, 0, 0, 0, -324,
808 0, -324, -324, 0, -324, 0, 0, 13, 451, 0,
809 15, 517, 171, 172, 0, 173, 174, 175, 176, 0,
810 0, 0, 209, 0, -324, -324, 0, 0, 451, -324,
811 -324, 451, -324, 451, 624, 0, -324, 0, -324, -324,
812 -324, -324, -324, -324, -324, -324, -324, -324, -324, 563,
813 -324, 0, -324, 0, -324, -324, 232, -261, 0, 0,
814 569, -324, 41, 400, -324, 0, 197, 0, 0, -324,
815 -324, -324, 0, 0, 0, -324, -324, 0, 0, 0,
816 -324, 0, 0, 592, 0, 0, 451, 0, 0, 14,
817 163, 164, 165, 166, 167, 168, 169, 170, -324, -299,
818 -324, -324, 0, -324, 0, 586, 0, -324, -324, 508,
819 0, 0, -324, -324, 0, -324, 0, 0, 43, -324,
820 0, -324, -324, -324, -324, -324, -324, -324, -324, -324,
821 -324, -324, 0, -324, 627, -324, 0, -324, -324, 0,
822 5, 6, 7, 8, -324, 0, 0, -324, 9, 10,
823 11, 0, -324, -324, -324, 0, 0, 0, -324, -324,
824 0, 0, 292, -324, 13, 5, 6, 7, 8, 0,
825 0, 294, 0, 9, 10, 11, 0, 0, 0, 0,
826 0, -324, 0, -324, -324, 616, -324, -334, -334, 13,
827 0, 14, -334, -334, 0, -334, 0, 0, 0, -334,
828 0, -334, -334, -334, -334, -334, -334, -334, -334, -334,
829 -334, -334, 0, -334, 0, -334, 0, -334, -334, 0,
830 0, 0, 0, 0, -334, 171, 172, -334, 173, 174,
831 175, 176, -334, -334, -334, 0, 0, -384, -334, -334,
832 0, 0, 445, -334, 446, 60, 0, 0, 0, 69,
833 70, 0, 71, 164, 165, 166, 167, 168, 169, 170,
834 0, -334, 0, -334, -334, 0, -334, 0, 0, 0,
835 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
836 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
837 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
838 82, 448, 445, 0, 446, 60, 0, 0, 0, 69,
839 70, 0, 71, 0, 0, 0, 0, 0, 0, -190,
840 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
841 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
842 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
843 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
844 82, 448, 445, 0, 68, 0, 0, 0, 0, 69,
845 70, 0, 71, 0, 0, 0, 0, 0, 0, -258,
846 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
847 72, 0, 15, 0, 73, 74, 0, -203, 0, 0,
848 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
849 78, 79, 0, 0, 0, 80, 81, 0, 0, -203,
850 82, -203, 421, 0, 68, 0, 0, 0, 0, 69,
851 70, 0, 71, 231, 0, 0, 5, 0, 7, 96,
852 83, 84, 0, 449, 9, 10, 11, 0, 0, 0,
853 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
854 13, 75, 0, 15, 76, 0, 0, 0, 0, 77,
855 78, 79, 0, 0, 0, 80, 81, 445, 0, 68,
856 82, 0, 0, 0, 69, 70, 228, 71, 0, -23,
857 -23, -23, -23, 0, 0, 0, 0, -23, -23, -23,
858 83, 84, 0, 422, 0, 72, 0, 15, 0, 73,
859 74, 0, 109, -23, 0, -162, 75, 0, 0, 76,
860 0, -162, 0, 0, 77, 78, 79, 0, 0, 0,
861 80, 81, 0, 0, 0, 82, 0, 0, 0, 0,
862 0, 0, 0, 0, 110, 111, 0, 0, 222, 0,
863 0, -19, -19, -19, -19, 83, 84, 0, 449, -19,
864 -19, -19, -162, 68, 0, 0, -162, -23, 69, 70,
865 0, 71, 0, 0, 109, -19, 0, -162, 5, 6,
866 7, 8, 0, -162, 411, 0, 9, 10, 11, 72,
867 68, 15, 0, 73, 74, 69, 70, 0, 71, 0,
868 75, 0, 13, 76, 14, 0, 0, 0, 77, 78,
869 206, 0, 0, 0, 80, 81, 72, 0, 15, 82,
870 73, 74, 0, 0, -162, 0, 0, 75, -162, -19,
871 76, 0, 0, 0, 0, 77, 78, 79, 0, 83,
872 84, 80, 81, 207, 0, 68, 82, 0, 0, 0,
873 69, 70, 0, 71, 0, 5, 6, 7, 8, 0,
874 0, 0, 0, 9, 10, 11, 83, 84, 0, 0,
875 282, 72, 68, 15, 0, 73, 74, 69, 70, 13,
876 71, 14, 75, 0, 0, 76, 0, 0, 0, 0,
877 77, 78, 79, 0, 0, 0, 80, 81, 72, 0,
878 15, 82, 73, 74, 0, 0, 0, 0, 0, 75,
879 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
880 0, 83, 84, 80, 81, 303, 0, 68, 82, 0,
881 0, 0, 69, 70, 0, 71, 159, 160, 161, 162,
882 163, 164, 165, 166, 167, 168, 169, 170, 83, 84,
883 0, 0, 319, 72, 68, 15, 0, 73, 74, 69,
884 70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
885 0, 0, 77, 78, 79, 0, 0, 0, 80, 81,
886 72, 0, 15, 82, 73, 74, 0, 5, 0, 7,
887 187, 75, 0, 0, 76, 9, 10, 11, 0, 77,
888 78, 511, 0, 83, 84, 80, 81, 352, 0, 68,
889 82, 13, 0, 0, 69, 70, 0, 71, 160, 161,
890 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
891 83, 84, 0, 180, 512, 72, 0, 15, 0, 73,
892 74, 603, 181, 182, 0, 0, 75, 0, 0, 76,
893 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
894 80, 81, 0, 0, 0, 82, 154, 155, 156, 604,
895 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
896 167, 168, 169, 170, 0, 83, 84, 0, 0, 559,
897 446, 523, 6, 7, 8, 69, 70, 0, 71, 9,
898 10, 11, 524, 0, 525, 526, 527, 528, 529, 530,
899 531, 532, 533, 534, 535, 13, 72, 14, 15, 0,
900 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
901 76, 0, 0, 0, 0, 77, 78, 79, 14, 0,
902 0, 80, 81, 154, 155, 156, 82, 157, 158, 159,
903 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
904 170, 0, 0, 0, 536, 0, 83, 84, 0, 247,
905 446, 60, 0, 0, 0, 69, 70, 0, 71, 0,
906 0, 0, 524, 0, 525, 526, 527, 528, 529, 530,
907 531, 532, 533, 534, 535, 0, 72, 0, 15, 0,
908 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
909 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
910 0, 80, 81, 0, 68, 0, 82, 0, 0, 69,
911 70, 0, 71, 161, 162, 163, 164, 165, 166, 167,
912 168, 169, 170, 0, 536, 0, 83, 84, 0, 247,
913 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
914 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
915 78, 79, 0, 0, 0, 80, 81, 0, 0, 0,
916 82, 68, 5, 6, 7, 8, 69, 70, 0, 71,
917 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
918 83, 84, 0, 337, 0, 0, 13, 72, 14, 15,
919 0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
920 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
921 0, 0, 80, 81, 0, 68, 5, 82, 7, 96,
922 69, 70, 0, 71, 9, 10, 11, 0, 68, 0,
923 0, 0, 0, 69, 70, 0, 71, 83, 84, 0,
924 13, 72, 0, 15, 0, 73, 74, 0, 0, 0,
925 0, 0, 75, 0, 72, 76, 15, 0, 73, 74,
926 77, 78, 79, 0, 0, 75, 80, 81, 76, 0,
927 0, 82, 0, 77, 78, 79, 0, 0, 0, 80,
928 81, 68, 0, 0, 82, 0, 69, 70, 0, 71,
929 0, 83, 84, 162, 163, 164, 165, 166, 167, 168,
930 169, 170, 573, 0, 83, 84, 0, 72, 68, 15,
931 0, 73, 74, 69, 70, 0, 71, 0, 75, 0,
932 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
933 0, 0, 80, 81, 72, 68, 15, 82, 73, 74,
934 69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
935 0, 0, 0, 77, 78, 79, 0, 83, 84, 80,
936 81, 72, 356, 15, 150, 73, 74, 69, 70, 0,
937 71, 0, 75, 0, 0, 76, 0, 0, 0, 0,
938 77, 78, 79, 0, 83, 84, 80, 81, 72, 0,
939 15, 152, 73, 74, 0, 0, 0, 0, 0, 75,
940 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
941 0, 83, 84, 80, 81, 0, 0, 4, 82, -118,
942 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
943 11, 0, 0, 0, 0, 0, 0, 0, 83, 84,
944 0, 0, 0, 12, 13, 0, 14, 15, 156, 0,
945 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
946 167, 168, 169, 170, 0, 552, -118, 0, 0, 0,
947 0, 0, 154, 155, 156, -118, 157, 158, 159, 160,
948 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
949 154, 155, 156, 16, 157, 158, 159, 160, 161, 162,
950 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
952 620, 157, 158, 159, 160, 161, 162, 163, 164, 165,
953 166, 167, 168, 169, 170, 0, 0, 0, 553, 154,
954 155, 156, 642, 157, 158, 159, 160, 161, 162, 163,
955 164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
956 161, 162, 163, 164, 165, 166, 167, 168, 169, 170
959 static const short yycheck
[] = { 38,
960 39, 20, 27, 28, 29, 51, 203, 2, 3, 49,
961 2, 3, 2, 3, 22, 21, 22, 115, 145, 120,
962 223, 185, 112, 57, 43, 22, 229, 119, 181, 225,
963 63, 211, 51, 101, 457, 175, 31, 416, 281, 31,
964 106, 31, 39, 360, 133, 1, 30, 1, 1, 381,
965 75, 566, 9, 133, 3, 4, 116, 10, 2, 3,
966 38, 3, 4, 3, 4, 9, 10, 11, 73, 74,
967 38, 38, 111, 0, 79, 477, 20, 102, 22, 502,
968 85, 77, 180, 3, 103, 82, 640, 31, 107, 76,
969 95, 125, 3, 4, 81, 497, 0, 116, 76, 43,
970 201, 50, 617, 59, 101, 49, 25, 51, 76, 76,
971 442, 31, 137, 57, 668, 76, 35, 36, 37, 76,
972 82, 636, 212, 287, 639, 278, 641, 46, 82, 82,
973 77, 78, 555, 223, 649, 54, 133, 176, 133, 229,
974 82, 76, 82, 182, 461, 59, 81, 236, 173, 174,
975 290, 185, 59, 150, 220, 152, 236, 217, 36, 103,
976 492, 221, 106, 107, 30, 375, 681, 410, 378, 3,
977 4, 82, 116, 7, 76, 4, 5, 6, 7, 81,
978 58, 125, 60, 12, 13, 14, 76, 226, 150, 30,
979 152, 81, 59, 59, 60, 82, 30, 38, 217, 28,
980 119, 206, 221, 582, 237, 77, 239, 3, 4, 81,
981 390, 130, 4, 77, 6, 7, 50, 81, 257, 244,
982 12, 13, 14, 3, 4, 59, 60, 233, 1, 235,
983 3, 4, 76, 323, 30, 325, 28, 81, 235, 236,
984 367, 236, 38, 3, 4, 250, 285, 59, 77, 402,
985 30, 27, 7, 287, 50, 587, 420, 437, 398, 50,
986 440, 205, 82, 59, 289, 5, 462, 7, 59, 60,
987 50, 3, 82, 217, 3, 7, 220, 221, 7, 59,
988 60, 89, 90, 59, 60, 77, 78, 30, 296, 295,
989 296, 81, 360, 361, 9, 50, 59, 216, 30, 296,
990 390, 30, 310, 401, 59, 60, 331, 460, 77, 407,
991 474, 403, 81, 310, 467, 77, 59, 60, 50, 81,
992 1, 50, 76, 4, 5, 6, 7, 59, 60, 76,
993 59, 12, 13, 14, 59, 60, 78, 281, 428, 59,
994 60, 360, 361, 50, 51, 52, 27, 28, 438, 30,
995 440, 76, 296, 77, 77, 36, 76, 1, 81, 78,
996 4, 5, 6, 7, 389, 371, 372, 494, 12, 13,
997 14, 3, 418, 59, 60, 372, 3, 77, 59, 60,
998 76, 81, 76, 402, 28, 27, 420, 77, 30, 429,
999 76, 81, 38, 77, 36, 522, 77, 81, 30, 418,
1000 81, 82, 1, 30, 3, 4, 5, 6, 7, 82,
1001 508, 10, 76, 12, 13, 14, 360, 361, 50, 59,
1002 364, 77, 447, 50, 463, 81, 27, 59, 631, 28,
1003 633, 30, 59, 60, 9, 77, 59, 60, 82, 81,
1004 474, 460, 461, 6, 7, 83, 224, 77, 467, 12,
1005 13, 14, 230, 59, 60, 494, 59, 60, 402, 484,
1006 238, 77, 78, 3, 4, 36, 410, 7, 77, 494,
1007 77, 78, 416, 81, 418, 59, 60, 76, 675, 4,
1008 5, 6, 7, 522, 403, 429, 683, 12, 13, 14,
1009 30, 618, 36, 78, 533, 76, 76, 522, 76, 494,
1010 38, 83, 494, 28, 494, 30, 511, 76, 76, 534,
1011 50, 612, 76, 83, 76, 36, 460, 461, 83, 59,
1012 78, 3, 4, 467, 78, 564, 78, 32, 567, 568,
1013 38, 658, 659, 541, 540, 541, 575, 83, 584, 558,
1014 76, 631, 582, 633, 541, 3, 551, 77, 30, 81,
1015 494, 590, 77, 38, 78, 78, 551, 38, 597, 551,
1016 78, 551, 78, 78, 81, 584, 38, 78, 50, 608,
1017 149, 83, 59, 59, 38, 154, 155, 59, 77, 618,
1018 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1019 169, 170, 59, 618, 77, 7, 38, 541, 77, 77,
1020 16, 640, 78, 59, 77, 383, 384, 551, 77, 387,
1021 4, 5, 6, 7, 558, 59, 76, 17, 12, 13,
1022 14, 9, 77, 662, 76, 76, 404, 405, 406, 668,
1023 408, 409, 77, 76, 28, 59, 30, 77, 582, 77,
1024 584, 3, 4, 5, 6, 7, 1, 77, 3, 4,
1025 5, 6, 7, 8, 9, 433, 11, 12, 13, 14,
1026 15, 81, 17, 18, 19, 20, 21, 22, 23, 24,
1027 25, 26, 27, 28, 29, 30, 31, 76, 33, 34,
1028 259, 260, 77, 77, 76, 40, 77, 77, 43, 0,
1029 3, 4, 0, 48, 49, 50, 290, 567, 27, 54,
1030 55, 30, 212, 481, 59, 438, 551, 36, 1, 53,
1031 3, 4, 289, 6, 7, 8, 9, 30, 11, 12,
1032 13, 14, 77, 78, 79, 80, 419, 82, 426, 188,
1033 59, 60, 500, 333, 456, 28, 29, 50, 31, 517,
1034 33, 34, 236, 428, 244, 331, 59, 40, 77, 325,
1035 43, 330, 81, 440, 391, 48, 49, 50, 438, 618,
1036 618, 54, 55, 342, 663, 665, 59, 1, 364, -1,
1037 4, 5, 6, 7, -1, 284, 10, -1, 12, 13,
1038 14, -1, -1, -1, -1, 563, 79, 80, -1, 82,
1039 -1, -1, -1, -1, 28, 374, -1, 5, 6, 7,
1040 -1, 579, -1, -1, 12, 13, 14, 48, 49, 50,
1041 51, 52, -1, 1, 393, 3, 4, 5, 6, 7,
1042 8, 9, 30, 11, 12, 13, 14, 15, -1, 17,
1043 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1044 28, 29, 30, 31, -1, 33, 34, 426, 82, 5,
1045 6, 7, 40, -1, -1, 43, 12, 13, 14, -1,
1046 48, 49, 50, -1, -1, -1, 54, 55, -1, 448,
1047 1, 59, -1, 4, -1, 6, 7, -1, 457, 458,
1048 -1, 12, 13, 14, -1, -1, -1, -1, -1, 77,
1049 -1, 79, 80, -1, 82, -1, -1, 28, 477, -1,
1050 31, 480, 54, 55, -1, 57, 58, 59, 60, -1,
1051 -1, -1, 1, -1, 3, 4, -1, -1, 497, 8,
1052 9, 500, 11, 502, 76, -1, 15, -1, 17, 18,
1053 19, 20, 21, 22, 23, 24, 25, 26, 27, 518,
1054 29, -1, 31, -1, 33, 34, 77, 78, -1, -1,
1055 529, 40, 3, 4, 43, -1, 7, -1, -1, 48,
1056 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1057 59, -1, -1, 552, -1, -1, 555, -1, -1, 30,
1058 45, 46, 47, 48, 49, 50, 51, 52, 77, 78,
1059 79, 80, -1, 82, -1, 1, -1, 3, 4, 50,
1060 -1, -1, 8, 9, -1, 11, -1, -1, 59, 15,
1061 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1062 26, 27, -1, 29, 603, 31, -1, 33, 34, -1,
1063 4, 5, 6, 7, 40, -1, -1, 43, 12, 13,
1064 14, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1065 -1, -1, 1, 59, 28, 4, 5, 6, 7, -1,
1066 -1, 10, -1, 12, 13, 14, -1, -1, -1, -1,
1067 -1, 77, -1, 79, 80, 1, 82, 3, 4, 28,
1068 -1, 30, 8, 9, -1, 11, -1, -1, -1, 15,
1069 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1070 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
1071 -1, -1, -1, -1, 40, 54, 55, 43, 57, 58,
1072 59, 60, 48, 49, 50, -1, -1, 76, 54, 55,
1073 -1, -1, 1, 59, 3, 4, -1, -1, -1, 8,
1074 9, -1, 11, 46, 47, 48, 49, 50, 51, 52,
1075 -1, 77, -1, 79, 80, -1, 82, -1, -1, -1,
1076 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1077 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1078 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1079 59, 60, 1, -1, 3, 4, -1, -1, -1, 8,
1080 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1081 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1082 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1083 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1084 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1085 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1086 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1087 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1088 29, -1, 31, -1, 33, 34, -1, 36, -1, -1,
1089 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1090 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1091 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1092 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1093 79, 80, -1, 82, 12, 13, 14, -1, -1, -1,
1094 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1095 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1096 49, 50, -1, -1, -1, 54, 55, 1, -1, 3,
1097 59, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1098 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1099 79, 80, -1, 82, -1, 29, -1, 31, -1, 33,
1100 34, -1, 27, 28, -1, 30, 40, -1, -1, 43,
1101 -1, 36, -1, -1, 48, 49, 50, -1, -1, -1,
1102 54, 55, -1, -1, -1, 59, -1, -1, -1, -1,
1103 -1, -1, -1, -1, 59, 60, -1, -1, 1, -1,
1104 -1, 4, 5, 6, 7, 79, 80, -1, 82, 12,
1105 13, 14, 77, 3, -1, -1, 81, 82, 8, 9,
1106 -1, 11, -1, -1, 27, 28, -1, 30, 4, 5,
1107 6, 7, -1, 36, 10, -1, 12, 13, 14, 29,
1108 3, 31, -1, 33, 34, 8, 9, -1, 11, -1,
1109 40, -1, 28, 43, 30, -1, -1, -1, 48, 49,
1110 50, -1, -1, -1, 54, 55, 29, -1, 31, 59,
1111 33, 34, -1, -1, 77, -1, -1, 40, 81, 82,
1112 43, -1, -1, -1, -1, 48, 49, 50, -1, 79,
1113 80, 54, 55, 83, -1, 3, 59, -1, -1, -1,
1114 8, 9, -1, 11, -1, 4, 5, 6, 7, -1,
1115 -1, -1, -1, 12, 13, 14, 79, 80, -1, -1,
1116 83, 29, 3, 31, -1, 33, 34, 8, 9, 28,
1117 11, 30, 40, -1, -1, 43, -1, -1, -1, -1,
1118 48, 49, 50, -1, -1, -1, 54, 55, 29, -1,
1119 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1120 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1121 -1, 79, 80, 54, 55, 83, -1, 3, 59, -1,
1122 -1, -1, 8, 9, -1, 11, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 79, 80,
1124 -1, -1, 83, 29, 3, 31, -1, 33, 34, 8,
1125 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1126 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1127 29, -1, 31, 59, 33, 34, -1, 4, -1, 6,
1128 7, 40, -1, -1, 43, 12, 13, 14, -1, 48,
1129 49, 50, -1, 79, 80, 54, 55, 83, -1, 3,
1130 59, 28, -1, -1, 8, 9, -1, 11, 42, 43,
1131 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1132 79, 80, -1, 50, 83, 29, -1, 31, -1, 33,
1133 34, 10, 59, 60, -1, -1, 40, -1, -1, 43,
1134 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1135 54, 55, -1, -1, -1, 59, 35, 36, 37, 38,
1136 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1137 49, 50, 51, 52, -1, 79, 80, -1, -1, 83,
1138 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1139 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1140 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1141 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1142 43, -1, -1, -1, -1, 48, 49, 50, 30, -1,
1143 -1, 54, 55, 35, 36, 37, 59, 39, 40, 41,
1144 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1145 52, -1, -1, -1, 77, -1, 79, 80, -1, 82,
1146 3, 4, -1, -1, -1, 8, 9, -1, 11, -1,
1147 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1148 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1149 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1150 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1151 -1, 54, 55, -1, 3, -1, 59, -1, -1, 8,
1152 9, -1, 11, 43, 44, 45, 46, 47, 48, 49,
1153 50, 51, 52, -1, 77, -1, 79, 80, -1, 82,
1154 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1155 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1156 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1157 59, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1158 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1159 79, 80, -1, 82, -1, -1, 28, 29, 30, 31,
1160 -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1161 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1162 -1, -1, 54, 55, -1, 3, 4, 59, 6, 7,
1163 8, 9, -1, 11, 12, 13, 14, -1, 3, -1,
1164 -1, -1, -1, 8, 9, -1, 11, 79, 80, -1,
1165 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1166 -1, -1, 40, -1, 29, 43, 31, -1, 33, 34,
1167 48, 49, 50, -1, -1, 40, 54, 55, 43, -1,
1168 -1, 59, -1, 48, 49, 50, -1, -1, -1, 54,
1169 55, 3, -1, -1, 59, -1, 8, 9, -1, 11,
1170 -1, 79, 80, 44, 45, 46, 47, 48, 49, 50,
1171 51, 52, 77, -1, 79, 80, -1, 29, 3, 31,
1172 -1, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1173 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1174 -1, -1, 54, 55, 29, 3, 31, 59, 33, 34,
1175 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1176 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1177 55, 29, 3, 31, 59, 33, 34, 8, 9, -1,
1178 11, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1179 48, 49, 50, -1, 79, 80, 54, 55, 29, -1,
1180 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1181 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1182 -1, 79, 80, 54, 55, -1, -1, 1, 59, 3,
1183 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1184 14, -1, -1, -1, -1, -1, -1, -1, 79, 80,
1185 -1, -1, -1, 27, 28, -1, 30, 31, 37, -1,
1186 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1187 49, 50, 51, 52, -1, 10, 50, -1, -1, -1,
1188 -1, -1, 35, 36, 37, 59, 39, 40, 41, 42,
1189 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1190 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1191 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, 35, 36, 37,
1193 83, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1194 48, 49, 50, 51, 52, -1, -1, -1, 83, 35,
1195 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1196 46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
1197 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
1199 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1200 #line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1202 /* Skeleton output parser for bison,
1203 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1205 This program is free software; you can redistribute it and/or modify
1206 it under the terms of the GNU General Public License as published by
1207 the Free Software Foundation; either version 2, or (at your option)
1210 This program is distributed in the hope that it will be useful,
1211 but WITHOUT ANY WARRANTY; without even the implied warranty of
1212 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1213 GNU General Public License for more details.
1215 You should have received a copy of the GNU General Public License
1216 along with this program; if not, write to the Free Software
1217 Foundation, 59 Temple Place - Suite 330,
1218 Boston, MA 02111-1307, USA. */
1220 /* As a special exception, when this file is copied by Bison into a
1221 Bison output file, you may use that output file without restriction.
1222 This special exception was added by the Free Software Foundation
1223 in version 1.24 of Bison. */
1227 #define alloca __builtin_alloca
1228 #else /* not GNU C. */
1229 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1231 #else /* not sparc */
1232 #if defined (MSDOS) && !defined (__TURBOC__)
1234 #else /* not MSDOS, or __TURBOC__ */
1238 #else /* not MSDOS, __TURBOC__, or _AIX */
1242 void *alloca (unsigned int);
1244 #else /* not __cplusplus */
1246 #endif /* not __cplusplus */
1248 #endif /* not _AIX */
1249 #endif /* not MSDOS, or __TURBOC__ */
1250 #endif /* not sparc. */
1251 #endif /* not GNU C. */
1252 #endif /* alloca not defined. */
1254 /* This is the parser code that is written into each bison parser
1255 when the %semantic_parser declaration is not specified in the grammar.
1256 It was written by Richard Stallman by simplifying the hairy parser
1257 used when %semantic_parser is specified. */
1259 /* Note: there must be only one dollar sign in this file.
1260 It is replaced by the list of actions, each action
1261 as one case of the switch. */
1263 #define yyerrok (yyerrstatus = 0)
1264 #define yyclearin (yychar = YYEMPTY)
1267 #define YYACCEPT return(0)
1268 #define YYABORT return(1)
1269 #define YYERROR goto yyerrlab1
1270 /* Like YYERROR except do call yyerror.
1271 This remains here temporarily to ease the
1272 transition to the new meaning of YYERROR, for GCC.
1273 Once GCC version 2 has supplanted version 1, this can go. */
1274 #define YYFAIL goto yyerrlab
1275 #define YYRECOVERING() (!!yyerrstatus)
1276 #define YYBACKUP(token, value) \
1278 if (yychar == YYEMPTY && yylen == 1) \
1279 { yychar = (token), yylval = (value); \
1280 yychar1 = YYTRANSLATE (yychar); \
1285 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1289 #define YYERRCODE 256
1292 #define YYLEX yylex()
1298 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1300 #define YYLEX yylex(&yylval, &yylloc)
1302 #else /* not YYLSP_NEEDED */
1304 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1306 #define YYLEX yylex(&yylval)
1308 #endif /* not YYLSP_NEEDED */
1311 /* If nonreentrant, generate the variables here */
1315 int yychar
; /* the lookahead symbol */
1316 YYSTYPE yylval
; /* the semantic value of the */
1317 /* lookahead symbol */
1320 YYLTYPE yylloc
; /* location data for the lookahead */
1324 int yynerrs
; /* number of parse errors so far */
1325 #endif /* not YYPURE */
1328 int yydebug
; /* nonzero means print parse trace */
1329 /* Since this is uninitialized, it does not stop multiple parsers
1333 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1336 #define YYINITDEPTH 200
1339 /* YYMAXDEPTH is the maximum size the stacks can grow to
1340 (effective only if the built-in stack extension method is used). */
1347 #define YYMAXDEPTH 10000
1350 /* Prevent warning if -Wstrict-prototypes. */
1355 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1356 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1357 #else /* not GNU C or C++ */
1360 /* This is the most reliable way to avoid incompatibilities
1361 in available built-in functions on various systems. */
1363 __yy_memcpy (to
, from
, count
)
1368 register char *f
= from
;
1369 register char *t
= to
;
1370 register int i
= count
;
1376 #else /* __cplusplus */
1378 /* This is the most reliable way to avoid incompatibilities
1379 in available built-in functions on various systems. */
1381 __yy_memcpy (char *to
, char *from
, int count
)
1383 register char *f
= from
;
1384 register char *t
= to
;
1385 register int i
= count
;
1394 #line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1396 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1397 into yyparse. The argument should have type void *.
1398 It should actually point to an object.
1399 Grammar actions can access the variable by casting it
1400 to the proper pointer type. */
1402 #ifdef YYPARSE_PARAM
1404 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1405 #define YYPARSE_PARAM_DECL
1406 #else /* not __cplusplus */
1407 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1408 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1409 #endif /* not __cplusplus */
1410 #else /* not YYPARSE_PARAM */
1411 #define YYPARSE_PARAM_ARG
1412 #define YYPARSE_PARAM_DECL
1413 #endif /* not YYPARSE_PARAM */
1416 yyparse(YYPARSE_PARAM_ARG
)
1419 register int yystate
;
1421 register short *yyssp
;
1422 register YYSTYPE
*yyvsp
;
1423 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1424 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1426 short yyssa
[YYINITDEPTH
]; /* the state stack */
1427 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1429 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1430 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1433 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1434 YYLTYPE
*yyls
= yylsa
;
1437 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1439 #define YYPOPSTACK (yyvsp--, yyssp--)
1442 int yystacksize
= YYINITDEPTH
;
1453 YYSTYPE yyval
; /* the variable used to return */
1454 /* semantic values from the action */
1461 fprintf(stderr
, "Starting parse\n");
1467 yychar
= YYEMPTY
; /* Cause a token to be read. */
1469 /* Initialize stack pointers.
1470 Waste one element of value and location stack
1471 so that they stay on the same level as the state stack.
1472 The wasted elements are never initialized. */
1480 /* Push a new state, which is found in yystate . */
1481 /* In all cases, when you get here, the value and location stacks
1482 have just been pushed. so pushing a state here evens the stacks. */
1487 if (yyssp
>= yyss
+ yystacksize
- 1)
1489 /* Give user a chance to reallocate the stack */
1490 /* Use copies of these so that the &'s don't force the real ones into memory. */
1491 YYSTYPE
*yyvs1
= yyvs
;
1492 short *yyss1
= yyss
;
1494 YYLTYPE
*yyls1
= yyls
;
1497 /* Get the current used size of the three stacks, in elements. */
1498 int size
= yyssp
- yyss
+ 1;
1501 /* Each stack pointer address is followed by the size of
1502 the data in use in that stack, in bytes. */
1504 /* This used to be a conditional around just the two extra args,
1505 but that might be undefined if yyoverflow is a macro. */
1506 yyoverflow("parser stack overflow",
1507 &yyss1
, size
* sizeof (*yyssp
),
1508 &yyvs1
, size
* sizeof (*yyvsp
),
1509 &yyls1
, size
* sizeof (*yylsp
),
1512 yyoverflow("parser stack overflow",
1513 &yyss1
, size
* sizeof (*yyssp
),
1514 &yyvs1
, size
* sizeof (*yyvsp
),
1518 yyss
= yyss1
; yyvs
= yyvs1
;
1522 #else /* no yyoverflow */
1523 /* Extend the stack our own way. */
1524 if (yystacksize
>= YYMAXDEPTH
)
1526 yyerror("parser stack overflow");
1530 if (yystacksize
> YYMAXDEPTH
)
1531 yystacksize
= YYMAXDEPTH
;
1532 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1533 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1534 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1535 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1537 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1538 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1540 #endif /* no yyoverflow */
1542 yyssp
= yyss
+ size
- 1;
1543 yyvsp
= yyvs
+ size
- 1;
1545 yylsp
= yyls
+ size
- 1;
1550 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1553 if (yyssp
>= yyss
+ yystacksize
- 1)
1559 fprintf(stderr
, "Entering state %d\n", yystate
);
1565 /* Do appropriate processing given the current state. */
1566 /* Read a lookahead token if we need one and don't already have one. */
1569 /* First try to decide what to do without reference to lookahead token. */
1571 yyn
= yypact
[yystate
];
1575 /* Not known => get a lookahead token if don't already have one. */
1577 /* yychar is either YYEMPTY or YYEOF
1578 or a valid token in external form. */
1580 if (yychar
== YYEMPTY
)
1584 fprintf(stderr
, "Reading a token: ");
1589 /* Convert token to internal form (in yychar1) for indexing tables with */
1591 if (yychar
<= 0) /* This means end of input. */
1594 yychar
= YYEOF
; /* Don't call YYLEX any more */
1598 fprintf(stderr
, "Now at end of input.\n");
1603 yychar1
= YYTRANSLATE(yychar
);
1608 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1609 /* Give the individual parser a way to print the precise meaning
1610 of a token, for further debugging info. */
1612 YYPRINT (stderr
, yychar
, yylval
);
1614 fprintf (stderr
, ")\n");
1620 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1625 /* yyn is what to do for this token type in this state.
1626 Negative => reduce, -yyn is rule number.
1627 Positive => shift, yyn is new state.
1628 New state is final state => don't bother to shift,
1629 just return success.
1630 0, or most negative number => error. */
1645 /* Shift the lookahead token. */
1649 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1652 /* Discard the token being shifted unless it is eof. */
1653 if (yychar
!= YYEOF
)
1661 /* count tokens shifted since error; after three, turn off error status. */
1662 if (yyerrstatus
) yyerrstatus
--;
1667 /* Do the default action for the current state. */
1670 yyn
= yydefact
[yystate
];
1674 /* Do a reduction. yyn is the number of a rule to reduce with. */
1678 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1685 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1688 /* Print the symbols being reduced, and their result. */
1689 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1690 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1691 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1699 #line 234 "c-parse.y"
1701 pedwarn ("ANSI C forbids an empty source file");
1706 #line 239 "c-parse.y"
1708 /* In case there were missing closebraces,
1709 get us back to the global binding level. */
1710 while (! global_bindings_p ())
1716 #line 253 "c-parse.y"
1717 {yyval
.ttype
= NULL_TREE
; ;
1720 #line 254 "c-parse.y"
1721 {yyval
.ttype
= NULL_TREE
; ;
1724 #line 261 "c-parse.y"
1725 { STRIP_NOPS (yyvsp
[-2].ttype
);
1726 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1727 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1728 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1729 assemble_asm (yyvsp
[-2].ttype
);
1731 error ("argument of `asm' is not a constant string"); ;
1734 #line 269 "c-parse.y"
1735 { pedantic
= yyvsp
[-1].itype
; ;
1738 #line 274 "c-parse.y"
1740 error ("ANSI C forbids data definition with no type or storage class");
1741 else if (!flag_traditional
)
1742 warning ("data definition has no type or storage class");
1744 current_declspecs
= TREE_VALUE (declspec_stack
);
1745 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1746 declspec_stack
= TREE_CHAIN (declspec_stack
);
1747 resume_momentary (yyvsp
[-2].itype
); ;
1750 #line 284 "c-parse.y"
1751 { current_declspecs
= TREE_VALUE (declspec_stack
);
1752 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1753 declspec_stack
= TREE_CHAIN (declspec_stack
);
1754 resume_momentary (yyvsp
[-2].itype
); ;
1757 #line 289 "c-parse.y"
1758 { current_declspecs
= TREE_VALUE (declspec_stack
);
1759 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1760 declspec_stack
= TREE_CHAIN (declspec_stack
);
1761 resume_momentary (yyvsp
[-2].itype
); ;
1764 #line 294 "c-parse.y"
1765 { pedwarn ("empty declaration"); ;
1768 #line 296 "c-parse.y"
1769 { shadow_tag (yyvsp
[-1].ttype
); ;
1772 #line 300 "c-parse.y"
1774 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1777 #line 306 "c-parse.y"
1778 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1779 prefix_attributes
, NULL_TREE
, 0))
1781 reinit_parse_for_function (); ;
1784 #line 311 "c-parse.y"
1785 { store_parm_decls (); ;
1788 #line 313 "c-parse.y"
1789 { finish_function (0);
1790 current_declspecs
= TREE_VALUE (declspec_stack
);
1791 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1792 declspec_stack
= TREE_CHAIN (declspec_stack
);
1793 resume_momentary (yyvsp
[-5].itype
); ;
1796 #line 319 "c-parse.y"
1797 { current_declspecs
= TREE_VALUE (declspec_stack
);
1798 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1799 declspec_stack
= TREE_CHAIN (declspec_stack
);
1800 resume_momentary (yyvsp
[-2].itype
); ;
1803 #line 324 "c-parse.y"
1804 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1805 prefix_attributes
, NULL_TREE
, 0))
1807 reinit_parse_for_function (); ;
1810 #line 329 "c-parse.y"
1811 { store_parm_decls (); ;
1814 #line 331 "c-parse.y"
1815 { finish_function (0);
1816 current_declspecs
= TREE_VALUE (declspec_stack
);
1817 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1818 declspec_stack
= TREE_CHAIN (declspec_stack
);
1819 resume_momentary (yyvsp
[-5].itype
); ;
1822 #line 337 "c-parse.y"
1823 { current_declspecs
= TREE_VALUE (declspec_stack
);
1824 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1825 declspec_stack
= TREE_CHAIN (declspec_stack
);
1826 resume_momentary (yyvsp
[-2].itype
); ;
1829 #line 342 "c-parse.y"
1830 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1831 prefix_attributes
, NULL_TREE
, 0))
1833 reinit_parse_for_function (); ;
1836 #line 347 "c-parse.y"
1837 { store_parm_decls (); ;
1840 #line 349 "c-parse.y"
1841 { finish_function (0);
1842 current_declspecs
= TREE_VALUE (declspec_stack
);
1843 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1844 declspec_stack
= TREE_CHAIN (declspec_stack
);
1845 resume_momentary (yyvsp
[-5].itype
); ;
1848 #line 355 "c-parse.y"
1849 { current_declspecs
= TREE_VALUE (declspec_stack
);
1850 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1851 declspec_stack
= TREE_CHAIN (declspec_stack
);
1852 resume_momentary (yyvsp
[-2].itype
); ;
1855 #line 367 "c-parse.y"
1856 { yyval
.code
= ADDR_EXPR
; ;
1859 #line 369 "c-parse.y"
1860 { yyval
.code
= NEGATE_EXPR
; ;
1863 #line 371 "c-parse.y"
1864 { yyval
.code
= CONVERT_EXPR
; ;
1867 #line 373 "c-parse.y"
1868 { yyval
.code
= PREINCREMENT_EXPR
; ;
1871 #line 375 "c-parse.y"
1872 { yyval
.code
= PREDECREMENT_EXPR
; ;
1875 #line 377 "c-parse.y"
1876 { yyval
.code
= BIT_NOT_EXPR
; ;
1879 #line 379 "c-parse.y"
1880 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1883 #line 383 "c-parse.y"
1884 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1887 #line 388 "c-parse.y"
1888 { yyval
.ttype
= NULL_TREE
; ;
1891 #line 394 "c-parse.y"
1892 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1895 #line 396 "c-parse.y"
1896 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1899 #line 402 "c-parse.y"
1900 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1903 #line 405 "c-parse.y"
1904 { yyval
.ttype
= yyvsp
[0].ttype
;
1905 pedantic
= yyvsp
[-1].itype
; ;
1908 #line 408 "c-parse.y"
1909 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1910 overflow_warning (yyval
.ttype
); ;
1913 #line 412 "c-parse.y"
1914 { tree label
= lookup_label (yyvsp
[0].ttype
);
1916 pedwarn ("ANSI C forbids `&&'");
1918 yyval
.ttype
= null_pointer_node
;
1921 TREE_USED (label
) = 1;
1922 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1923 TREE_CONSTANT (yyval
.ttype
) = 1;
1928 #line 440 "c-parse.y"
1929 { skip_evaluation
--;
1930 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1931 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1932 error ("`sizeof' applied to a bit-field");
1933 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1936 #line 446 "c-parse.y"
1937 { skip_evaluation
--;
1938 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1941 #line 449 "c-parse.y"
1942 { skip_evaluation
--;
1943 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1946 #line 452 "c-parse.y"
1947 { skip_evaluation
--;
1948 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1951 #line 455 "c-parse.y"
1952 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1955 #line 457 "c-parse.y"
1956 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1959 #line 461 "c-parse.y"
1960 { skip_evaluation
++; ;
1963 #line 465 "c-parse.y"
1964 { skip_evaluation
++; ;
1967 #line 471 "c-parse.y"
1968 { tree type
= groktypename (yyvsp
[-2].ttype
);
1969 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1972 #line 474 "c-parse.y"
1973 { start_init (NULL_TREE
, NULL
, 0);
1974 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1975 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1978 #line 478 "c-parse.y"
1980 tree result
= pop_init_level (0);
1981 tree type
= yyvsp
[-5].ttype
;
1984 if (pedantic
&& ! flag_isoc9x
)
1985 pedwarn ("ANSI C forbids constructor expressions");
1986 if (TYPE_NAME (type
) != 0)
1988 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1989 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1991 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
1995 yyval
.ttype
= result
;
1996 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
1998 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2005 #line 507 "c-parse.y"
2006 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2009 #line 509 "c-parse.y"
2010 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2013 #line 511 "c-parse.y"
2014 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2017 #line 513 "c-parse.y"
2018 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2021 #line 515 "c-parse.y"
2022 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2025 #line 517 "c-parse.y"
2026 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2029 #line 519 "c-parse.y"
2030 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2033 #line 521 "c-parse.y"
2034 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2037 #line 523 "c-parse.y"
2038 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2041 #line 525 "c-parse.y"
2042 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2045 #line 527 "c-parse.y"
2046 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2049 #line 529 "c-parse.y"
2050 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2053 #line 531 "c-parse.y"
2054 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2055 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2058 #line 534 "c-parse.y"
2059 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2060 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2063 #line 537 "c-parse.y"
2064 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2065 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2068 #line 540 "c-parse.y"
2069 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2070 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2073 #line 543 "c-parse.y"
2074 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2075 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2078 #line 546 "c-parse.y"
2079 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2080 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2083 #line 549 "c-parse.y"
2084 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2085 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2088 #line 552 "c-parse.y"
2090 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2091 /* Make sure first operand is calculated only once. */
2092 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2093 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2094 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2097 #line 559 "c-parse.y"
2098 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2099 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2102 #line 562 "c-parse.y"
2103 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2104 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2107 #line 565 "c-parse.y"
2108 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2109 /* This inhibits warnings in truthvalue_conversion. */
2110 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2113 #line 572 "c-parse.y"
2115 yyval
.ttype
= lastiddecl
;
2116 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2118 if (yychar
== YYEMPTY
)
2123 /* Ordinary implicit function declaration. */
2124 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2125 assemble_external (yyval
.ttype
);
2126 TREE_USED (yyval
.ttype
) = 1;
2129 else if (current_function_decl
== 0)
2131 error ("`%s' undeclared here (not in a function)",
2132 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2133 yyval
.ttype
= error_mark_node
;
2138 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2139 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2141 error ("`%s' undeclared (first use in this function)",
2142 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2144 if (! undeclared_variable_notice
)
2146 error ("(Each undeclared identifier is reported only once");
2147 error ("for each function it appears in.)");
2148 undeclared_variable_notice
= 1;
2151 yyval
.ttype
= error_mark_node
;
2152 /* Prevent repeated error messages. */
2153 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2154 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2158 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2159 yyval
.ttype
= error_mark_node
;
2160 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2162 /* The first time we see a build-in function used,
2163 if it has not been declared. */
2164 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2165 if (yychar
== YYEMPTY
)
2169 /* Omit the implicit declaration we
2170 would ordinarily do, so we don't lose
2171 the actual built in type.
2172 But print a diagnostic for the mismatch. */
2173 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2174 error ("`%s' implicitly declared as function",
2175 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2176 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2177 != TYPE_MODE (integer_type_node
))
2178 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2180 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2181 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2182 /* If it really returns void, change that to int. */
2183 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2184 TREE_TYPE (yyval
.ttype
)
2185 = build_function_type (integer_type_node
,
2186 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2189 pedwarn ("built-in function `%s' used without declaration",
2190 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2192 /* Do what we would ordinarily do when a fn is used. */
2193 assemble_external (yyval
.ttype
);
2194 TREE_USED (yyval
.ttype
) = 1;
2198 assemble_external (yyval
.ttype
);
2199 TREE_USED (yyval
.ttype
) = 1;
2202 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2204 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2205 /* This is to prevent an enum whose value is 0
2206 from being considered a null pointer constant. */
2207 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2208 TREE_CONSTANT (yyval
.ttype
) = 1;
2213 #line 671 "c-parse.y"
2214 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2217 #line 673 "c-parse.y"
2218 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2219 if (class == 'e' || class == '1'
2220 || class == '2' || class == '<')
2221 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2222 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2225 #line 679 "c-parse.y"
2226 { yyval
.ttype
= error_mark_node
; ;
2229 #line 681 "c-parse.y"
2230 { if (current_function_decl
== 0)
2232 error ("braced-group within expression allowed only inside a function");
2235 /* We must force a BLOCK for this level
2236 so that, if it is not expanded later,
2237 there is a way to turn off the entire subtree of blocks
2238 that are contained in it. */
2240 push_iterator_stack ();
2241 push_label_level ();
2242 yyval
.ttype
= expand_start_stmt_expr (); ;
2245 #line 695 "c-parse.y"
2248 pedwarn ("ANSI C forbids braced-groups within expressions");
2249 pop_iterator_stack ();
2251 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2252 /* The statements have side effects, so the group does. */
2253 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2255 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2257 /* Make a BIND_EXPR for the BLOCK already made. */
2258 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2259 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2260 /* Remove the block from the tree at this point.
2261 It gets put back at the proper place
2262 when the BIND_EXPR is expanded. */
2263 delete_block (yyvsp
[-1].ttype
);
2266 yyval
.ttype
= yyvsp
[-1].ttype
;
2270 #line 718 "c-parse.y"
2271 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2274 #line 720 "c-parse.y"
2275 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2278 #line 722 "c-parse.y"
2280 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2284 #line 726 "c-parse.y"
2286 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2288 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2292 #line 732 "c-parse.y"
2293 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2296 #line 734 "c-parse.y"
2297 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2300 #line 741 "c-parse.y"
2301 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2304 #line 750 "c-parse.y"
2305 { c_mark_varargs ();
2307 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2310 #line 760 "c-parse.y"
2314 #line 776 "c-parse.y"
2315 { current_declspecs
= TREE_VALUE (declspec_stack
);
2316 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2317 declspec_stack
= TREE_CHAIN (declspec_stack
);
2318 resume_momentary (yyvsp
[-2].itype
); ;
2321 #line 781 "c-parse.y"
2322 { current_declspecs
= TREE_VALUE (declspec_stack
);
2323 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2324 declspec_stack
= TREE_CHAIN (declspec_stack
);
2325 resume_momentary (yyvsp
[-2].itype
); ;
2328 #line 786 "c-parse.y"
2329 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2330 pedwarn ("empty declaration"); ;
2333 #line 789 "c-parse.y"
2334 { pedwarn ("empty declaration"); ;
2337 #line 798 "c-parse.y"
2341 #line 813 "c-parse.y"
2342 { yyval
.itype
= suspend_momentary ();
2343 pending_xref_error ();
2344 declspec_stack
= tree_cons (prefix_attributes
,
2347 split_specs_attrs (yyvsp
[0].ttype
,
2348 ¤t_declspecs
, &prefix_attributes
); ;
2351 #line 824 "c-parse.y"
2352 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2355 #line 829 "c-parse.y"
2356 { current_declspecs
= TREE_VALUE (declspec_stack
);
2357 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2358 declspec_stack
= TREE_CHAIN (declspec_stack
);
2359 resume_momentary (yyvsp
[-2].itype
); ;
2362 #line 834 "c-parse.y"
2363 { current_declspecs
= TREE_VALUE (declspec_stack
);
2364 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2365 declspec_stack
= TREE_CHAIN (declspec_stack
);
2366 resume_momentary (yyvsp
[-2].itype
); ;
2369 #line 839 "c-parse.y"
2370 { current_declspecs
= TREE_VALUE (declspec_stack
);
2371 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2372 declspec_stack
= TREE_CHAIN (declspec_stack
);
2373 resume_momentary (yyvsp
[-1].itype
); ;
2376 #line 844 "c-parse.y"
2377 { current_declspecs
= TREE_VALUE (declspec_stack
);
2378 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2379 declspec_stack
= TREE_CHAIN (declspec_stack
);
2380 resume_momentary (yyvsp
[-1].itype
); ;
2383 #line 849 "c-parse.y"
2384 { shadow_tag (yyvsp
[-1].ttype
); ;
2387 #line 851 "c-parse.y"
2388 { pedwarn ("empty declaration"); ;
2391 #line 853 "c-parse.y"
2392 { pedantic
= yyvsp
[-1].itype
; ;
2395 #line 863 "c-parse.y"
2396 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2399 #line 865 "c-parse.y"
2400 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2403 #line 869 "c-parse.y"
2404 { yyval
.ttype
= NULL_TREE
; ;
2407 #line 871 "c-parse.y"
2408 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2411 #line 873 "c-parse.y"
2412 { if (extra_warnings
)
2413 warning ("`%s' is not at beginning of declaration",
2414 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2415 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2418 #line 878 "c-parse.y"
2419 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2422 #line 883 "c-parse.y"
2423 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2426 #line 885 "c-parse.y"
2427 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2430 #line 890 "c-parse.y"
2431 { yyval
.ttype
= NULL_TREE
; ;
2434 #line 892 "c-parse.y"
2435 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2438 #line 894 "c-parse.y"
2439 { if (extra_warnings
)
2440 warning ("`%s' is not at beginning of declaration",
2441 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2442 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2445 #line 907 "c-parse.y"
2446 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2449 #line 909 "c-parse.y"
2450 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2453 #line 911 "c-parse.y"
2454 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2457 #line 913 "c-parse.y"
2458 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2461 #line 918 "c-parse.y"
2462 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2463 TREE_STATIC (yyval
.ttype
) = 1; ;
2466 #line 921 "c-parse.y"
2467 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2470 #line 923 "c-parse.y"
2471 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2472 TREE_STATIC (yyval
.ttype
) = 1; ;
2475 #line 926 "c-parse.y"
2476 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2477 warning ("`%s' is not at beginning of declaration",
2478 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2479 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2480 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2483 #line 940 "c-parse.y"
2484 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2487 #line 942 "c-parse.y"
2488 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2491 #line 946 "c-parse.y"
2492 { yyval
.ttype
= NULL_TREE
; ;
2495 #line 948 "c-parse.y"
2496 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2499 #line 958 "c-parse.y"
2500 { /* For a typedef name, record the meaning, not the name.
2501 In case of `foo foo, bar;'. */
2502 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2505 #line 962 "c-parse.y"
2506 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2509 #line 964 "c-parse.y"
2510 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2513 #line 986 "c-parse.y"
2514 { yyval
.ttype
= NULL_TREE
; ;
2517 #line 988 "c-parse.y"
2518 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2519 yyval
.ttype
= yyvsp
[-1].ttype
;
2523 #line 995 "c-parse.y"
2524 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2525 yyvsp
[-1].ttype
, prefix_attributes
);
2526 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2529 #line 1000 "c-parse.y"
2531 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2534 #line 1003 "c-parse.y"
2535 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2536 yyvsp
[0].ttype
, prefix_attributes
);
2537 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2541 #line 1011 "c-parse.y"
2542 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2543 yyvsp
[-1].ttype
, prefix_attributes
);
2544 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2547 #line 1016 "c-parse.y"
2549 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2550 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2553 #line 1020 "c-parse.y"
2554 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2555 yyvsp
[0].ttype
, prefix_attributes
);
2556 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2559 #line 1028 "c-parse.y"
2560 { yyval
.ttype
= NULL_TREE
; ;
2563 #line 1030 "c-parse.y"
2564 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2567 #line 1035 "c-parse.y"
2568 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2571 #line 1037 "c-parse.y"
2572 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2575 #line 1042 "c-parse.y"
2576 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2579 #line 1047 "c-parse.y"
2580 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2583 #line 1049 "c-parse.y"
2584 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2587 #line 1054 "c-parse.y"
2588 { yyval
.ttype
= NULL_TREE
; ;
2591 #line 1056 "c-parse.y"
2592 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2595 #line 1058 "c-parse.y"
2596 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2599 #line 1060 "c-parse.y"
2600 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2603 #line 1062 "c-parse.y"
2604 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2607 #line 1080 "c-parse.y"
2608 { really_start_incremental_init (NULL_TREE
);
2609 /* Note that the call to clear_momentary
2610 is in process_init_element. */
2611 push_momentary (); ;
2614 #line 1085 "c-parse.y"
2615 { yyval
.ttype
= pop_init_level (0);
2616 if (yyval
.ttype
== error_mark_node
2617 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2620 pop_momentary_nofree (); ;
2623 #line 1093 "c-parse.y"
2624 { yyval
.ttype
= error_mark_node
; ;
2627 #line 1099 "c-parse.y"
2629 pedwarn ("ANSI C forbids empty initializer braces"); ;
2632 #line 1115 "c-parse.y"
2633 { set_init_label (yyvsp
[-1].ttype
); ;
2636 #line 1122 "c-parse.y"
2637 { push_init_level (0); ;
2640 #line 1124 "c-parse.y"
2641 { process_init_element (pop_init_level (0)); ;
2644 #line 1126 "c-parse.y"
2645 { process_init_element (yyvsp
[0].ttype
); ;
2648 #line 1137 "c-parse.y"
2649 { set_init_label (yyvsp
[0].ttype
); ;
2652 #line 1142 "c-parse.y"
2653 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2656 #line 1144 "c-parse.y"
2657 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2660 #line 1149 "c-parse.y"
2661 { push_c_function_context ();
2662 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2663 prefix_attributes
, NULL_TREE
, 1))
2665 pop_c_function_context ();
2668 reinit_parse_for_function (); ;
2671 #line 1158 "c-parse.y"
2672 { store_parm_decls (); ;
2675 #line 1166 "c-parse.y"
2676 { finish_function (1);
2677 pop_c_function_context (); ;
2680 #line 1172 "c-parse.y"
2681 { push_c_function_context ();
2682 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2683 prefix_attributes
, NULL_TREE
, 1))
2685 pop_c_function_context ();
2688 reinit_parse_for_function (); ;
2691 #line 1181 "c-parse.y"
2692 { store_parm_decls (); ;
2695 #line 1189 "c-parse.y"
2696 { finish_function (1);
2697 pop_c_function_context (); ;
2700 #line 1205 "c-parse.y"
2701 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2704 #line 1207 "c-parse.y"
2705 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2708 #line 1212 "c-parse.y"
2709 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2712 #line 1214 "c-parse.y"
2713 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2716 #line 1216 "c-parse.y"
2717 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2720 #line 1223 "c-parse.y"
2721 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2724 #line 1234 "c-parse.y"
2725 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2728 #line 1239 "c-parse.y"
2729 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2731 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2735 #line 1244 "c-parse.y"
2736 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2739 #line 1246 "c-parse.y"
2740 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2743 #line 1248 "c-parse.y"
2744 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2747 #line 1255 "c-parse.y"
2748 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2751 #line 1264 "c-parse.y"
2752 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2755 #line 1269 "c-parse.y"
2756 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2759 #line 1271 "c-parse.y"
2760 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2763 #line 1273 "c-parse.y"
2764 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2766 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2770 #line 1278 "c-parse.y"
2771 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2774 #line 1280 "c-parse.y"
2775 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2778 #line 1287 "c-parse.y"
2779 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2782 #line 1293 "c-parse.y"
2783 { yyval
.ttype
= NULL_TREE
; ;
2786 #line 1295 "c-parse.y"
2787 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2790 #line 1300 "c-parse.y"
2791 { yyval
.ttype
= NULL_TREE
; ;
2794 #line 1302 "c-parse.y"
2795 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2798 #line 1307 "c-parse.y"
2799 { yyval
.ttype
= NULL_TREE
; ;
2802 #line 1309 "c-parse.y"
2803 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2806 #line 1314 "c-parse.y"
2807 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2808 /* Start scope of tag before parsing components. */
2812 #line 1318 "c-parse.y"
2813 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2816 #line 1320 "c-parse.y"
2817 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2818 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2822 #line 1324 "c-parse.y"
2823 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2826 #line 1326 "c-parse.y"
2827 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2830 #line 1328 "c-parse.y"
2831 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2834 #line 1330 "c-parse.y"
2835 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2836 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2840 #line 1334 "c-parse.y"
2841 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2844 #line 1336 "c-parse.y"
2845 { yyvsp
[0].itype
= suspend_momentary ();
2846 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2849 #line 1339 "c-parse.y"
2850 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
2851 resume_momentary (yyvsp
[-5].itype
); ;
2854 #line 1342 "c-parse.y"
2855 { yyvsp
[0].itype
= suspend_momentary ();
2856 yyval
.ttype
= start_enum (NULL_TREE
); ;
2859 #line 1345 "c-parse.y"
2860 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
2861 resume_momentary (yyvsp
[-5].itype
); ;
2864 #line 1348 "c-parse.y"
2865 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2868 #line 1359 "c-parse.y"
2869 { if (pedantic
&& ! flag_isoc9x
)
2870 pedwarn ("comma at end of enumerator list"); ;
2873 #line 1365 "c-parse.y"
2874 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2877 #line 1367 "c-parse.y"
2878 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2879 pedwarn ("no semicolon at end of struct or union"); ;
2882 #line 1372 "c-parse.y"
2883 { yyval
.ttype
= NULL_TREE
; ;
2886 #line 1374 "c-parse.y"
2887 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2890 #line 1376 "c-parse.y"
2892 pedwarn ("extra semicolon in struct or union specified"); ;
2895 #line 1391 "c-parse.y"
2896 { yyval
.ttype
= yyvsp
[0].ttype
;
2897 current_declspecs
= TREE_VALUE (declspec_stack
);
2898 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2899 declspec_stack
= TREE_CHAIN (declspec_stack
);
2900 resume_momentary (yyvsp
[-1].itype
); ;
2903 #line 1397 "c-parse.y"
2905 pedwarn ("ANSI C forbids member declarations with no members");
2906 shadow_tag(yyvsp
[0].ttype
);
2907 yyval
.ttype
= NULL_TREE
; ;
2910 #line 1402 "c-parse.y"
2911 { yyval
.ttype
= yyvsp
[0].ttype
;
2912 current_declspecs
= TREE_VALUE (declspec_stack
);
2913 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2914 declspec_stack
= TREE_CHAIN (declspec_stack
);
2915 resume_momentary (yyvsp
[-1].itype
); ;
2918 #line 1408 "c-parse.y"
2920 pedwarn ("ANSI C forbids member declarations with no members");
2921 shadow_tag(yyvsp
[0].ttype
);
2922 yyval
.ttype
= NULL_TREE
; ;
2925 #line 1413 "c-parse.y"
2926 { yyval
.ttype
= NULL_TREE
; ;
2929 #line 1415 "c-parse.y"
2930 { yyval
.ttype
= yyvsp
[0].ttype
;
2931 pedantic
= yyvsp
[-1].itype
; ;
2934 #line 1422 "c-parse.y"
2935 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2938 #line 1427 "c-parse.y"
2939 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2940 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2943 #line 1431 "c-parse.y"
2944 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2945 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2948 #line 1434 "c-parse.y"
2949 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2950 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2953 #line 1446 "c-parse.y"
2954 { if (yyvsp
[-2].ttype
== error_mark_node
)
2955 yyval
.ttype
= yyvsp
[-2].ttype
;
2957 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2960 #line 1451 "c-parse.y"
2961 { yyval
.ttype
= error_mark_node
; ;
2964 #line 1457 "c-parse.y"
2965 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2968 #line 1459 "c-parse.y"
2969 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2972 #line 1464 "c-parse.y"
2973 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2976 #line 1466 "c-parse.y"
2977 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2980 #line 1471 "c-parse.y"
2981 { yyval
.ttype
= NULL_TREE
; ;
2984 #line 1477 "c-parse.y"
2985 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2988 #line 1479 "c-parse.y"
2989 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2992 #line 1484 "c-parse.y"
2993 { yyval
.ttype
= NULL_TREE
; ;
2996 #line 1486 "c-parse.y"
2997 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3000 #line 1491 "c-parse.y"
3001 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3004 #line 1494 "c-parse.y"
3005 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3008 #line 1496 "c-parse.y"
3009 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3012 #line 1498 "c-parse.y"
3013 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3016 #line 1500 "c-parse.y"
3017 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3020 #line 1502 "c-parse.y"
3021 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3024 #line 1504 "c-parse.y"
3025 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3028 #line 1506 "c-parse.y"
3029 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3032 #line 1508 "c-parse.y"
3033 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3036 #line 1519 "c-parse.y"
3038 if (pedantic
&& yyvsp
[0].ends_in_label
)
3039 pedwarn ("ANSI C forbids label at end of compound statement");
3043 #line 1528 "c-parse.y"
3044 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3047 #line 1530 "c-parse.y"
3048 { yyval
.ends_in_label
= 0; ;
3051 #line 1542 "c-parse.y"
3052 { emit_line_note (input_filename
, lineno
);
3056 expand_start_bindings (0);
3060 #line 1555 "c-parse.y"
3062 pedwarn ("ANSI C forbids label declarations"); ;
3065 #line 1566 "c-parse.y"
3067 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3069 tree label
= shadow_label (TREE_VALUE (link
));
3070 C_DECLARED_LABEL_FLAG (label
) = 1;
3071 declare_nonlocal_label (label
);
3076 #line 1580 "c-parse.y"
3080 #line 1584 "c-parse.y"
3081 { compstmt_count
++; ;
3084 #line 1587 "c-parse.y"
3085 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3088 #line 1589 "c-parse.y"
3089 { emit_line_note (input_filename
, lineno
);
3090 expand_end_bindings (getdecls (), 1, 0);
3091 yyval
.ttype
= poplevel (1, 1, 0);
3092 if (yychar
== CONSTANT
|| yychar
== STRING
)
3093 pop_momentary_nofree ();
3098 #line 1597 "c-parse.y"
3099 { emit_line_note (input_filename
, lineno
);
3100 expand_end_bindings (getdecls (), kept_level_p (), 0);
3101 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3102 if (yychar
== CONSTANT
|| yychar
== STRING
)
3103 pop_momentary_nofree ();
3108 #line 1605 "c-parse.y"
3109 { emit_line_note (input_filename
, lineno
);
3110 expand_end_bindings (getdecls (), kept_level_p (), 0);
3111 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3112 if (yychar
== CONSTANT
|| yychar
== STRING
)
3113 pop_momentary_nofree ();
3118 #line 1625 "c-parse.y"
3119 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3120 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3122 yyval
.itype
= stmt_count
;
3123 if_stmt_file
= yyvsp
[-5].filename
;
3124 if_stmt_line
= yyvsp
[-4].lineno
;
3125 position_after_white_space (); ;
3128 #line 1639 "c-parse.y"
3131 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3132 /* See comment in `while' alternative, above. */
3134 expand_start_loop_continue_elsewhere (1);
3135 position_after_white_space (); ;
3138 #line 1647 "c-parse.y"
3139 { expand_loop_continue_here (); ;
3142 #line 1651 "c-parse.y"
3143 { yyval
.filename
= input_filename
; ;
3146 #line 1655 "c-parse.y"
3147 { yyval
.lineno
= lineno
; ;
3150 #line 1660 "c-parse.y"
3154 #line 1665 "c-parse.y"
3158 #line 1670 "c-parse.y"
3159 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3162 #line 1675 "c-parse.y"
3163 { yyval
.ends_in_label
= 0; ;
3166 #line 1677 "c-parse.y"
3167 { yyval
.ends_in_label
= 1; ;
3170 #line 1683 "c-parse.y"
3174 #line 1686 "c-parse.y"
3176 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3177 /* It appears that this should not be done--that a non-lvalue array
3178 shouldn't get an error if the value isn't used.
3179 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3180 if it appears as a top-level expression,
3181 but says nothing about non-lvalue arrays. */
3183 /* Call default_conversion to get an error
3184 on referring to a register array if pedantic. */
3185 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3186 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3187 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3189 iterator_expand (yyvsp
[-1].ttype
);
3190 clear_momentary (); ;
3193 #line 1703 "c-parse.y"
3194 { c_expand_start_else ();
3195 yyvsp
[-1].itype
= stmt_count
;
3196 position_after_white_space (); ;
3199 #line 1707 "c-parse.y"
3200 { c_expand_end_cond ();
3201 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3202 warning ("empty body in an else-statement"); ;
3205 #line 1711 "c-parse.y"
3206 { c_expand_end_cond ();
3207 /* This warning is here instead of in simple_if, because we
3208 do not want a warning if an empty if is followed by an
3209 else statement. Increment stmt_count so we don't
3210 give a second error if this is a nested `if'. */
3211 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3212 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3213 "empty body in an if-statement"); ;
3216 #line 1723 "c-parse.y"
3217 { c_expand_end_cond (); ;
3220 #line 1725 "c-parse.y"
3222 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3223 /* The emit_nop used to come before emit_line_note,
3224 but that made the nop seem like part of the preceding line.
3225 And that was confusing when the preceding line was
3226 inside of an if statement and was not really executed.
3227 I think it ought to work to put the nop after the line number.
3228 We will see. --rms, July 15, 1991. */
3232 #line 1735 "c-parse.y"
3233 { /* Don't start the loop till we have succeeded
3234 in parsing the end test. This is to make sure
3235 that we end every loop we start. */
3236 expand_start_loop (1);
3237 emit_line_note (input_filename
, lineno
);
3238 expand_exit_loop_if_false (NULL_PTR
,
3239 truthvalue_conversion (yyvsp
[-1].ttype
));
3240 position_after_white_space (); ;
3243 #line 1744 "c-parse.y"
3244 { expand_end_loop (); ;
3247 #line 1747 "c-parse.y"
3248 { emit_line_note (input_filename
, lineno
);
3249 expand_exit_loop_if_false (NULL_PTR
,
3250 truthvalue_conversion (yyvsp
[-2].ttype
));
3252 clear_momentary (); ;
3255 #line 1754 "c-parse.y"
3256 { expand_end_loop ();
3257 clear_momentary (); ;
3260 #line 1758 "c-parse.y"
3262 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3263 /* See comment in `while' alternative, above. */
3265 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3266 /* Next step is to call expand_start_loop_continue_elsewhere,
3267 but wait till after we parse the entire for (...).
3268 Otherwise, invalid input might cause us to call that
3269 fn without calling expand_end_loop. */
3273 #line 1770 "c-parse.y"
3274 { yyvsp
[0].lineno
= lineno
;
3275 yyval
.filename
= input_filename
; ;
3278 #line 1773 "c-parse.y"
3280 /* Start the loop. Doing this after parsing
3281 all the expressions ensures we will end the loop. */
3282 expand_start_loop_continue_elsewhere (1);
3283 /* Emit the end-test, with a line number. */
3284 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3285 if (yyvsp
[-4].ttype
)
3286 expand_exit_loop_if_false (NULL_PTR
,
3287 truthvalue_conversion (yyvsp
[-4].ttype
));
3288 /* Don't let the tree nodes for $9 be discarded by
3289 clear_momentary during the parsing of the next stmt. */
3291 yyvsp
[-3].lineno
= lineno
;
3292 yyvsp
[-2].filename
= input_filename
;
3293 position_after_white_space (); ;
3296 #line 1789 "c-parse.y"
3297 { /* Emit the increment expression, with a line number. */
3298 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3299 expand_loop_continue_here ();
3300 if (yyvsp
[-3].ttype
)
3301 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3302 if (yychar
== CONSTANT
|| yychar
== STRING
)
3303 pop_momentary_nofree ();
3306 expand_end_loop (); ;
3309 #line 1800 "c-parse.y"
3311 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3312 c_expand_start_case (yyvsp
[-1].ttype
);
3313 /* Don't let the tree nodes for $3 be discarded by
3314 clear_momentary during the parsing of the next stmt. */
3316 position_after_white_space (); ;
3319 #line 1808 "c-parse.y"
3320 { expand_end_case (yyvsp
[-3].ttype
);
3321 if (yychar
== CONSTANT
|| yychar
== STRING
)
3322 pop_momentary_nofree ();
3327 #line 1814 "c-parse.y"
3329 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3330 if ( ! expand_exit_something ())
3331 error ("break statement not within loop or switch"); ;
3334 #line 1819 "c-parse.y"
3336 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3337 if (! expand_continue_loop (NULL_PTR
))
3338 error ("continue statement not within a loop"); ;
3341 #line 1824 "c-parse.y"
3343 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3344 c_expand_return (NULL_TREE
); ;
3347 #line 1828 "c-parse.y"
3349 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3350 c_expand_return (yyvsp
[-1].ttype
); ;
3353 #line 1832 "c-parse.y"
3355 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3356 STRIP_NOPS (yyvsp
[-2].ttype
);
3357 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3358 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3359 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3360 expand_asm (yyvsp
[-2].ttype
);
3362 error ("argument of `asm' is not a constant string"); ;
3365 #line 1843 "c-parse.y"
3367 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3368 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3369 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3370 input_filename
, lineno
); ;
3373 #line 1850 "c-parse.y"
3375 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3376 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3377 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3378 input_filename
, lineno
); ;
3381 #line 1858 "c-parse.y"
3383 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3384 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3385 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3386 input_filename
, lineno
); ;
3389 #line 1864 "c-parse.y"
3392 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3393 decl
= lookup_label (yyvsp
[-1].ttype
);
3396 TREE_USED (decl
) = 1;
3402 #line 1875 "c-parse.y"
3404 pedwarn ("ANSI C forbids `goto *expr;'");
3406 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3407 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3410 #line 1890 "c-parse.y"
3412 /* The value returned by this action is */
3413 /* 1 if everything is OK */
3414 /* 0 in case of error or already bound iterator */
3417 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3418 error ("invalid `for (ITERATOR)' syntax");
3419 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3420 error ("`%s' is not an iterator",
3421 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3422 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3423 error ("`for (%s)' inside expansion of same iterator",
3424 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3428 iterator_for_loop_start (yyvsp
[-1].ttype
);
3433 #line 1911 "c-parse.y"
3435 if (yyvsp
[-1].itype
)
3436 iterator_for_loop_end (yyvsp
[-3].ttype
);
3440 #line 1946 "c-parse.y"
3441 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3443 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3447 if (value
!= error_mark_node
)
3452 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3453 pedwarn ("label must have integral type in ANSI C");
3455 success
= pushcase (value
, convert_and_check
,
3459 error ("case label not within a switch statement");
3460 else if (success
== 2)
3462 error ("duplicate case value");
3463 error_with_decl (duplicate
, "this is the first entry for that value");
3465 else if (success
== 3)
3466 warning ("case value out of range");
3467 else if (success
== 5)
3468 error ("case label within scope of cleanup or variable array");
3470 position_after_white_space (); ;
3473 #line 1977 "c-parse.y"
3474 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3475 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3477 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3480 pedwarn ("ANSI C forbids case ranges");
3483 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3486 int success
= pushcase_range (value1
, value2
,
3487 convert_and_check
, label
,
3490 error ("case label not within a switch statement");
3491 else if (success
== 2)
3493 error ("duplicate case value");
3494 error_with_decl (duplicate
, "this is the first entry for that value");
3496 else if (success
== 3)
3497 warning ("case value out of range");
3498 else if (success
== 4)
3499 warning ("empty case range");
3500 else if (success
== 5)
3501 error ("case label within scope of cleanup or variable array");
3503 position_after_white_space (); ;
3506 #line 2008 "c-parse.y"
3510 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3511 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3514 error ("default label not within a switch statement");
3515 else if (success
== 2)
3517 error ("multiple default labels in one switch");
3518 error_with_decl (duplicate
, "this is the first default label");
3520 position_after_white_space (); ;
3523 #line 2023 "c-parse.y"
3524 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3529 expand_label (label
);
3530 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3532 position_after_white_space (); ;
3535 #line 2038 "c-parse.y"
3536 { emit_line_note (input_filename
, lineno
);
3537 yyval
.ttype
= NULL_TREE
; ;
3540 #line 2041 "c-parse.y"
3541 { emit_line_note (input_filename
, lineno
); ;
3544 #line 2046 "c-parse.y"
3545 { yyval
.ttype
= NULL_TREE
; ;
3548 #line 2053 "c-parse.y"
3549 { yyval
.ttype
= NULL_TREE
; ;
3552 #line 2060 "c-parse.y"
3553 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3556 #line 2065 "c-parse.y"
3557 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3560 #line 2070 "c-parse.y"
3561 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3564 #line 2072 "c-parse.y"
3565 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3568 #line 2078 "c-parse.y"
3570 clear_parm_order ();
3571 declare_parm_level (0); ;
3574 #line 2082 "c-parse.y"
3575 { yyval
.ttype
= yyvsp
[0].ttype
;
3576 parmlist_tags_warning ();
3577 poplevel (0, 0, 0); ;
3580 #line 2090 "c-parse.y"
3583 pedwarn ("ANSI C forbids forward parameter declarations");
3584 /* Mark the forward decls as such. */
3585 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3586 TREE_ASM_WRITTEN (parm
) = 1;
3587 clear_parm_order (); ;
3590 #line 2098 "c-parse.y"
3591 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3594 #line 2100 "c-parse.y"
3595 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3598 #line 2106 "c-parse.y"
3599 { yyval
.ttype
= get_parm_info (0); ;
3602 #line 2108 "c-parse.y"
3603 { yyval
.ttype
= get_parm_info (0);
3604 /* Gcc used to allow this as an extension. However, it does
3605 not work for all targets, and thus has been disabled.
3606 Also, since func (...) and func () are indistinguishable,
3607 it caused problems with the code in expand_builtin which
3608 tries to verify that BUILT_IN_NEXT_ARG is being used
3610 error ("ANSI C requires a named argument before `...'");
3614 #line 2118 "c-parse.y"
3615 { yyval
.ttype
= get_parm_info (1); ;
3618 #line 2120 "c-parse.y"
3619 { yyval
.ttype
= get_parm_info (0); ;
3622 #line 2125 "c-parse.y"
3623 { push_parm_decl (yyvsp
[0].ttype
); ;
3626 #line 2127 "c-parse.y"
3627 { push_parm_decl (yyvsp
[0].ttype
); ;
3630 #line 2134 "c-parse.y"
3631 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3633 build_tree_list (prefix_attributes
,
3635 current_declspecs
= TREE_VALUE (declspec_stack
);
3636 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3637 declspec_stack
= TREE_CHAIN (declspec_stack
);
3638 resume_momentary (yyvsp
[-2].itype
); ;
3641 #line 2143 "c-parse.y"
3642 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3644 build_tree_list (prefix_attributes
,
3646 current_declspecs
= TREE_VALUE (declspec_stack
);
3647 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3648 declspec_stack
= TREE_CHAIN (declspec_stack
);
3649 resume_momentary (yyvsp
[-2].itype
); ;
3652 #line 2152 "c-parse.y"
3653 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3655 build_tree_list (prefix_attributes
,
3657 current_declspecs
= TREE_VALUE (declspec_stack
);
3658 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3659 declspec_stack
= TREE_CHAIN (declspec_stack
);
3660 resume_momentary (yyvsp
[-2].itype
); ;
3663 #line 2161 "c-parse.y"
3664 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3666 build_tree_list (prefix_attributes
,
3668 current_declspecs
= TREE_VALUE (declspec_stack
);
3669 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3670 declspec_stack
= TREE_CHAIN (declspec_stack
);
3671 resume_momentary (yyvsp
[-2].itype
); ;
3674 #line 2171 "c-parse.y"
3675 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3677 build_tree_list (prefix_attributes
,
3679 current_declspecs
= TREE_VALUE (declspec_stack
);
3680 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3681 declspec_stack
= TREE_CHAIN (declspec_stack
);
3682 resume_momentary (yyvsp
[-2].itype
); ;
3685 #line 2185 "c-parse.y"
3687 clear_parm_order ();
3688 declare_parm_level (1); ;
3691 #line 2189 "c-parse.y"
3692 { yyval
.ttype
= yyvsp
[0].ttype
;
3693 parmlist_tags_warning ();
3694 poplevel (0, 0, 0); ;
3697 #line 2197 "c-parse.y"
3699 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3700 if (TREE_VALUE (t
) == NULL_TREE
)
3701 error ("`...' in old-style identifier list");
3702 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3705 #line 2207 "c-parse.y"
3706 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3709 #line 2209 "c-parse.y"
3710 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3713 #line 2215 "c-parse.y"
3714 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3717 #line 2217 "c-parse.y"
3718 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3721 #line 2222 "c-parse.y"
3722 { yyval
.itype
= pedantic
;
3726 /* the action file gets copied in in place of this dollarsign */
3727 #line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
3738 short *ssp1
= yyss
- 1;
3739 fprintf (stderr
, "state stack now");
3740 while (ssp1
!= yyssp
)
3741 fprintf (stderr
, " %d", *++ssp1
);
3742 fprintf (stderr
, "\n");
3752 yylsp
->first_line
= yylloc
.first_line
;
3753 yylsp
->first_column
= yylloc
.first_column
;
3754 yylsp
->last_line
= (yylsp
-1)->last_line
;
3755 yylsp
->last_column
= (yylsp
-1)->last_column
;
3760 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3761 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3765 /* Now "shift" the result of the reduction.
3766 Determine what state that goes to,
3767 based on the state we popped back to
3768 and the rule number reduced by. */
3772 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3773 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3774 yystate
= yytable
[yystate
];
3776 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3780 yyerrlab
: /* here on detecting error */
3783 /* If not already recovering from an error, report this error. */
3787 #ifdef YYERROR_VERBOSE
3788 yyn
= yypact
[yystate
];
3790 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3797 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3798 for (x
= (yyn
< 0 ? -yyn
: 0);
3799 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3800 if (yycheck
[x
+ yyn
] == x
)
3801 size
+= strlen(yytname
[x
]) + 15, count
++;
3802 msg
= (char *) malloc(size
+ 15);
3805 strcpy(msg
, "parse error");
3810 for (x
= (yyn
< 0 ? -yyn
: 0);
3811 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3812 if (yycheck
[x
+ yyn
] == x
)
3814 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3815 strcat(msg
, yytname
[x
]);
3824 yyerror ("parse error; also virtual memory exceeded");
3827 #endif /* YYERROR_VERBOSE */
3828 yyerror("parse error");
3832 yyerrlab1
: /* here on error raised explicitly by an action */
3834 if (yyerrstatus
== 3)
3836 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3838 /* return failure if at end of input */
3839 if (yychar
== YYEOF
)
3844 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3850 /* Else will try to reuse lookahead token
3851 after shifting the error token. */
3853 yyerrstatus
= 3; /* Each real token shifted decrements this */
3857 yyerrdefault
: /* current state does not do anything special for the error token. */
3860 /* This is wrong; only states that explicitly want error tokens
3861 should shift them. */
3862 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3863 if (yyn
) goto yydefault
;
3866 yyerrpop
: /* pop the current state because it cannot handle the error token */
3868 if (yyssp
== yyss
) YYABORT
;
3878 short *ssp1
= yyss
- 1;
3879 fprintf (stderr
, "Error: state stack now");
3880 while (ssp1
!= yyssp
)
3881 fprintf (stderr
, " %d", *++ssp1
);
3882 fprintf (stderr
, "\n");
3888 yyn
= yypact
[yystate
];
3893 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3912 fprintf(stderr
, "Shifting error token, ");
3923 #line 2226 "c-parse.y"