2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
82 #ifdef MULTIBYTE_CHARS
87 /* Since parsers are distinct for each language, put the language string
89 char *language_string
= "GNU C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
98 typedef union {long itype
; tree ttype
; enum tree_code code
;
99 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
100 #line 204 "c-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
104 static int stmt_count
;
105 static int compstmt_count
;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file
;
110 static int if_stmt_line
;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs
= NULL_TREE
;
114 static tree prefix_attributes
= NULL_TREE
;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack
;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice
;
123 /* Tell yyparse how to print a token's value, if yydebug is set. */
125 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
126 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
138 #define YYFLAG -32768
141 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241)
143 static const char yytranslate
[] = { 0,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
148 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
150 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
170 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
171 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
172 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
173 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
174 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
175 70, 71, 72, 73, 74, 75
179 static const short yyprhs
[] = { 0,
180 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
181 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
182 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
183 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
184 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
185 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
186 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
187 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
188 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
189 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
190 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
191 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
192 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
193 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
194 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
195 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
196 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
197 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
198 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
199 582, 585, 587, 591, 595, 598, 599, 604, 606, 607,
200 612, 614, 616, 618, 621, 624, 630, 634, 635, 636,
201 642, 643, 644, 650, 652, 654, 658, 662, 667, 671,
202 675, 679, 681, 685, 690, 695, 699, 703, 707, 709,
203 713, 717, 721, 726, 731, 735, 739, 741, 743, 746,
204 748, 751, 753, 756, 757, 765, 771, 774, 775, 783,
205 789, 792, 793, 802, 803, 811, 814, 815, 817, 818,
206 820, 822, 825, 826, 830, 833, 837, 839, 843, 845,
207 847, 850, 852, 856, 861, 868, 874, 876, 880, 882,
208 884, 888, 891, 894, 895, 897, 899, 902, 903, 906,
209 910, 914, 917, 921, 926, 930, 933, 937, 940, 942,
210 944, 947, 950, 951, 953, 956, 957, 958, 960, 962,
211 965, 969, 971, 974, 976, 979, 986, 992, 998, 1001,
212 1004, 1009, 1010, 1015, 1016, 1017, 1021, 1026, 1030, 1032,
213 1034, 1036, 1038, 1041, 1042, 1047, 1049, 1053, 1054, 1055,
214 1063, 1069, 1072, 1073, 1074, 1075, 1088, 1089, 1096, 1099,
215 1102, 1105, 1109, 1116, 1125, 1136, 1149, 1153, 1158, 1160,
216 1162, 1163, 1170, 1174, 1180, 1183, 1187, 1188, 1190, 1191,
217 1193, 1194, 1196, 1198, 1202, 1207, 1209, 1213, 1214, 1217,
218 1220, 1221, 1226, 1229, 1230, 1232, 1234, 1238, 1240, 1244,
219 1249, 1254, 1259, 1264, 1269, 1270, 1273, 1275, 1278, 1280,
223 static const short yyrhs
[] = { -1,
224 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
225 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
226 0, 240, 88, 0, 122, 136, 77, 0, 129, 122,
227 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
228 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
229 77, 0, 0, 0, 125, 122, 164, 91, 116, 92,
230 198, 0, 125, 122, 164, 1, 0, 0, 0, 129,
231 122, 167, 93, 116, 94, 198, 0, 129, 122, 167,
232 1, 0, 0, 0, 122, 167, 95, 116, 96, 198,
233 0, 122, 167, 1, 0, 3, 0, 4, 0, 43,
234 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
235 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
236 101, 81, 107, 0, 113, 0, 50, 105, 0, 240,
237 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
238 0, 103, 59, 185, 76, 0, 104, 102, 0, 104,
239 59, 185, 76, 0, 33, 105, 0, 34, 105, 0,
240 11, 0, 29, 0, 102, 0, 59, 185, 76, 105,
241 0, 0, 59, 185, 76, 82, 106, 150, 78, 0,
242 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
243 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
244 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
245 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
246 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
247 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
248 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
249 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
250 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
251 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
252 0, 0, 59, 114, 200, 76, 0, 113, 59, 100,
253 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
254 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
255 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
256 10, 0, 205, 206, 119, 0, 117, 0, 193, 0,
257 118, 117, 0, 117, 193, 0, 127, 122, 135, 77,
258 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
259 77, 0, 205, 206, 124, 0, 120, 0, 193, 0,
260 121, 120, 0, 120, 193, 0, 0, 0, 125, 122,
261 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
262 158, 0, 129, 122, 161, 0, 125, 77, 0, 129,
263 77, 0, 240, 124, 0, 133, 126, 0, 129, 133,
264 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
265 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
266 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
267 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
268 130, 7, 0, 130, 5, 0, 133, 132, 0, 187,
269 133, 132, 0, 0, 132, 134, 0, 6, 0, 171,
270 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
271 185, 76, 0, 6, 0, 7, 0, 171, 0, 138,
272 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
273 0, 0, 27, 59, 115, 76, 0, 0, 164, 137,
274 142, 36, 139, 148, 0, 164, 137, 142, 0, 0,
275 167, 137, 142, 36, 141, 148, 0, 167, 137, 142,
276 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
277 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
278 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
279 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
280 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
281 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
282 0, 151, 176, 0, 152, 0, 151, 81, 152, 0,
283 156, 36, 154, 0, 157, 154, 0, 0, 97, 38,
284 153, 154, 0, 154, 0, 0, 82, 155, 150, 78,
285 0, 107, 0, 1, 0, 157, 0, 156, 157, 0,
286 58, 97, 0, 60, 107, 10, 107, 83, 0, 60,
287 107, 83, 0, 0, 0, 164, 159, 116, 160, 200,
288 0, 0, 0, 167, 162, 116, 163, 200, 0, 165,
289 0, 167, 0, 59, 165, 76, 0, 165, 59, 235,
290 0, 165, 60, 99, 83, 0, 165, 60, 83, 0,
291 50, 188, 165, 0, 143, 123, 165, 0, 4, 0,
292 166, 59, 235, 0, 166, 60, 50, 83, 0, 166,
293 60, 99, 83, 0, 166, 60, 83, 0, 50, 188,
294 166, 0, 143, 123, 166, 0, 4, 0, 167, 59,
295 235, 0, 59, 167, 76, 0, 50, 188, 167, 0,
296 167, 60, 50, 83, 0, 167, 60, 99, 83, 0,
297 167, 60, 83, 0, 143, 123, 167, 0, 3, 0,
298 13, 0, 13, 143, 0, 14, 0, 14, 143, 0,
299 12, 0, 12, 143, 0, 0, 168, 97, 82, 172,
300 178, 78, 142, 0, 168, 82, 178, 78, 142, 0,
301 168, 97, 0, 0, 169, 97, 82, 173, 178, 78,
302 142, 0, 169, 82, 178, 78, 142, 0, 169, 97,
303 0, 0, 170, 97, 82, 174, 183, 177, 78, 142,
304 0, 0, 170, 82, 175, 183, 177, 78, 142, 0,
305 170, 97, 0, 0, 81, 0, 0, 81, 0, 179,
306 0, 179, 180, 0, 0, 179, 180, 77, 0, 179,
307 77, 0, 131, 122, 181, 0, 131, 0, 187, 122,
308 181, 0, 187, 0, 1, 0, 240, 180, 0, 182,
309 0, 181, 81, 182, 0, 205, 206, 164, 142, 0,
310 205, 206, 164, 38, 107, 142, 0, 205, 206, 38,
311 107, 142, 0, 184, 0, 183, 81, 184, 0, 1,
312 0, 97, 0, 97, 36, 107, 0, 131, 186, 0,
313 187, 186, 0, 0, 189, 0, 7, 0, 187, 7,
314 0, 0, 188, 7, 0, 59, 189, 76, 0, 50,
315 188, 189, 0, 50, 188, 0, 189, 59, 228, 0,
316 189, 60, 99, 83, 0, 189, 60, 83, 0, 59,
317 228, 0, 60, 99, 83, 0, 60, 83, 0, 191,
318 0, 208, 0, 191, 208, 0, 191, 193, 0, 0,
319 190, 0, 1, 77, 0, 0, 0, 196, 0, 197,
320 0, 196, 197, 0, 32, 239, 77, 0, 200, 0,
321 1, 200, 0, 82, 0, 199, 78, 0, 199, 194,
322 195, 121, 192, 78, 0, 199, 194, 195, 1, 78,
323 0, 199, 194, 195, 190, 78, 0, 202, 207, 0,
324 202, 1, 0, 15, 59, 99, 76, 0, 0, 18,
325 204, 207, 17, 0, 0, 0, 205, 206, 210, 0,
326 205, 206, 221, 207, 0, 205, 206, 209, 0, 210,
327 0, 221, 0, 200, 0, 218, 0, 99, 77, 0,
328 0, 201, 16, 211, 207, 0, 201, 0, 201, 16,
329 1, 0, 0, 0, 17, 212, 59, 99, 76, 213,
330 207, 0, 203, 59, 99, 76, 77, 0, 203, 1,
331 0, 0, 0, 0, 19, 59, 223, 77, 214, 223,
332 77, 215, 223, 76, 216, 207, 0, 0, 20, 59,
333 99, 76, 217, 207, 0, 23, 77, 0, 24, 77,
334 0, 25, 77, 0, 25, 99, 77, 0, 27, 222,
335 59, 99, 76, 77, 0, 27, 222, 59, 99, 38,
336 224, 76, 77, 0, 27, 222, 59, 99, 38, 224,
337 38, 224, 76, 77, 0, 27, 222, 59, 99, 38,
338 224, 38, 224, 38, 227, 76, 77, 0, 26, 97,
339 77, 0, 26, 50, 99, 77, 0, 77, 0, 219,
340 0, 0, 19, 59, 113, 76, 220, 207, 0, 21,
341 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
342 38, 0, 97, 38, 142, 0, 0, 7, 0, 0,
343 99, 0, 0, 225, 0, 226, 0, 225, 81, 226,
344 0, 9, 59, 99, 76, 0, 115, 0, 227, 81,
345 115, 0, 0, 229, 230, 0, 232, 76, 0, 0,
346 233, 77, 231, 230, 0, 1, 76, 0, 0, 10,
347 0, 233, 0, 233, 81, 10, 0, 234, 0, 233,
348 81, 234, 0, 125, 122, 166, 142, 0, 125, 122,
349 167, 142, 0, 125, 122, 186, 142, 0, 129, 122,
350 167, 142, 0, 129, 122, 186, 142, 0, 0, 236,
351 237, 0, 230, 0, 238, 76, 0, 3, 0, 238,
352 81, 3, 0, 97, 0, 239, 81, 97, 0, 31,
359 static const short yyrline
[] = { 0,
360 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
361 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
362 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
363 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
364 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
365 445, 448, 451, 454, 456, 460, 464, 468, 470, 473,
366 477, 504, 506, 508, 510, 512, 514, 516, 518, 520,
367 522, 524, 526, 528, 530, 534, 536, 540, 542, 545,
368 549, 551, 558, 561, 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, 1527, 1535,
390 1537, 1539, 1543, 1545, 1548, 1551, 1562, 1564, 1569, 1571,
391 1574, 1588, 1591, 1594, 1596, 1598, 1606, 1614, 1625, 1630,
392 1633, 1647, 1656, 1660, 1664, 1668, 1674, 1678, 1683, 1686,
393 1691, 1694, 1695, 1712, 1717, 1720, 1732, 1734, 1744, 1754,
394 1755, 1763, 1766, 1778, 1782, 1799, 1809, 1818, 1823, 1828,
395 1833, 1837, 1841, 1852, 1859, 1866, 1873, 1884, 1890, 1893,
396 1898, 1921, 1955, 1986, 2017, 2032, 2046, 2050, 2054, 2057,
397 2062, 2064, 2067, 2069, 2073, 2078, 2081, 2087, 2092, 2097,
398 2099, 2108, 2109, 2115, 2117, 2127, 2129, 2133, 2136, 2142,
399 2152, 2161, 2170, 2180, 2194, 2199, 2204, 2206, 2215, 2218,
405 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
407 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
408 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
409 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
410 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
411 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
412 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
413 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
414 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
415 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
416 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
417 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
418 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
419 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
420 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
421 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
422 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
423 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
424 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
425 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
426 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
427 "@19","initval","@20","designator_list","designator","nested_function","@21",
428 "@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
429 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
430 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
431 "component_decl_list2","component_decl","components","component_declarator",
432 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
433 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
434 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
435 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
436 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
437 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
438 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
439 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
440 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
444 static const short yyr1
[] = { 0,
445 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
446 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
447 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
448 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
449 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
450 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
451 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
452 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
453 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
454 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
455 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
456 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
457 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
458 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
459 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
460 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
461 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
462 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
463 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
464 150, 151, 151, 152, 152, 153, 152, 152, 155, 154,
465 154, 154, 156, 156, 157, 157, 157, 159, 160, 158,
466 162, 163, 161, 164, 164, 165, 165, 165, 165, 165,
467 165, 165, 166, 166, 166, 166, 166, 166, 166, 167,
468 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
469 169, 170, 170, 172, 171, 171, 171, 173, 171, 171,
470 171, 174, 171, 175, 171, 171, 176, 176, 177, 177,
471 178, 178, 179, 179, 179, 180, 180, 180, 180, 180,
472 180, 181, 181, 182, 182, 182, 183, 183, 183, 184,
473 184, 185, 185, 186, 186, 187, 187, 188, 188, 189,
474 189, 189, 189, 189, 189, 189, 189, 189, 190, 191,
475 191, 191, 192, 192, 193, 194, 195, 195, 196, 196,
476 197, 198, 198, 199, 200, 200, 200, 200, 201, 201,
477 202, 204, 203, 205, 206, 207, 207, 208, 209, 209,
478 210, 210, 210, 211, 210, 210, 210, 212, 213, 210,
479 210, 210, 214, 215, 216, 210, 217, 210, 210, 210,
480 210, 210, 210, 210, 210, 210, 210, 210, 210, 218,
481 220, 219, 221, 221, 221, 221, 222, 222, 223, 223,
482 224, 224, 225, 225, 226, 227, 227, 229, 228, 230,
483 231, 230, 230, 232, 232, 232, 232, 233, 233, 234,
484 234, 234, 234, 234, 236, 235, 237, 237, 238, 238,
488 static const short yyr2
[] = { 0,
489 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
490 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
491 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
494 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
495 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
496 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
497 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
498 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
499 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
500 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
501 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
502 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
503 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
504 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
505 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
506 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
507 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
508 2, 1, 3, 3, 2, 0, 4, 1, 0, 4,
509 1, 1, 1, 2, 2, 5, 3, 0, 0, 5,
510 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
511 3, 1, 3, 4, 4, 3, 3, 3, 1, 3,
512 3, 3, 4, 4, 3, 3, 1, 1, 2, 1,
513 2, 1, 2, 0, 7, 5, 2, 0, 7, 5,
514 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
515 1, 2, 0, 3, 2, 3, 1, 3, 1, 1,
516 2, 1, 3, 4, 6, 5, 1, 3, 1, 1,
517 3, 2, 2, 0, 1, 1, 2, 0, 2, 3,
518 3, 2, 3, 4, 3, 2, 3, 2, 1, 1,
519 2, 2, 0, 1, 2, 0, 0, 1, 1, 2,
520 3, 1, 2, 1, 2, 6, 5, 5, 2, 2,
521 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
522 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
523 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
524 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
525 0, 6, 3, 5, 2, 3, 0, 1, 0, 1,
526 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
527 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
528 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
532 static const short yydefact
[] = { 3,
533 5, 0, 0, 0, 152, 143, 150, 142, 242, 238,
534 240, 0, 0, 0, 403, 18, 4, 8, 7, 0,
535 118, 118, 138, 129, 139, 172, 0, 0, 0, 151,
536 0, 6, 16, 17, 243, 239, 241, 0, 0, 0,
537 237, 288, 0, 0, 160, 119, 0, 15, 0, 14,
538 0, 140, 129, 141, 145, 144, 127, 173, 31, 32,
539 263, 247, 263, 251, 254, 256, 10, 86, 87, 99,
540 56, 57, 0, 0, 0, 33, 35, 34, 0, 36,
541 37, 0, 38, 39, 0, 0, 40, 58, 0, 0,
542 62, 43, 45, 88, 0, 286, 0, 284, 148, 0,
543 284, 177, 0, 0, 11, 0, 0, 30, 0, 395,
544 0, 0, 170, 222, 288, 0, 0, 158, 119, 0,
545 214, 215, 0, 0, 128, 131, 155, 156, 130, 132,
546 157, 0, 0, 244, 0, 248, 0, 252, 54, 55,
547 49, 46, 0, 0, 0, 0, 48, 0, 0, 0,
548 50, 0, 52, 0, 0, 79, 77, 75, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550 97, 98, 0, 0, 41, 0, 100, 47, 153, 288,
551 378, 0, 282, 285, 146, 154, 287, 148, 283, 183,
552 184, 185, 182, 0, 175, 178, 289, 232, 231, 161,
553 162, 236, 0, 230, 0, 0, 235, 0, 0, 28,
554 0, 324, 106, 325, 169, 171, 0, 0, 13, 0,
555 0, 22, 0, 170, 395, 0, 12, 26, 0, 170,
556 270, 265, 118, 262, 118, 0, 263, 170, 263, 279,
557 280, 259, 277, 0, 90, 89, 314, 306, 0, 0,
558 9, 44, 0, 0, 85, 84, 0, 0, 0, 0,
559 73, 74, 72, 71, 70, 68, 69, 63, 64, 65,
560 66, 67, 96, 95, 0, 42, 0, 292, 0, 296,
561 0, 298, 0, 378, 0, 149, 147, 0, 177, 41,
562 0, 0, 399, 385, 118, 118, 397, 0, 386, 388,
563 396, 0, 233, 234, 305, 0, 108, 103, 107, 0,
564 167, 220, 216, 159, 221, 20, 166, 217, 219, 0,
565 24, 246, 324, 264, 324, 271, 0, 250, 0, 0,
566 260, 0, 259, 315, 307, 92, 60, 59, 51, 53,
567 0, 0, 78, 76, 93, 94, 291, 290, 379, 297,
568 293, 295, 0, 174, 176, 86, 0, 163, 383, 284,
569 284, 380, 381, 0, 398, 0, 0, 29, 312, 104,
570 118, 118, 135, 0, 0, 164, 218, 0, 266, 272,
571 325, 268, 170, 170, 281, 278, 170, 0, 0, 0,
572 308, 309, 0, 80, 83, 294, 179, 0, 181, 229,
573 288, 378, 119, 170, 170, 170, 288, 170, 170, 0,
574 387, 389, 400, 313, 111, 0, 112, 0, 135, 133,
575 189, 187, 186, 168, 21, 0, 25, 324, 0, 245,
576 249, 255, 170, 401, 0, 0, 0, 324, 0, 0,
577 115, 325, 300, 310, 202, 86, 0, 0, 199, 0,
578 201, 0, 257, 192, 198, 0, 0, 0, 0, 292,
579 0, 395, 0, 390, 391, 392, 292, 393, 394, 382,
580 0, 0, 162, 134, 137, 136, 0, 165, 273, 0,
581 170, 253, 311, 0, 317, 117, 116, 304, 0, 318,
582 302, 325, 301, 0, 205, 0, 0, 196, 61, 0,
583 191, 0, 204, 195, 81, 180, 227, 288, 228, 223,
584 0, 226, 0, 109, 110, 0, 170, 0, 274, 402,
585 316, 0, 152, 0, 338, 322, 0, 0, 0, 0,
586 0, 0, 0, 0, 367, 359, 0, 0, 113, 118,
587 118, 331, 336, 0, 0, 328, 329, 332, 360, 330,
588 0, 0, 207, 0, 0, 193, 194, 0, 224, 225,
589 188, 276, 170, 0, 0, 324, 369, 0, 0, 365,
590 349, 350, 351, 0, 0, 0, 368, 0, 170, 333,
591 124, 0, 125, 0, 0, 320, 325, 319, 342, 0,
592 126, 0, 200, 197, 275, 0, 0, 0, 370, 45,
593 0, 0, 0, 363, 352, 0, 357, 0, 366, 0,
594 122, 208, 0, 123, 211, 337, 324, 0, 0, 206,
595 321, 0, 323, 361, 343, 347, 0, 358, 0, 120,
596 0, 121, 0, 335, 326, 324, 0, 339, 324, 369,
597 324, 364, 371, 0, 209, 212, 327, 341, 324, 362,
598 0, 348, 0, 0, 372, 373, 353, 0, 0, 340,
599 344, 0, 371, 0, 0, 210, 213, 369, 0, 0,
600 354, 374, 0, 375, 0, 0, 345, 376, 0, 355,
601 324, 0, 0, 346, 356, 377, 0, 0, 0
604 static const short yydefgoto
[] = { 687,
605 1, 2, 3, 17, 18, 19, 223, 375, 229, 378,
606 112, 306, 450, 85, 144, 275, 87, 88, 89, 90,
607 91, 393, 92, 260, 259, 257, 458, 258, 93, 145,
608 94, 210, 211, 212, 370, 437, 438, 20, 107, 539,
609 295, 57, 371, 420, 296, 23, 98, 185, 24, 129,
610 117, 44, 113, 118, 426, 45, 374, 215, 216, 26,
611 194, 195, 196, 424, 477, 452, 453, 454, 555, 455,
612 497, 456, 457, 611, 631, 658, 614, 633, 659, 201,
613 121, 507, 122, 27, 28, 29, 30, 237, 239, 244,
614 137, 501, 332, 132, 133, 234, 379, 380, 242, 243,
615 100, 183, 101, 103, 184, 439, 440, 489, 213, 335,
616 390, 391, 392, 368, 248, 369, 543, 544, 545, 566,
617 587, 310, 588, 443, 546, 547, 617, 565, 649, 640,
618 668, 681, 641, 548, 549, 639, 550, 578, 601, 654,
619 655, 656, 679, 280, 281, 297, 410, 298, 299, 300,
620 204, 205, 301, 302, 435, 95
623 static const short yypact
[] = { 74,
624 97, 2227, 2227, 54,-32768,-32768,-32768,-32768, 17, 17,
625 17, 87, 94, 134,-32768,-32768,-32768,-32768,-32768, 369,
626 5, 476, 261,-32768, 17,-32768, 59, 61, 90,-32768,
627 2227,-32768,-32768,-32768, 17, 17, 17, 2089, 2023, 189,
628 -32768,-32768, 369, 129,-32768, 17, 320,-32768, 519,-32768,
629 369, 261,-32768, 17,-32768,-32768, 793,-32768,-32768,-32768,
630 -32768, 114,-32768, 181,-32768, 191,-32768,-32768,-32768,-32768,
631 -32768,-32768, 2089, 2089, 241,-32768,-32768,-32768, 2089,-32768,
632 -32768, 708,-32768,-32768, 2089, 40, 211,-32768, 2116, 2143,
633 -32768, 2293, 1062, 286, 2089,-32768, 247, 210,-32768, 254,
634 1674, 639, 272, 276,-32768, 519, 369,-32768, 238,-32768,
635 1451, 357, 17,-32768,-32768, 519, 137,-32768, 17, 1438,
636 378, 395, 232, 1376, 793,-32768,-32768,-32768,-32768, 17,
637 -32768, 259, 870,-32768, 282,-32768, 228,-32768,-32768,-32768,
638 -32768,-32768, 305, 307, 328, 337,-32768, 277, 2089, 708,
639 -32768, 708,-32768, 2089, 2089, 355,-32768,-32768, 2089, 2089,
640 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
641 -32768,-32768, 241, 241, 2089, 2089,-32768,-32768,-32768,-32768,
642 210, 1478,-32768, 398, 438,-32768,-32768,-32768,-32768,-32768,
643 -32768,-32768,-32768, 14,-32768, 361,-32768, 395,-32768,-32768,
644 400, 395, 426,-32768, 402, 1533,-32768, 363, 371,-32768,
645 767, 48,-32768,-32768, 430, 17, 461, 281,-32768, 519,
646 519,-32768, 357, 17,-32768, 1560,-32768,-32768, 357, 17,
647 -32768,-32768, 385, 392, 209, 1323,-32768, 17,-32768,-32768,
648 457, 393,-32768, 228,-32768,-32768,-32768, 416, 420, 1912,
649 -32768, 2293, 421, 423, 2293, 2293, 2089, 463, 2089, 2089,
650 1667, 1881, 2060, 936, 1098, 760, 760, 294, 294,-32768,
651 -32768,-32768,-32768,-32768, 432, 211, 419, 246, 315,-32768,
652 1052,-32768, 431,-32768, 1615,-32768, 438, 433, 639, 2170,
653 44, 437,-32768,-32768,-32768, 1542,-32768, 439, 239,-32768,
654 -32768, 66,-32768,-32768,-32768, 47,-32768,-32768,-32768, 1027,
655 -32768, 378,-32768,-32768, 378,-32768, 480,-32768,-32768, 436,
656 -32768,-32768,-32768,-32768,-32768,-32768, 443,-32768, 447, 2089,
657 241, 449, 393,-32768, 496,-32768,-32768,-32768,-32768,-32768,
658 493, 2089, 2328, 1586,-32768,-32768, 398,-32768,-32768,-32768,
659 -32768,-32768, 455,-32768,-32768, 99, 465,-32768,-32768, 221,
660 374,-32768,-32768, 1465,-32768, 543, 328,-32768,-32768,-32768,
661 471, 172,-32768, 1312, 47,-32768,-32768, 47, 469,-32768,
662 -32768, 469, 17, 17, 2293,-32768, 17, 477, 241, 813,
663 496,-32768, 1132,-32768, 2222,-32768,-32768, 2089,-32768,-32768,
664 -32768, 374, 17, 135, 258, 17,-32768, 258, 17, 1052,
665 -32768,-32768,-32768,-32768,-32768, 519,-32768, 369,-32768, 845,
666 -32768,-32768, 2293,-32768,-32768, 1312,-32768,-32768, 205,-32768,
667 -32768,-32768, 17,-32768, 278, 394, 646, 478, 483, 912,
668 -32768,-32768,-32768,-32768,-32768, 516, 241, 2089,-32768, 520,
669 2293, 485, 484,-32768,-32768, 123, 1252, 2089, 111, 167,
670 688,-32768, 1642,-32768,-32768,-32768, 269,-32768,-32768,-32768,
671 301, 311, 225, 845,-32768,-32768, 1132,-32768,-32768, 2089,
672 160,-32768,-32768, 241,-32768,-32768,-32768,-32768, 486,-32768,
673 -32768,-32768,-32768, 1778,-32768, 2266, 1132,-32768,-32768, 1192,
674 -32768, 1367,-32768,-32768, 2222,-32768, 417,-32768, 417,-32768,
675 1697,-32768, 489,-32768,-32768, 490, 1799, 2089,-32768,-32768,
676 -32768, 1858, 529, 514,-32768,-32768, 515, 534, 2089, 537,
677 502, 518, 2036, 52, 589,-32768, 559, 522,-32768, 523,
678 607,-32768, 585, 995, 45,-32768,-32768,-32768,-32768,-32768,
679 1969, 2089,-32768, 525, 1367,-32768,-32768, 950,-32768,-32768,
680 -32768,-32768, 1799, 2089, 545,-32768, 2089, 2089, 1722,-32768,
681 -32768,-32768,-32768, 528, 2089, 532,-32768, 557, 17,-32768,
682 -32768, 519,-32768, 369, 1075,-32768,-32768,-32768,-32768, 2089,
683 -32768, 2248,-32768,-32768,-32768, 541, 2089, 601,-32768, 849,
684 546, 549, 2089,-32768,-32768, 556,-32768, 2089,-32768, 317,
685 -32768, 359, 345,-32768, 672,-32768,-32768, 1858, 550,-32768,
686 -32768, 558,-32768,-32768,-32768,-32768, 2315,-32768, 23,-32768,
687 357,-32768, 357,-32768,-32768,-32768, 561,-32768,-32768, 2089,
688 -32768,-32768, 613, 563,-32768,-32768,-32768,-32768,-32768,-32768,
689 571,-32768, 577, 33, 581,-32768,-32768, 328, 328,-32768,
690 -32768, 2089, 613, 606, 613,-32768,-32768, 2089, 602, 34,
691 -32768,-32768, 609,-32768, 426, 610,-32768, 286, 157,-32768,
692 -32768, 611, 426,-32768,-32768, 286, 690, 693,-32768
695 static const short yypgoto
[] = {-32768,
696 -32768,-32768,-32768, 81,-32768,-32768,-32768,-32768,-32768,-32768,
697 -32768,-32768, -24,-32768, -38, 407, -139, 193,-32768,-32768,
698 -4,-32768, 422,-32768,-32768,-32768,-32768,-32768, 131,-32768,
699 -196, -202, 491,-32768,-32768, 268,-32768, -5, -91, 156,
700 9, 657,-32768, 308, 11, -7, -88, 542, 4, -163,
701 -378, -45, -100, -65,-32768,-32768,-32768, 223, 57, 82,
702 -32768, 424,-32768, 303,-32768, -401,-32768, 233,-32768, -422,
703 -32768,-32768, 279,-32768,-32768,-32768,-32768,-32768,-32768, -39,
704 -59, -316, -18,-32768,-32768,-32768, -33,-32768,-32768,-32768,
705 -32768,-32768, 401, -32,-32768, 507, 425, 316, 501, 415,
706 39, -67, -79, -97, -152, 321,-32768,-32768, -179,-32768,
707 -32768,-32768, 364, -209,-32768, -126,-32768,-32768,-32768,-32768,
708 -89, -331, -514, 314,-32768, 142,-32768,-32768,-32768,-32768,
709 -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, -553, 102,
710 -32768, 101,-32768, 492,-32768, -242,-32768,-32768,-32768, 405,
711 -195,-32768,-32768,-32768,-32768, 6
718 static const short yytable
[] = { 86,
719 97, 47, 62, 64, 66, 123, 291, 31, 31, 120,
720 21, 21, 22, 22, 52, 49, 51, 217, 249, 224,
721 316, 286, 214, 131, 104, 53, 321, 221, 279, 318,
722 135, 307, 124, 189, 504, 276, 31, 471, 349, 21,
723 200, 22, 99, 404, 233, 589, 14, 367, -102, 429,
724 141, 598, 177, 235, 59, 60, 218, 308, 25, 25,
725 643, 59, 60, 59, 60, 35, 36, 37, 139, 140,
726 663, 675, 208, -1, 142, 516, 46, 193, 54, 557,
727 147, 48, 278, 32, 198, 99, 651, 25, 202, 288,
728 178, 131, 59, 60, 289, 554, -2, 104, 644, 46,
729 224, 575, 634, 590, 188, 119, 58, 46, 664, 676,
730 494, 67, 241, 130, 673, 148, 58, 58, 58, 358,
731 146, 647, 214, 286, 650, 347, 652, 58, 247, -102,
732 33, 34, 594, 214, 660, 58, 99, 277, 236, 214,
733 61, 365, 63, 283, 509, 38, 366, 233, 273, 274,
734 276, 131, 39, 99, 314, 99, 235, 312, 502, 46,
735 522, 315, 119, 46, 14, 425, 684, 470, 427, 41,
736 400, 65, 119, 197, 397, 5, 55, 7, 56, 398,
737 447, 130, 448, 9, 10, 11, 506, 320, 253, 14,
738 254, 149, 40, 462, 463, 134, 14, 518, 198, 13,
739 58, 142, 202, 610, 327, 105, 329, 41, 114, 106,
740 441, 58, 5, 219, 7, 187, 401, 220, 341, 241,
741 9, 10, 11, 41, 400, 402, 182, 323, 240, 325,
742 59, 60, 682, 381, 14, 381, 13, 683, 188, 99,
743 414, 236, 480, 59, 60, 338, 353, 102, 417, 279,
744 14, 109, 197, 131, 115, 618, 476, 486, 459, 180,
745 491, 25, 136, 116, 193, 55, 510, 56, 181, 182,
746 401, 41, 138, 119, 41, 197, 119, 119, 197, 402,
747 182, 151, 153, 110, 111, -269, -269, 14, 52, 360,
748 361, 149, 406, 409, 177, 180, 203, 58, 14, 53,
749 442, 14, 372, 460, 181, 182, 241, 347, 227, 467,
750 476, 461, 106, 373, 347, 363, 110, 111, 407, 364,
751 108, 42, 179, -27, -27, -27, -27, 402, 182, 186,
752 43, -27, -27, -27, 110, 111, 230, 25, 381, 225,
753 226, 405, 408, 168, 169, 170, 109, -27, 442, -162,
754 492, 199, 54, 251, 483, -162, 313, 209, 484, 238,
755 -324, -324, -324, -324, 434, 416, 418, 542, -324, -324,
756 -324, 41, 472, 284, 285, 419, 41, 514, 110, 111,
757 245, 220, 246, 104, -324, 109, 131, 515, -162, 481,
758 348, 106, -82, 630, -162, 542, -162, 220, 14, 473,
759 -162, -27, 292, 14, 293, 5, 6, 7, 8, 247,
760 558, 294, 250, 9, 10, 11, 403, 46, 42, 290,
761 25, 632, 495, 407, 513, 106, 109, 43, 645, 13,
762 646, 14, 402, 182, 70, -162, 225, 226, -101, -162,
763 131, 198, 202, 127, 128, 304, 317, 305, 198, 9,
764 10, 11, 322, 110, 111, 538, 284, 285, 46, 520,
765 328, -267, -267, 41, 114, 311, 25, 197, 324, 537,
766 305, 485, 119, 331, 46, 462, 463, -384, 678, 5,
767 6, 7, 8, 538, 58, 119, 686, 9, 10, 11,
768 14, 542, 330, 334, 574, 336, 339, 537, 340, 551,
769 342, 346, 540, 13, 541, 14, 142, 345, 354, 576,
770 115, 224, 359, 350, 362, 376, 403, 403, 377, 116,
771 383, 41, 114, 46, 384, 596, 387, 389, 599, 602,
772 394, 666, 667, 52, 582, 584, 606, 396, 613, 198,
773 399, 214, 612, 214, 53, 413, 178, 415, 14, 428,
774 25, 619, 50, -31, 433, -303, 551, 498, 622, 540,
775 490, 541, 499, 521, 500, 615, -32, 561, 115, 629,
776 252, 560, 564, 567, 570, 255, 256, 116, 571, 538,
777 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
778 271, 272, 568, 537, 572, 577, 579, 54, 580, 581,
779 585, 599, 593, 597, 605, 430, 431, 25, 607, 432,
780 5, 6, 7, 8, 403, 608, 621, 623, 9, 10,
781 11, 653, 625, 669, 626, 637, 464, 465, 466, 599,
782 468, 469, 628, 638, 13, 662, 14, 648, 119, 657,
783 46, 59, 60, 190, 191, 192, 209, 661, -114, -114,
784 -114, -114, -114, -114, -114, 482, -114, -114, -114, -114,
785 -114, 665, -114, -114, -114, -114, -114, -114, -114, -114,
786 -114, -114, -114, -114, -114, -114, -114, 674, -114, -114,
787 343, 344, 671, 583, 677, -114, 680, 685, -114, 688,
788 41, 400, 689, -114, -114, -114, 357, 600, 109, -114,
789 -114, -162, 309, 519, -114, 487, 591, -162, 143, 125,
790 68, 5, 355, 7, 96, 69, 70, 14, 71, 9,
791 10, 11, -114, -114, -114, -114, 474, -114, 478, 287,
792 110, 111, 556, 388, 503, 13, 72, 508, 15, 562,
793 73, 74, 326, 479, 333, 386, 43, 75, -162, 382,
794 76, 385, -162, 493, 444, 77, 78, 79, 488, 635,
795 636, 80, 81, 395, 670, 672, 82, 209, 412, 0,
796 -105, -105, -105, -105, 0, 351, -105, 0, -105, -105,
797 -105, 0, 0, 0, 0, 595, 83, 84, 0, -91,
798 0, 0, 0, 0, -105, 423, 0, 126, 127, 128,
799 0, 609, 0, 0, 9, 10, 11, 166, 167, 168,
800 169, 170, 0, 436, 451, -324, -324, -324, -324, -324,
801 -324, -324, 14, -324, -324, -324, -324, -324, 0, -324,
802 -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
803 -324, -324, -324, -324, 0, -324, -324, 423, -105, 475,
804 127, 128, -324, 0, 0, -324, 9, 10, 11, 0,
805 -324, -324, -324, 0, 0, 0, -324, -324, 0, 496,
806 231, -324, 0, 5, 0, 7, 96, 0, 451, 505,
807 0, 9, 10, 11, 0, 0, 0, 0, 0, -324,
808 0, -324, -324, 0, -324, 0, 0, 13, 451, 0,
809 15, 517, 171, 172, 0, 173, 174, 175, 176, 0,
810 0, 0, 209, 0, -324, -324, 0, 0, 451, -324,
811 -324, 451, -324, 451, 624, 0, -324, 0, -324, -324,
812 -324, -324, -324, -324, -324, -324, -324, -324, -324, 563,
813 -324, 0, -324, 0, -324, -324, 232, -261, 0, 0,
814 569, -324, 41, 400, -324, 0, 197, 0, 0, -324,
815 -324, -324, 0, 0, 0, -324, -324, 0, 0, 0,
816 -324, 0, 0, 592, 0, 0, 451, 0, 0, 14,
817 163, 164, 165, 166, 167, 168, 169, 170, -324, -299,
818 -324, -324, 0, -324, 0, 586, 0, -324, -324, 508,
819 0, 0, -324, -324, 0, -324, 0, 0, 43, -324,
820 0, -324, -324, -324, -324, -324, -324, -324, -324, -324,
821 -324, -324, 0, -324, 627, -324, 0, -324, -324, 0,
822 5, 6, 7, 8, -324, 0, 0, -324, 9, 10,
823 11, 0, -324, -324, -324, 0, 0, 0, -324, -324,
824 0, 0, 292, -324, 13, 5, 6, 7, 8, 0,
825 0, 294, 0, 9, 10, 11, 0, 0, 0, 0,
826 0, -324, 0, -324, -324, 616, -324, -334, -334, 13,
827 0, 14, -334, -334, 0, -334, 0, 0, 0, -334,
828 0, -334, -334, -334, -334, -334, -334, -334, -334, -334,
829 -334, -334, 0, -334, 0, -334, 0, -334, -334, 0,
830 0, 0, 0, 0, -334, 171, 172, -334, 173, 174,
831 175, 176, -334, -334, -334, 0, 0, -384, -334, -334,
832 0, 0, 445, -334, 446, 60, 0, 0, 0, 69,
833 70, 0, 71, 164, 165, 166, 167, 168, 169, 170,
834 0, -334, 0, -334, -334, 0, -334, 0, 0, 0,
835 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
836 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
837 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
838 82, 448, 445, 0, 446, 60, 0, 0, 0, 69,
839 70, 0, 71, 0, 0, 0, 0, 0, 0, -190,
840 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
841 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
842 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
843 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
844 82, 448, 445, 0, 68, 0, 0, 0, 0, 69,
845 70, 0, 71, 0, 0, 0, 0, 0, 0, -258,
846 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
847 72, 0, 15, 0, 73, 74, 0, -203, 0, 0,
848 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
849 78, 79, 0, 0, 0, 80, 81, 0, 0, -203,
850 82, -203, 421, 0, 68, 0, 0, 0, 0, 69,
851 70, 0, 71, 231, 0, 0, 5, 0, 7, 96,
852 83, 84, 0, 449, 9, 10, 11, 0, 0, 0,
853 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
854 13, 75, 0, 15, 76, 0, 0, 0, 0, 77,
855 78, 79, 0, 0, 0, 80, 81, 445, 0, 68,
856 82, 0, 0, 0, 69, 70, 228, 71, 0, -23,
857 -23, -23, -23, 0, 0, 0, 0, -23, -23, -23,
858 83, 84, 0, 422, 0, 72, 0, 15, 0, 73,
859 74, 0, 109, -23, 0, -162, 75, 0, 0, 76,
860 0, -162, 0, 0, 77, 78, 79, 0, 0, 0,
861 80, 81, 0, 0, 0, 82, 0, 0, 0, 0,
862 0, 0, 0, 0, 110, 111, 0, 0, 222, 0,
863 0, -19, -19, -19, -19, 83, 84, 0, 449, -19,
864 -19, -19, -162, 68, 0, 0, -162, -23, 69, 70,
865 0, 71, 0, 0, 109, -19, 0, -162, 5, 6,
866 7, 8, 0, -162, 411, 0, 9, 10, 11, 72,
867 68, 15, 0, 73, 74, 69, 70, 0, 71, 0,
868 75, 0, 13, 76, 14, 0, 0, 0, 77, 78,
869 206, 0, 0, 0, 80, 81, 72, 0, 15, 82,
870 73, 74, 0, 0, -162, 0, 0, 75, -162, -19,
871 76, 0, 0, 0, 0, 77, 78, 79, 0, 83,
872 84, 80, 81, 207, 0, 68, 82, 0, 0, 0,
873 69, 70, 0, 71, 0, 5, 6, 7, 8, 0,
874 0, 0, 0, 9, 10, 11, 83, 84, 0, 0,
875 282, 72, 68, 15, 0, 73, 74, 69, 70, 13,
876 71, 14, 75, 0, 0, 76, 0, 0, 0, 0,
877 77, 78, 79, 0, 0, 0, 80, 81, 72, 0,
878 15, 82, 73, 74, 0, 0, 0, 0, 0, 75,
879 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
880 0, 83, 84, 80, 81, 303, 0, 68, 82, 0,
881 0, 0, 69, 70, 0, 71, 159, 160, 161, 162,
882 163, 164, 165, 166, 167, 168, 169, 170, 83, 84,
883 0, 0, 319, 72, 68, 15, 0, 73, 74, 69,
884 70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
885 0, 0, 77, 78, 79, 0, 0, 0, 80, 81,
886 72, 0, 15, 82, 73, 74, 0, 5, 0, 7,
887 187, 75, 0, 0, 76, 9, 10, 11, 0, 77,
888 78, 511, 0, 83, 84, 80, 81, 352, 0, 68,
889 82, 13, 0, 0, 69, 70, 0, 71, 160, 161,
890 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
891 83, 84, 0, 180, 512, 72, 0, 15, 0, 73,
892 74, 603, 181, 182, 0, 0, 75, 0, 0, 76,
893 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
894 80, 81, 0, 0, 0, 82, 154, 155, 156, 604,
895 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
896 167, 168, 169, 170, 0, 83, 84, 0, 0, 559,
897 446, 523, 6, 7, 8, 69, 70, 0, 71, 9,
898 10, 11, 524, 0, 525, 526, 527, 528, 529, 530,
899 531, 532, 533, 534, 535, 13, 72, 14, 15, 0,
900 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
901 76, 0, 0, 0, 0, 77, 78, 79, 14, 0,
902 0, 80, 81, 154, 155, 156, 82, 157, 158, 159,
903 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
904 170, 0, 0, 0, 536, 0, 83, 84, 0, 247,
905 446, 60, 0, 0, 0, 69, 70, 0, 71, 0,
906 0, 0, 524, 0, 525, 526, 527, 528, 529, 530,
907 531, 532, 533, 534, 535, 0, 72, 0, 15, 0,
908 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
909 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
910 0, 80, 81, 0, 68, 0, 82, 0, 0, 69,
911 70, 0, 71, 161, 162, 163, 164, 165, 166, 167,
912 168, 169, 170, 0, 536, 0, 83, 84, 0, 247,
913 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
914 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
915 78, 79, 0, 0, 0, 80, 81, 0, 0, 0,
916 82, 68, 5, 6, 7, 8, 69, 70, 0, 71,
917 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
918 83, 84, 0, 337, 0, 0, 13, 72, 14, 15,
919 0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
920 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
921 0, 0, 80, 81, 0, 68, 5, 82, 7, 96,
922 69, 70, 0, 71, 9, 10, 11, 0, 68, 0,
923 0, 0, 0, 69, 70, 0, 71, 83, 84, 0,
924 13, 72, 0, 15, 0, 73, 74, 0, 0, 0,
925 0, 0, 75, 0, 72, 76, 15, 0, 73, 74,
926 77, 78, 79, 0, 0, 75, 80, 81, 76, 0,
927 0, 82, 0, 77, 78, 79, 0, 0, 0, 80,
928 81, 68, 0, 0, 82, 0, 69, 70, 0, 71,
929 0, 83, 84, 162, 163, 164, 165, 166, 167, 168,
930 169, 170, 573, 0, 83, 84, 0, 72, 68, 15,
931 0, 73, 74, 69, 70, 0, 71, 0, 75, 0,
932 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
933 0, 0, 80, 81, 72, 68, 15, 82, 73, 74,
934 69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
935 0, 0, 0, 77, 78, 79, 0, 83, 84, 80,
936 81, 72, 356, 15, 150, 73, 74, 69, 70, 0,
937 71, 0, 75, 0, 0, 76, 0, 0, 0, 0,
938 77, 78, 79, 0, 83, 84, 80, 81, 72, 0,
939 15, 152, 73, 74, 0, 0, 0, 0, 0, 75,
940 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
941 0, 83, 84, 80, 81, 0, 0, 4, 82, -118,
942 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
943 11, 0, 0, 0, 0, 0, 0, 0, 83, 84,
944 0, 0, 0, 12, 13, 0, 14, 15, 156, 0,
945 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
946 167, 168, 169, 170, 0, 552, -118, 0, 0, 0,
947 0, 0, 154, 155, 156, -118, 157, 158, 159, 160,
948 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
949 154, 155, 156, 16, 157, 158, 159, 160, 161, 162,
950 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
952 620, 157, 158, 159, 160, 161, 162, 163, 164, 165,
953 166, 167, 168, 169, 170, 0, 0, 0, 553, 154,
954 155, 156, 642, 157, 158, 159, 160, 161, 162, 163,
955 164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
956 161, 162, 163, 164, 165, 166, 167, 168, 169, 170
959 static const short yycheck
[] = { 38,
960 39, 20, 27, 28, 29, 51, 203, 2, 3, 49,
961 2, 3, 2, 3, 22, 21, 22, 115, 145, 120,
962 223, 185, 112, 57, 43, 22, 229, 119, 181, 225,
963 63, 211, 51, 101, 457, 175, 31, 416, 281, 31,
964 106, 31, 39, 360, 133, 1, 30, 1, 1, 381,
965 75, 566, 9, 133, 3, 4, 116, 10, 2, 3,
966 38, 3, 4, 3, 4, 9, 10, 11, 73, 74,
967 38, 38, 111, 0, 79, 477, 20, 102, 22, 502,
968 85, 77, 180, 3, 103, 82, 640, 31, 107, 76,
969 95, 125, 3, 4, 81, 497, 0, 116, 76, 43,
970 201, 50, 617, 59, 101, 49, 25, 51, 76, 76,
971 442, 31, 137, 57, 668, 76, 35, 36, 37, 76,
972 82, 636, 212, 287, 639, 278, 641, 46, 82, 82,
973 77, 78, 555, 223, 649, 54, 133, 176, 133, 229,
974 82, 76, 82, 182, 461, 59, 81, 236, 173, 174,
975 290, 185, 59, 150, 220, 152, 236, 217, 36, 103,
976 492, 221, 106, 107, 30, 375, 681, 410, 378, 3,
977 4, 82, 116, 7, 76, 4, 5, 6, 7, 81,
978 58, 125, 60, 12, 13, 14, 76, 226, 150, 30,
979 152, 81, 59, 59, 60, 82, 30, 38, 217, 28,
980 119, 206, 221, 582, 237, 77, 239, 3, 4, 81,
981 390, 130, 4, 77, 6, 7, 50, 81, 257, 244,
982 12, 13, 14, 3, 4, 59, 60, 233, 1, 235,
983 3, 4, 76, 323, 30, 325, 28, 81, 235, 236,
984 367, 236, 38, 3, 4, 250, 285, 59, 77, 402,
985 30, 27, 7, 287, 50, 587, 420, 437, 398, 50,
986 440, 205, 82, 59, 289, 5, 462, 7, 59, 60,
987 50, 3, 82, 217, 3, 7, 220, 221, 7, 59,
988 60, 89, 90, 59, 60, 77, 78, 30, 296, 295,
989 296, 81, 360, 361, 9, 50, 59, 216, 30, 296,
990 390, 30, 310, 401, 59, 60, 331, 460, 77, 407,
991 474, 403, 81, 310, 467, 77, 59, 60, 50, 81,
992 1, 50, 76, 4, 5, 6, 7, 59, 60, 76,
993 59, 12, 13, 14, 59, 60, 78, 281, 428, 59,
994 60, 360, 361, 50, 51, 52, 27, 28, 438, 30,
995 440, 76, 296, 77, 77, 36, 76, 1, 81, 78,
996 4, 5, 6, 7, 389, 371, 372, 494, 12, 13,
997 14, 3, 418, 59, 60, 372, 3, 77, 59, 60,
998 76, 81, 76, 402, 28, 27, 420, 77, 30, 429,
999 76, 81, 38, 77, 36, 522, 77, 81, 30, 418,
1000 81, 82, 1, 30, 3, 4, 5, 6, 7, 82,
1001 508, 10, 76, 12, 13, 14, 360, 361, 50, 59,
1002 364, 77, 447, 50, 463, 81, 27, 59, 631, 28,
1003 633, 30, 59, 60, 9, 77, 59, 60, 82, 81,
1004 474, 460, 461, 6, 7, 83, 224, 77, 467, 12,
1005 13, 14, 230, 59, 60, 494, 59, 60, 402, 484,
1006 238, 77, 78, 3, 4, 36, 410, 7, 77, 494,
1007 77, 78, 416, 81, 418, 59, 60, 76, 675, 4,
1008 5, 6, 7, 522, 403, 429, 683, 12, 13, 14,
1009 30, 618, 36, 78, 533, 76, 76, 522, 76, 494,
1010 38, 83, 494, 28, 494, 30, 511, 76, 76, 534,
1011 50, 612, 76, 83, 76, 36, 460, 461, 83, 59,
1012 78, 3, 4, 467, 78, 564, 78, 32, 567, 568,
1013 38, 658, 659, 541, 540, 541, 575, 83, 584, 558,
1014 76, 631, 582, 633, 541, 3, 551, 77, 30, 81,
1015 494, 590, 77, 38, 78, 78, 551, 38, 597, 551,
1016 78, 551, 78, 78, 81, 584, 38, 78, 50, 608,
1017 149, 83, 59, 59, 38, 154, 155, 59, 77, 618,
1018 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1019 169, 170, 59, 618, 77, 7, 38, 541, 77, 77,
1020 16, 640, 78, 59, 77, 383, 384, 551, 77, 387,
1021 4, 5, 6, 7, 558, 59, 76, 17, 12, 13,
1022 14, 9, 77, 662, 76, 76, 404, 405, 406, 668,
1023 408, 409, 77, 76, 28, 59, 30, 77, 582, 77,
1024 584, 3, 4, 5, 6, 7, 1, 77, 3, 4,
1025 5, 6, 7, 8, 9, 433, 11, 12, 13, 14,
1026 15, 81, 17, 18, 19, 20, 21, 22, 23, 24,
1027 25, 26, 27, 28, 29, 30, 31, 76, 33, 34,
1028 259, 260, 77, 77, 76, 40, 77, 77, 43, 0,
1029 3, 4, 0, 48, 49, 50, 290, 567, 27, 54,
1030 55, 30, 212, 481, 59, 438, 551, 36, 1, 53,
1031 3, 4, 289, 6, 7, 8, 9, 30, 11, 12,
1032 13, 14, 77, 78, 79, 80, 419, 82, 426, 188,
1033 59, 60, 500, 333, 456, 28, 29, 50, 31, 517,
1034 33, 34, 236, 428, 244, 331, 59, 40, 77, 325,
1035 43, 330, 81, 440, 391, 48, 49, 50, 438, 618,
1036 618, 54, 55, 342, 663, 665, 59, 1, 364, -1,
1037 4, 5, 6, 7, -1, 284, 10, -1, 12, 13,
1038 14, -1, -1, -1, -1, 563, 79, 80, -1, 82,
1039 -1, -1, -1, -1, 28, 374, -1, 5, 6, 7,
1040 -1, 579, -1, -1, 12, 13, 14, 48, 49, 50,
1041 51, 52, -1, 1, 393, 3, 4, 5, 6, 7,
1042 8, 9, 30, 11, 12, 13, 14, 15, -1, 17,
1043 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1044 28, 29, 30, 31, -1, 33, 34, 426, 82, 5,
1045 6, 7, 40, -1, -1, 43, 12, 13, 14, -1,
1046 48, 49, 50, -1, -1, -1, 54, 55, -1, 448,
1047 1, 59, -1, 4, -1, 6, 7, -1, 457, 458,
1048 -1, 12, 13, 14, -1, -1, -1, -1, -1, 77,
1049 -1, 79, 80, -1, 82, -1, -1, 28, 477, -1,
1050 31, 480, 54, 55, -1, 57, 58, 59, 60, -1,
1051 -1, -1, 1, -1, 3, 4, -1, -1, 497, 8,
1052 9, 500, 11, 502, 76, -1, 15, -1, 17, 18,
1053 19, 20, 21, 22, 23, 24, 25, 26, 27, 518,
1054 29, -1, 31, -1, 33, 34, 77, 78, -1, -1,
1055 529, 40, 3, 4, 43, -1, 7, -1, -1, 48,
1056 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1057 59, -1, -1, 552, -1, -1, 555, -1, -1, 30,
1058 45, 46, 47, 48, 49, 50, 51, 52, 77, 78,
1059 79, 80, -1, 82, -1, 1, -1, 3, 4, 50,
1060 -1, -1, 8, 9, -1, 11, -1, -1, 59, 15,
1061 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1062 26, 27, -1, 29, 603, 31, -1, 33, 34, -1,
1063 4, 5, 6, 7, 40, -1, -1, 43, 12, 13,
1064 14, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1065 -1, -1, 1, 59, 28, 4, 5, 6, 7, -1,
1066 -1, 10, -1, 12, 13, 14, -1, -1, -1, -1,
1067 -1, 77, -1, 79, 80, 1, 82, 3, 4, 28,
1068 -1, 30, 8, 9, -1, 11, -1, -1, -1, 15,
1069 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1070 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
1071 -1, -1, -1, -1, 40, 54, 55, 43, 57, 58,
1072 59, 60, 48, 49, 50, -1, -1, 76, 54, 55,
1073 -1, -1, 1, 59, 3, 4, -1, -1, -1, 8,
1074 9, -1, 11, 46, 47, 48, 49, 50, 51, 52,
1075 -1, 77, -1, 79, 80, -1, 82, -1, -1, -1,
1076 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1077 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1078 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1079 59, 60, 1, -1, 3, 4, -1, -1, -1, 8,
1080 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1081 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1082 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1083 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1084 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1085 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1086 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1087 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1088 29, -1, 31, -1, 33, 34, -1, 36, -1, -1,
1089 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1090 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1091 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1092 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1093 79, 80, -1, 82, 12, 13, 14, -1, -1, -1,
1094 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1095 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1096 49, 50, -1, -1, -1, 54, 55, 1, -1, 3,
1097 59, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1098 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1099 79, 80, -1, 82, -1, 29, -1, 31, -1, 33,
1100 34, -1, 27, 28, -1, 30, 40, -1, -1, 43,
1101 -1, 36, -1, -1, 48, 49, 50, -1, -1, -1,
1102 54, 55, -1, -1, -1, 59, -1, -1, -1, -1,
1103 -1, -1, -1, -1, 59, 60, -1, -1, 1, -1,
1104 -1, 4, 5, 6, 7, 79, 80, -1, 82, 12,
1105 13, 14, 77, 3, -1, -1, 81, 82, 8, 9,
1106 -1, 11, -1, -1, 27, 28, -1, 30, 4, 5,
1107 6, 7, -1, 36, 10, -1, 12, 13, 14, 29,
1108 3, 31, -1, 33, 34, 8, 9, -1, 11, -1,
1109 40, -1, 28, 43, 30, -1, -1, -1, 48, 49,
1110 50, -1, -1, -1, 54, 55, 29, -1, 31, 59,
1111 33, 34, -1, -1, 77, -1, -1, 40, 81, 82,
1112 43, -1, -1, -1, -1, 48, 49, 50, -1, 79,
1113 80, 54, 55, 83, -1, 3, 59, -1, -1, -1,
1114 8, 9, -1, 11, -1, 4, 5, 6, 7, -1,
1115 -1, -1, -1, 12, 13, 14, 79, 80, -1, -1,
1116 83, 29, 3, 31, -1, 33, 34, 8, 9, 28,
1117 11, 30, 40, -1, -1, 43, -1, -1, -1, -1,
1118 48, 49, 50, -1, -1, -1, 54, 55, 29, -1,
1119 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1120 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1121 -1, 79, 80, 54, 55, 83, -1, 3, 59, -1,
1122 -1, -1, 8, 9, -1, 11, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 79, 80,
1124 -1, -1, 83, 29, 3, 31, -1, 33, 34, 8,
1125 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1126 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1127 29, -1, 31, 59, 33, 34, -1, 4, -1, 6,
1128 7, 40, -1, -1, 43, 12, 13, 14, -1, 48,
1129 49, 50, -1, 79, 80, 54, 55, 83, -1, 3,
1130 59, 28, -1, -1, 8, 9, -1, 11, 42, 43,
1131 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1132 79, 80, -1, 50, 83, 29, -1, 31, -1, 33,
1133 34, 10, 59, 60, -1, -1, 40, -1, -1, 43,
1134 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1135 54, 55, -1, -1, -1, 59, 35, 36, 37, 38,
1136 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1137 49, 50, 51, 52, -1, 79, 80, -1, -1, 83,
1138 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1139 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1140 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1141 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1142 43, -1, -1, -1, -1, 48, 49, 50, 30, -1,
1143 -1, 54, 55, 35, 36, 37, 59, 39, 40, 41,
1144 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1145 52, -1, -1, -1, 77, -1, 79, 80, -1, 82,
1146 3, 4, -1, -1, -1, 8, 9, -1, 11, -1,
1147 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1148 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1149 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1150 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1151 -1, 54, 55, -1, 3, -1, 59, -1, -1, 8,
1152 9, -1, 11, 43, 44, 45, 46, 47, 48, 49,
1153 50, 51, 52, -1, 77, -1, 79, 80, -1, 82,
1154 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1155 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1156 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1157 59, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1158 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1159 79, 80, -1, 82, -1, -1, 28, 29, 30, 31,
1160 -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1161 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1162 -1, -1, 54, 55, -1, 3, 4, 59, 6, 7,
1163 8, 9, -1, 11, 12, 13, 14, -1, 3, -1,
1164 -1, -1, -1, 8, 9, -1, 11, 79, 80, -1,
1165 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1166 -1, -1, 40, -1, 29, 43, 31, -1, 33, 34,
1167 48, 49, 50, -1, -1, 40, 54, 55, 43, -1,
1168 -1, 59, -1, 48, 49, 50, -1, -1, -1, 54,
1169 55, 3, -1, -1, 59, -1, 8, 9, -1, 11,
1170 -1, 79, 80, 44, 45, 46, 47, 48, 49, 50,
1171 51, 52, 77, -1, 79, 80, -1, 29, 3, 31,
1172 -1, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1173 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1174 -1, -1, 54, 55, 29, 3, 31, 59, 33, 34,
1175 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1176 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1177 55, 29, 3, 31, 59, 33, 34, 8, 9, -1,
1178 11, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1179 48, 49, 50, -1, 79, 80, 54, 55, 29, -1,
1180 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1181 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1182 -1, 79, 80, 54, 55, -1, -1, 1, 59, 3,
1183 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1184 14, -1, -1, -1, -1, -1, -1, -1, 79, 80,
1185 -1, -1, -1, 27, 28, -1, 30, 31, 37, -1,
1186 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1187 49, 50, 51, 52, -1, 10, 50, -1, -1, -1,
1188 -1, -1, 35, 36, 37, 59, 39, 40, 41, 42,
1189 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1190 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1191 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, 35, 36, 37,
1193 83, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1194 48, 49, 50, 51, 52, -1, -1, -1, 83, 35,
1195 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1196 46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
1197 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
1199 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1200 #line 3 "/usr/lib/bison.simple"
1202 /* Skeleton output parser for bison,
1203 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1205 This program is free software; you can redistribute it and/or modify
1206 it under the terms of the GNU General Public License as published by
1207 the Free Software Foundation; either version 2, or (at your option)
1210 This program is distributed in the hope that it will be useful,
1211 but WITHOUT ANY WARRANTY; without even the implied warranty of
1212 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1213 GNU General Public License for more details.
1215 You should have received a copy of the GNU General Public License
1216 along with this program; if not, write to the Free Software
1217 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1219 /* As a special exception, when this file is copied by Bison into a
1220 Bison output file, you may use that output file without restriction.
1221 This special exception was added by the Free Software Foundation
1222 in version 1.24 of Bison. */
1226 #define alloca __builtin_alloca
1227 #else /* not GNU C. */
1228 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1230 #else /* not sparc */
1231 #if defined (MSDOS) && !defined (__TURBOC__)
1233 #else /* not MSDOS, or __TURBOC__ */
1237 #else /* not MSDOS, __TURBOC__, or _AIX */
1241 void *alloca (unsigned int);
1243 #else /* not __cplusplus */
1245 #endif /* not __cplusplus */
1247 #endif /* not _AIX */
1248 #endif /* not MSDOS, or __TURBOC__ */
1249 #endif /* not sparc. */
1250 #endif /* not GNU C. */
1251 #endif /* alloca not defined. */
1253 /* This is the parser code that is written into each bison parser
1254 when the %semantic_parser declaration is not specified in the grammar.
1255 It was written by Richard Stallman by simplifying the hairy parser
1256 used when %semantic_parser is specified. */
1258 /* Note: there must be only one dollar sign in this file.
1259 It is replaced by the list of actions, each action
1260 as one case of the switch. */
1262 #define yyerrok (yyerrstatus = 0)
1263 #define yyclearin (yychar = YYEMPTY)
1266 #define YYACCEPT return(0)
1267 #define YYABORT return(1)
1268 #define YYERROR goto yyerrlab1
1269 /* Like YYERROR except do call yyerror.
1270 This remains here temporarily to ease the
1271 transition to the new meaning of YYERROR, for GCC.
1272 Once GCC version 2 has supplanted version 1, this can go. */
1273 #define YYFAIL goto yyerrlab
1274 #define YYRECOVERING() (!!yyerrstatus)
1275 #define YYBACKUP(token, value) \
1277 if (yychar == YYEMPTY && yylen == 1) \
1278 { yychar = (token), yylval = (value); \
1279 yychar1 = YYTRANSLATE (yychar); \
1284 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1288 #define YYERRCODE 256
1291 #define YYLEX yylex()
1297 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1299 #define YYLEX yylex(&yylval, &yylloc)
1301 #else /* not YYLSP_NEEDED */
1303 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1305 #define YYLEX yylex(&yylval)
1307 #endif /* not YYLSP_NEEDED */
1310 /* If nonreentrant, generate the variables here */
1314 int yychar
; /* the lookahead symbol */
1315 YYSTYPE yylval
; /* the semantic value of the */
1316 /* lookahead symbol */
1319 YYLTYPE yylloc
; /* location data for the lookahead */
1323 int yynerrs
; /* number of parse errors so far */
1324 #endif /* not YYPURE */
1327 int yydebug
; /* nonzero means print parse trace */
1328 /* Since this is uninitialized, it does not stop multiple parsers
1332 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1335 #define YYINITDEPTH 200
1338 /* YYMAXDEPTH is the maximum size the stacks can grow to
1339 (effective only if the built-in stack extension method is used). */
1346 #define YYMAXDEPTH 10000
1349 /* Prevent warning if -Wstrict-prototypes. */
1354 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1355 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1356 #else /* not GNU C or C++ */
1359 /* This is the most reliable way to avoid incompatibilities
1360 in available built-in functions on various systems. */
1362 __yy_memcpy (to
, from
, count
)
1367 register char *f
= from
;
1368 register char *t
= to
;
1369 register int i
= count
;
1375 #else /* __cplusplus */
1377 /* This is the most reliable way to avoid incompatibilities
1378 in available built-in functions on various systems. */
1380 __yy_memcpy (char *to
, char *from
, int count
)
1382 register char *f
= from
;
1383 register char *t
= to
;
1384 register int i
= count
;
1393 #line 196 "/usr/lib/bison.simple"
1395 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1396 into yyparse. The argument should have type void *.
1397 It should actually point to an object.
1398 Grammar actions can access the variable by casting it
1399 to the proper pointer type. */
1401 #ifdef YYPARSE_PARAM
1403 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1404 #define YYPARSE_PARAM_DECL
1405 #else /* not __cplusplus */
1406 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1407 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1408 #endif /* not __cplusplus */
1409 #else /* not YYPARSE_PARAM */
1410 #define YYPARSE_PARAM_ARG
1411 #define YYPARSE_PARAM_DECL
1412 #endif /* not YYPARSE_PARAM */
1415 yyparse(YYPARSE_PARAM_ARG
)
1418 register int yystate
;
1420 register short *yyssp
;
1421 register YYSTYPE
*yyvsp
;
1422 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1423 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1425 short yyssa
[YYINITDEPTH
]; /* the state stack */
1426 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1428 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1429 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1432 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1433 YYLTYPE
*yyls
= yylsa
;
1436 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1438 #define YYPOPSTACK (yyvsp--, yyssp--)
1441 int yystacksize
= YYINITDEPTH
;
1452 YYSTYPE yyval
; /* the variable used to return */
1453 /* semantic values from the action */
1460 fprintf(stderr
, "Starting parse\n");
1466 yychar
= YYEMPTY
; /* Cause a token to be read. */
1468 /* Initialize stack pointers.
1469 Waste one element of value and location stack
1470 so that they stay on the same level as the state stack.
1471 The wasted elements are never initialized. */
1479 /* Push a new state, which is found in yystate . */
1480 /* In all cases, when you get here, the value and location stacks
1481 have just been pushed. so pushing a state here evens the stacks. */
1486 if (yyssp
>= yyss
+ yystacksize
- 1)
1488 /* Give user a chance to reallocate the stack */
1489 /* Use copies of these so that the &'s don't force the real ones into memory. */
1490 YYSTYPE
*yyvs1
= yyvs
;
1491 short *yyss1
= yyss
;
1493 YYLTYPE
*yyls1
= yyls
;
1496 /* Get the current used size of the three stacks, in elements. */
1497 int size
= yyssp
- yyss
+ 1;
1500 /* Each stack pointer address is followed by the size of
1501 the data in use in that stack, in bytes. */
1503 /* This used to be a conditional around just the two extra args,
1504 but that might be undefined if yyoverflow is a macro. */
1505 yyoverflow("parser stack overflow",
1506 &yyss1
, size
* sizeof (*yyssp
),
1507 &yyvs1
, size
* sizeof (*yyvsp
),
1508 &yyls1
, size
* sizeof (*yylsp
),
1511 yyoverflow("parser stack overflow",
1512 &yyss1
, size
* sizeof (*yyssp
),
1513 &yyvs1
, size
* sizeof (*yyvsp
),
1517 yyss
= yyss1
; yyvs
= yyvs1
;
1521 #else /* no yyoverflow */
1522 /* Extend the stack our own way. */
1523 if (yystacksize
>= YYMAXDEPTH
)
1525 yyerror("parser stack overflow");
1529 if (yystacksize
> YYMAXDEPTH
)
1530 yystacksize
= YYMAXDEPTH
;
1531 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1532 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1533 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1534 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1536 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1537 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1539 #endif /* no yyoverflow */
1541 yyssp
= yyss
+ size
- 1;
1542 yyvsp
= yyvs
+ size
- 1;
1544 yylsp
= yyls
+ size
- 1;
1549 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1552 if (yyssp
>= yyss
+ yystacksize
- 1)
1558 fprintf(stderr
, "Entering state %d\n", yystate
);
1564 /* Do appropriate processing given the current state. */
1565 /* Read a lookahead token if we need one and don't already have one. */
1568 /* First try to decide what to do without reference to lookahead token. */
1570 yyn
= yypact
[yystate
];
1574 /* Not known => get a lookahead token if don't already have one. */
1576 /* yychar is either YYEMPTY or YYEOF
1577 or a valid token in external form. */
1579 if (yychar
== YYEMPTY
)
1583 fprintf(stderr
, "Reading a token: ");
1588 /* Convert token to internal form (in yychar1) for indexing tables with */
1590 if (yychar
<= 0) /* This means end of input. */
1593 yychar
= YYEOF
; /* Don't call YYLEX any more */
1597 fprintf(stderr
, "Now at end of input.\n");
1602 yychar1
= YYTRANSLATE(yychar
);
1607 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1608 /* Give the individual parser a way to print the precise meaning
1609 of a token, for further debugging info. */
1611 YYPRINT (stderr
, yychar
, yylval
);
1613 fprintf (stderr
, ")\n");
1619 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1624 /* yyn is what to do for this token type in this state.
1625 Negative => reduce, -yyn is rule number.
1626 Positive => shift, yyn is new state.
1627 New state is final state => don't bother to shift,
1628 just return success.
1629 0, or most negative number => error. */
1644 /* Shift the lookahead token. */
1648 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1651 /* Discard the token being shifted unless it is eof. */
1652 if (yychar
!= YYEOF
)
1660 /* count tokens shifted since error; after three, turn off error status. */
1661 if (yyerrstatus
) yyerrstatus
--;
1666 /* Do the default action for the current state. */
1669 yyn
= yydefact
[yystate
];
1673 /* Do a reduction. yyn is the number of a rule to reduce with. */
1677 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1684 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1687 /* Print the symbols being reduced, and their result. */
1688 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1689 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1690 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1698 #line 234 "c-parse.y"
1700 pedwarn ("ANSI C forbids an empty source file");
1705 #line 239 "c-parse.y"
1707 /* In case there were missing closebraces,
1708 get us back to the global binding level. */
1709 while (! global_bindings_p ())
1715 #line 253 "c-parse.y"
1716 {yyval
.ttype
= NULL_TREE
; ;
1719 #line 254 "c-parse.y"
1720 {yyval
.ttype
= NULL_TREE
; ;
1723 #line 261 "c-parse.y"
1724 { STRIP_NOPS (yyvsp
[-2].ttype
);
1725 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1726 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1727 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1728 assemble_asm (yyvsp
[-2].ttype
);
1730 error ("argument of `asm' is not a constant string"); ;
1733 #line 269 "c-parse.y"
1734 { pedantic
= yyvsp
[-1].itype
; ;
1737 #line 274 "c-parse.y"
1739 error ("ANSI C forbids data definition with no type or storage class");
1740 else if (!flag_traditional
)
1741 warning ("data definition has no type or storage class");
1743 current_declspecs
= TREE_VALUE (declspec_stack
);
1744 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1745 declspec_stack
= TREE_CHAIN (declspec_stack
);
1746 resume_momentary (yyvsp
[-2].itype
); ;
1749 #line 284 "c-parse.y"
1750 { current_declspecs
= TREE_VALUE (declspec_stack
);
1751 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1752 declspec_stack
= TREE_CHAIN (declspec_stack
);
1753 resume_momentary (yyvsp
[-2].itype
); ;
1756 #line 289 "c-parse.y"
1757 { current_declspecs
= TREE_VALUE (declspec_stack
);
1758 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1759 declspec_stack
= TREE_CHAIN (declspec_stack
);
1760 resume_momentary (yyvsp
[-2].itype
); ;
1763 #line 294 "c-parse.y"
1764 { pedwarn ("empty declaration"); ;
1767 #line 296 "c-parse.y"
1768 { shadow_tag (yyvsp
[-1].ttype
); ;
1771 #line 300 "c-parse.y"
1773 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1776 #line 306 "c-parse.y"
1777 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1778 prefix_attributes
, NULL_TREE
, 0))
1780 reinit_parse_for_function (); ;
1783 #line 311 "c-parse.y"
1784 { store_parm_decls (); ;
1787 #line 313 "c-parse.y"
1788 { finish_function (0);
1789 current_declspecs
= TREE_VALUE (declspec_stack
);
1790 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1791 declspec_stack
= TREE_CHAIN (declspec_stack
);
1792 resume_momentary (yyvsp
[-5].itype
); ;
1795 #line 319 "c-parse.y"
1796 { current_declspecs
= TREE_VALUE (declspec_stack
);
1797 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1798 declspec_stack
= TREE_CHAIN (declspec_stack
);
1799 resume_momentary (yyvsp
[-2].itype
); ;
1802 #line 324 "c-parse.y"
1803 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1804 prefix_attributes
, NULL_TREE
, 0))
1806 reinit_parse_for_function (); ;
1809 #line 329 "c-parse.y"
1810 { store_parm_decls (); ;
1813 #line 331 "c-parse.y"
1814 { finish_function (0);
1815 current_declspecs
= TREE_VALUE (declspec_stack
);
1816 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1817 declspec_stack
= TREE_CHAIN (declspec_stack
);
1818 resume_momentary (yyvsp
[-5].itype
); ;
1821 #line 337 "c-parse.y"
1822 { current_declspecs
= TREE_VALUE (declspec_stack
);
1823 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1824 declspec_stack
= TREE_CHAIN (declspec_stack
);
1825 resume_momentary (yyvsp
[-2].itype
); ;
1828 #line 342 "c-parse.y"
1829 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1830 prefix_attributes
, NULL_TREE
, 0))
1832 reinit_parse_for_function (); ;
1835 #line 347 "c-parse.y"
1836 { store_parm_decls (); ;
1839 #line 349 "c-parse.y"
1840 { finish_function (0);
1841 current_declspecs
= TREE_VALUE (declspec_stack
);
1842 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1843 declspec_stack
= TREE_CHAIN (declspec_stack
);
1844 resume_momentary (yyvsp
[-5].itype
); ;
1847 #line 355 "c-parse.y"
1848 { current_declspecs
= TREE_VALUE (declspec_stack
);
1849 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1850 declspec_stack
= TREE_CHAIN (declspec_stack
);
1851 resume_momentary (yyvsp
[-2].itype
); ;
1854 #line 367 "c-parse.y"
1855 { yyval
.code
= ADDR_EXPR
; ;
1858 #line 369 "c-parse.y"
1859 { yyval
.code
= NEGATE_EXPR
; ;
1862 #line 371 "c-parse.y"
1863 { yyval
.code
= CONVERT_EXPR
; ;
1866 #line 373 "c-parse.y"
1867 { yyval
.code
= PREINCREMENT_EXPR
; ;
1870 #line 375 "c-parse.y"
1871 { yyval
.code
= PREDECREMENT_EXPR
; ;
1874 #line 377 "c-parse.y"
1875 { yyval
.code
= BIT_NOT_EXPR
; ;
1878 #line 379 "c-parse.y"
1879 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1882 #line 383 "c-parse.y"
1883 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1886 #line 388 "c-parse.y"
1887 { yyval
.ttype
= NULL_TREE
; ;
1890 #line 394 "c-parse.y"
1891 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1894 #line 396 "c-parse.y"
1895 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1898 #line 402 "c-parse.y"
1899 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1902 #line 405 "c-parse.y"
1903 { yyval
.ttype
= yyvsp
[0].ttype
;
1904 pedantic
= yyvsp
[-1].itype
; ;
1907 #line 408 "c-parse.y"
1908 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1909 overflow_warning (yyval
.ttype
); ;
1912 #line 412 "c-parse.y"
1913 { tree label
= lookup_label (yyvsp
[0].ttype
);
1915 pedwarn ("ANSI C forbids `&&'");
1917 yyval
.ttype
= null_pointer_node
;
1920 TREE_USED (label
) = 1;
1921 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1922 TREE_CONSTANT (yyval
.ttype
) = 1;
1927 #line 440 "c-parse.y"
1928 { skip_evaluation
--;
1929 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1930 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1931 error ("`sizeof' applied to a bit-field");
1932 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1935 #line 446 "c-parse.y"
1936 { skip_evaluation
--;
1937 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1940 #line 449 "c-parse.y"
1941 { skip_evaluation
--;
1942 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1945 #line 452 "c-parse.y"
1946 { skip_evaluation
--;
1947 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1950 #line 455 "c-parse.y"
1951 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1954 #line 457 "c-parse.y"
1955 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1958 #line 461 "c-parse.y"
1959 { skip_evaluation
++; ;
1962 #line 465 "c-parse.y"
1963 { skip_evaluation
++; ;
1966 #line 471 "c-parse.y"
1967 { tree type
= groktypename (yyvsp
[-2].ttype
);
1968 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1971 #line 474 "c-parse.y"
1972 { start_init (NULL_TREE
, NULL
, 0);
1973 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1974 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1977 #line 478 "c-parse.y"
1979 tree result
= pop_init_level (0);
1980 tree type
= yyvsp
[-5].ttype
;
1983 if (pedantic
&& ! flag_isoc9x
)
1984 pedwarn ("ANSI C forbids constructor expressions");
1985 if (TYPE_NAME (type
) != 0)
1987 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1988 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1990 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
1994 yyval
.ttype
= result
;
1995 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
1997 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2004 #line 507 "c-parse.y"
2005 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2008 #line 509 "c-parse.y"
2009 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2012 #line 511 "c-parse.y"
2013 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2016 #line 513 "c-parse.y"
2017 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2020 #line 515 "c-parse.y"
2021 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2024 #line 517 "c-parse.y"
2025 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2028 #line 519 "c-parse.y"
2029 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2032 #line 521 "c-parse.y"
2033 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2036 #line 523 "c-parse.y"
2037 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2040 #line 525 "c-parse.y"
2041 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2044 #line 527 "c-parse.y"
2045 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2048 #line 529 "c-parse.y"
2049 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2052 #line 531 "c-parse.y"
2053 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2054 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2057 #line 534 "c-parse.y"
2058 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2059 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2062 #line 537 "c-parse.y"
2063 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2064 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2067 #line 540 "c-parse.y"
2068 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2069 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2072 #line 543 "c-parse.y"
2073 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2074 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2077 #line 546 "c-parse.y"
2078 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2079 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2082 #line 549 "c-parse.y"
2083 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2084 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2087 #line 552 "c-parse.y"
2089 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2090 /* Make sure first operand is calculated only once. */
2091 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2092 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2093 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2096 #line 559 "c-parse.y"
2097 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2098 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2101 #line 562 "c-parse.y"
2103 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2104 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2105 if (class == 'e' || class == '1'
2106 || class == '2' || class == '<')
2107 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2111 #line 570 "c-parse.y"
2113 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2114 /* This inhibits warnings in truthvalue_conversion. */
2115 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2116 if (class == 'e' || class == '1'
2117 || class == '2' || class == '<')
2118 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2122 #line 582 "c-parse.y"
2124 yyval
.ttype
= lastiddecl
;
2125 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2127 if (yychar
== YYEMPTY
)
2132 /* Ordinary implicit function declaration. */
2133 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2134 assemble_external (yyval
.ttype
);
2135 TREE_USED (yyval
.ttype
) = 1;
2138 else if (current_function_decl
== 0)
2140 error ("`%s' undeclared here (not in a function)",
2141 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2142 yyval
.ttype
= error_mark_node
;
2147 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2148 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2150 error ("`%s' undeclared (first use in this function)",
2151 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2153 if (! undeclared_variable_notice
)
2155 error ("(Each undeclared identifier is reported only once");
2156 error ("for each function it appears in.)");
2157 undeclared_variable_notice
= 1;
2160 yyval
.ttype
= error_mark_node
;
2161 /* Prevent repeated error messages. */
2162 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2163 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2167 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2168 yyval
.ttype
= error_mark_node
;
2169 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2171 /* The first time we see a build-in function used,
2172 if it has not been declared. */
2173 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2174 if (yychar
== YYEMPTY
)
2178 /* Omit the implicit declaration we
2179 would ordinarily do, so we don't lose
2180 the actual built in type.
2181 But print a diagnostic for the mismatch. */
2182 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2183 error ("`%s' implicitly declared as function",
2184 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2185 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2186 != TYPE_MODE (integer_type_node
))
2187 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2189 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2190 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2191 /* If it really returns void, change that to int. */
2192 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2193 TREE_TYPE (yyval
.ttype
)
2194 = build_function_type (integer_type_node
,
2195 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2198 pedwarn ("built-in function `%s' used without declaration",
2199 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2201 /* Do what we would ordinarily do when a fn is used. */
2202 assemble_external (yyval
.ttype
);
2203 TREE_USED (yyval
.ttype
) = 1;
2207 assemble_external (yyval
.ttype
);
2208 TREE_USED (yyval
.ttype
) = 1;
2211 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2213 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2214 /* This is to prevent an enum whose value is 0
2215 from being considered a null pointer constant. */
2216 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2217 TREE_CONSTANT (yyval
.ttype
) = 1;
2222 #line 681 "c-parse.y"
2223 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2226 #line 683 "c-parse.y"
2227 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2228 if (class == 'e' || class == '1'
2229 || class == '2' || class == '<')
2230 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2231 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2234 #line 689 "c-parse.y"
2235 { yyval
.ttype
= error_mark_node
; ;
2238 #line 691 "c-parse.y"
2239 { if (current_function_decl
== 0)
2241 error ("braced-group within expression allowed only inside a function");
2244 /* We must force a BLOCK for this level
2245 so that, if it is not expanded later,
2246 there is a way to turn off the entire subtree of blocks
2247 that are contained in it. */
2249 push_iterator_stack ();
2250 push_label_level ();
2251 yyval
.ttype
= expand_start_stmt_expr (); ;
2254 #line 705 "c-parse.y"
2257 pedwarn ("ANSI C forbids braced-groups within expressions");
2258 pop_iterator_stack ();
2260 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2261 /* The statements have side effects, so the group does. */
2262 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2264 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2266 /* Make a BIND_EXPR for the BLOCK already made. */
2267 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2268 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2269 /* Remove the block from the tree at this point.
2270 It gets put back at the proper place
2271 when the BIND_EXPR is expanded. */
2272 delete_block (yyvsp
[-1].ttype
);
2275 yyval
.ttype
= yyvsp
[-1].ttype
;
2279 #line 728 "c-parse.y"
2280 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2283 #line 730 "c-parse.y"
2284 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2287 #line 732 "c-parse.y"
2289 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2293 #line 736 "c-parse.y"
2295 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2297 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2301 #line 742 "c-parse.y"
2302 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2305 #line 744 "c-parse.y"
2306 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2309 #line 751 "c-parse.y"
2310 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2313 #line 760 "c-parse.y"
2314 { c_mark_varargs ();
2316 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2319 #line 770 "c-parse.y"
2323 #line 786 "c-parse.y"
2324 { current_declspecs
= TREE_VALUE (declspec_stack
);
2325 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2326 declspec_stack
= TREE_CHAIN (declspec_stack
);
2327 resume_momentary (yyvsp
[-2].itype
); ;
2330 #line 791 "c-parse.y"
2331 { current_declspecs
= TREE_VALUE (declspec_stack
);
2332 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2333 declspec_stack
= TREE_CHAIN (declspec_stack
);
2334 resume_momentary (yyvsp
[-2].itype
); ;
2337 #line 796 "c-parse.y"
2338 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2339 pedwarn ("empty declaration"); ;
2342 #line 799 "c-parse.y"
2343 { pedwarn ("empty declaration"); ;
2346 #line 808 "c-parse.y"
2350 #line 823 "c-parse.y"
2351 { yyval
.itype
= suspend_momentary ();
2352 pending_xref_error ();
2353 declspec_stack
= tree_cons (prefix_attributes
,
2356 split_specs_attrs (yyvsp
[0].ttype
,
2357 ¤t_declspecs
, &prefix_attributes
); ;
2360 #line 834 "c-parse.y"
2361 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2364 #line 839 "c-parse.y"
2365 { current_declspecs
= TREE_VALUE (declspec_stack
);
2366 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2367 declspec_stack
= TREE_CHAIN (declspec_stack
);
2368 resume_momentary (yyvsp
[-2].itype
); ;
2371 #line 844 "c-parse.y"
2372 { current_declspecs
= TREE_VALUE (declspec_stack
);
2373 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2374 declspec_stack
= TREE_CHAIN (declspec_stack
);
2375 resume_momentary (yyvsp
[-2].itype
); ;
2378 #line 849 "c-parse.y"
2379 { current_declspecs
= TREE_VALUE (declspec_stack
);
2380 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2381 declspec_stack
= TREE_CHAIN (declspec_stack
);
2382 resume_momentary (yyvsp
[-1].itype
); ;
2385 #line 854 "c-parse.y"
2386 { current_declspecs
= TREE_VALUE (declspec_stack
);
2387 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2388 declspec_stack
= TREE_CHAIN (declspec_stack
);
2389 resume_momentary (yyvsp
[-1].itype
); ;
2392 #line 859 "c-parse.y"
2393 { shadow_tag (yyvsp
[-1].ttype
); ;
2396 #line 861 "c-parse.y"
2397 { pedwarn ("empty declaration"); ;
2400 #line 863 "c-parse.y"
2401 { pedantic
= yyvsp
[-1].itype
; ;
2404 #line 873 "c-parse.y"
2405 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2408 #line 875 "c-parse.y"
2409 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2412 #line 879 "c-parse.y"
2413 { yyval
.ttype
= NULL_TREE
; ;
2416 #line 881 "c-parse.y"
2417 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2420 #line 883 "c-parse.y"
2421 { if (extra_warnings
)
2422 warning ("`%s' is not at beginning of declaration",
2423 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2424 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2427 #line 888 "c-parse.y"
2428 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2431 #line 893 "c-parse.y"
2432 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2435 #line 895 "c-parse.y"
2436 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2439 #line 900 "c-parse.y"
2440 { yyval
.ttype
= NULL_TREE
; ;
2443 #line 902 "c-parse.y"
2444 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2447 #line 904 "c-parse.y"
2448 { if (extra_warnings
)
2449 warning ("`%s' is not at beginning of declaration",
2450 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2451 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2454 #line 917 "c-parse.y"
2455 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2458 #line 919 "c-parse.y"
2459 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2462 #line 921 "c-parse.y"
2463 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2466 #line 923 "c-parse.y"
2467 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2470 #line 928 "c-parse.y"
2471 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2472 TREE_STATIC (yyval
.ttype
) = 1; ;
2475 #line 931 "c-parse.y"
2476 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2479 #line 933 "c-parse.y"
2480 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2481 TREE_STATIC (yyval
.ttype
) = 1; ;
2484 #line 936 "c-parse.y"
2485 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2486 warning ("`%s' is not at beginning of declaration",
2487 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2488 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2489 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2492 #line 950 "c-parse.y"
2493 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2496 #line 952 "c-parse.y"
2497 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2500 #line 956 "c-parse.y"
2501 { yyval
.ttype
= NULL_TREE
; ;
2504 #line 958 "c-parse.y"
2505 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2508 #line 968 "c-parse.y"
2509 { /* For a typedef name, record the meaning, not the name.
2510 In case of `foo foo, bar;'. */
2511 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2514 #line 972 "c-parse.y"
2515 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2518 #line 974 "c-parse.y"
2519 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2522 #line 996 "c-parse.y"
2523 { yyval
.ttype
= NULL_TREE
; ;
2526 #line 998 "c-parse.y"
2527 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2528 yyval
.ttype
= yyvsp
[-1].ttype
;
2532 #line 1005 "c-parse.y"
2533 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2534 yyvsp
[-1].ttype
, prefix_attributes
);
2535 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2538 #line 1010 "c-parse.y"
2540 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2543 #line 1013 "c-parse.y"
2544 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2545 yyvsp
[0].ttype
, prefix_attributes
);
2546 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2550 #line 1021 "c-parse.y"
2551 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2552 yyvsp
[-1].ttype
, prefix_attributes
);
2553 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2556 #line 1026 "c-parse.y"
2558 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2559 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2562 #line 1030 "c-parse.y"
2563 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2564 yyvsp
[0].ttype
, prefix_attributes
);
2565 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2568 #line 1038 "c-parse.y"
2569 { yyval
.ttype
= NULL_TREE
; ;
2572 #line 1040 "c-parse.y"
2573 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2576 #line 1045 "c-parse.y"
2577 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2580 #line 1047 "c-parse.y"
2581 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2584 #line 1052 "c-parse.y"
2585 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2588 #line 1057 "c-parse.y"
2589 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2592 #line 1059 "c-parse.y"
2593 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2596 #line 1064 "c-parse.y"
2597 { yyval
.ttype
= NULL_TREE
; ;
2600 #line 1066 "c-parse.y"
2601 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2604 #line 1068 "c-parse.y"
2605 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2608 #line 1070 "c-parse.y"
2609 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2612 #line 1072 "c-parse.y"
2613 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2616 #line 1090 "c-parse.y"
2617 { really_start_incremental_init (NULL_TREE
);
2618 /* Note that the call to clear_momentary
2619 is in process_init_element. */
2620 push_momentary (); ;
2623 #line 1095 "c-parse.y"
2624 { yyval
.ttype
= pop_init_level (0);
2625 if (yyval
.ttype
== error_mark_node
2626 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2629 pop_momentary_nofree (); ;
2632 #line 1103 "c-parse.y"
2633 { yyval
.ttype
= error_mark_node
; ;
2636 #line 1109 "c-parse.y"
2638 pedwarn ("ANSI C forbids empty initializer braces"); ;
2641 #line 1125 "c-parse.y"
2642 { set_init_label (yyvsp
[-1].ttype
); ;
2645 #line 1132 "c-parse.y"
2646 { push_init_level (0); ;
2649 #line 1134 "c-parse.y"
2650 { process_init_element (pop_init_level (0)); ;
2653 #line 1136 "c-parse.y"
2654 { process_init_element (yyvsp
[0].ttype
); ;
2657 #line 1147 "c-parse.y"
2658 { set_init_label (yyvsp
[0].ttype
); ;
2661 #line 1152 "c-parse.y"
2662 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2665 #line 1154 "c-parse.y"
2666 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2669 #line 1159 "c-parse.y"
2670 { push_c_function_context ();
2671 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2672 prefix_attributes
, NULL_TREE
, 1))
2674 pop_c_function_context ();
2677 reinit_parse_for_function (); ;
2680 #line 1168 "c-parse.y"
2681 { store_parm_decls (); ;
2684 #line 1176 "c-parse.y"
2685 { finish_function (1);
2686 pop_c_function_context (); ;
2689 #line 1182 "c-parse.y"
2690 { push_c_function_context ();
2691 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2692 prefix_attributes
, NULL_TREE
, 1))
2694 pop_c_function_context ();
2697 reinit_parse_for_function (); ;
2700 #line 1191 "c-parse.y"
2701 { store_parm_decls (); ;
2704 #line 1199 "c-parse.y"
2705 { finish_function (1);
2706 pop_c_function_context (); ;
2709 #line 1215 "c-parse.y"
2710 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2713 #line 1217 "c-parse.y"
2714 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2717 #line 1222 "c-parse.y"
2718 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2721 #line 1224 "c-parse.y"
2722 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2725 #line 1226 "c-parse.y"
2726 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2729 #line 1233 "c-parse.y"
2730 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2733 #line 1244 "c-parse.y"
2734 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2737 #line 1249 "c-parse.y"
2738 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2740 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2744 #line 1254 "c-parse.y"
2745 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2748 #line 1256 "c-parse.y"
2749 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2752 #line 1258 "c-parse.y"
2753 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2756 #line 1265 "c-parse.y"
2757 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2760 #line 1274 "c-parse.y"
2761 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2764 #line 1279 "c-parse.y"
2765 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2768 #line 1281 "c-parse.y"
2769 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2772 #line 1283 "c-parse.y"
2773 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2775 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2779 #line 1288 "c-parse.y"
2780 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2783 #line 1290 "c-parse.y"
2784 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2787 #line 1297 "c-parse.y"
2788 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2791 #line 1303 "c-parse.y"
2792 { yyval
.ttype
= NULL_TREE
; ;
2795 #line 1305 "c-parse.y"
2796 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2799 #line 1310 "c-parse.y"
2800 { yyval
.ttype
= NULL_TREE
; ;
2803 #line 1312 "c-parse.y"
2804 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2807 #line 1317 "c-parse.y"
2808 { yyval
.ttype
= NULL_TREE
; ;
2811 #line 1319 "c-parse.y"
2812 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2815 #line 1324 "c-parse.y"
2816 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2817 /* Start scope of tag before parsing components. */
2821 #line 1328 "c-parse.y"
2822 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2825 #line 1330 "c-parse.y"
2826 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2827 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2831 #line 1334 "c-parse.y"
2832 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2835 #line 1336 "c-parse.y"
2836 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2839 #line 1338 "c-parse.y"
2840 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2843 #line 1340 "c-parse.y"
2844 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2845 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2849 #line 1344 "c-parse.y"
2850 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2853 #line 1346 "c-parse.y"
2854 { yyvsp
[0].itype
= suspend_momentary ();
2855 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2858 #line 1349 "c-parse.y"
2859 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
2860 resume_momentary (yyvsp
[-5].itype
); ;
2863 #line 1352 "c-parse.y"
2864 { yyvsp
[0].itype
= suspend_momentary ();
2865 yyval
.ttype
= start_enum (NULL_TREE
); ;
2868 #line 1355 "c-parse.y"
2869 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
2870 resume_momentary (yyvsp
[-5].itype
); ;
2873 #line 1358 "c-parse.y"
2874 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2877 #line 1369 "c-parse.y"
2878 { if (pedantic
&& ! flag_isoc9x
)
2879 pedwarn ("comma at end of enumerator list"); ;
2882 #line 1375 "c-parse.y"
2883 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2886 #line 1377 "c-parse.y"
2887 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2888 pedwarn ("no semicolon at end of struct or union"); ;
2891 #line 1382 "c-parse.y"
2892 { yyval
.ttype
= NULL_TREE
; ;
2895 #line 1384 "c-parse.y"
2896 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2899 #line 1386 "c-parse.y"
2901 pedwarn ("extra semicolon in struct or union specified"); ;
2904 #line 1401 "c-parse.y"
2905 { yyval
.ttype
= yyvsp
[0].ttype
;
2906 current_declspecs
= TREE_VALUE (declspec_stack
);
2907 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2908 declspec_stack
= TREE_CHAIN (declspec_stack
);
2909 resume_momentary (yyvsp
[-1].itype
); ;
2912 #line 1407 "c-parse.y"
2914 pedwarn ("ANSI C forbids member declarations with no members");
2915 shadow_tag(yyvsp
[0].ttype
);
2916 yyval
.ttype
= NULL_TREE
; ;
2919 #line 1412 "c-parse.y"
2920 { yyval
.ttype
= yyvsp
[0].ttype
;
2921 current_declspecs
= TREE_VALUE (declspec_stack
);
2922 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2923 declspec_stack
= TREE_CHAIN (declspec_stack
);
2924 resume_momentary (yyvsp
[-1].itype
); ;
2927 #line 1418 "c-parse.y"
2929 pedwarn ("ANSI C forbids member declarations with no members");
2930 shadow_tag(yyvsp
[0].ttype
);
2931 yyval
.ttype
= NULL_TREE
; ;
2934 #line 1423 "c-parse.y"
2935 { yyval
.ttype
= NULL_TREE
; ;
2938 #line 1425 "c-parse.y"
2939 { yyval
.ttype
= yyvsp
[0].ttype
;
2940 pedantic
= yyvsp
[-1].itype
; ;
2943 #line 1432 "c-parse.y"
2944 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2947 #line 1437 "c-parse.y"
2948 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2949 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2952 #line 1441 "c-parse.y"
2953 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2954 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2957 #line 1444 "c-parse.y"
2958 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2959 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2962 #line 1456 "c-parse.y"
2963 { if (yyvsp
[-2].ttype
== error_mark_node
)
2964 yyval
.ttype
= yyvsp
[-2].ttype
;
2966 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2969 #line 1461 "c-parse.y"
2970 { yyval
.ttype
= error_mark_node
; ;
2973 #line 1467 "c-parse.y"
2974 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2977 #line 1469 "c-parse.y"
2978 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2981 #line 1474 "c-parse.y"
2982 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2985 #line 1476 "c-parse.y"
2986 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2989 #line 1481 "c-parse.y"
2990 { yyval
.ttype
= NULL_TREE
; ;
2993 #line 1487 "c-parse.y"
2994 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2997 #line 1489 "c-parse.y"
2998 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3001 #line 1494 "c-parse.y"
3002 { yyval
.ttype
= NULL_TREE
; ;
3005 #line 1496 "c-parse.y"
3006 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3009 #line 1501 "c-parse.y"
3010 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3013 #line 1504 "c-parse.y"
3014 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3017 #line 1506 "c-parse.y"
3018 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3021 #line 1508 "c-parse.y"
3022 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3025 #line 1510 "c-parse.y"
3026 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3029 #line 1512 "c-parse.y"
3030 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3033 #line 1514 "c-parse.y"
3034 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3037 #line 1516 "c-parse.y"
3038 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3041 #line 1518 "c-parse.y"
3042 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3045 #line 1529 "c-parse.y"
3047 if (pedantic
&& yyvsp
[0].ends_in_label
)
3048 pedwarn ("ANSI C forbids label at end of compound statement");
3052 #line 1538 "c-parse.y"
3053 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3056 #line 1540 "c-parse.y"
3057 { yyval
.ends_in_label
= 0; ;
3060 #line 1552 "c-parse.y"
3061 { emit_line_note (input_filename
, lineno
);
3065 expand_start_bindings (0);
3069 #line 1565 "c-parse.y"
3071 pedwarn ("ANSI C forbids label declarations"); ;
3074 #line 1576 "c-parse.y"
3076 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3078 tree label
= shadow_label (TREE_VALUE (link
));
3079 C_DECLARED_LABEL_FLAG (label
) = 1;
3080 declare_nonlocal_label (label
);
3085 #line 1590 "c-parse.y"
3089 #line 1594 "c-parse.y"
3090 { compstmt_count
++; ;
3093 #line 1597 "c-parse.y"
3094 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3097 #line 1599 "c-parse.y"
3098 { emit_line_note (input_filename
, lineno
);
3099 expand_end_bindings (getdecls (), 1, 0);
3100 yyval
.ttype
= poplevel (1, 1, 0);
3101 if (yychar
== CONSTANT
|| yychar
== STRING
)
3102 pop_momentary_nofree ();
3107 #line 1607 "c-parse.y"
3108 { emit_line_note (input_filename
, lineno
);
3109 expand_end_bindings (getdecls (), kept_level_p (), 0);
3110 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3111 if (yychar
== CONSTANT
|| yychar
== STRING
)
3112 pop_momentary_nofree ();
3117 #line 1615 "c-parse.y"
3118 { emit_line_note (input_filename
, lineno
);
3119 expand_end_bindings (getdecls (), kept_level_p (), 0);
3120 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3121 if (yychar
== CONSTANT
|| yychar
== STRING
)
3122 pop_momentary_nofree ();
3127 #line 1635 "c-parse.y"
3128 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3129 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3131 yyval
.itype
= stmt_count
;
3132 if_stmt_file
= yyvsp
[-5].filename
;
3133 if_stmt_line
= yyvsp
[-4].lineno
;
3134 position_after_white_space (); ;
3137 #line 1649 "c-parse.y"
3140 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3141 /* See comment in `while' alternative, above. */
3143 expand_start_loop_continue_elsewhere (1);
3144 position_after_white_space (); ;
3147 #line 1657 "c-parse.y"
3148 { expand_loop_continue_here (); ;
3151 #line 1661 "c-parse.y"
3152 { yyval
.filename
= input_filename
; ;
3155 #line 1665 "c-parse.y"
3156 { yyval
.lineno
= lineno
; ;
3159 #line 1670 "c-parse.y"
3163 #line 1675 "c-parse.y"
3167 #line 1680 "c-parse.y"
3168 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3171 #line 1685 "c-parse.y"
3172 { yyval
.ends_in_label
= 0; ;
3175 #line 1687 "c-parse.y"
3176 { yyval
.ends_in_label
= 1; ;
3179 #line 1693 "c-parse.y"
3183 #line 1696 "c-parse.y"
3185 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3186 /* It appears that this should not be done--that a non-lvalue array
3187 shouldn't get an error if the value isn't used.
3188 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3189 if it appears as a top-level expression,
3190 but says nothing about non-lvalue arrays. */
3192 /* Call default_conversion to get an error
3193 on referring to a register array if pedantic. */
3194 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3195 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3196 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3198 iterator_expand (yyvsp
[-1].ttype
);
3199 clear_momentary (); ;
3202 #line 1713 "c-parse.y"
3203 { c_expand_start_else ();
3204 yyvsp
[-1].itype
= stmt_count
;
3205 position_after_white_space (); ;
3208 #line 1717 "c-parse.y"
3209 { c_expand_end_cond ();
3210 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3211 warning ("empty body in an else-statement"); ;
3214 #line 1721 "c-parse.y"
3215 { c_expand_end_cond ();
3216 /* This warning is here instead of in simple_if, because we
3217 do not want a warning if an empty if is followed by an
3218 else statement. Increment stmt_count so we don't
3219 give a second error if this is a nested `if'. */
3220 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3221 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3222 "empty body in an if-statement"); ;
3225 #line 1733 "c-parse.y"
3226 { c_expand_end_cond (); ;
3229 #line 1735 "c-parse.y"
3231 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3232 /* The emit_nop used to come before emit_line_note,
3233 but that made the nop seem like part of the preceding line.
3234 And that was confusing when the preceding line was
3235 inside of an if statement and was not really executed.
3236 I think it ought to work to put the nop after the line number.
3237 We will see. --rms, July 15, 1991. */
3241 #line 1745 "c-parse.y"
3242 { /* Don't start the loop till we have succeeded
3243 in parsing the end test. This is to make sure
3244 that we end every loop we start. */
3245 expand_start_loop (1);
3246 emit_line_note (input_filename
, lineno
);
3247 expand_exit_loop_if_false (NULL_PTR
,
3248 truthvalue_conversion (yyvsp
[-1].ttype
));
3249 position_after_white_space (); ;
3252 #line 1754 "c-parse.y"
3253 { expand_end_loop (); ;
3256 #line 1757 "c-parse.y"
3257 { emit_line_note (input_filename
, lineno
);
3258 expand_exit_loop_if_false (NULL_PTR
,
3259 truthvalue_conversion (yyvsp
[-2].ttype
));
3261 clear_momentary (); ;
3264 #line 1764 "c-parse.y"
3265 { expand_end_loop ();
3266 clear_momentary (); ;
3269 #line 1768 "c-parse.y"
3271 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3272 /* See comment in `while' alternative, above. */
3274 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3275 /* Next step is to call expand_start_loop_continue_elsewhere,
3276 but wait till after we parse the entire for (...).
3277 Otherwise, invalid input might cause us to call that
3278 fn without calling expand_end_loop. */
3282 #line 1780 "c-parse.y"
3283 { yyvsp
[0].lineno
= lineno
;
3284 yyval
.filename
= input_filename
; ;
3287 #line 1783 "c-parse.y"
3289 /* Start the loop. Doing this after parsing
3290 all the expressions ensures we will end the loop. */
3291 expand_start_loop_continue_elsewhere (1);
3292 /* Emit the end-test, with a line number. */
3293 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3294 if (yyvsp
[-4].ttype
)
3295 expand_exit_loop_if_false (NULL_PTR
,
3296 truthvalue_conversion (yyvsp
[-4].ttype
));
3297 /* Don't let the tree nodes for $9 be discarded by
3298 clear_momentary during the parsing of the next stmt. */
3300 yyvsp
[-3].lineno
= lineno
;
3301 yyvsp
[-2].filename
= input_filename
;
3302 position_after_white_space (); ;
3305 #line 1799 "c-parse.y"
3306 { /* Emit the increment expression, with a line number. */
3307 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3308 expand_loop_continue_here ();
3309 if (yyvsp
[-3].ttype
)
3310 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3311 if (yychar
== CONSTANT
|| yychar
== STRING
)
3312 pop_momentary_nofree ();
3315 expand_end_loop (); ;
3318 #line 1810 "c-parse.y"
3320 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3321 c_expand_start_case (yyvsp
[-1].ttype
);
3322 /* Don't let the tree nodes for $3 be discarded by
3323 clear_momentary during the parsing of the next stmt. */
3325 position_after_white_space (); ;
3328 #line 1818 "c-parse.y"
3329 { expand_end_case (yyvsp
[-3].ttype
);
3330 if (yychar
== CONSTANT
|| yychar
== STRING
)
3331 pop_momentary_nofree ();
3336 #line 1824 "c-parse.y"
3338 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3339 if ( ! expand_exit_something ())
3340 error ("break statement not within loop or switch"); ;
3343 #line 1829 "c-parse.y"
3345 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3346 if (! expand_continue_loop (NULL_PTR
))
3347 error ("continue statement not within a loop"); ;
3350 #line 1834 "c-parse.y"
3352 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3353 c_expand_return (NULL_TREE
); ;
3356 #line 1838 "c-parse.y"
3358 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3359 c_expand_return (yyvsp
[-1].ttype
); ;
3362 #line 1842 "c-parse.y"
3364 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3365 STRIP_NOPS (yyvsp
[-2].ttype
);
3366 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3367 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3368 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3369 expand_asm (yyvsp
[-2].ttype
);
3371 error ("argument of `asm' is not a constant string"); ;
3374 #line 1853 "c-parse.y"
3376 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3377 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3378 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3379 input_filename
, lineno
); ;
3382 #line 1860 "c-parse.y"
3384 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3385 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3386 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3387 input_filename
, lineno
); ;
3390 #line 1868 "c-parse.y"
3392 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3393 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3394 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3395 input_filename
, lineno
); ;
3398 #line 1874 "c-parse.y"
3401 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3402 decl
= lookup_label (yyvsp
[-1].ttype
);
3405 TREE_USED (decl
) = 1;
3411 #line 1885 "c-parse.y"
3413 pedwarn ("ANSI C forbids `goto *expr;'");
3415 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3416 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3419 #line 1900 "c-parse.y"
3421 /* The value returned by this action is */
3422 /* 1 if everything is OK */
3423 /* 0 in case of error or already bound iterator */
3426 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3427 error ("invalid `for (ITERATOR)' syntax");
3428 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3429 error ("`%s' is not an iterator",
3430 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3431 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3432 error ("`for (%s)' inside expansion of same iterator",
3433 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3437 iterator_for_loop_start (yyvsp
[-1].ttype
);
3442 #line 1921 "c-parse.y"
3444 if (yyvsp
[-1].itype
)
3445 iterator_for_loop_end (yyvsp
[-3].ttype
);
3449 #line 1956 "c-parse.y"
3450 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3452 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3456 if (value
!= error_mark_node
)
3461 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3462 pedwarn ("label must have integral type in ANSI C");
3464 success
= pushcase (value
, convert_and_check
,
3468 error ("case label not within a switch statement");
3469 else if (success
== 2)
3471 error ("duplicate case value");
3472 error_with_decl (duplicate
, "this is the first entry for that value");
3474 else if (success
== 3)
3475 warning ("case value out of range");
3476 else if (success
== 5)
3477 error ("case label within scope of cleanup or variable array");
3479 position_after_white_space (); ;
3482 #line 1987 "c-parse.y"
3483 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3484 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3486 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3489 pedwarn ("ANSI C forbids case ranges");
3492 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3495 int success
= pushcase_range (value1
, value2
,
3496 convert_and_check
, label
,
3499 error ("case label not within a switch statement");
3500 else if (success
== 2)
3502 error ("duplicate case value");
3503 error_with_decl (duplicate
, "this is the first entry for that value");
3505 else if (success
== 3)
3506 warning ("case value out of range");
3507 else if (success
== 4)
3508 warning ("empty case range");
3509 else if (success
== 5)
3510 error ("case label within scope of cleanup or variable array");
3512 position_after_white_space (); ;
3515 #line 2018 "c-parse.y"
3519 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3520 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3523 error ("default label not within a switch statement");
3524 else if (success
== 2)
3526 error ("multiple default labels in one switch");
3527 error_with_decl (duplicate
, "this is the first default label");
3529 position_after_white_space (); ;
3532 #line 2033 "c-parse.y"
3533 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3538 expand_label (label
);
3539 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3541 position_after_white_space (); ;
3544 #line 2048 "c-parse.y"
3545 { emit_line_note (input_filename
, lineno
);
3546 yyval
.ttype
= NULL_TREE
; ;
3549 #line 2051 "c-parse.y"
3550 { emit_line_note (input_filename
, lineno
); ;
3553 #line 2056 "c-parse.y"
3554 { yyval
.ttype
= NULL_TREE
; ;
3557 #line 2063 "c-parse.y"
3558 { yyval
.ttype
= NULL_TREE
; ;
3561 #line 2070 "c-parse.y"
3562 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3565 #line 2075 "c-parse.y"
3566 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3569 #line 2080 "c-parse.y"
3570 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3573 #line 2082 "c-parse.y"
3574 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3577 #line 2088 "c-parse.y"
3579 clear_parm_order ();
3580 declare_parm_level (0); ;
3583 #line 2092 "c-parse.y"
3584 { yyval
.ttype
= yyvsp
[0].ttype
;
3585 parmlist_tags_warning ();
3586 poplevel (0, 0, 0); ;
3589 #line 2100 "c-parse.y"
3592 pedwarn ("ANSI C forbids forward parameter declarations");
3593 /* Mark the forward decls as such. */
3594 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3595 TREE_ASM_WRITTEN (parm
) = 1;
3596 clear_parm_order (); ;
3599 #line 2108 "c-parse.y"
3600 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3603 #line 2110 "c-parse.y"
3604 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3607 #line 2116 "c-parse.y"
3608 { yyval
.ttype
= get_parm_info (0); ;
3611 #line 2118 "c-parse.y"
3612 { yyval
.ttype
= get_parm_info (0);
3613 /* Gcc used to allow this as an extension. However, it does
3614 not work for all targets, and thus has been disabled.
3615 Also, since func (...) and func () are indistinguishable,
3616 it caused problems with the code in expand_builtin which
3617 tries to verify that BUILT_IN_NEXT_ARG is being used
3619 error ("ANSI C requires a named argument before `...'");
3623 #line 2128 "c-parse.y"
3624 { yyval
.ttype
= get_parm_info (1); ;
3627 #line 2130 "c-parse.y"
3628 { yyval
.ttype
= get_parm_info (0); ;
3631 #line 2135 "c-parse.y"
3632 { push_parm_decl (yyvsp
[0].ttype
); ;
3635 #line 2137 "c-parse.y"
3636 { push_parm_decl (yyvsp
[0].ttype
); ;
3639 #line 2144 "c-parse.y"
3640 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3642 build_tree_list (prefix_attributes
,
3644 current_declspecs
= TREE_VALUE (declspec_stack
);
3645 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3646 declspec_stack
= TREE_CHAIN (declspec_stack
);
3647 resume_momentary (yyvsp
[-2].itype
); ;
3650 #line 2153 "c-parse.y"
3651 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3653 build_tree_list (prefix_attributes
,
3655 current_declspecs
= TREE_VALUE (declspec_stack
);
3656 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3657 declspec_stack
= TREE_CHAIN (declspec_stack
);
3658 resume_momentary (yyvsp
[-2].itype
); ;
3661 #line 2162 "c-parse.y"
3662 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3664 build_tree_list (prefix_attributes
,
3666 current_declspecs
= TREE_VALUE (declspec_stack
);
3667 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3668 declspec_stack
= TREE_CHAIN (declspec_stack
);
3669 resume_momentary (yyvsp
[-2].itype
); ;
3672 #line 2171 "c-parse.y"
3673 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3675 build_tree_list (prefix_attributes
,
3677 current_declspecs
= TREE_VALUE (declspec_stack
);
3678 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3679 declspec_stack
= TREE_CHAIN (declspec_stack
);
3680 resume_momentary (yyvsp
[-2].itype
); ;
3683 #line 2181 "c-parse.y"
3684 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3686 build_tree_list (prefix_attributes
,
3688 current_declspecs
= TREE_VALUE (declspec_stack
);
3689 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3690 declspec_stack
= TREE_CHAIN (declspec_stack
);
3691 resume_momentary (yyvsp
[-2].itype
); ;
3694 #line 2195 "c-parse.y"
3696 clear_parm_order ();
3697 declare_parm_level (1); ;
3700 #line 2199 "c-parse.y"
3701 { yyval
.ttype
= yyvsp
[0].ttype
;
3702 parmlist_tags_warning ();
3703 poplevel (0, 0, 0); ;
3706 #line 2207 "c-parse.y"
3708 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3709 if (TREE_VALUE (t
) == NULL_TREE
)
3710 error ("`...' in old-style identifier list");
3711 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3714 #line 2217 "c-parse.y"
3715 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3718 #line 2219 "c-parse.y"
3719 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3722 #line 2225 "c-parse.y"
3723 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3726 #line 2227 "c-parse.y"
3727 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3730 #line 2232 "c-parse.y"
3731 { yyval
.itype
= pedantic
;
3735 /* the action file gets copied in in place of this dollarsign */
3736 #line 498 "/usr/lib/bison.simple"
3747 short *ssp1
= yyss
- 1;
3748 fprintf (stderr
, "state stack now");
3749 while (ssp1
!= yyssp
)
3750 fprintf (stderr
, " %d", *++ssp1
);
3751 fprintf (stderr
, "\n");
3761 yylsp
->first_line
= yylloc
.first_line
;
3762 yylsp
->first_column
= yylloc
.first_column
;
3763 yylsp
->last_line
= (yylsp
-1)->last_line
;
3764 yylsp
->last_column
= (yylsp
-1)->last_column
;
3769 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3770 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3774 /* Now "shift" the result of the reduction.
3775 Determine what state that goes to,
3776 based on the state we popped back to
3777 and the rule number reduced by. */
3781 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3782 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3783 yystate
= yytable
[yystate
];
3785 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3789 yyerrlab
: /* here on detecting error */
3792 /* If not already recovering from an error, report this error. */
3796 #ifdef YYERROR_VERBOSE
3797 yyn
= yypact
[yystate
];
3799 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3806 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3807 for (x
= (yyn
< 0 ? -yyn
: 0);
3808 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3809 if (yycheck
[x
+ yyn
] == x
)
3810 size
+= strlen(yytname
[x
]) + 15, count
++;
3811 msg
= (char *) malloc(size
+ 15);
3814 strcpy(msg
, "parse error");
3819 for (x
= (yyn
< 0 ? -yyn
: 0);
3820 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3821 if (yycheck
[x
+ yyn
] == x
)
3823 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3824 strcat(msg
, yytname
[x
]);
3833 yyerror ("parse error; also virtual memory exceeded");
3836 #endif /* YYERROR_VERBOSE */
3837 yyerror("parse error");
3841 yyerrlab1
: /* here on error raised explicitly by an action */
3843 if (yyerrstatus
== 3)
3845 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3847 /* return failure if at end of input */
3848 if (yychar
== YYEOF
)
3853 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3859 /* Else will try to reuse lookahead token
3860 after shifting the error token. */
3862 yyerrstatus
= 3; /* Each real token shifted decrements this */
3866 yyerrdefault
: /* current state does not do anything special for the error token. */
3869 /* This is wrong; only states that explicitly want error tokens
3870 should shift them. */
3871 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3872 if (yyn
) goto yydefault
;
3875 yyerrpop
: /* pop the current state because it cannot handle the error token */
3877 if (yyssp
== yyss
) YYABORT
;
3887 short *ssp1
= yyss
- 1;
3888 fprintf (stderr
, "Error: state stack now");
3889 while (ssp1
!= yyssp
)
3890 fprintf (stderr
, " %d", *++ssp1
);
3891 fprintf (stderr
, "\n");
3897 yyn
= yypact
[yystate
];
3902 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3921 fprintf(stderr
, "Shifting error token, ");
3932 #line 2236 "c-parse.y"