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, 944,
210 946, 948, 951, 954, 955, 957, 960, 961, 962, 964,
211 966, 969, 973, 975, 978, 980, 983, 990, 996, 1002,
212 1005, 1008, 1013, 1014, 1019, 1020, 1021, 1025, 1030, 1034,
213 1036, 1038, 1040, 1042, 1045, 1046, 1051, 1053, 1057, 1058,
214 1059, 1067, 1073, 1076, 1077, 1078, 1079, 1092, 1093, 1100,
215 1103, 1106, 1109, 1113, 1120, 1129, 1140, 1153, 1157, 1162,
216 1164, 1166, 1167, 1174, 1178, 1184, 1187, 1191, 1192, 1194,
217 1195, 1197, 1198, 1200, 1202, 1206, 1211, 1213, 1217, 1218,
218 1221, 1224, 1225, 1230, 1233, 1234, 1236, 1238, 1242, 1244,
219 1248, 1253, 1258, 1263, 1268, 1273, 1274, 1277, 1279, 1282,
220 1284, 1288, 1290, 1294
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, 143,
318 123, 189, 0, 191, 0, 208, 0, 191, 208, 0,
319 191, 193, 0, 0, 190, 0, 1, 77, 0, 0,
320 0, 196, 0, 197, 0, 196, 197, 0, 32, 239,
321 77, 0, 200, 0, 1, 200, 0, 82, 0, 199,
322 78, 0, 199, 194, 195, 121, 192, 78, 0, 199,
323 194, 195, 1, 78, 0, 199, 194, 195, 190, 78,
324 0, 202, 207, 0, 202, 1, 0, 15, 59, 99,
325 76, 0, 0, 18, 204, 207, 17, 0, 0, 0,
326 205, 206, 210, 0, 205, 206, 221, 207, 0, 205,
327 206, 209, 0, 210, 0, 221, 0, 200, 0, 218,
328 0, 99, 77, 0, 0, 201, 16, 211, 207, 0,
329 201, 0, 201, 16, 1, 0, 0, 0, 17, 212,
330 59, 99, 76, 213, 207, 0, 203, 59, 99, 76,
331 77, 0, 203, 1, 0, 0, 0, 0, 19, 59,
332 223, 77, 214, 223, 77, 215, 223, 76, 216, 207,
333 0, 0, 20, 59, 99, 76, 217, 207, 0, 23,
334 77, 0, 24, 77, 0, 25, 77, 0, 25, 99,
335 77, 0, 27, 222, 59, 99, 76, 77, 0, 27,
336 222, 59, 99, 38, 224, 76, 77, 0, 27, 222,
337 59, 99, 38, 224, 38, 224, 76, 77, 0, 27,
338 222, 59, 99, 38, 224, 38, 224, 38, 227, 76,
339 77, 0, 26, 97, 77, 0, 26, 50, 99, 77,
340 0, 77, 0, 219, 0, 0, 19, 59, 113, 76,
341 220, 207, 0, 21, 107, 38, 0, 21, 107, 10,
342 107, 38, 0, 22, 38, 0, 97, 38, 142, 0,
343 0, 7, 0, 0, 99, 0, 0, 225, 0, 226,
344 0, 225, 81, 226, 0, 9, 59, 99, 76, 0,
345 115, 0, 227, 81, 115, 0, 0, 229, 230, 0,
346 232, 76, 0, 0, 233, 77, 231, 230, 0, 1,
347 76, 0, 0, 10, 0, 233, 0, 233, 81, 10,
348 0, 234, 0, 233, 81, 234, 0, 125, 122, 166,
349 142, 0, 125, 122, 167, 142, 0, 125, 122, 186,
350 142, 0, 129, 122, 167, 142, 0, 129, 122, 186,
351 142, 0, 0, 236, 237, 0, 230, 0, 238, 76,
352 0, 3, 0, 238, 81, 3, 0, 97, 0, 239,
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, 569, 580, 679, 680, 682, 688,
369 690, 704, 727, 729, 731, 735, 741, 743, 748, 750,
370 755, 757, 758, 768, 773, 775, 776, 777, 784, 790,
371 795, 798, 806, 811, 813, 814, 815, 822, 833, 837,
372 843, 848, 853, 858, 860, 862, 871, 874, 878, 880,
373 882, 887, 891, 894, 898, 901, 903, 915, 918, 920,
374 922, 926, 930, 932, 935, 948, 951, 955, 957, 965,
375 966, 967, 971, 973, 979, 980, 981, 984, 986, 989,
376 991, 994, 997, 1003, 1010, 1012, 1019, 1026, 1029, 1036,
377 1039, 1043, 1046, 1050, 1055, 1058, 1062, 1065, 1067, 1069,
378 1071, 1078, 1080, 1081, 1082, 1087, 1089, 1094, 1102, 1107,
379 1111, 1114, 1116, 1121, 1123, 1124, 1127, 1127, 1130, 1133,
380 1135, 1137, 1140, 1142, 1145, 1151, 1153, 1157, 1168, 1176,
381 1180, 1191, 1199, 1206, 1208, 1213, 1216, 1221, 1223, 1225,
382 1232, 1234, 1242, 1248, 1253, 1255, 1257, 1264, 1266, 1272,
383 1278, 1280, 1282, 1287, 1289, 1296, 1298, 1301, 1304, 1308,
384 1311, 1315, 1318, 1322, 1327, 1329, 1333, 1335, 1337, 1339,
385 1343, 1345, 1348, 1351, 1354, 1357, 1361, 1363, 1366, 1368,
386 1373, 1376, 1381, 1383, 1385, 1399, 1406, 1411, 1417, 1422,
387 1424, 1429, 1431, 1435, 1439, 1443, 1453, 1455, 1460, 1465,
388 1468, 1472, 1475, 1479, 1482, 1485, 1488, 1492, 1495, 1499,
389 1503, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1521, 1529,
390 1537, 1539, 1541, 1545, 1547, 1550, 1553, 1564, 1566, 1571,
391 1573, 1576, 1590, 1593, 1596, 1598, 1600, 1608, 1616, 1627,
392 1632, 1635, 1649, 1658, 1662, 1666, 1670, 1676, 1680, 1685,
393 1688, 1693, 1696, 1697, 1714, 1719, 1722, 1734, 1736, 1746,
394 1756, 1757, 1765, 1768, 1780, 1784, 1801, 1811, 1820, 1825,
395 1830, 1835, 1839, 1843, 1854, 1861, 1868, 1875, 1886, 1892,
396 1895, 1900, 1923, 1957, 1988, 2019, 2034, 2048, 2052, 2056,
397 2059, 2064, 2066, 2069, 2071, 2075, 2080, 2083, 2089, 2094,
398 2099, 2101, 2110, 2111, 2117, 2119, 2129, 2131, 2135, 2138,
399 2144, 2154, 2163, 2172, 2182, 2196, 2201, 2206, 2208, 2217,
400 2220, 2225, 2228, 2232
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, 189, 190,
475 191, 191, 191, 192, 192, 193, 194, 195, 195, 196,
476 196, 197, 198, 198, 199, 200, 200, 200, 200, 201,
477 201, 202, 204, 203, 205, 206, 207, 207, 208, 209,
478 209, 210, 210, 210, 211, 210, 210, 210, 212, 213,
479 210, 210, 210, 214, 215, 216, 210, 217, 210, 210,
480 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
481 218, 220, 219, 221, 221, 221, 221, 222, 222, 223,
482 223, 224, 224, 225, 225, 226, 227, 227, 229, 228,
483 230, 231, 230, 230, 232, 232, 232, 232, 233, 233,
484 234, 234, 234, 234, 234, 236, 235, 237, 237, 238,
488 static const short yyr2
[] = { 0,
489 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
490 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
491 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
494 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
495 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
496 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
497 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
498 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
499 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
500 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
501 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
502 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
503 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
504 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
505 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
506 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
507 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
508 2, 1, 3, 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, 3, 1,
519 1, 2, 2, 0, 1, 2, 0, 0, 1, 1,
520 2, 3, 1, 2, 1, 2, 6, 5, 5, 2,
521 2, 4, 0, 4, 0, 0, 3, 4, 3, 1,
522 1, 1, 1, 2, 0, 4, 1, 3, 0, 0,
523 7, 5, 2, 0, 0, 0, 12, 0, 6, 2,
524 2, 2, 3, 6, 8, 10, 12, 3, 4, 1,
525 1, 0, 6, 3, 5, 2, 3, 0, 1, 0,
526 1, 0, 1, 1, 3, 4, 1, 3, 0, 2,
527 2, 0, 4, 2, 0, 1, 1, 3, 1, 3,
528 4, 4, 4, 4, 4, 0, 2, 1, 2, 1,
532 static const short yydefact
[] = { 3,
533 5, 0, 0, 0, 152, 143, 150, 142, 242, 238,
534 240, 0, 0, 0, 404, 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, 396,
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 379, 0, 119, 282, 285, 146, 154, 287, 148, 283,
552 183, 184, 185, 182, 0, 175, 178, 289, 232, 231,
553 161, 162, 236, 0, 230, 0, 0, 235, 0, 0,
554 28, 0, 325, 106, 326, 169, 171, 0, 0, 13,
555 0, 0, 22, 0, 170, 396, 0, 12, 26, 0,
556 170, 270, 265, 118, 262, 118, 0, 263, 170, 263,
557 279, 280, 259, 277, 0, 90, 89, 315, 307, 0,
558 0, 9, 44, 0, 0, 85, 84, 0, 0, 0,
559 0, 73, 74, 72, 71, 70, 68, 69, 63, 64,
560 65, 66, 67, 96, 95, 0, 42, 0, 292, 0,
561 296, 0, 298, 0, 0, 379, 0, 149, 147, 0,
562 177, 41, 0, 0, 400, 386, 118, 118, 398, 0,
563 387, 389, 397, 0, 233, 234, 306, 0, 108, 103,
564 107, 0, 167, 220, 216, 159, 221, 20, 166, 217,
565 219, 0, 24, 246, 325, 264, 325, 271, 0, 250,
566 0, 0, 260, 0, 259, 316, 308, 92, 60, 59,
567 51, 53, 0, 0, 78, 76, 93, 94, 291, 290,
568 380, 297, 299, 293, 295, 0, 174, 176, 86, 0,
569 163, 384, 284, 284, 381, 382, 0, 399, 0, 0,
570 29, 313, 104, 118, 118, 135, 0, 0, 164, 218,
571 0, 266, 272, 326, 268, 170, 170, 281, 278, 170,
572 0, 0, 0, 309, 310, 0, 80, 83, 294, 179,
573 0, 181, 229, 288, 379, 119, 170, 170, 170, 288,
574 119, 170, 170, 0, 388, 390, 401, 314, 111, 0,
575 112, 0, 135, 133, 189, 187, 186, 168, 21, 0,
576 25, 325, 0, 245, 249, 255, 170, 402, 0, 0,
577 0, 325, 0, 0, 115, 326, 301, 311, 202, 86,
578 0, 0, 199, 0, 201, 0, 257, 192, 198, 0,
579 0, 0, 0, 292, 0, 396, 0, 391, 392, 393,
580 292, 0, 394, 395, 383, 0, 0, 162, 134, 137,
581 136, 0, 165, 273, 0, 170, 253, 312, 0, 318,
582 117, 116, 305, 0, 319, 303, 326, 302, 0, 205,
583 0, 0, 196, 61, 0, 191, 0, 204, 195, 81,
584 180, 227, 228, 223, 0, 226, 0, 109, 110, 0,
585 170, 0, 274, 403, 317, 0, 152, 0, 339, 323,
586 0, 0, 0, 0, 0, 0, 0, 0, 368, 360,
587 0, 0, 113, 118, 118, 332, 337, 0, 0, 329,
588 330, 333, 361, 331, 0, 0, 207, 0, 0, 193,
589 194, 224, 225, 188, 276, 170, 0, 0, 325, 370,
590 0, 0, 366, 350, 351, 352, 0, 0, 0, 369,
591 0, 170, 334, 124, 0, 125, 0, 0, 321, 326,
592 320, 343, 0, 126, 0, 200, 197, 275, 0, 0,
593 0, 371, 45, 0, 0, 0, 364, 353, 0, 358,
594 0, 367, 0, 122, 208, 0, 123, 211, 338, 325,
595 0, 0, 206, 322, 0, 324, 362, 344, 348, 0,
596 359, 0, 120, 0, 121, 0, 336, 327, 325, 0,
597 340, 325, 370, 325, 365, 372, 0, 209, 212, 328,
598 342, 325, 363, 0, 349, 0, 0, 373, 374, 354,
599 0, 0, 341, 345, 0, 372, 0, 0, 210, 213,
600 370, 0, 0, 355, 375, 0, 376, 0, 0, 346,
601 377, 0, 356, 325, 0, 0, 347, 357, 378, 0,
605 static const short yydefgoto
[] = { 690,
606 1, 2, 3, 17, 18, 19, 224, 378, 230, 381,
607 112, 308, 454, 85, 144, 276, 87, 88, 89, 90,
608 91, 396, 92, 261, 260, 258, 462, 259, 93, 145,
609 94, 211, 212, 213, 373, 441, 442, 20, 107, 543,
610 297, 57, 374, 424, 298, 23, 98, 186, 24, 129,
611 117, 44, 113, 118, 430, 45, 377, 216, 217, 26,
612 195, 196, 197, 428, 482, 456, 457, 458, 559, 459,
613 502, 460, 461, 614, 634, 661, 617, 636, 662, 202,
614 121, 407, 122, 27, 28, 29, 30, 238, 240, 245,
615 137, 506, 334, 132, 133, 235, 382, 383, 243, 244,
616 100, 184, 101, 103, 185, 443, 444, 494, 214, 337,
617 393, 394, 395, 371, 249, 372, 547, 548, 549, 569,
618 590, 312, 591, 447, 550, 551, 620, 568, 652, 643,
619 671, 684, 644, 552, 553, 642, 554, 581, 604, 657,
620 658, 659, 682, 281, 282, 299, 414, 300, 301, 302,
621 205, 206, 303, 304, 439, 95
624 static const short yypact
[] = { 95,
625 110, 2206, 2206, 260,-32768,-32768,-32768,-32768, 40, 40,
626 40, 57, 59, 89,-32768,-32768,-32768,-32768,-32768, 42,
627 99, 2234, 79,-32768, 40,-32768, 87, 93, 108,-32768,
628 2206,-32768,-32768,-32768, 40, 40, 40, 2068, 2002, 125,
629 -32768,-32768, 42, 147,-32768, 40, 1355,-32768, 257,-32768,
630 42, 79,-32768, 40,-32768,-32768, 696,-32768,-32768,-32768,
631 -32768, 76,-32768, 124,-32768, 132,-32768,-32768,-32768,-32768,
632 -32768,-32768, 2068, 2068, 373,-32768,-32768,-32768, 2068,-32768,
633 -32768, 721,-32768,-32768, 2068, 149, 153,-32768, 2095, 2122,
634 -32768, 2335, 881, 231, 2068,-32768, 186, 319,-32768, 203,
635 578, 708, 627, 304,-32768, 257, 42,-32768, 194,-32768,
636 1430, 438, 40,-32768,-32768, 257, 177,-32768, 40, 276,
637 398, 417, 188, 1417, 696,-32768,-32768,-32768,-32768, 40,
638 -32768, 208, 778,-32768, 214,-32768, 468,-32768,-32768,-32768,
639 -32768,-32768, 223, 269, 288, 312,-32768, 315, 2068, 721,
640 -32768, 721,-32768, 2068, 2068, 362,-32768,-32768, 2068, 2068,
641 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068,
642 -32768,-32768, 373, 373, 2068, 2068,-32768,-32768,-32768,-32768,
643 319, 1457, 40,-32768, 426, 760,-32768,-32768,-32768,-32768,
644 -32768,-32768,-32768,-32768, 50,-32768, 344,-32768, 417,-32768,
645 -32768, 385, 417, 419,-32768, 611, 1512,-32768, 349, 361,
646 -32768, 316, 70,-32768,-32768, 405, 40, 545, 323,-32768,
647 257, 257,-32768, 438, 40,-32768, 1539,-32768,-32768, 438,
648 40,-32768,-32768, 428, 370, 198, 953,-32768, 40,-32768,
649 -32768, 413, 383,-32768, 468,-32768,-32768,-32768, 376, 391,
650 1891,-32768, 2335, 402, 411, 2335, 2335, 2068, 443, 2068,
651 2068, 1564, 1645, 1859, 1078, 747, 838, 838, 356, 356,
652 -32768,-32768,-32768,-32768,-32768, 432, 153, 412, 463, 485,
653 -32768, 871,-32768, 434, 319,-32768, 1594,-32768, 760, 445,
654 708, 2149, 54, 448,-32768,-32768,-32768, 1036,-32768, 450,
655 197,-32768,-32768, 81,-32768,-32768,-32768, 39,-32768,-32768,
656 -32768, 846,-32768, 398,-32768,-32768, 398,-32768, 483,-32768,
657 -32768, 452,-32768,-32768,-32768,-32768,-32768,-32768, 461,-32768,
658 473, 2068, 373, 480, 383,-32768, 496,-32768,-32768,-32768,
659 -32768,-32768, 508, 2068, 2258, 1483,-32768,-32768, 426,-32768,
660 -32768,-32768, 426,-32768,-32768, 493,-32768,-32768, 85, 510,
661 -32768,-32768, 550, 497,-32768,-32768, 1006,-32768, 585, 288,
662 -32768,-32768,-32768, 512, 328,-32768, 1291, 39,-32768,-32768,
663 39, 513,-32768,-32768, 513, 40, 40, 2335,-32768, 40,
664 515, 373, 814, 496,-32768, 1111,-32768, 2351,-32768,-32768,
665 2068,-32768,-32768,-32768, 497, 40, 133, 140, 40,-32768,
666 40, 140, 40, 871,-32768,-32768,-32768,-32768,-32768, 257,
667 -32768, 42,-32768, 692,-32768,-32768, 2335,-32768,-32768, 1291,
668 -32768,-32768, 430,-32768,-32768,-32768, 40,-32768, 220, 433,
669 641, 518, 520, 894,-32768,-32768,-32768,-32768,-32768, 563,
670 373, 2068,-32768, 564, 2335, 525, 526,-32768,-32768, 326,
671 1231, 2068, 146, 500, 550,-32768, 1621,-32768,-32768,-32768,
672 423, 497,-32768,-32768,-32768, 237, 250, 112, 692,-32768,
673 -32768, 1111,-32768,-32768, 2068, 49,-32768,-32768, 373,-32768,
674 -32768,-32768,-32768, 541,-32768,-32768,-32768,-32768, 1757,-32768,
675 2245, 1111,-32768,-32768, 1171,-32768, 1346,-32768,-32768, 2351,
676 -32768, 504, 504,-32768, 1676,-32768, 537,-32768,-32768, 544,
677 1778, 2068,-32768,-32768,-32768, 1837, 588, 570,-32768,-32768,
678 572, 576, 2068, 598, 566, 596, 2015, 193, 633,-32768,
679 638, 601,-32768, 602, 2238,-32768, 664, 974, 66,-32768,
680 -32768,-32768,-32768,-32768, 1948, 2068,-32768, 604, 1346,-32768,
681 -32768,-32768,-32768,-32768,-32768, 1778, 2068, 624,-32768, 2068,
682 2068, 1701,-32768,-32768,-32768,-32768, 615, 2068, 616,-32768,
683 629, 40,-32768,-32768, 257,-32768, 42, 1054,-32768,-32768,
684 -32768,-32768, 2068,-32768, 2290,-32768,-32768,-32768, 618, 2068,
685 714,-32768, 687, 659, 662, 2068,-32768,-32768, 666,-32768,
686 2068,-32768, 271,-32768, 266, 284,-32768, 158,-32768,-32768,
687 1837, 663,-32768,-32768, 672,-32768,-32768,-32768,-32768, 2308,
688 -32768, 24,-32768, 438,-32768, 438,-32768,-32768,-32768, 674,
689 -32768,-32768, 2068,-32768,-32768, 744, 679,-32768,-32768,-32768,
690 -32768,-32768,-32768, 681,-32768, 700, 43, 684,-32768,-32768,
691 288, 288,-32768,-32768, 2068, 744, 691, 744,-32768,-32768,
692 2068, 702, 61,-32768,-32768, 705,-32768, 419, 706,-32768,
693 231, 176,-32768,-32768, 709, 419,-32768,-32768, 231, 787,
697 static const short yypgoto
[] = {-32768,
698 -32768,-32768,-32768, 103,-32768,-32768,-32768,-32768,-32768,-32768,
699 -32768,-32768, -24,-32768, -38, 516, -110, 477,-32768,-32768,
700 -21,-32768, 255,-32768,-32768,-32768,-32768,-32768, 232,-32768,
701 -194, -199, 591,-32768,-32768, 363,-32768, -3, -60, 252,
702 10, 757,-32768, 389, 19, -14, -90, 635, 27, -169,
703 -390, -49, -114, -68,-32768,-32768,-32768, -171, 26, 68,
704 -32768, 522,-32768, 386,-32768, -347,-32768, 325,-32768, -405,
705 -32768,-32768, 406,-32768,-32768,-32768,-32768,-32768,-32768, -42,
706 -77, 105, -9,-32768,-32768,-32768, -43,-32768,-32768,-32768,
707 -32768,-32768, 511, -37,-32768, 612, 538, 435, 625, 546,
708 -35, -92, -72, -91, -105, 429,-32768,-32768, -185,-32768,
709 -32768,-32768, 486, 16,-32768, -125,-32768,-32768,-32768,-32768,
710 -57, -361, -461, 456,-32768, 261,-32768,-32768,-32768,-32768,
711 -32768,-32768,-32768,-32768,-32768,-32768, 283,-32768, -503, 226,
712 -32768, 238,-32768, 621,-32768, -250,-32768,-32768,-32768, 543,
713 -193,-32768,-32768,-32768,-32768, 13
720 static const short yytable
[] = { 86,
721 97, 123, 62, 64, 66, 225, 120, 52, 190, 293,
722 47, 21, 21, 131, 31, 31, 288, 49, 51, 250,
723 22, 22, 433, 218, 318, 135, 309, 25, 25, 476,
724 323, 351, 320, 104, 35, 36, 37, 201, 219, 370,
725 21, 124, 234, 31, 41, 46, 146, 54, 53, 22,
726 141, 139, 140, 319, 215, 509, 25, 142, 222, 324,
727 236, 646, 177, 147, 277, 99, 592, 330, 46, 14,
728 -102, 14, 209, 178, 119, 280, 46, 194, 14, 310,
729 666, 131, 130, 55, 499, 56, 522, 225, 279, 59,
730 60, 42, 58, 199, -1, 59, 60, 203, 678, 647,
731 43, 561, 58, 58, 58, 32, 104, 601, 99, -2,
732 59, 60, 242, 58, 254, 38, 255, 39, 667, 288,
733 248, 58, 285, 183, 593, 290, 183, 189, 46, 361,
734 291, 119, 46, 67, 520, 526, 679, 278, 109, 654,
735 314, 119, 131, 284, 317, 237, 234, 40, 274, 275,
736 130, -102, 316, 597, 558, 215, 368, 134, 637, 99,
737 400, 369, 14, 475, 236, 401, 215, 676, 61, 14,
738 110, 111, 215, 349, 63, 48, 99, 650, 99, 353,
739 653, 277, 655, 102, 109, 142, 58, -162, 322, 65,
740 663, 466, 467, -162, 613, 59, 60, 58, 110, 111,
741 329, 5, 331, 7, 188, 136, 183, 445, 199, 9,
742 10, 11, 203, 138, 434, 435, 110, 111, 436, 343,
743 242, 511, 687, 105, 148, 13, 149, 106, 621, 340,
744 325, 25, 327, 149, -162, 468, 469, 470, -162, 177,
745 473, 474, 578, 119, 418, 131, 119, 119, 356, 237,
746 58, 685, 204, 220, 481, 491, 686, 221, 496, 41,
747 114, 179, 189, 99, 228, 487, 194, 384, 106, 384,
748 409, 413, 514, 366, -269, -269, 223, 367, 187, -19,
749 -19, -19, -19, 52, 58, 231, 14, -19, -19, -19,
750 463, 239, 109, 363, 364, -162, 488, 375, 246, 280,
751 489, -162, 109, -19, 183, -162, 115, 25, 242, 481,
752 183, -162, 464, 518, 523, 116, 210, 221, 471, -105,
753 -105, -105, -105, 54, 53, -105, 519, -105, -105, -105,
754 106, 5, 55, 7, 56, 446, 33, 34, 376, 9,
755 10, 11, -162, -105, 247, 465, -162, 633, 14, 565,
756 472, 221, -162, 408, 412, 13, -162, -19, 349, 353,
757 635, 507, 110, 111, 106, 349, 353, 438, 180, 248,
758 420, 422, 477, 546, 384, 59, 60, 181, 182, 200,
759 131, 226, 227, 451, 446, 452, 497, 251, 406, 411,
760 486, 252, 25, 429, 598, 104, 431, -105, 315, -82,
761 546, 423, 292, 253, 421, 168, 169, 170, 256, 257,
762 612, 109, 478, 262, 263, 264, 265, 266, 267, 268,
763 269, 270, 271, 272, 273, 41, 500, 70, 517, 198,
764 411, 306, 41, 114, 648, 131, 649, 307, 210, 25,
765 313, -325, -325, -325, -325, 119, 326, 46, 332, -325,
766 -325, -325, 14, 336, 199, 203, 226, 227, 119, 14,
767 542, 199, 203, 333, 524, -325, 338, 485, 241, 198,
768 59, 60, 410, 58, 541, 110, 111, 341, 58, 115,
769 344, 405, 182, 681, 286, 287, 342, 542, 116, 406,
770 406, 689, 14, 142, 348, 546, 411, 411, 577, 41,
771 225, 541, 41, 403, -267, -267, 198, 347, 544, 307,
772 490, 555, 180, 579, 345, 346, 352, 545, 379, -101,
773 357, 181, 182, 362, 25, 365, 14, 392, 599, 14,
774 52, 602, 605, 178, 380, 669, 670, 616, 386, 609,
775 585, 587, 615, 286, 287, 397, 410, 41, 114, 404,
776 387, 198, 41, 403, 622, 405, 182, 390, 405, 182,
777 350, 625, 466, 467, 544, 151, 153, 555, 512, 513,
778 54, 53, 632, 545, 14, 399, 215, 618, 215, 14,
779 25, 5, 542, 7, 188, 402, 388, 417, 419, 9,
780 10, 11, 437, 432, 115, -304, 541, 495, 398, 404,
781 -31, 503, 504, 116, 602, 13, 505, 14, 405, 182,
782 119, 294, 46, 295, 5, 6, 7, 8, 525, 563,
783 296, 564, 9, 10, 11, -32, 672, 180, 567, 41,
784 570, 427, 602, 198, 571, 573, 181, 182, 13, 580,
785 14, 210, 574, -114, -114, -114, -114, -114, -114, -114,
786 455, -114, -114, -114, -114, -114, 14, -114, -114, -114,
787 -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
788 -114, -114, 575, -114, -114, 582, 42, 583, 584, 588,
789 -114, 596, 600, -114, 427, 43, -385, 611, -114, -114,
790 -114, 608, 610, 624, -114, -114, 480, 127, 128, -114,
791 126, 127, 128, 9, 10, 11, 501, 9, 10, 11,
792 59, 60, 191, 192, 193, 455, 510, -114, -114, -114,
793 -114, 143, -114, 68, 5, 14, 7, 96, 69, 70,
794 626, 71, 9, 10, 11, 628, 455, 629, 640, 521,
795 171, 172, 631, 173, 174, 175, 176, 641, 13, 72,
796 651, 15, 656, 73, 74, 660, 455, 664, 665, 455,
797 75, 455, 627, 76, 668, 127, 128, 674, 77, 78,
798 79, 9, 10, 11, 80, 81, 566, 677, 232, 82,
799 680, 5, 683, 7, 96, 688, 691, 572, 692, 9,
800 10, 11, 164, 165, 166, 167, 168, 169, 170, 83,
801 84, 603, -91, 311, 492, 13, 594, 360, 15, 125,
802 595, 479, 358, 455, 440, 483, -325, -325, -325, -325,
803 -325, -325, -325, 289, -325, -325, -325, -325, -325, 560,
804 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
805 -325, -325, -325, -325, -325, 391, -325, -325, 328, 5,
806 6, 7, 8, -325, 233, -261, -325, 9, 10, 11,
807 630, -325, -325, -325, 385, 508, 484, -325, -325, 335,
808 493, 294, -325, 13, 5, 6, 7, 8, 389, 448,
809 296, 638, 9, 10, 11, 166, 167, 168, 169, 170,
810 -325, 673, -325, -325, 210, -325, -325, -325, 13, 498,
811 14, -325, -325, 639, -325, 675, 354, 0, -325, 416,
812 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
813 -325, 0, -325, 0, -325, 0, -325, -325, 0, 0,
814 0, 0, 0, -325, 171, 172, -325, 173, 174, 175,
815 176, -325, -325, -325, 0, 0, -385, -325, -325, 0,
816 0, 0, -325, 232, 0, 0, 5, 0, 7, 96,
817 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
818 -325, -300, -325, -325, 589, -325, -325, -325, 0, 0,
819 13, -325, -325, 15, -325, 0, 0, 0, -325, 0,
820 -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
821 -325, 0, -325, 0, -325, 0, -325, -325, 0, 5,
822 6, 7, 8, -325, 0, 415, -325, 9, 10, 11,
823 0, -325, -325, -325, 0, 0, 0, -325, -325, 0,
824 0, 0, -325, 13, 0, 14, 0, 0, 0, 5,
825 6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
826 -325, 0, -325, -325, 619, -325, -335, -335, 0, 0,
827 0, -335, -335, 13, -335, 14, 0, 0, -335, 0,
828 -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
829 -335, 0, -335, 0, -335, 0, -335, -335, 0, 0,
830 0, 0, 0, -335, 0, 0, -335, 0, 0, 0,
831 0, -335, -335, -335, 0, 0, 0, -335, -335, 0,
832 0, 449, -335, 450, 60, 0, 0, 0, 69, 70,
833 0, 71, 163, 164, 165, 166, 167, 168, 169, 170,
834 -335, 0, -335, -335, 0, -335, 0, 0, 0, 72,
835 0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
836 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
837 79, 0, 0, 0, 80, 81, 0, 0, 451, 82,
838 452, 449, 0, 450, 60, 0, 0, 0, 69, 70,
839 0, 71, 0, 0, 0, 0, 0, 0, -190, 83,
840 84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
841 0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
842 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
843 79, 0, 0, 0, 80, 81, 0, 0, 451, 82,
844 452, 449, 0, 68, 0, 0, 0, 0, 69, 70,
845 0, 71, 0, 0, 0, 0, 0, 0, -258, 83,
846 84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
847 0, 15, 0, 73, 74, 0, -203, 0, 0, 0,
848 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
849 79, 0, 0, 0, 80, 81, 0, 0, -203, 82,
850 -203, 425, 0, 68, 0, 0, 0, 0, 69, 70,
851 0, 71, 0, 0, 0, 0, 0, 0, 0, 83,
852 84, 0, 453, 0, 0, 0, 0, 0, 0, 72,
853 0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
854 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
855 79, 0, 0, 0, 80, 81, 449, 0, 68, 82,
856 0, 0, 0, 69, 70, 108, 71, 0, -27, -27,
857 -27, -27, 0, 0, 0, 0, -27, -27, -27, 83,
858 84, 0, 426, 0, 72, 0, 15, 0, 73, 74,
859 0, 109, -27, 0, -162, 75, 0, 0, 76, 0,
860 -162, 0, 0, 77, 78, 79, 0, 0, 0, 80,
861 81, 0, 0, 0, 82, 0, 0, 0, 0, 0,
862 0, 0, 0, 110, 111, 0, 0, 229, 0, 0,
863 -23, -23, -23, -23, 83, 84, 0, 453, -23, -23,
864 -23, -162, 68, 0, 0, -162, -27, 69, 70, 0,
865 71, 0, 0, 109, -23, 0, -162, 0, 0, 0,
866 0, 0, -162, 0, 0, 0, 0, 0, 72, 68,
867 15, 0, 73, 74, 69, 70, 0, 71, 0, 75,
868 0, 0, 76, 0, 0, 110, 111, 77, 78, 207,
869 0, 0, 0, 80, 81, 72, 0, 15, 82, 73,
870 74, 0, 0, -162, 0, 0, 75, -162, -23, 76,
871 0, 0, 0, 0, 77, 78, 79, 0, 83, 84,
872 80, 81, 208, 0, 68, 82, 0, 0, 0, 69,
873 70, 0, 71, 159, 160, 161, 162, 163, 164, 165,
874 166, 167, 168, 169, 170, 83, 84, 0, 0, 283,
875 72, 68, 15, 0, 73, 74, 69, 70, 0, 71,
876 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
877 78, 79, 0, 0, 0, 80, 81, 72, 0, 15,
878 82, 73, 74, 0, 0, 0, 0, 0, 75, 0,
879 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
880 83, 84, 80, 81, 305, 0, 68, 82, 0, 0,
881 0, 69, 70, 0, 71, 160, 161, 162, 163, 164,
882 165, 166, 167, 168, 169, 170, 0, 83, 84, 0,
883 0, 321, 72, 68, 15, 0, 73, 74, 69, 70,
884 0, 71, 0, 75, 0, 0, 76, 0, 0, 0,
885 0, 77, 78, 79, 0, 0, 0, 80, 81, 72,
886 0, 15, 82, 73, 74, 0, 0, 0, 0, 0,
887 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
888 515, 0, 83, 84, 80, 81, 355, 0, 68, 82,
889 0, 0, 0, 69, 70, 0, 71, 161, 162, 163,
890 164, 165, 166, 167, 168, 169, 170, 0, 0, 83,
891 84, 0, 0, 516, 72, 0, 15, 0, 73, 74,
892 606, 0, 0, 0, 0, 75, 0, 0, 76, 0,
893 0, 0, 0, 77, 78, 79, 0, 0, 0, 80,
894 81, 0, 0, 0, 82, 154, 155, 156, 607, 157,
895 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
896 168, 169, 170, 0, 83, 84, 0, 0, 562, 450,
897 527, 6, 7, 8, 69, 70, 0, 71, 9, 10,
898 11, 528, 0, 529, 530, 531, 532, 533, 534, 535,
899 536, 537, 538, 539, 13, 72, 14, 15, 0, 73,
900 74, 0, 0, 0, 0, 0, 75, 0, 0, 76,
901 0, 0, 0, 0, 77, 78, 79, 14, 0, 0,
902 80, 81, 154, 155, 156, 82, 157, 158, 159, 160,
903 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
904 0, 0, 0, 540, 0, 83, 84, 0, 248, 450,
905 60, 0, 0, 0, 69, 70, 0, 71, 0, 0,
906 0, 528, 0, 529, 530, 531, 532, 533, 534, 535,
907 536, 537, 538, 539, 0, 72, 0, 15, 0, 73,
908 74, 0, 0, 0, 0, 0, 75, 0, 0, 76,
909 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
910 80, 81, 0, 68, 0, 82, 0, 0, 69, 70,
911 0, 71, 162, 163, 164, 165, 166, 167, 168, 169,
912 170, 0, 0, 540, 0, 83, 84, 0, 248, 72,
913 0, 15, 0, 73, 74, 0, 0, 0, 0, 0,
914 75, 0, 0, 76, 0, 0, 0, 0, 77, 78,
915 79, 0, 0, 0, 80, 81, 0, 0, 0, 82,
916 68, 5, 6, 7, 8, 69, 70, 0, 71, 9,
917 10, 11, 0, 0, 0, 0, 0, 0, 0, 83,
918 84, 0, 339, 0, 0, 13, 72, 14, 15, 0,
919 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
920 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
921 0, 80, 81, 0, 68, 5, 82, 7, 96, 69,
922 70, 0, 71, 9, 10, 11, 0, 68, 0, 0,
923 0, 0, 69, 70, 0, 71, 83, 84, 0, 13,
924 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
925 0, 75, 0, 72, 76, 15, 0, 73, 74, 77,
926 78, 79, 0, 0, 75, 80, 81, 76, 0, 0,
927 82, 0, 77, 78, 79, 0, 0, 0, 80, 81,
928 68, 0, 0, 82, 0, 69, 70, 0, 71, 0,
929 83, 84, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 576, 0, 83, 84, 0, 72, 68, 15, 0,
931 73, 74, 69, 70, 0, 71, 0, 75, 0, 0,
932 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
933 0, 80, 81, 72, 68, 15, 82, 73, 74, 69,
934 70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
935 0, 0, 77, 78, 79, 0, 83, 84, 80, 81,
936 72, 359, 15, 150, 73, 74, 69, 70, 0, 71,
937 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
938 78, 79, 0, 83, 84, 80, 81, 72, 0, 15,
939 152, 73, 74, 0, 0, 0, 0, 0, 75, 0,
940 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
941 83, 84, 80, 81, 0, 0, 4, 82, -118, 5,
942 6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
943 0, 0, 0, 0, 0, 0, 0, 83, 84, 0,
944 0, 0, 12, 13, 0, 14, 15, 5, 6, 7,
945 8, 5, 6, 7, 8, 9, 10, 11, 0, 9,
946 10, 11, 0, 0, 556, -118, 0, 0, 0, 0,
947 0, 13, 0, 14, -118, 13, 0, 14, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
949 155, 156, 16, 157, 158, 159, 160, 161, 162, 163,
950 164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
951 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
952 50, 0, 0, 0, 586, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 154, 155, 156, 557, 157, 158,
954 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
955 169, 170, 154, 155, 156, 645, 157, 158, 159, 160,
956 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
957 0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
958 155, 156, 623, 157, 158, 159, 160, 161, 162, 163,
959 164, 165, 166, 167, 168, 169, 170, 156, 0, 157,
960 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
964 static const short yycheck
[] = { 38,
965 39, 51, 27, 28, 29, 120, 49, 22, 101, 204,
966 20, 2, 3, 57, 2, 3, 186, 21, 22, 145,
967 2, 3, 384, 115, 224, 63, 212, 2, 3, 420,
968 230, 282, 226, 43, 9, 10, 11, 106, 116, 1,
969 31, 51, 133, 31, 3, 20, 82, 22, 22, 31,
970 75, 73, 74, 225, 112, 461, 31, 79, 119, 231,
971 133, 38, 9, 85, 175, 39, 1, 239, 43, 30,
972 1, 30, 111, 95, 49, 181, 51, 102, 30, 10,
973 38, 125, 57, 5, 446, 7, 38, 202, 180, 3,
974 4, 50, 25, 103, 0, 3, 4, 107, 38, 76,
975 59, 507, 35, 36, 37, 3, 116, 569, 82, 0,
976 3, 4, 137, 46, 150, 59, 152, 59, 76, 289,
977 82, 54, 183, 98, 59, 76, 101, 101, 103, 76,
978 81, 106, 107, 31, 482, 497, 76, 176, 27, 643,
979 218, 116, 186, 182, 222, 133, 237, 59, 173, 174,
980 125, 82, 221, 559, 502, 213, 76, 82, 620, 133,
981 76, 81, 30, 414, 237, 81, 224, 671, 82, 30,
982 59, 60, 230, 279, 82, 77, 150, 639, 152, 285,
983 642, 292, 644, 59, 27, 207, 119, 30, 227, 82,
984 652, 59, 60, 36, 585, 3, 4, 130, 59, 60,
985 238, 4, 240, 6, 7, 82, 181, 393, 218, 12,
986 13, 14, 222, 82, 386, 387, 59, 60, 390, 258,
987 245, 76, 684, 77, 76, 28, 81, 81, 590, 251,
988 234, 206, 236, 81, 77, 407, 408, 409, 81, 9,
989 412, 413, 50, 218, 370, 289, 221, 222, 287, 237,
990 183, 76, 59, 77, 424, 441, 81, 81, 444, 3,
991 4, 76, 236, 237, 77, 437, 291, 325, 81, 327,
992 363, 364, 466, 77, 77, 78, 1, 81, 76, 4,
993 5, 6, 7, 298, 217, 78, 30, 12, 13, 14,
994 401, 78, 27, 297, 298, 30, 77, 312, 76, 405,
995 81, 36, 27, 28, 279, 30, 50, 282, 333, 479,
996 285, 36, 404, 77, 486, 59, 1, 81, 410, 4,
997 5, 6, 7, 298, 298, 10, 77, 12, 13, 14,
998 81, 4, 5, 6, 7, 393, 77, 78, 312, 12,
999 13, 14, 77, 28, 76, 406, 81, 77, 30, 521,
1000 411, 81, 77, 363, 364, 28, 81, 82, 464, 465,
1001 77, 36, 59, 60, 81, 471, 472, 392, 50, 82,
1002 374, 375, 422, 499, 432, 3, 4, 59, 60, 76,
1003 424, 59, 60, 58, 442, 60, 444, 76, 363, 364,
1004 433, 77, 367, 378, 566, 405, 381, 82, 76, 38,
1005 526, 375, 59, 149, 77, 50, 51, 52, 154, 155,
1006 582, 27, 422, 159, 160, 161, 162, 163, 164, 165,
1007 166, 167, 168, 169, 170, 3, 451, 9, 467, 7,
1008 405, 83, 3, 4, 634, 479, 636, 77, 1, 414,
1009 36, 4, 5, 6, 7, 420, 77, 422, 36, 12,
1010 13, 14, 30, 78, 464, 465, 59, 60, 433, 30,
1011 499, 471, 472, 81, 489, 28, 76, 38, 1, 7,
1012 3, 4, 50, 406, 499, 59, 60, 76, 411, 50,
1013 38, 59, 60, 678, 59, 60, 76, 526, 59, 464,
1014 465, 686, 30, 515, 83, 621, 471, 472, 537, 3,
1015 615, 526, 3, 4, 77, 78, 7, 76, 499, 77,
1016 78, 499, 50, 538, 260, 261, 83, 499, 36, 82,
1017 76, 59, 60, 76, 499, 76, 30, 32, 567, 30,
1018 545, 570, 571, 555, 83, 661, 662, 587, 78, 578,
1019 544, 545, 585, 59, 60, 38, 50, 3, 4, 50,
1020 78, 7, 3, 4, 593, 59, 60, 78, 59, 60,
1021 76, 600, 59, 60, 555, 89, 90, 555, 464, 465,
1022 545, 545, 611, 555, 30, 83, 634, 587, 636, 30,
1023 555, 4, 621, 6, 7, 76, 332, 3, 77, 12,
1024 13, 14, 78, 81, 50, 78, 621, 78, 344, 50,
1025 38, 38, 78, 59, 643, 28, 81, 30, 59, 60,
1026 585, 1, 587, 3, 4, 5, 6, 7, 78, 83,
1027 10, 78, 12, 13, 14, 38, 665, 50, 59, 3,
1028 59, 377, 671, 7, 59, 38, 59, 60, 28, 7,
1029 30, 1, 77, 3, 4, 5, 6, 7, 8, 9,
1030 396, 11, 12, 13, 14, 15, 30, 17, 18, 19,
1031 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1032 30, 31, 77, 33, 34, 38, 50, 77, 77, 16,
1033 40, 78, 59, 43, 430, 59, 76, 59, 48, 49,
1034 50, 77, 77, 76, 54, 55, 5, 6, 7, 59,
1035 5, 6, 7, 12, 13, 14, 452, 12, 13, 14,
1036 3, 4, 5, 6, 7, 461, 462, 77, 78, 79,
1037 80, 1, 82, 3, 4, 30, 6, 7, 8, 9,
1038 17, 11, 12, 13, 14, 77, 482, 76, 76, 485,
1039 54, 55, 77, 57, 58, 59, 60, 76, 28, 29,
1040 77, 31, 9, 33, 34, 77, 502, 77, 59, 505,
1041 40, 507, 76, 43, 81, 6, 7, 77, 48, 49,
1042 50, 12, 13, 14, 54, 55, 522, 76, 1, 59,
1043 76, 4, 77, 6, 7, 77, 0, 533, 0, 12,
1044 13, 14, 46, 47, 48, 49, 50, 51, 52, 79,
1045 80, 570, 82, 213, 442, 28, 555, 292, 31, 53,
1046 556, 423, 291, 559, 1, 430, 3, 4, 5, 6,
1047 7, 8, 9, 189, 11, 12, 13, 14, 15, 505,
1048 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1049 27, 28, 29, 30, 31, 335, 33, 34, 237, 4,
1050 5, 6, 7, 40, 77, 78, 43, 12, 13, 14,
1051 606, 48, 49, 50, 327, 460, 432, 54, 55, 245,
1052 442, 1, 59, 28, 4, 5, 6, 7, 333, 394,
1053 10, 621, 12, 13, 14, 48, 49, 50, 51, 52,
1054 77, 666, 79, 80, 1, 82, 3, 4, 28, 444,
1055 30, 8, 9, 621, 11, 668, 286, -1, 15, 367,
1056 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1057 27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1058 -1, -1, -1, 40, 54, 55, 43, 57, 58, 59,
1059 60, 48, 49, 50, -1, -1, 76, 54, 55, -1,
1060 -1, -1, 59, 1, -1, -1, 4, -1, 6, 7,
1061 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1062 77, 78, 79, 80, 1, 82, 3, 4, -1, -1,
1063 28, 8, 9, 31, 11, -1, -1, -1, 15, -1,
1064 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1065 27, -1, 29, -1, 31, -1, 33, 34, -1, 4,
1066 5, 6, 7, 40, -1, 10, 43, 12, 13, 14,
1067 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1068 -1, -1, 59, 28, -1, 30, -1, -1, -1, 4,
1069 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1070 77, -1, 79, 80, 1, 82, 3, 4, -1, -1,
1071 -1, 8, 9, 28, 11, 30, -1, -1, 15, -1,
1072 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1073 27, -1, 29, -1, 31, -1, 33, 34, -1, -1,
1074 -1, -1, -1, 40, -1, -1, 43, -1, -1, -1,
1075 -1, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1076 -1, 1, 59, 3, 4, -1, -1, -1, 8, 9,
1077 -1, 11, 45, 46, 47, 48, 49, 50, 51, 52,
1078 77, -1, 79, 80, -1, 82, -1, -1, -1, 29,
1079 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1080 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1081 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1082 60, 1, -1, 3, 4, -1, -1, -1, 8, 9,
1083 -1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
1084 80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
1085 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1086 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1087 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1088 60, 1, -1, 3, -1, -1, -1, -1, 8, 9,
1089 -1, 11, -1, -1, -1, -1, -1, -1, 78, 79,
1090 80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
1091 -1, 31, -1, 33, 34, -1, 36, -1, -1, -1,
1092 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1093 50, -1, -1, -1, 54, 55, -1, -1, 58, 59,
1094 60, 1, -1, 3, -1, -1, -1, -1, 8, 9,
1095 -1, 11, -1, -1, -1, -1, -1, -1, -1, 79,
1096 80, -1, 82, -1, -1, -1, -1, -1, -1, 29,
1097 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1098 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1099 50, -1, -1, -1, 54, 55, 1, -1, 3, 59,
1100 -1, -1, -1, 8, 9, 1, 11, -1, 4, 5,
1101 6, 7, -1, -1, -1, -1, 12, 13, 14, 79,
1102 80, -1, 82, -1, 29, -1, 31, -1, 33, 34,
1103 -1, 27, 28, -1, 30, 40, -1, -1, 43, -1,
1104 36, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1105 55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
1106 -1, -1, -1, 59, 60, -1, -1, 1, -1, -1,
1107 4, 5, 6, 7, 79, 80, -1, 82, 12, 13,
1108 14, 77, 3, -1, -1, 81, 82, 8, 9, -1,
1109 11, -1, -1, 27, 28, -1, 30, -1, -1, -1,
1110 -1, -1, 36, -1, -1, -1, -1, -1, 29, 3,
1111 31, -1, 33, 34, 8, 9, -1, 11, -1, 40,
1112 -1, -1, 43, -1, -1, 59, 60, 48, 49, 50,
1113 -1, -1, -1, 54, 55, 29, -1, 31, 59, 33,
1114 34, -1, -1, 77, -1, -1, 40, 81, 82, 43,
1115 -1, -1, -1, -1, 48, 49, 50, -1, 79, 80,
1116 54, 55, 83, -1, 3, 59, -1, -1, -1, 8,
1117 9, -1, 11, 41, 42, 43, 44, 45, 46, 47,
1118 48, 49, 50, 51, 52, 79, 80, -1, -1, 83,
1119 29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
1120 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1121 49, 50, -1, -1, -1, 54, 55, 29, -1, 31,
1122 59, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1123 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1124 79, 80, 54, 55, 83, -1, 3, 59, -1, -1,
1125 -1, 8, 9, -1, 11, 42, 43, 44, 45, 46,
1126 47, 48, 49, 50, 51, 52, -1, 79, 80, -1,
1127 -1, 83, 29, 3, 31, -1, 33, 34, 8, 9,
1128 -1, 11, -1, 40, -1, -1, 43, -1, -1, -1,
1129 -1, 48, 49, 50, -1, -1, -1, 54, 55, 29,
1130 -1, 31, 59, 33, 34, -1, -1, -1, -1, -1,
1131 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1132 50, -1, 79, 80, 54, 55, 83, -1, 3, 59,
1133 -1, -1, -1, 8, 9, -1, 11, 43, 44, 45,
1134 46, 47, 48, 49, 50, 51, 52, -1, -1, 79,
1135 80, -1, -1, 83, 29, -1, 31, -1, 33, 34,
1136 10, -1, -1, -1, -1, 40, -1, -1, 43, -1,
1137 -1, -1, -1, 48, 49, 50, -1, -1, -1, 54,
1138 55, -1, -1, -1, 59, 35, 36, 37, 38, 39,
1139 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1140 50, 51, 52, -1, 79, 80, -1, -1, 83, 3,
1141 4, 5, 6, 7, 8, 9, -1, 11, 12, 13,
1142 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1143 24, 25, 26, 27, 28, 29, 30, 31, -1, 33,
1144 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1145 -1, -1, -1, -1, 48, 49, 50, 30, -1, -1,
1146 54, 55, 35, 36, 37, 59, 39, 40, 41, 42,
1147 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1148 -1, -1, -1, 77, -1, 79, 80, -1, 82, 3,
1149 4, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1150 -1, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1151 24, 25, 26, 27, -1, 29, -1, 31, -1, 33,
1152 34, -1, -1, -1, -1, -1, 40, -1, -1, 43,
1153 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1154 54, 55, -1, 3, -1, 59, -1, -1, 8, 9,
1155 -1, 11, 44, 45, 46, 47, 48, 49, 50, 51,
1156 52, -1, -1, 77, -1, 79, 80, -1, 82, 29,
1157 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1158 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1159 50, -1, -1, -1, 54, 55, -1, -1, -1, 59,
1160 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1161 13, 14, -1, -1, -1, -1, -1, -1, -1, 79,
1162 80, -1, 82, -1, -1, 28, 29, 30, 31, -1,
1163 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1164 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1165 -1, 54, 55, -1, 3, 4, 59, 6, 7, 8,
1166 9, -1, 11, 12, 13, 14, -1, 3, -1, -1,
1167 -1, -1, 8, 9, -1, 11, 79, 80, -1, 28,
1168 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1169 -1, 40, -1, 29, 43, 31, -1, 33, 34, 48,
1170 49, 50, -1, -1, 40, 54, 55, 43, -1, -1,
1171 59, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1172 3, -1, -1, 59, -1, 8, 9, -1, 11, -1,
1173 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
1174 -1, 77, -1, 79, 80, -1, 29, 3, 31, -1,
1175 33, 34, 8, 9, -1, 11, -1, 40, -1, -1,
1176 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1177 -1, 54, 55, 29, 3, 31, 59, 33, 34, 8,
1178 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1179 -1, -1, 48, 49, 50, -1, 79, 80, 54, 55,
1180 29, 3, 31, 59, 33, 34, 8, 9, -1, 11,
1181 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1182 49, 50, -1, 79, 80, 54, 55, 29, -1, 31,
1183 59, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1184 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1185 79, 80, 54, 55, -1, -1, 1, 59, 3, 4,
1186 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1187 -1, -1, -1, -1, -1, -1, -1, 79, 80, -1,
1188 -1, -1, 27, 28, -1, 30, 31, 4, 5, 6,
1189 7, 4, 5, 6, 7, 12, 13, 14, -1, 12,
1190 13, 14, -1, -1, 10, 50, -1, -1, -1, -1,
1191 -1, 28, -1, 30, 59, 28, -1, 30, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
1193 36, 37, 77, 39, 40, 41, 42, 43, 44, 45,
1194 46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
1195 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1196 77, -1, -1, -1, 77, -1, -1, -1, -1, -1,
1197 -1, -1, -1, -1, 35, 36, 37, 83, 39, 40,
1198 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1199 51, 52, 35, 36, 37, 38, 39, 40, 41, 42,
1200 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1201 -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
1202 36, 37, 83, 39, 40, 41, 42, 43, 44, 45,
1203 46, 47, 48, 49, 50, 51, 52, 37, -1, 39,
1204 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1207 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1208 #line 3 "/usr/lib/bison.simple"
1210 /* Skeleton output parser for bison,
1211 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1213 This program is free software; you can redistribute it and/or modify
1214 it under the terms of the GNU General Public License as published by
1215 the Free Software Foundation; either version 2, or (at your option)
1218 This program is distributed in the hope that it will be useful,
1219 but WITHOUT ANY WARRANTY; without even the implied warranty of
1220 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1221 GNU General Public License for more details.
1223 You should have received a copy of the GNU General Public License
1224 along with this program; if not, write to the Free Software
1225 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1227 /* As a special exception, when this file is copied by Bison into a
1228 Bison output file, you may use that output file without restriction.
1229 This special exception was added by the Free Software Foundation
1230 in version 1.24 of Bison. */
1234 #define alloca __builtin_alloca
1235 #else /* not GNU C. */
1236 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1238 #else /* not sparc */
1239 #if defined (MSDOS) && !defined (__TURBOC__)
1241 #else /* not MSDOS, or __TURBOC__ */
1245 #else /* not MSDOS, __TURBOC__, or _AIX */
1249 void *alloca (unsigned int);
1251 #else /* not __cplusplus */
1253 #endif /* not __cplusplus */
1255 #endif /* not _AIX */
1256 #endif /* not MSDOS, or __TURBOC__ */
1257 #endif /* not sparc. */
1258 #endif /* not GNU C. */
1259 #endif /* alloca not defined. */
1261 /* This is the parser code that is written into each bison parser
1262 when the %semantic_parser declaration is not specified in the grammar.
1263 It was written by Richard Stallman by simplifying the hairy parser
1264 used when %semantic_parser is specified. */
1266 /* Note: there must be only one dollar sign in this file.
1267 It is replaced by the list of actions, each action
1268 as one case of the switch. */
1270 #define yyerrok (yyerrstatus = 0)
1271 #define yyclearin (yychar = YYEMPTY)
1274 #define YYACCEPT return(0)
1275 #define YYABORT return(1)
1276 #define YYERROR goto yyerrlab1
1277 /* Like YYERROR except do call yyerror.
1278 This remains here temporarily to ease the
1279 transition to the new meaning of YYERROR, for GCC.
1280 Once GCC version 2 has supplanted version 1, this can go. */
1281 #define YYFAIL goto yyerrlab
1282 #define YYRECOVERING() (!!yyerrstatus)
1283 #define YYBACKUP(token, value) \
1285 if (yychar == YYEMPTY && yylen == 1) \
1286 { yychar = (token), yylval = (value); \
1287 yychar1 = YYTRANSLATE (yychar); \
1292 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1296 #define YYERRCODE 256
1299 #define YYLEX yylex()
1305 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1307 #define YYLEX yylex(&yylval, &yylloc)
1309 #else /* not YYLSP_NEEDED */
1311 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1313 #define YYLEX yylex(&yylval)
1315 #endif /* not YYLSP_NEEDED */
1318 /* If nonreentrant, generate the variables here */
1322 int yychar
; /* the lookahead symbol */
1323 YYSTYPE yylval
; /* the semantic value of the */
1324 /* lookahead symbol */
1327 YYLTYPE yylloc
; /* location data for the lookahead */
1331 int yynerrs
; /* number of parse errors so far */
1332 #endif /* not YYPURE */
1335 int yydebug
; /* nonzero means print parse trace */
1336 /* Since this is uninitialized, it does not stop multiple parsers
1340 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1343 #define YYINITDEPTH 200
1346 /* YYMAXDEPTH is the maximum size the stacks can grow to
1347 (effective only if the built-in stack extension method is used). */
1354 #define YYMAXDEPTH 10000
1357 /* Prevent warning if -Wstrict-prototypes. */
1362 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1363 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1364 #else /* not GNU C or C++ */
1367 /* This is the most reliable way to avoid incompatibilities
1368 in available built-in functions on various systems. */
1370 __yy_memcpy (to
, from
, count
)
1375 register char *f
= from
;
1376 register char *t
= to
;
1377 register int i
= count
;
1383 #else /* __cplusplus */
1385 /* This is the most reliable way to avoid incompatibilities
1386 in available built-in functions on various systems. */
1388 __yy_memcpy (char *to
, char *from
, int count
)
1390 register char *f
= from
;
1391 register char *t
= to
;
1392 register int i
= count
;
1401 #line 196 "/usr/lib/bison.simple"
1403 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1404 into yyparse. The argument should have type void *.
1405 It should actually point to an object.
1406 Grammar actions can access the variable by casting it
1407 to the proper pointer type. */
1409 #ifdef YYPARSE_PARAM
1411 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1412 #define YYPARSE_PARAM_DECL
1413 #else /* not __cplusplus */
1414 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1415 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1416 #endif /* not __cplusplus */
1417 #else /* not YYPARSE_PARAM */
1418 #define YYPARSE_PARAM_ARG
1419 #define YYPARSE_PARAM_DECL
1420 #endif /* not YYPARSE_PARAM */
1423 yyparse(YYPARSE_PARAM_ARG
)
1426 register int yystate
;
1428 register short *yyssp
;
1429 register YYSTYPE
*yyvsp
;
1430 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1431 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1433 short yyssa
[YYINITDEPTH
]; /* the state stack */
1434 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1436 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1437 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1440 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1441 YYLTYPE
*yyls
= yylsa
;
1444 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1446 #define YYPOPSTACK (yyvsp--, yyssp--)
1449 int yystacksize
= YYINITDEPTH
;
1460 YYSTYPE yyval
; /* the variable used to return */
1461 /* semantic values from the action */
1468 fprintf(stderr
, "Starting parse\n");
1474 yychar
= YYEMPTY
; /* Cause a token to be read. */
1476 /* Initialize stack pointers.
1477 Waste one element of value and location stack
1478 so that they stay on the same level as the state stack.
1479 The wasted elements are never initialized. */
1487 /* Push a new state, which is found in yystate . */
1488 /* In all cases, when you get here, the value and location stacks
1489 have just been pushed. so pushing a state here evens the stacks. */
1494 if (yyssp
>= yyss
+ yystacksize
- 1)
1496 /* Give user a chance to reallocate the stack */
1497 /* Use copies of these so that the &'s don't force the real ones into memory. */
1498 YYSTYPE
*yyvs1
= yyvs
;
1499 short *yyss1
= yyss
;
1501 YYLTYPE
*yyls1
= yyls
;
1504 /* Get the current used size of the three stacks, in elements. */
1505 int size
= yyssp
- yyss
+ 1;
1508 /* Each stack pointer address is followed by the size of
1509 the data in use in that stack, in bytes. */
1511 /* This used to be a conditional around just the two extra args,
1512 but that might be undefined if yyoverflow is a macro. */
1513 yyoverflow("parser stack overflow",
1514 &yyss1
, size
* sizeof (*yyssp
),
1515 &yyvs1
, size
* sizeof (*yyvsp
),
1516 &yyls1
, size
* sizeof (*yylsp
),
1519 yyoverflow("parser stack overflow",
1520 &yyss1
, size
* sizeof (*yyssp
),
1521 &yyvs1
, size
* sizeof (*yyvsp
),
1525 yyss
= yyss1
; yyvs
= yyvs1
;
1529 #else /* no yyoverflow */
1530 /* Extend the stack our own way. */
1531 if (yystacksize
>= YYMAXDEPTH
)
1533 yyerror("parser stack overflow");
1537 if (yystacksize
> YYMAXDEPTH
)
1538 yystacksize
= YYMAXDEPTH
;
1539 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1540 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1541 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1542 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1544 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1545 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1547 #endif /* no yyoverflow */
1549 yyssp
= yyss
+ size
- 1;
1550 yyvsp
= yyvs
+ size
- 1;
1552 yylsp
= yyls
+ size
- 1;
1557 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1560 if (yyssp
>= yyss
+ yystacksize
- 1)
1566 fprintf(stderr
, "Entering state %d\n", yystate
);
1572 /* Do appropriate processing given the current state. */
1573 /* Read a lookahead token if we need one and don't already have one. */
1576 /* First try to decide what to do without reference to lookahead token. */
1578 yyn
= yypact
[yystate
];
1582 /* Not known => get a lookahead token if don't already have one. */
1584 /* yychar is either YYEMPTY or YYEOF
1585 or a valid token in external form. */
1587 if (yychar
== YYEMPTY
)
1591 fprintf(stderr
, "Reading a token: ");
1596 /* Convert token to internal form (in yychar1) for indexing tables with */
1598 if (yychar
<= 0) /* This means end of input. */
1601 yychar
= YYEOF
; /* Don't call YYLEX any more */
1605 fprintf(stderr
, "Now at end of input.\n");
1610 yychar1
= YYTRANSLATE(yychar
);
1615 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1616 /* Give the individual parser a way to print the precise meaning
1617 of a token, for further debugging info. */
1619 YYPRINT (stderr
, yychar
, yylval
);
1621 fprintf (stderr
, ")\n");
1627 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1632 /* yyn is what to do for this token type in this state.
1633 Negative => reduce, -yyn is rule number.
1634 Positive => shift, yyn is new state.
1635 New state is final state => don't bother to shift,
1636 just return success.
1637 0, or most negative number => error. */
1652 /* Shift the lookahead token. */
1656 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1659 /* Discard the token being shifted unless it is eof. */
1660 if (yychar
!= YYEOF
)
1668 /* count tokens shifted since error; after three, turn off error status. */
1669 if (yyerrstatus
) yyerrstatus
--;
1674 /* Do the default action for the current state. */
1677 yyn
= yydefact
[yystate
];
1681 /* Do a reduction. yyn is the number of a rule to reduce with. */
1685 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1692 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1695 /* Print the symbols being reduced, and their result. */
1696 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1697 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1698 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1706 #line 234 "c-parse.y"
1708 pedwarn ("ANSI C forbids an empty source file");
1713 #line 239 "c-parse.y"
1715 /* In case there were missing closebraces,
1716 get us back to the global binding level. */
1717 while (! global_bindings_p ())
1723 #line 253 "c-parse.y"
1724 {yyval
.ttype
= NULL_TREE
; ;
1727 #line 254 "c-parse.y"
1728 {yyval
.ttype
= NULL_TREE
; ;
1731 #line 261 "c-parse.y"
1732 { STRIP_NOPS (yyvsp
[-2].ttype
);
1733 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1734 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1735 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1736 assemble_asm (yyvsp
[-2].ttype
);
1738 error ("argument of `asm' is not a constant string"); ;
1741 #line 269 "c-parse.y"
1742 { pedantic
= yyvsp
[-1].itype
; ;
1745 #line 274 "c-parse.y"
1747 error ("ANSI C forbids data definition with no type or storage class");
1748 else if (!flag_traditional
)
1749 warning ("data definition has no type or storage class");
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 284 "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 289 "c-parse.y"
1765 { current_declspecs
= TREE_VALUE (declspec_stack
);
1766 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1767 declspec_stack
= TREE_CHAIN (declspec_stack
);
1768 resume_momentary (yyvsp
[-2].itype
); ;
1771 #line 294 "c-parse.y"
1772 { pedwarn ("empty declaration"); ;
1775 #line 296 "c-parse.y"
1776 { shadow_tag (yyvsp
[-1].ttype
); ;
1779 #line 300 "c-parse.y"
1781 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1784 #line 306 "c-parse.y"
1785 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1786 prefix_attributes
, NULL_TREE
, 0))
1788 reinit_parse_for_function (); ;
1791 #line 311 "c-parse.y"
1792 { store_parm_decls (); ;
1795 #line 313 "c-parse.y"
1796 { finish_function (0);
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
[-5].itype
); ;
1803 #line 319 "c-parse.y"
1804 { current_declspecs
= TREE_VALUE (declspec_stack
);
1805 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1806 declspec_stack
= TREE_CHAIN (declspec_stack
);
1807 resume_momentary (yyvsp
[-2].itype
); ;
1810 #line 324 "c-parse.y"
1811 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1812 prefix_attributes
, NULL_TREE
, 0))
1814 reinit_parse_for_function (); ;
1817 #line 329 "c-parse.y"
1818 { store_parm_decls (); ;
1821 #line 331 "c-parse.y"
1822 { finish_function (0);
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
[-5].itype
); ;
1829 #line 337 "c-parse.y"
1830 { current_declspecs
= TREE_VALUE (declspec_stack
);
1831 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1832 declspec_stack
= TREE_CHAIN (declspec_stack
);
1833 resume_momentary (yyvsp
[-2].itype
); ;
1836 #line 342 "c-parse.y"
1837 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1838 prefix_attributes
, NULL_TREE
, 0))
1840 reinit_parse_for_function (); ;
1843 #line 347 "c-parse.y"
1844 { store_parm_decls (); ;
1847 #line 349 "c-parse.y"
1848 { finish_function (0);
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
[-5].itype
); ;
1855 #line 355 "c-parse.y"
1856 { current_declspecs
= TREE_VALUE (declspec_stack
);
1857 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1858 declspec_stack
= TREE_CHAIN (declspec_stack
);
1859 resume_momentary (yyvsp
[-2].itype
); ;
1862 #line 367 "c-parse.y"
1863 { yyval
.code
= ADDR_EXPR
; ;
1866 #line 369 "c-parse.y"
1867 { yyval
.code
= NEGATE_EXPR
; ;
1870 #line 371 "c-parse.y"
1871 { yyval
.code
= CONVERT_EXPR
; ;
1874 #line 373 "c-parse.y"
1875 { yyval
.code
= PREINCREMENT_EXPR
; ;
1878 #line 375 "c-parse.y"
1879 { yyval
.code
= PREDECREMENT_EXPR
; ;
1882 #line 377 "c-parse.y"
1883 { yyval
.code
= BIT_NOT_EXPR
; ;
1886 #line 379 "c-parse.y"
1887 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1890 #line 383 "c-parse.y"
1891 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1894 #line 388 "c-parse.y"
1895 { yyval
.ttype
= NULL_TREE
; ;
1898 #line 394 "c-parse.y"
1899 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1902 #line 396 "c-parse.y"
1903 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1906 #line 402 "c-parse.y"
1907 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1910 #line 405 "c-parse.y"
1911 { yyval
.ttype
= yyvsp
[0].ttype
;
1912 pedantic
= yyvsp
[-1].itype
; ;
1915 #line 408 "c-parse.y"
1916 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1917 overflow_warning (yyval
.ttype
); ;
1920 #line 412 "c-parse.y"
1921 { tree label
= lookup_label (yyvsp
[0].ttype
);
1923 pedwarn ("ANSI C forbids `&&'");
1925 yyval
.ttype
= null_pointer_node
;
1928 TREE_USED (label
) = 1;
1929 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1930 TREE_CONSTANT (yyval
.ttype
) = 1;
1935 #line 440 "c-parse.y"
1936 { skip_evaluation
--;
1937 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1938 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1939 error ("`sizeof' applied to a bit-field");
1940 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1943 #line 446 "c-parse.y"
1944 { skip_evaluation
--;
1945 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1948 #line 449 "c-parse.y"
1949 { skip_evaluation
--;
1950 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1953 #line 452 "c-parse.y"
1954 { skip_evaluation
--;
1955 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1958 #line 455 "c-parse.y"
1959 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1962 #line 457 "c-parse.y"
1963 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1966 #line 461 "c-parse.y"
1967 { skip_evaluation
++; ;
1970 #line 465 "c-parse.y"
1971 { skip_evaluation
++; ;
1974 #line 471 "c-parse.y"
1975 { tree type
= groktypename (yyvsp
[-2].ttype
);
1976 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1979 #line 474 "c-parse.y"
1980 { start_init (NULL_TREE
, NULL
, 0);
1981 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1982 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1985 #line 478 "c-parse.y"
1987 tree result
= pop_init_level (0);
1988 tree type
= yyvsp
[-5].ttype
;
1991 if (pedantic
&& ! flag_isoc9x
)
1992 pedwarn ("ANSI C forbids constructor expressions");
1993 if (TYPE_NAME (type
) != 0)
1995 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1996 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1998 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2002 yyval
.ttype
= result
;
2003 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2005 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2012 #line 507 "c-parse.y"
2013 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2016 #line 509 "c-parse.y"
2017 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2020 #line 511 "c-parse.y"
2021 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2024 #line 513 "c-parse.y"
2025 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2028 #line 515 "c-parse.y"
2029 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2032 #line 517 "c-parse.y"
2033 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2036 #line 519 "c-parse.y"
2037 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2040 #line 521 "c-parse.y"
2041 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2044 #line 523 "c-parse.y"
2045 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2048 #line 525 "c-parse.y"
2049 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2052 #line 527 "c-parse.y"
2053 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2056 #line 529 "c-parse.y"
2057 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2060 #line 531 "c-parse.y"
2061 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2062 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2065 #line 534 "c-parse.y"
2066 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2067 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2070 #line 537 "c-parse.y"
2071 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2072 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2075 #line 540 "c-parse.y"
2076 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2077 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2080 #line 543 "c-parse.y"
2081 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2082 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2085 #line 546 "c-parse.y"
2086 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2087 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2090 #line 549 "c-parse.y"
2091 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2092 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2095 #line 552 "c-parse.y"
2097 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2098 /* Make sure first operand is calculated only once. */
2099 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2100 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2101 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2104 #line 559 "c-parse.y"
2105 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2106 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2109 #line 562 "c-parse.y"
2111 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2112 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2113 if (class == 'e' || class == '1'
2114 || class == '2' || class == '<')
2115 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2119 #line 570 "c-parse.y"
2121 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2122 /* This inhibits warnings in truthvalue_conversion. */
2123 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2124 if (class == 'e' || class == '1'
2125 || class == '2' || class == '<')
2126 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2130 #line 582 "c-parse.y"
2132 yyval
.ttype
= lastiddecl
;
2133 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2135 if (yychar
== YYEMPTY
)
2140 /* Ordinary implicit function declaration. */
2141 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2142 assemble_external (yyval
.ttype
);
2143 TREE_USED (yyval
.ttype
) = 1;
2146 else if (current_function_decl
== 0)
2148 error ("`%s' undeclared here (not in a function)",
2149 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2150 yyval
.ttype
= error_mark_node
;
2155 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2156 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2158 error ("`%s' undeclared (first use in this function)",
2159 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2161 if (! undeclared_variable_notice
)
2163 error ("(Each undeclared identifier is reported only once");
2164 error ("for each function it appears in.)");
2165 undeclared_variable_notice
= 1;
2168 yyval
.ttype
= error_mark_node
;
2169 /* Prevent repeated error messages. */
2170 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2171 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2175 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2176 yyval
.ttype
= error_mark_node
;
2177 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2179 /* The first time we see a build-in function used,
2180 if it has not been declared. */
2181 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2182 if (yychar
== YYEMPTY
)
2186 /* Omit the implicit declaration we
2187 would ordinarily do, so we don't lose
2188 the actual built in type.
2189 But print a diagnostic for the mismatch. */
2190 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2191 error ("`%s' implicitly declared as function",
2192 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2193 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2194 != TYPE_MODE (integer_type_node
))
2195 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2197 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2198 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2199 /* If it really returns void, change that to int. */
2200 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2201 TREE_TYPE (yyval
.ttype
)
2202 = build_function_type (integer_type_node
,
2203 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2206 pedwarn ("built-in function `%s' used without declaration",
2207 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2209 /* Do what we would ordinarily do when a fn is used. */
2210 assemble_external (yyval
.ttype
);
2211 TREE_USED (yyval
.ttype
) = 1;
2215 assemble_external (yyval
.ttype
);
2216 TREE_USED (yyval
.ttype
) = 1;
2219 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2221 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2222 /* This is to prevent an enum whose value is 0
2223 from being considered a null pointer constant. */
2224 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2225 TREE_CONSTANT (yyval
.ttype
) = 1;
2230 #line 681 "c-parse.y"
2231 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2234 #line 683 "c-parse.y"
2235 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2236 if (class == 'e' || class == '1'
2237 || class == '2' || class == '<')
2238 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2239 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2242 #line 689 "c-parse.y"
2243 { yyval
.ttype
= error_mark_node
; ;
2246 #line 691 "c-parse.y"
2247 { if (current_function_decl
== 0)
2249 error ("braced-group within expression allowed only inside a function");
2252 /* We must force a BLOCK for this level
2253 so that, if it is not expanded later,
2254 there is a way to turn off the entire subtree of blocks
2255 that are contained in it. */
2257 push_iterator_stack ();
2258 push_label_level ();
2259 yyval
.ttype
= expand_start_stmt_expr (); ;
2262 #line 705 "c-parse.y"
2265 pedwarn ("ANSI C forbids braced-groups within expressions");
2266 pop_iterator_stack ();
2268 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2269 /* The statements have side effects, so the group does. */
2270 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2272 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2274 /* Make a BIND_EXPR for the BLOCK already made. */
2275 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2276 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2277 /* Remove the block from the tree at this point.
2278 It gets put back at the proper place
2279 when the BIND_EXPR is expanded. */
2280 delete_block (yyvsp
[-1].ttype
);
2283 yyval
.ttype
= yyvsp
[-1].ttype
;
2287 #line 728 "c-parse.y"
2288 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2291 #line 730 "c-parse.y"
2292 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2295 #line 732 "c-parse.y"
2297 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2301 #line 736 "c-parse.y"
2303 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2305 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2309 #line 742 "c-parse.y"
2310 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2313 #line 744 "c-parse.y"
2314 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2317 #line 751 "c-parse.y"
2318 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2321 #line 760 "c-parse.y"
2322 { c_mark_varargs ();
2324 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2327 #line 770 "c-parse.y"
2331 #line 786 "c-parse.y"
2332 { current_declspecs
= TREE_VALUE (declspec_stack
);
2333 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2334 declspec_stack
= TREE_CHAIN (declspec_stack
);
2335 resume_momentary (yyvsp
[-2].itype
); ;
2338 #line 791 "c-parse.y"
2339 { current_declspecs
= TREE_VALUE (declspec_stack
);
2340 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2341 declspec_stack
= TREE_CHAIN (declspec_stack
);
2342 resume_momentary (yyvsp
[-2].itype
); ;
2345 #line 796 "c-parse.y"
2346 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2347 pedwarn ("empty declaration"); ;
2350 #line 799 "c-parse.y"
2351 { pedwarn ("empty declaration"); ;
2354 #line 808 "c-parse.y"
2358 #line 823 "c-parse.y"
2359 { yyval
.itype
= suspend_momentary ();
2360 pending_xref_error ();
2361 declspec_stack
= tree_cons (prefix_attributes
,
2364 split_specs_attrs (yyvsp
[0].ttype
,
2365 ¤t_declspecs
, &prefix_attributes
); ;
2368 #line 834 "c-parse.y"
2369 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2372 #line 839 "c-parse.y"
2373 { current_declspecs
= TREE_VALUE (declspec_stack
);
2374 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2375 declspec_stack
= TREE_CHAIN (declspec_stack
);
2376 resume_momentary (yyvsp
[-2].itype
); ;
2379 #line 844 "c-parse.y"
2380 { current_declspecs
= TREE_VALUE (declspec_stack
);
2381 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2382 declspec_stack
= TREE_CHAIN (declspec_stack
);
2383 resume_momentary (yyvsp
[-2].itype
); ;
2386 #line 849 "c-parse.y"
2387 { current_declspecs
= TREE_VALUE (declspec_stack
);
2388 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2389 declspec_stack
= TREE_CHAIN (declspec_stack
);
2390 resume_momentary (yyvsp
[-1].itype
); ;
2393 #line 854 "c-parse.y"
2394 { current_declspecs
= TREE_VALUE (declspec_stack
);
2395 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2396 declspec_stack
= TREE_CHAIN (declspec_stack
);
2397 resume_momentary (yyvsp
[-1].itype
); ;
2400 #line 859 "c-parse.y"
2401 { shadow_tag (yyvsp
[-1].ttype
); ;
2404 #line 861 "c-parse.y"
2405 { pedwarn ("empty declaration"); ;
2408 #line 863 "c-parse.y"
2409 { pedantic
= yyvsp
[-1].itype
; ;
2412 #line 873 "c-parse.y"
2413 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2416 #line 875 "c-parse.y"
2417 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2420 #line 879 "c-parse.y"
2421 { yyval
.ttype
= NULL_TREE
; ;
2424 #line 881 "c-parse.y"
2425 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2428 #line 883 "c-parse.y"
2429 { if (extra_warnings
)
2430 warning ("`%s' is not at beginning of declaration",
2431 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2432 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2435 #line 888 "c-parse.y"
2436 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2439 #line 893 "c-parse.y"
2440 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2443 #line 895 "c-parse.y"
2444 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2447 #line 900 "c-parse.y"
2448 { yyval
.ttype
= NULL_TREE
; ;
2451 #line 902 "c-parse.y"
2452 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2455 #line 904 "c-parse.y"
2456 { if (extra_warnings
)
2457 warning ("`%s' is not at beginning of declaration",
2458 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2459 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2462 #line 917 "c-parse.y"
2463 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2466 #line 919 "c-parse.y"
2467 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2470 #line 921 "c-parse.y"
2471 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2474 #line 923 "c-parse.y"
2475 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2478 #line 928 "c-parse.y"
2479 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2480 TREE_STATIC (yyval
.ttype
) = 1; ;
2483 #line 931 "c-parse.y"
2484 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2487 #line 933 "c-parse.y"
2488 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2489 TREE_STATIC (yyval
.ttype
) = 1; ;
2492 #line 936 "c-parse.y"
2493 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2494 warning ("`%s' is not at beginning of declaration",
2495 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2496 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2497 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2500 #line 950 "c-parse.y"
2501 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2504 #line 952 "c-parse.y"
2505 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2508 #line 956 "c-parse.y"
2509 { yyval
.ttype
= NULL_TREE
; ;
2512 #line 958 "c-parse.y"
2513 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2516 #line 968 "c-parse.y"
2517 { /* For a typedef name, record the meaning, not the name.
2518 In case of `foo foo, bar;'. */
2519 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2522 #line 972 "c-parse.y"
2523 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2526 #line 974 "c-parse.y"
2527 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2530 #line 996 "c-parse.y"
2531 { yyval
.ttype
= NULL_TREE
; ;
2534 #line 998 "c-parse.y"
2535 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2536 yyval
.ttype
= yyvsp
[-1].ttype
;
2540 #line 1005 "c-parse.y"
2541 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2542 yyvsp
[-1].ttype
, prefix_attributes
);
2543 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2546 #line 1010 "c-parse.y"
2548 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2551 #line 1013 "c-parse.y"
2552 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2553 yyvsp
[0].ttype
, prefix_attributes
);
2554 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2558 #line 1021 "c-parse.y"
2559 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2560 yyvsp
[-1].ttype
, prefix_attributes
);
2561 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2564 #line 1026 "c-parse.y"
2566 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2567 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2570 #line 1030 "c-parse.y"
2571 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2572 yyvsp
[0].ttype
, prefix_attributes
);
2573 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2576 #line 1038 "c-parse.y"
2577 { yyval
.ttype
= NULL_TREE
; ;
2580 #line 1040 "c-parse.y"
2581 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2584 #line 1045 "c-parse.y"
2585 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2588 #line 1047 "c-parse.y"
2589 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2592 #line 1052 "c-parse.y"
2593 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2596 #line 1057 "c-parse.y"
2597 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2600 #line 1059 "c-parse.y"
2601 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2604 #line 1064 "c-parse.y"
2605 { yyval
.ttype
= NULL_TREE
; ;
2608 #line 1066 "c-parse.y"
2609 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2612 #line 1068 "c-parse.y"
2613 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2616 #line 1070 "c-parse.y"
2617 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2620 #line 1072 "c-parse.y"
2621 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2624 #line 1090 "c-parse.y"
2625 { really_start_incremental_init (NULL_TREE
);
2626 /* Note that the call to clear_momentary
2627 is in process_init_element. */
2628 push_momentary (); ;
2631 #line 1095 "c-parse.y"
2632 { yyval
.ttype
= pop_init_level (0);
2633 if (yyval
.ttype
== error_mark_node
2634 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2637 pop_momentary_nofree (); ;
2640 #line 1103 "c-parse.y"
2641 { yyval
.ttype
= error_mark_node
; ;
2644 #line 1109 "c-parse.y"
2646 pedwarn ("ANSI C forbids empty initializer braces"); ;
2649 #line 1125 "c-parse.y"
2650 { set_init_label (yyvsp
[-1].ttype
); ;
2653 #line 1132 "c-parse.y"
2654 { push_init_level (0); ;
2657 #line 1134 "c-parse.y"
2658 { process_init_element (pop_init_level (0)); ;
2661 #line 1136 "c-parse.y"
2662 { process_init_element (yyvsp
[0].ttype
); ;
2665 #line 1147 "c-parse.y"
2666 { set_init_label (yyvsp
[0].ttype
); ;
2669 #line 1152 "c-parse.y"
2670 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2673 #line 1154 "c-parse.y"
2674 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2677 #line 1159 "c-parse.y"
2678 { push_c_function_context ();
2679 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2680 prefix_attributes
, NULL_TREE
, 1))
2682 pop_c_function_context ();
2685 reinit_parse_for_function (); ;
2688 #line 1168 "c-parse.y"
2689 { store_parm_decls (); ;
2692 #line 1176 "c-parse.y"
2693 { finish_function (1);
2694 pop_c_function_context (); ;
2697 #line 1182 "c-parse.y"
2698 { push_c_function_context ();
2699 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2700 prefix_attributes
, NULL_TREE
, 1))
2702 pop_c_function_context ();
2705 reinit_parse_for_function (); ;
2708 #line 1191 "c-parse.y"
2709 { store_parm_decls (); ;
2712 #line 1199 "c-parse.y"
2713 { finish_function (1);
2714 pop_c_function_context (); ;
2717 #line 1215 "c-parse.y"
2718 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2721 #line 1217 "c-parse.y"
2722 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2725 #line 1222 "c-parse.y"
2726 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2729 #line 1224 "c-parse.y"
2730 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2733 #line 1226 "c-parse.y"
2734 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2737 #line 1233 "c-parse.y"
2738 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2741 #line 1244 "c-parse.y"
2742 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2745 #line 1249 "c-parse.y"
2746 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2748 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2752 #line 1254 "c-parse.y"
2753 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2756 #line 1256 "c-parse.y"
2757 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2760 #line 1258 "c-parse.y"
2761 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2764 #line 1265 "c-parse.y"
2765 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2768 #line 1274 "c-parse.y"
2769 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2772 #line 1279 "c-parse.y"
2773 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2776 #line 1281 "c-parse.y"
2777 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2780 #line 1283 "c-parse.y"
2781 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2783 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2787 #line 1288 "c-parse.y"
2788 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2791 #line 1290 "c-parse.y"
2792 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2795 #line 1297 "c-parse.y"
2796 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2799 #line 1303 "c-parse.y"
2800 { yyval
.ttype
= NULL_TREE
; ;
2803 #line 1305 "c-parse.y"
2804 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2807 #line 1310 "c-parse.y"
2808 { yyval
.ttype
= NULL_TREE
; ;
2811 #line 1312 "c-parse.y"
2812 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2815 #line 1317 "c-parse.y"
2816 { yyval
.ttype
= NULL_TREE
; ;
2819 #line 1319 "c-parse.y"
2820 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2823 #line 1324 "c-parse.y"
2824 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2825 /* Start scope of tag before parsing components. */
2829 #line 1328 "c-parse.y"
2830 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2833 #line 1330 "c-parse.y"
2834 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2835 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2839 #line 1334 "c-parse.y"
2840 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2843 #line 1336 "c-parse.y"
2844 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2847 #line 1338 "c-parse.y"
2848 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2851 #line 1340 "c-parse.y"
2852 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2853 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2857 #line 1344 "c-parse.y"
2858 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2861 #line 1346 "c-parse.y"
2862 { yyvsp
[0].itype
= suspend_momentary ();
2863 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2866 #line 1349 "c-parse.y"
2867 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
2868 resume_momentary (yyvsp
[-5].itype
); ;
2871 #line 1352 "c-parse.y"
2872 { yyvsp
[0].itype
= suspend_momentary ();
2873 yyval
.ttype
= start_enum (NULL_TREE
); ;
2876 #line 1355 "c-parse.y"
2877 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
2878 resume_momentary (yyvsp
[-5].itype
); ;
2881 #line 1358 "c-parse.y"
2882 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2885 #line 1369 "c-parse.y"
2886 { if (pedantic
&& ! flag_isoc9x
)
2887 pedwarn ("comma at end of enumerator list"); ;
2890 #line 1375 "c-parse.y"
2891 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2894 #line 1377 "c-parse.y"
2895 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2896 pedwarn ("no semicolon at end of struct or union"); ;
2899 #line 1382 "c-parse.y"
2900 { yyval
.ttype
= NULL_TREE
; ;
2903 #line 1384 "c-parse.y"
2904 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2907 #line 1386 "c-parse.y"
2909 pedwarn ("extra semicolon in struct or union specified"); ;
2912 #line 1401 "c-parse.y"
2913 { yyval
.ttype
= yyvsp
[0].ttype
;
2914 current_declspecs
= TREE_VALUE (declspec_stack
);
2915 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2916 declspec_stack
= TREE_CHAIN (declspec_stack
);
2917 resume_momentary (yyvsp
[-1].itype
); ;
2920 #line 1407 "c-parse.y"
2922 pedwarn ("ANSI C forbids member declarations with no members");
2923 shadow_tag(yyvsp
[0].ttype
);
2924 yyval
.ttype
= NULL_TREE
; ;
2927 #line 1412 "c-parse.y"
2928 { yyval
.ttype
= yyvsp
[0].ttype
;
2929 current_declspecs
= TREE_VALUE (declspec_stack
);
2930 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2931 declspec_stack
= TREE_CHAIN (declspec_stack
);
2932 resume_momentary (yyvsp
[-1].itype
); ;
2935 #line 1418 "c-parse.y"
2937 pedwarn ("ANSI C forbids member declarations with no members");
2938 shadow_tag(yyvsp
[0].ttype
);
2939 yyval
.ttype
= NULL_TREE
; ;
2942 #line 1423 "c-parse.y"
2943 { yyval
.ttype
= NULL_TREE
; ;
2946 #line 1425 "c-parse.y"
2947 { yyval
.ttype
= yyvsp
[0].ttype
;
2948 pedantic
= yyvsp
[-1].itype
; ;
2951 #line 1432 "c-parse.y"
2952 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2955 #line 1437 "c-parse.y"
2956 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2957 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2960 #line 1441 "c-parse.y"
2961 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2962 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2965 #line 1444 "c-parse.y"
2966 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2967 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2970 #line 1456 "c-parse.y"
2971 { if (yyvsp
[-2].ttype
== error_mark_node
)
2972 yyval
.ttype
= yyvsp
[-2].ttype
;
2974 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2977 #line 1461 "c-parse.y"
2978 { yyval
.ttype
= error_mark_node
; ;
2981 #line 1467 "c-parse.y"
2982 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2985 #line 1469 "c-parse.y"
2986 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2989 #line 1474 "c-parse.y"
2990 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2993 #line 1476 "c-parse.y"
2994 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2997 #line 1481 "c-parse.y"
2998 { yyval
.ttype
= NULL_TREE
; ;
3001 #line 1487 "c-parse.y"
3002 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3005 #line 1489 "c-parse.y"
3006 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3009 #line 1494 "c-parse.y"
3010 { yyval
.ttype
= NULL_TREE
; ;
3013 #line 1496 "c-parse.y"
3014 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3017 #line 1501 "c-parse.y"
3018 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3021 #line 1504 "c-parse.y"
3022 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3025 #line 1506 "c-parse.y"
3026 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3029 #line 1508 "c-parse.y"
3030 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3033 #line 1510 "c-parse.y"
3034 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3037 #line 1512 "c-parse.y"
3038 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3041 #line 1514 "c-parse.y"
3042 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3045 #line 1516 "c-parse.y"
3046 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3049 #line 1518 "c-parse.y"
3050 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3053 #line 1522 "c-parse.y"
3054 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3057 #line 1531 "c-parse.y"
3059 if (pedantic
&& yyvsp
[0].ends_in_label
)
3060 pedwarn ("ANSI C forbids label at end of compound statement");
3064 #line 1540 "c-parse.y"
3065 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3068 #line 1542 "c-parse.y"
3069 { yyval
.ends_in_label
= 0; ;
3072 #line 1554 "c-parse.y"
3073 { emit_line_note (input_filename
, lineno
);
3077 expand_start_bindings (0);
3081 #line 1567 "c-parse.y"
3083 pedwarn ("ANSI C forbids label declarations"); ;
3086 #line 1578 "c-parse.y"
3088 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3090 tree label
= shadow_label (TREE_VALUE (link
));
3091 C_DECLARED_LABEL_FLAG (label
) = 1;
3092 declare_nonlocal_label (label
);
3097 #line 1592 "c-parse.y"
3101 #line 1596 "c-parse.y"
3102 { compstmt_count
++; ;
3105 #line 1599 "c-parse.y"
3106 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3109 #line 1601 "c-parse.y"
3110 { emit_line_note (input_filename
, lineno
);
3111 expand_end_bindings (getdecls (), 1, 0);
3112 yyval
.ttype
= poplevel (1, 1, 0);
3113 if (yychar
== CONSTANT
|| yychar
== STRING
)
3114 pop_momentary_nofree ();
3119 #line 1609 "c-parse.y"
3120 { emit_line_note (input_filename
, lineno
);
3121 expand_end_bindings (getdecls (), kept_level_p (), 0);
3122 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3123 if (yychar
== CONSTANT
|| yychar
== STRING
)
3124 pop_momentary_nofree ();
3129 #line 1617 "c-parse.y"
3130 { emit_line_note (input_filename
, lineno
);
3131 expand_end_bindings (getdecls (), kept_level_p (), 0);
3132 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3133 if (yychar
== CONSTANT
|| yychar
== STRING
)
3134 pop_momentary_nofree ();
3139 #line 1637 "c-parse.y"
3140 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3141 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3143 yyval
.itype
= stmt_count
;
3144 if_stmt_file
= yyvsp
[-5].filename
;
3145 if_stmt_line
= yyvsp
[-4].lineno
;
3146 position_after_white_space (); ;
3149 #line 1651 "c-parse.y"
3152 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3153 /* See comment in `while' alternative, above. */
3155 expand_start_loop_continue_elsewhere (1);
3156 position_after_white_space (); ;
3159 #line 1659 "c-parse.y"
3160 { expand_loop_continue_here (); ;
3163 #line 1663 "c-parse.y"
3164 { yyval
.filename
= input_filename
; ;
3167 #line 1667 "c-parse.y"
3168 { yyval
.lineno
= lineno
; ;
3171 #line 1672 "c-parse.y"
3175 #line 1677 "c-parse.y"
3179 #line 1682 "c-parse.y"
3180 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3183 #line 1687 "c-parse.y"
3184 { yyval
.ends_in_label
= 0; ;
3187 #line 1689 "c-parse.y"
3188 { yyval
.ends_in_label
= 1; ;
3191 #line 1695 "c-parse.y"
3195 #line 1698 "c-parse.y"
3197 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3198 /* It appears that this should not be done--that a non-lvalue array
3199 shouldn't get an error if the value isn't used.
3200 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3201 if it appears as a top-level expression,
3202 but says nothing about non-lvalue arrays. */
3204 /* Call default_conversion to get an error
3205 on referring to a register array if pedantic. */
3206 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3207 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3208 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3210 iterator_expand (yyvsp
[-1].ttype
);
3211 clear_momentary (); ;
3214 #line 1715 "c-parse.y"
3215 { c_expand_start_else ();
3216 yyvsp
[-1].itype
= stmt_count
;
3217 position_after_white_space (); ;
3220 #line 1719 "c-parse.y"
3221 { c_expand_end_cond ();
3222 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3223 warning ("empty body in an else-statement"); ;
3226 #line 1723 "c-parse.y"
3227 { c_expand_end_cond ();
3228 /* This warning is here instead of in simple_if, because we
3229 do not want a warning if an empty if is followed by an
3230 else statement. Increment stmt_count so we don't
3231 give a second error if this is a nested `if'. */
3232 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3233 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3234 "empty body in an if-statement"); ;
3237 #line 1735 "c-parse.y"
3238 { c_expand_end_cond (); ;
3241 #line 1737 "c-parse.y"
3243 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3244 /* The emit_nop used to come before emit_line_note,
3245 but that made the nop seem like part of the preceding line.
3246 And that was confusing when the preceding line was
3247 inside of an if statement and was not really executed.
3248 I think it ought to work to put the nop after the line number.
3249 We will see. --rms, July 15, 1991. */
3253 #line 1747 "c-parse.y"
3254 { /* Don't start the loop till we have succeeded
3255 in parsing the end test. This is to make sure
3256 that we end every loop we start. */
3257 expand_start_loop (1);
3258 emit_line_note (input_filename
, lineno
);
3259 expand_exit_loop_if_false (NULL_PTR
,
3260 truthvalue_conversion (yyvsp
[-1].ttype
));
3261 position_after_white_space (); ;
3264 #line 1756 "c-parse.y"
3265 { expand_end_loop (); ;
3268 #line 1759 "c-parse.y"
3269 { emit_line_note (input_filename
, lineno
);
3270 expand_exit_loop_if_false (NULL_PTR
,
3271 truthvalue_conversion (yyvsp
[-2].ttype
));
3273 clear_momentary (); ;
3276 #line 1766 "c-parse.y"
3277 { expand_end_loop ();
3278 clear_momentary (); ;
3281 #line 1770 "c-parse.y"
3283 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3284 /* See comment in `while' alternative, above. */
3286 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3287 /* Next step is to call expand_start_loop_continue_elsewhere,
3288 but wait till after we parse the entire for (...).
3289 Otherwise, invalid input might cause us to call that
3290 fn without calling expand_end_loop. */
3294 #line 1782 "c-parse.y"
3295 { yyvsp
[0].lineno
= lineno
;
3296 yyval
.filename
= input_filename
; ;
3299 #line 1785 "c-parse.y"
3301 /* Start the loop. Doing this after parsing
3302 all the expressions ensures we will end the loop. */
3303 expand_start_loop_continue_elsewhere (1);
3304 /* Emit the end-test, with a line number. */
3305 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3306 if (yyvsp
[-4].ttype
)
3307 expand_exit_loop_if_false (NULL_PTR
,
3308 truthvalue_conversion (yyvsp
[-4].ttype
));
3309 /* Don't let the tree nodes for $9 be discarded by
3310 clear_momentary during the parsing of the next stmt. */
3312 yyvsp
[-3].lineno
= lineno
;
3313 yyvsp
[-2].filename
= input_filename
;
3314 position_after_white_space (); ;
3317 #line 1801 "c-parse.y"
3318 { /* Emit the increment expression, with a line number. */
3319 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3320 expand_loop_continue_here ();
3321 if (yyvsp
[-3].ttype
)
3322 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3323 if (yychar
== CONSTANT
|| yychar
== STRING
)
3324 pop_momentary_nofree ();
3327 expand_end_loop (); ;
3330 #line 1812 "c-parse.y"
3332 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3333 c_expand_start_case (yyvsp
[-1].ttype
);
3334 /* Don't let the tree nodes for $3 be discarded by
3335 clear_momentary during the parsing of the next stmt. */
3337 position_after_white_space (); ;
3340 #line 1820 "c-parse.y"
3341 { expand_end_case (yyvsp
[-3].ttype
);
3342 if (yychar
== CONSTANT
|| yychar
== STRING
)
3343 pop_momentary_nofree ();
3348 #line 1826 "c-parse.y"
3350 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3351 if ( ! expand_exit_something ())
3352 error ("break statement not within loop or switch"); ;
3355 #line 1831 "c-parse.y"
3357 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3358 if (! expand_continue_loop (NULL_PTR
))
3359 error ("continue statement not within a loop"); ;
3362 #line 1836 "c-parse.y"
3364 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3365 c_expand_return (NULL_TREE
); ;
3368 #line 1840 "c-parse.y"
3370 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3371 c_expand_return (yyvsp
[-1].ttype
); ;
3374 #line 1844 "c-parse.y"
3376 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3377 STRIP_NOPS (yyvsp
[-2].ttype
);
3378 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3379 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3380 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3381 expand_asm (yyvsp
[-2].ttype
);
3383 error ("argument of `asm' is not a constant string"); ;
3386 #line 1855 "c-parse.y"
3388 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3389 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3390 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3391 input_filename
, lineno
); ;
3394 #line 1862 "c-parse.y"
3396 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3397 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3398 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3399 input_filename
, lineno
); ;
3402 #line 1870 "c-parse.y"
3404 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3405 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3406 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3407 input_filename
, lineno
); ;
3410 #line 1876 "c-parse.y"
3413 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3414 decl
= lookup_label (yyvsp
[-1].ttype
);
3417 TREE_USED (decl
) = 1;
3423 #line 1887 "c-parse.y"
3425 pedwarn ("ANSI C forbids `goto *expr;'");
3427 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3428 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3431 #line 1902 "c-parse.y"
3433 /* The value returned by this action is */
3434 /* 1 if everything is OK */
3435 /* 0 in case of error or already bound iterator */
3438 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3439 error ("invalid `for (ITERATOR)' syntax");
3440 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3441 error ("`%s' is not an iterator",
3442 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3443 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3444 error ("`for (%s)' inside expansion of same iterator",
3445 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3449 iterator_for_loop_start (yyvsp
[-1].ttype
);
3454 #line 1923 "c-parse.y"
3456 if (yyvsp
[-1].itype
)
3457 iterator_for_loop_end (yyvsp
[-3].ttype
);
3461 #line 1958 "c-parse.y"
3462 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3464 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3468 if (value
!= error_mark_node
)
3473 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3474 pedwarn ("label must have integral type in ANSI C");
3476 success
= pushcase (value
, convert_and_check
,
3480 error ("case label not within a switch statement");
3481 else if (success
== 2)
3483 error ("duplicate case value");
3484 error_with_decl (duplicate
, "this is the first entry for that value");
3486 else if (success
== 3)
3487 warning ("case value out of range");
3488 else if (success
== 5)
3489 error ("case label within scope of cleanup or variable array");
3491 position_after_white_space (); ;
3494 #line 1989 "c-parse.y"
3495 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3496 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3498 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3501 pedwarn ("ANSI C forbids case ranges");
3504 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3507 int success
= pushcase_range (value1
, value2
,
3508 convert_and_check
, label
,
3511 error ("case label not within a switch statement");
3512 else if (success
== 2)
3514 error ("duplicate case value");
3515 error_with_decl (duplicate
, "this is the first entry for that value");
3517 else if (success
== 3)
3518 warning ("case value out of range");
3519 else if (success
== 4)
3520 warning ("empty case range");
3521 else if (success
== 5)
3522 error ("case label within scope of cleanup or variable array");
3524 position_after_white_space (); ;
3527 #line 2020 "c-parse.y"
3531 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3532 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3535 error ("default label not within a switch statement");
3536 else if (success
== 2)
3538 error ("multiple default labels in one switch");
3539 error_with_decl (duplicate
, "this is the first default label");
3541 position_after_white_space (); ;
3544 #line 2035 "c-parse.y"
3545 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3550 expand_label (label
);
3551 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3553 position_after_white_space (); ;
3556 #line 2050 "c-parse.y"
3557 { emit_line_note (input_filename
, lineno
);
3558 yyval
.ttype
= NULL_TREE
; ;
3561 #line 2053 "c-parse.y"
3562 { emit_line_note (input_filename
, lineno
); ;
3565 #line 2058 "c-parse.y"
3566 { yyval
.ttype
= NULL_TREE
; ;
3569 #line 2065 "c-parse.y"
3570 { yyval
.ttype
= NULL_TREE
; ;
3573 #line 2072 "c-parse.y"
3574 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3577 #line 2077 "c-parse.y"
3578 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3581 #line 2082 "c-parse.y"
3582 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3585 #line 2084 "c-parse.y"
3586 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3589 #line 2090 "c-parse.y"
3591 clear_parm_order ();
3592 declare_parm_level (0); ;
3595 #line 2094 "c-parse.y"
3596 { yyval
.ttype
= yyvsp
[0].ttype
;
3597 parmlist_tags_warning ();
3598 poplevel (0, 0, 0); ;
3601 #line 2102 "c-parse.y"
3604 pedwarn ("ANSI C forbids forward parameter declarations");
3605 /* Mark the forward decls as such. */
3606 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3607 TREE_ASM_WRITTEN (parm
) = 1;
3608 clear_parm_order (); ;
3611 #line 2110 "c-parse.y"
3612 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3615 #line 2112 "c-parse.y"
3616 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3619 #line 2118 "c-parse.y"
3620 { yyval
.ttype
= get_parm_info (0); ;
3623 #line 2120 "c-parse.y"
3624 { yyval
.ttype
= get_parm_info (0);
3625 /* Gcc used to allow this as an extension. However, it does
3626 not work for all targets, and thus has been disabled.
3627 Also, since func (...) and func () are indistinguishable,
3628 it caused problems with the code in expand_builtin which
3629 tries to verify that BUILT_IN_NEXT_ARG is being used
3631 error ("ANSI C requires a named argument before `...'");
3635 #line 2130 "c-parse.y"
3636 { yyval
.ttype
= get_parm_info (1); ;
3639 #line 2132 "c-parse.y"
3640 { yyval
.ttype
= get_parm_info (0); ;
3643 #line 2137 "c-parse.y"
3644 { push_parm_decl (yyvsp
[0].ttype
); ;
3647 #line 2139 "c-parse.y"
3648 { push_parm_decl (yyvsp
[0].ttype
); ;
3651 #line 2146 "c-parse.y"
3652 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3654 build_tree_list (prefix_attributes
,
3656 current_declspecs
= TREE_VALUE (declspec_stack
);
3657 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3658 declspec_stack
= TREE_CHAIN (declspec_stack
);
3659 resume_momentary (yyvsp
[-2].itype
); ;
3662 #line 2155 "c-parse.y"
3663 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3665 build_tree_list (prefix_attributes
,
3667 current_declspecs
= TREE_VALUE (declspec_stack
);
3668 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3669 declspec_stack
= TREE_CHAIN (declspec_stack
);
3670 resume_momentary (yyvsp
[-2].itype
); ;
3673 #line 2164 "c-parse.y"
3674 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3676 build_tree_list (prefix_attributes
,
3678 current_declspecs
= TREE_VALUE (declspec_stack
);
3679 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3680 declspec_stack
= TREE_CHAIN (declspec_stack
);
3681 resume_momentary (yyvsp
[-2].itype
); ;
3684 #line 2173 "c-parse.y"
3685 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3687 build_tree_list (prefix_attributes
,
3689 current_declspecs
= TREE_VALUE (declspec_stack
);
3690 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3691 declspec_stack
= TREE_CHAIN (declspec_stack
);
3692 resume_momentary (yyvsp
[-2].itype
); ;
3695 #line 2183 "c-parse.y"
3696 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3698 build_tree_list (prefix_attributes
,
3700 current_declspecs
= TREE_VALUE (declspec_stack
);
3701 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3702 declspec_stack
= TREE_CHAIN (declspec_stack
);
3703 resume_momentary (yyvsp
[-2].itype
); ;
3706 #line 2197 "c-parse.y"
3708 clear_parm_order ();
3709 declare_parm_level (1); ;
3712 #line 2201 "c-parse.y"
3713 { yyval
.ttype
= yyvsp
[0].ttype
;
3714 parmlist_tags_warning ();
3715 poplevel (0, 0, 0); ;
3718 #line 2209 "c-parse.y"
3720 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3721 if (TREE_VALUE (t
) == NULL_TREE
)
3722 error ("`...' in old-style identifier list");
3723 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3726 #line 2219 "c-parse.y"
3727 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3730 #line 2221 "c-parse.y"
3731 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3734 #line 2227 "c-parse.y"
3735 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3738 #line 2229 "c-parse.y"
3739 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3742 #line 2234 "c-parse.y"
3743 { yyval
.itype
= pedantic
;
3747 /* the action file gets copied in in place of this dollarsign */
3748 #line 498 "/usr/lib/bison.simple"
3759 short *ssp1
= yyss
- 1;
3760 fprintf (stderr
, "state stack now");
3761 while (ssp1
!= yyssp
)
3762 fprintf (stderr
, " %d", *++ssp1
);
3763 fprintf (stderr
, "\n");
3773 yylsp
->first_line
= yylloc
.first_line
;
3774 yylsp
->first_column
= yylloc
.first_column
;
3775 yylsp
->last_line
= (yylsp
-1)->last_line
;
3776 yylsp
->last_column
= (yylsp
-1)->last_column
;
3781 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3782 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3786 /* Now "shift" the result of the reduction.
3787 Determine what state that goes to,
3788 based on the state we popped back to
3789 and the rule number reduced by. */
3793 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3794 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3795 yystate
= yytable
[yystate
];
3797 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3801 yyerrlab
: /* here on detecting error */
3804 /* If not already recovering from an error, report this error. */
3808 #ifdef YYERROR_VERBOSE
3809 yyn
= yypact
[yystate
];
3811 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3818 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3819 for (x
= (yyn
< 0 ? -yyn
: 0);
3820 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3821 if (yycheck
[x
+ yyn
] == x
)
3822 size
+= strlen(yytname
[x
]) + 15, count
++;
3823 msg
= (char *) malloc(size
+ 15);
3826 strcpy(msg
, "parse error");
3831 for (x
= (yyn
< 0 ? -yyn
: 0);
3832 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3833 if (yycheck
[x
+ yyn
] == x
)
3835 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3836 strcat(msg
, yytname
[x
]);
3845 yyerror ("parse error; also virtual memory exceeded");
3848 #endif /* YYERROR_VERBOSE */
3849 yyerror("parse error");
3853 yyerrlab1
: /* here on error raised explicitly by an action */
3855 if (yyerrstatus
== 3)
3857 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3859 /* return failure if at end of input */
3860 if (yychar
== YYEOF
)
3865 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3871 /* Else will try to reuse lookahead token
3872 after shifting the error token. */
3874 yyerrstatus
= 3; /* Each real token shifted decrements this */
3878 yyerrdefault
: /* current state does not do anything special for the error token. */
3881 /* This is wrong; only states that explicitly want error tokens
3882 should shift them. */
3883 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3884 if (yyn
) goto yydefault
;
3887 yyerrpop
: /* pop the current state because it cannot handle the error token */
3889 if (yyssp
== yyss
) YYABORT
;
3899 short *ssp1
= yyss
- 1;
3900 fprintf (stderr
, "Error: state stack now");
3901 while (ssp1
!= yyssp
)
3902 fprintf (stderr
, " %d", *++ssp1
);
3903 fprintf (stderr
, "\n");
3909 yyn
= yypact
[yystate
];
3914 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3933 fprintf(stderr
, "Shifting error token, ");
3944 #line 2238 "c-parse.y"