2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.27
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 281
45 #define ARITHCOMPARE 294
50 #define MINUSMINUS 299
51 #define HYPERUNARY 300
54 #define IMPLEMENTATION 303
64 #define OBJECTNAME 313
67 #define OBJC_STRING 316
83 #ifdef MULTIBYTE_CHARS
88 /* Since parsers are distinct for each language, put the language string
90 char *language_string
= "GNU C";
92 /* Like YYERROR but do call yyerror. */
93 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
95 /* Cause the `yydebug' variable to be defined. */
99 typedef union {long itype
; tree ttype
; enum tree_code code
;
100 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
101 #line 204 "c-parse.y"
103 /* Number of statements (loosely speaking) and compound statements
105 static int stmt_count
;
106 static int compstmt_count
;
108 /* Input file and line number of the end of the body of last simple_if;
109 used by the stmt-rule immediately after simple_if returns. */
110 static char *if_stmt_file
;
111 static int if_stmt_line
;
113 /* List of types and structure classes of the current declaration. */
114 static tree current_declspecs
= NULL_TREE
;
115 static tree prefix_attributes
= NULL_TREE
;
117 /* Stack of saved values of current_declspecs and prefix_attributes. */
118 static tree declspec_stack
;
120 /* 1 if we explained undeclared var errors. */
121 static int undeclared_variable_notice
;
124 /* Tell yyparse how to print a token's value, if yydebug is set. */
126 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
127 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
139 #define YYFLAG -32768
142 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 242)
144 static const char yytranslate
[] = { 0,
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, 2, 2, 2, 2, 2, 2, 2, 2,
148 2, 2, 81, 2, 2, 2, 53, 44, 2, 60,
149 77, 51, 49, 82, 50, 59, 52, 2, 2, 2,
150 2, 2, 2, 2, 2, 2, 2, 39, 78, 2,
151 37, 2, 38, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
154 61, 2, 84, 43, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157 2, 2, 83, 42, 79, 80, 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, 2, 2, 2, 2, 2,
170 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
171 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
172 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
173 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
174 40, 41, 45, 46, 47, 48, 54, 55, 56, 57,
175 58, 62, 63, 64, 65, 66, 67, 68, 69, 70,
176 71, 72, 73, 74, 75, 76
180 static const short yyprhs
[] = { 0,
181 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
182 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
183 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
184 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
185 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
186 142, 147, 150, 155, 158, 161, 168, 170, 172, 174,
187 179, 180, 188, 190, 194, 198, 202, 206, 210, 214,
188 218, 222, 226, 230, 234, 238, 239, 244, 245, 250,
189 251, 252, 260, 261, 267, 271, 275, 277, 279, 281,
190 285, 289, 290, 295, 300, 305, 309, 313, 316, 319,
191 321, 324, 325, 327, 330, 334, 336, 338, 341, 344,
192 349, 354, 357, 360, 364, 366, 368, 371, 374, 375,
193 376, 381, 386, 390, 394, 397, 400, 403, 406, 410,
194 411, 414, 417, 420, 423, 427, 428, 431, 434, 436,
195 438, 441, 444, 446, 448, 451, 454, 457, 461, 462,
196 465, 467, 469, 471, 476, 481, 483, 485, 487, 489,
197 493, 495, 499, 500, 505, 506, 513, 517, 518, 525,
198 529, 530, 532, 534, 537, 544, 546, 550, 551, 553,
199 558, 565, 570, 572, 574, 576, 578, 580, 581, 586,
200 588, 589, 592, 594, 598, 602, 605, 606, 611, 613,
201 614, 619, 621, 623, 625, 628, 631, 637, 641, 642,
202 643, 649, 650, 651, 657, 659, 661, 665, 669, 674,
203 678, 682, 686, 688, 692, 697, 702, 706, 710, 714,
204 716, 720, 724, 728, 733, 738, 742, 746, 748, 750,
205 753, 755, 758, 760, 763, 764, 772, 778, 781, 782,
206 790, 796, 799, 800, 809, 810, 818, 821, 822, 824,
207 825, 827, 829, 832, 833, 837, 840, 844, 846, 850,
208 852, 854, 857, 859, 863, 868, 875, 881, 883, 887,
209 889, 891, 895, 898, 901, 902, 904, 906, 909, 910,
210 913, 917, 921, 924, 928, 933, 937, 940, 944, 947,
211 951, 953, 955, 958, 961, 962, 964, 967, 968, 969,
212 971, 973, 976, 980, 982, 985, 987, 990, 997, 1003,
213 1009, 1012, 1015, 1020, 1021, 1026, 1027, 1028, 1032, 1037,
214 1041, 1043, 1045, 1047, 1049, 1052, 1053, 1058, 1060, 1064,
215 1065, 1066, 1074, 1080, 1083, 1084, 1085, 1086, 1099, 1100,
216 1107, 1110, 1113, 1116, 1120, 1127, 1136, 1147, 1160, 1164,
217 1169, 1171, 1173, 1174, 1181, 1185, 1191, 1194, 1198, 1199,
218 1201, 1202, 1204, 1205, 1207, 1209, 1213, 1218, 1220, 1224,
219 1225, 1228, 1231, 1232, 1237, 1240, 1241, 1243, 1245, 1249,
220 1251, 1255, 1260, 1265, 1270, 1275, 1280, 1281, 1284, 1286,
221 1289, 1291, 1295, 1297, 1301
224 static const short yyrhs
[] = { -1,
225 86, 0, 0, 87, 89, 0, 0, 86, 88, 89,
226 0, 91, 0, 90, 0, 27, 60, 100, 77, 78,
227 0, 241, 89, 0, 123, 137, 78, 0, 130, 123,
228 137, 78, 0, 126, 123, 136, 78, 0, 130, 78,
229 0, 126, 78, 0, 1, 78, 0, 1, 79, 0,
230 78, 0, 0, 0, 126, 123, 165, 92, 117, 93,
231 199, 0, 126, 123, 165, 1, 0, 0, 0, 130,
232 123, 168, 94, 117, 95, 199, 0, 130, 123, 168,
233 1, 0, 0, 0, 123, 168, 96, 117, 97, 199,
234 0, 123, 168, 1, 0, 3, 0, 4, 0, 44,
235 0, 50, 0, 49, 0, 55, 0, 56, 0, 80,
236 0, 81, 0, 102, 0, 0, 102, 0, 108, 0,
237 102, 82, 108, 0, 114, 0, 51, 106, 0, 241,
238 106, 0, 99, 106, 0, 41, 98, 0, 104, 103,
239 0, 104, 60, 186, 77, 0, 105, 103, 0, 105,
240 60, 186, 77, 0, 33, 106, 0, 34, 106, 0,
241 35, 60, 108, 82, 186, 77, 0, 11, 0, 29,
242 0, 103, 0, 60, 186, 77, 106, 0, 0, 60,
243 186, 77, 83, 107, 151, 79, 0, 106, 0, 108,
244 49, 108, 0, 108, 50, 108, 0, 108, 51, 108,
245 0, 108, 52, 108, 0, 108, 53, 108, 0, 108,
246 47, 108, 0, 108, 48, 108, 0, 108, 46, 108,
247 0, 108, 45, 108, 0, 108, 44, 108, 0, 108,
248 42, 108, 0, 108, 43, 108, 0, 0, 108, 41,
249 109, 108, 0, 0, 108, 40, 110, 108, 0, 0,
250 0, 108, 38, 111, 100, 39, 112, 108, 0, 0,
251 108, 38, 113, 39, 108, 0, 108, 37, 108, 0,
252 108, 36, 108, 0, 3, 0, 8, 0, 116, 0,
253 60, 100, 77, 0, 60, 1, 77, 0, 0, 60,
254 115, 201, 77, 0, 114, 60, 101, 77, 0, 114,
255 61, 100, 84, 0, 114, 59, 98, 0, 114, 58,
256 98, 0, 114, 55, 0, 114, 56, 0, 9, 0,
257 116, 9, 0, 0, 119, 0, 119, 10, 0, 206,
258 207, 120, 0, 118, 0, 194, 0, 119, 118, 0,
259 118, 194, 0, 128, 123, 136, 78, 0, 131, 123,
260 137, 78, 0, 128, 78, 0, 131, 78, 0, 206,
261 207, 125, 0, 121, 0, 194, 0, 122, 121, 0,
262 121, 194, 0, 0, 0, 126, 123, 136, 78, 0,
263 130, 123, 137, 78, 0, 126, 123, 159, 0, 130,
264 123, 162, 0, 126, 78, 0, 130, 78, 0, 241,
265 125, 0, 134, 127, 0, 130, 134, 127, 0, 0,
266 127, 135, 0, 127, 5, 0, 127, 144, 0, 134,
267 129, 0, 131, 134, 129, 0, 0, 129, 135, 0,
268 129, 5, 0, 131, 0, 144, 0, 130, 131, 0,
269 130, 144, 0, 7, 0, 5, 0, 131, 7, 0,
270 131, 5, 0, 134, 133, 0, 188, 134, 133, 0,
271 0, 133, 135, 0, 6, 0, 172, 0, 4, 0,
272 28, 60, 100, 77, 0, 28, 60, 186, 77, 0,
273 6, 0, 7, 0, 172, 0, 139, 0, 136, 82,
274 139, 0, 141, 0, 137, 82, 139, 0, 0, 27,
275 60, 116, 77, 0, 0, 165, 138, 143, 37, 140,
276 149, 0, 165, 138, 143, 0, 0, 168, 138, 143,
277 37, 142, 149, 0, 168, 138, 143, 0, 0, 144,
278 0, 145, 0, 144, 145, 0, 30, 60, 60, 146,
279 77, 77, 0, 147, 0, 146, 82, 147, 0, 0,
280 148, 0, 148, 60, 3, 77, 0, 148, 60, 3,
281 82, 102, 77, 0, 148, 60, 101, 77, 0, 98,
282 0, 5, 0, 6, 0, 7, 0, 108, 0, 0,
283 83, 150, 151, 79, 0, 1, 0, 0, 152, 177,
284 0, 153, 0, 152, 82, 153, 0, 157, 37, 155,
285 0, 158, 155, 0, 0, 98, 39, 154, 155, 0,
286 155, 0, 0, 83, 156, 151, 79, 0, 108, 0,
287 1, 0, 158, 0, 157, 158, 0, 59, 98, 0,
288 61, 108, 10, 108, 84, 0, 61, 108, 84, 0,
289 0, 0, 165, 160, 117, 161, 201, 0, 0, 0,
290 168, 163, 117, 164, 201, 0, 166, 0, 168, 0,
291 60, 166, 77, 0, 166, 60, 236, 0, 166, 61,
292 100, 84, 0, 166, 61, 84, 0, 51, 189, 166,
293 0, 144, 124, 166, 0, 4, 0, 167, 60, 236,
294 0, 167, 61, 51, 84, 0, 167, 61, 100, 84,
295 0, 167, 61, 84, 0, 51, 189, 167, 0, 144,
296 124, 167, 0, 4, 0, 168, 60, 236, 0, 60,
297 168, 77, 0, 51, 189, 168, 0, 168, 61, 51,
298 84, 0, 168, 61, 100, 84, 0, 168, 61, 84,
299 0, 144, 124, 168, 0, 3, 0, 13, 0, 13,
300 144, 0, 14, 0, 14, 144, 0, 12, 0, 12,
301 144, 0, 0, 169, 98, 83, 173, 179, 79, 143,
302 0, 169, 83, 179, 79, 143, 0, 169, 98, 0,
303 0, 170, 98, 83, 174, 179, 79, 143, 0, 170,
304 83, 179, 79, 143, 0, 170, 98, 0, 0, 171,
305 98, 83, 175, 184, 178, 79, 143, 0, 0, 171,
306 83, 176, 184, 178, 79, 143, 0, 171, 98, 0,
307 0, 82, 0, 0, 82, 0, 180, 0, 180, 181,
308 0, 0, 180, 181, 78, 0, 180, 78, 0, 132,
309 123, 182, 0, 132, 0, 188, 123, 182, 0, 188,
310 0, 1, 0, 241, 181, 0, 183, 0, 182, 82,
311 183, 0, 206, 207, 165, 143, 0, 206, 207, 165,
312 39, 108, 143, 0, 206, 207, 39, 108, 143, 0,
313 185, 0, 184, 82, 185, 0, 1, 0, 98, 0,
314 98, 37, 108, 0, 132, 187, 0, 188, 187, 0,
315 0, 190, 0, 7, 0, 188, 7, 0, 0, 189,
316 7, 0, 60, 190, 77, 0, 51, 189, 190, 0,
317 51, 189, 0, 190, 60, 229, 0, 190, 61, 100,
318 84, 0, 190, 61, 84, 0, 60, 229, 0, 61,
319 100, 84, 0, 61, 84, 0, 144, 124, 190, 0,
320 192, 0, 209, 0, 192, 209, 0, 192, 194, 0,
321 0, 191, 0, 1, 78, 0, 0, 0, 197, 0,
322 198, 0, 197, 198, 0, 32, 240, 78, 0, 201,
323 0, 1, 201, 0, 83, 0, 200, 79, 0, 200,
324 195, 196, 122, 193, 79, 0, 200, 195, 196, 1,
325 79, 0, 200, 195, 196, 191, 79, 0, 203, 208,
326 0, 203, 1, 0, 15, 60, 100, 77, 0, 0,
327 18, 205, 208, 17, 0, 0, 0, 206, 207, 211,
328 0, 206, 207, 222, 208, 0, 206, 207, 210, 0,
329 211, 0, 222, 0, 201, 0, 219, 0, 100, 78,
330 0, 0, 202, 16, 212, 208, 0, 202, 0, 202,
331 16, 1, 0, 0, 0, 17, 213, 60, 100, 77,
332 214, 208, 0, 204, 60, 100, 77, 78, 0, 204,
333 1, 0, 0, 0, 0, 19, 60, 224, 78, 215,
334 224, 78, 216, 224, 77, 217, 208, 0, 0, 20,
335 60, 100, 77, 218, 208, 0, 23, 78, 0, 24,
336 78, 0, 25, 78, 0, 25, 100, 78, 0, 27,
337 223, 60, 100, 77, 78, 0, 27, 223, 60, 100,
338 39, 225, 77, 78, 0, 27, 223, 60, 100, 39,
339 225, 39, 225, 77, 78, 0, 27, 223, 60, 100,
340 39, 225, 39, 225, 39, 228, 77, 78, 0, 26,
341 98, 78, 0, 26, 51, 100, 78, 0, 78, 0,
342 220, 0, 0, 19, 60, 114, 77, 221, 208, 0,
343 21, 108, 39, 0, 21, 108, 10, 108, 39, 0,
344 22, 39, 0, 98, 39, 143, 0, 0, 7, 0,
345 0, 100, 0, 0, 226, 0, 227, 0, 226, 82,
346 227, 0, 9, 60, 100, 77, 0, 116, 0, 228,
347 82, 116, 0, 0, 230, 231, 0, 233, 77, 0,
348 0, 234, 78, 232, 231, 0, 1, 77, 0, 0,
349 10, 0, 234, 0, 234, 82, 10, 0, 235, 0,
350 234, 82, 235, 0, 126, 123, 167, 143, 0, 126,
351 123, 168, 143, 0, 126, 123, 187, 143, 0, 130,
352 123, 168, 143, 0, 130, 123, 187, 143, 0, 0,
353 237, 238, 0, 231, 0, 239, 77, 0, 3, 0,
354 239, 82, 3, 0, 98, 0, 240, 82, 98, 0,
361 static const short yyrline
[] = { 0,
362 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
363 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
364 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
365 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
366 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
367 445, 448, 451, 454, 456, 458, 462, 466, 470, 472,
368 475, 479, 506, 508, 510, 512, 514, 516, 518, 520,
369 522, 524, 526, 528, 530, 532, 536, 538, 542, 544,
370 547, 551, 553, 560, 563, 571, 582, 681, 682, 684,
371 690, 692, 706, 729, 731, 733, 737, 743, 745, 750,
372 752, 757, 759, 760, 770, 775, 777, 778, 779, 786,
373 792, 797, 800, 808, 813, 815, 816, 817, 824, 835,
374 839, 845, 850, 855, 860, 862, 864, 873, 876, 880,
375 882, 884, 889, 893, 896, 900, 903, 905, 917, 920,
376 922, 924, 928, 932, 934, 937, 950, 953, 957, 959,
377 967, 968, 969, 973, 975, 981, 982, 983, 986, 988,
378 991, 993, 996, 999, 1005, 1012, 1014, 1021, 1028, 1031,
379 1038, 1041, 1045, 1048, 1052, 1057, 1060, 1064, 1067, 1069,
380 1071, 1073, 1080, 1082, 1083, 1084, 1089, 1091, 1096, 1104,
381 1109, 1113, 1116, 1118, 1123, 1125, 1126, 1129, 1129, 1132,
382 1135, 1137, 1139, 1142, 1144, 1147, 1153, 1155, 1159, 1170,
383 1178, 1182, 1193, 1201, 1208, 1210, 1215, 1218, 1223, 1225,
384 1227, 1234, 1236, 1244, 1250, 1255, 1257, 1259, 1266, 1268,
385 1274, 1280, 1282, 1284, 1289, 1291, 1298, 1300, 1303, 1306,
386 1310, 1313, 1317, 1320, 1324, 1329, 1331, 1335, 1337, 1339,
387 1341, 1345, 1347, 1350, 1353, 1356, 1359, 1363, 1365, 1368,
388 1370, 1375, 1378, 1383, 1385, 1387, 1401, 1408, 1413, 1419,
389 1424, 1426, 1431, 1433, 1437, 1441, 1445, 1455, 1457, 1462,
390 1467, 1470, 1474, 1477, 1481, 1484, 1487, 1490, 1494, 1497,
391 1501, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1523,
392 1531, 1539, 1541, 1543, 1547, 1549, 1552, 1555, 1566, 1568,
393 1573, 1575, 1578, 1592, 1595, 1598, 1600, 1602, 1610, 1618,
394 1629, 1634, 1637, 1651, 1660, 1664, 1668, 1672, 1678, 1682,
395 1687, 1690, 1695, 1698, 1699, 1716, 1721, 1724, 1736, 1738,
396 1748, 1758, 1759, 1767, 1770, 1782, 1786, 1803, 1813, 1822,
397 1827, 1832, 1837, 1841, 1845, 1856, 1863, 1870, 1877, 1888,
398 1894, 1897, 1902, 1925, 1959, 1990, 2021, 2036, 2050, 2054,
399 2058, 2061, 2066, 2068, 2071, 2073, 2077, 2082, 2085, 2091,
400 2096, 2101, 2103, 2112, 2113, 2119, 2121, 2131, 2133, 2137,
401 2140, 2146, 2156, 2165, 2174, 2184, 2198, 2203, 2208, 2210,
402 2219, 2222, 2227, 2230, 2234
407 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
409 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
410 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
411 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
412 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
413 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","ASSIGN","'='","'?'","':'",
414 "OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
415 "'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
416 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
417 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
418 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
419 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
420 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
421 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
422 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
423 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
424 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
425 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
426 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
427 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
428 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
429 "@19","initval","@20","designator_list","designator","nested_function","@21",
430 "@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
431 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
432 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
433 "component_decl_list2","component_decl","components","component_declarator",
434 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
435 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
436 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
437 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
438 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
439 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
440 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
441 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
442 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
446 static const short yyr1
[] = { 0,
447 85, 85, 87, 86, 88, 86, 89, 89, 89, 89,
448 90, 90, 90, 90, 90, 90, 90, 90, 92, 93,
449 91, 91, 94, 95, 91, 91, 96, 97, 91, 91,
450 98, 98, 99, 99, 99, 99, 99, 99, 99, 100,
451 101, 101, 102, 102, 103, 103, 103, 103, 103, 103,
452 103, 103, 103, 103, 103, 103, 104, 105, 106, 106,
453 107, 106, 108, 108, 108, 108, 108, 108, 108, 108,
454 108, 108, 108, 108, 108, 109, 108, 110, 108, 111,
455 112, 108, 113, 108, 108, 108, 114, 114, 114, 114,
456 114, 115, 114, 114, 114, 114, 114, 114, 114, 116,
457 116, 117, 117, 117, 118, 119, 119, 119, 119, 120,
458 120, 120, 120, 121, 122, 122, 122, 122, 123, 124,
459 125, 125, 125, 125, 125, 125, 125, 126, 126, 127,
460 127, 127, 127, 128, 128, 129, 129, 129, 130, 130,
461 130, 130, 131, 131, 131, 131, 132, 132, 133, 133,
462 134, 134, 134, 134, 134, 135, 135, 135, 136, 136,
463 137, 137, 138, 138, 140, 139, 139, 142, 141, 141,
464 143, 143, 144, 144, 145, 146, 146, 147, 147, 147,
465 147, 147, 148, 148, 148, 148, 149, 150, 149, 149,
466 151, 151, 152, 152, 153, 153, 154, 153, 153, 156,
467 155, 155, 155, 157, 157, 158, 158, 158, 160, 161,
468 159, 163, 164, 162, 165, 165, 166, 166, 166, 166,
469 166, 166, 166, 167, 167, 167, 167, 167, 167, 167,
470 168, 168, 168, 168, 168, 168, 168, 168, 169, 169,
471 170, 170, 171, 171, 173, 172, 172, 172, 174, 172,
472 172, 172, 175, 172, 176, 172, 172, 177, 177, 178,
473 178, 179, 179, 180, 180, 180, 181, 181, 181, 181,
474 181, 181, 182, 182, 183, 183, 183, 184, 184, 184,
475 185, 185, 186, 186, 187, 187, 188, 188, 189, 189,
476 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
477 191, 192, 192, 192, 193, 193, 194, 195, 196, 196,
478 197, 197, 198, 199, 199, 200, 201, 201, 201, 201,
479 202, 202, 203, 205, 204, 206, 207, 208, 208, 209,
480 210, 210, 211, 211, 211, 212, 211, 211, 211, 213,
481 214, 211, 211, 211, 215, 216, 217, 211, 218, 211,
482 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
483 211, 219, 221, 220, 222, 222, 222, 222, 223, 223,
484 224, 224, 225, 225, 226, 226, 227, 228, 228, 230,
485 229, 231, 232, 231, 231, 233, 233, 233, 233, 234,
486 234, 235, 235, 235, 235, 235, 237, 236, 238, 238,
487 239, 239, 240, 240, 241
490 static const short yyr2
[] = { 0,
491 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
492 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
493 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
495 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
496 4, 2, 4, 2, 2, 6, 1, 1, 1, 4,
497 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
498 3, 3, 3, 3, 3, 0, 4, 0, 4, 0,
499 0, 7, 0, 5, 3, 3, 1, 1, 1, 3,
500 3, 0, 4, 4, 4, 3, 3, 2, 2, 1,
501 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
502 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
503 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
504 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
505 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
506 1, 1, 1, 4, 4, 1, 1, 1, 1, 3,
507 1, 3, 0, 4, 0, 6, 3, 0, 6, 3,
508 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
509 6, 4, 1, 1, 1, 1, 1, 0, 4, 1,
510 0, 2, 1, 3, 3, 2, 0, 4, 1, 0,
511 4, 1, 1, 1, 2, 2, 5, 3, 0, 0,
512 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
513 3, 3, 1, 3, 4, 4, 3, 3, 3, 1,
514 3, 3, 3, 4, 4, 3, 3, 1, 1, 2,
515 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
516 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
517 1, 1, 2, 0, 3, 2, 3, 1, 3, 1,
518 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
519 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
520 3, 3, 2, 3, 4, 3, 2, 3, 2, 3,
521 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
522 1, 2, 3, 1, 2, 1, 2, 6, 5, 5,
523 2, 2, 4, 0, 4, 0, 0, 3, 4, 3,
524 1, 1, 1, 1, 2, 0, 4, 1, 3, 0,
525 0, 7, 5, 2, 0, 0, 0, 12, 0, 6,
526 2, 2, 2, 3, 6, 8, 10, 12, 3, 4,
527 1, 1, 0, 6, 3, 5, 2, 3, 0, 1,
528 0, 1, 0, 1, 1, 3, 4, 1, 3, 0,
529 2, 2, 0, 4, 2, 0, 1, 1, 3, 1,
530 3, 4, 4, 4, 4, 4, 0, 2, 1, 2,
534 static const short yydefact
[] = { 3,
535 5, 0, 0, 0, 153, 144, 151, 143, 243, 239,
536 241, 0, 0, 0, 405, 18, 4, 8, 7, 0,
537 119, 119, 139, 130, 140, 173, 0, 0, 0, 152,
538 0, 6, 16, 17, 244, 240, 242, 0, 0, 0,
539 238, 289, 0, 0, 161, 120, 0, 15, 0, 14,
540 0, 141, 130, 142, 146, 145, 128, 174, 31, 32,
541 264, 248, 264, 252, 255, 257, 10, 87, 88, 100,
542 57, 58, 0, 0, 0, 0, 33, 35, 34, 0,
543 36, 37, 0, 38, 39, 0, 0, 40, 59, 0,
544 0, 63, 43, 45, 89, 0, 287, 0, 285, 149,
545 0, 285, 178, 0, 0, 11, 0, 0, 30, 0,
546 397, 0, 0, 171, 223, 289, 0, 0, 159, 120,
547 0, 215, 216, 0, 0, 129, 132, 156, 157, 131,
548 133, 158, 0, 0, 245, 0, 249, 0, 253, 54,
549 55, 0, 49, 46, 0, 0, 0, 0, 48, 0,
550 0, 0, 50, 0, 52, 0, 0, 80, 78, 76,
551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 98, 99, 0, 0, 41, 0, 101, 47,
553 154, 289, 380, 0, 120, 283, 286, 147, 155, 288,
554 149, 284, 184, 185, 186, 183, 0, 176, 179, 290,
555 233, 232, 162, 163, 237, 0, 231, 0, 0, 236,
556 0, 0, 28, 0, 326, 107, 327, 170, 172, 0,
557 0, 13, 0, 0, 22, 0, 171, 397, 0, 12,
558 26, 0, 171, 271, 266, 119, 263, 119, 0, 264,
559 171, 264, 280, 281, 260, 278, 0, 0, 91, 90,
560 316, 308, 0, 0, 9, 44, 0, 0, 86, 85,
561 0, 0, 0, 0, 74, 75, 73, 72, 71, 69,
562 70, 64, 65, 66, 67, 68, 97, 96, 0, 42,
563 0, 293, 0, 297, 0, 299, 0, 0, 380, 0,
564 150, 148, 0, 178, 41, 0, 0, 401, 387, 119,
565 119, 399, 0, 388, 390, 398, 0, 234, 235, 307,
566 0, 109, 104, 108, 0, 168, 221, 217, 160, 222,
567 20, 167, 218, 220, 0, 24, 247, 326, 265, 326,
568 272, 0, 251, 0, 0, 261, 0, 260, 0, 317,
569 309, 93, 61, 60, 51, 53, 0, 0, 79, 77,
570 94, 95, 292, 291, 381, 298, 300, 294, 296, 0,
571 175, 177, 87, 0, 164, 385, 285, 285, 382, 383,
572 0, 400, 0, 0, 29, 314, 105, 119, 119, 136,
573 0, 0, 165, 219, 0, 267, 273, 327, 269, 171,
574 171, 282, 279, 171, 0, 0, 0, 0, 310, 311,
575 0, 81, 84, 295, 180, 0, 182, 230, 289, 380,
576 120, 171, 171, 171, 289, 120, 171, 171, 0, 389,
577 391, 402, 315, 112, 0, 113, 0, 136, 134, 190,
578 188, 187, 169, 21, 0, 25, 326, 0, 246, 250,
579 256, 171, 56, 403, 0, 0, 0, 326, 0, 0,
580 116, 327, 302, 312, 203, 87, 0, 0, 200, 0,
581 202, 0, 258, 193, 199, 0, 0, 0, 0, 293,
582 0, 397, 0, 392, 393, 394, 293, 0, 395, 396,
583 384, 0, 0, 163, 135, 138, 137, 0, 166, 274,
584 0, 171, 254, 313, 0, 319, 118, 117, 306, 0,
585 320, 304, 327, 303, 0, 206, 0, 0, 197, 62,
586 0, 192, 0, 205, 196, 82, 181, 228, 229, 224,
587 0, 227, 0, 110, 111, 0, 171, 0, 275, 404,
588 318, 0, 153, 0, 340, 324, 0, 0, 0, 0,
589 0, 0, 0, 0, 369, 361, 0, 0, 114, 119,
590 119, 333, 338, 0, 0, 330, 331, 334, 362, 332,
591 0, 0, 208, 0, 0, 194, 195, 225, 226, 189,
592 277, 171, 0, 0, 326, 371, 0, 0, 367, 351,
593 352, 353, 0, 0, 0, 370, 0, 171, 335, 125,
594 0, 126, 0, 0, 322, 327, 321, 344, 0, 127,
595 0, 201, 198, 276, 0, 0, 0, 372, 45, 0,
596 0, 0, 365, 354, 0, 359, 0, 368, 0, 123,
597 209, 0, 124, 212, 339, 326, 0, 0, 207, 323,
598 0, 325, 363, 345, 349, 0, 360, 0, 121, 0,
599 122, 0, 337, 328, 326, 0, 341, 326, 371, 326,
600 366, 373, 0, 210, 213, 329, 343, 326, 364, 0,
601 350, 0, 0, 374, 375, 355, 0, 0, 342, 346,
602 0, 373, 0, 0, 211, 214, 371, 0, 0, 356,
603 376, 0, 377, 0, 0, 347, 378, 0, 357, 326,
604 0, 0, 348, 358, 379, 0, 0, 0
607 static const short yydefgoto
[] = { 696,
608 1, 2, 3, 17, 18, 19, 226, 382, 232, 385,
609 113, 311, 460, 86, 146, 279, 88, 89, 90, 91,
610 92, 401, 93, 264, 263, 261, 468, 262, 94, 147,
611 95, 213, 214, 215, 377, 447, 448, 20, 108, 549,
612 300, 57, 378, 429, 301, 23, 99, 188, 24, 130,
613 118, 44, 114, 119, 435, 45, 381, 218, 219, 26,
614 197, 198, 199, 433, 488, 462, 463, 464, 565, 465,
615 508, 466, 467, 620, 640, 667, 623, 642, 668, 204,
616 122, 412, 123, 27, 28, 29, 30, 240, 242, 247,
617 138, 512, 337, 133, 134, 237, 386, 387, 245, 246,
618 101, 186, 102, 104, 187, 449, 450, 500, 216, 341,
619 398, 399, 400, 375, 252, 376, 553, 554, 555, 575,
620 596, 315, 597, 453, 556, 557, 626, 574, 658, 649,
621 677, 690, 650, 558, 559, 648, 560, 587, 610, 663,
622 664, 665, 688, 284, 285, 302, 419, 303, 304, 305,
623 207, 208, 306, 307, 445, 96
626 static const short yypact
[] = { 73,
627 98, 2393, 2393, 2,-32768,-32768,-32768,-32768, 75, 75,
628 75, 84, 110, 114,-32768,-32768,-32768,-32768,-32768, 227,
629 102, 1038, 150,-32768, 75,-32768, 81, 83, 96,-32768,
630 2393,-32768,-32768,-32768, 75, 75, 75, 2233, 2145, 141,
631 -32768,-32768, 227, 54,-32768, 75, 1392,-32768, 221,-32768,
632 227, 150,-32768, 75,-32768,-32768, 594,-32768,-32768,-32768,
633 -32768, 121,-32768, 145,-32768, 154,-32768,-32768,-32768,-32768,
634 -32768,-32768, 2233, 2233, 182, 335,-32768,-32768,-32768, 2233,
635 -32768,-32768, 830,-32768,-32768, 2233, 177, 180,-32768, 2267,
636 2301,-32768, 1917, 576, 267, 2233,-32768, 216, 138,-32768,
637 219, 568, 454, 330, 228,-32768, 221, 227,-32768, 255,
638 -32768, 1490, 402, 75,-32768,-32768, 221, 112,-32768, 75,
639 1483, 333, 350, 217, 1455, 594,-32768,-32768,-32768,-32768,
640 75,-32768, 251, 697,-32768, 253,-32768, 422,-32768,-32768,
641 -32768, 2233,-32768,-32768, 270, 286, 272, 294,-32768, 306,
642 2233, 830,-32768, 830,-32768, 2233, 2233, 348,-32768,-32768,
643 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233, 2233,
644 2233, 2233,-32768,-32768, 335, 335, 2233, 2233,-32768,-32768,
645 -32768,-32768, 138, 1544, 75,-32768, 368, 337,-32768,-32768,
646 -32768,-32768,-32768,-32768,-32768,-32768, 167,-32768, 345,-32768,
647 350,-32768,-32768, 397, 350, 404,-32768, 792, 1598,-32768,
648 354, 362,-32768, 363, 66,-32768,-32768, 406, 75, 204,
649 241,-32768, 221, 221,-32768, 402, 75,-32768, 1652,-32768,
650 -32768, 402, 75,-32768,-32768, 341, 373, 278, 1068,-32768,
651 75,-32768,-32768, 417, 382,-32768, 422, 2459,-32768,-32768,
652 -32768, 387, 401, 2032,-32768, 1917, 407, 421, 1917, 1917,
653 2233, 434, 2233, 2233, 2001, 2116, 2200, 856, 1109, 492,
654 492, 396, 396,-32768,-32768,-32768,-32768,-32768, 425, 180,
655 395, 256, 265,-32768, 887,-32768, 408, 138,-32768, 1706,
656 -32768, 337, 427, 454, 2335, 47, 429,-32768,-32768,-32768,
657 1660,-32768, 431, 276,-32768,-32768, 171,-32768,-32768,-32768,
658 65,-32768,-32768,-32768, 1577,-32768, 333,-32768,-32768, 333,
659 -32768, 444,-32768,-32768, 428,-32768,-32768,-32768,-32768,-32768,
660 -32768, 409,-32768, 412, 2233, 335, 420, 382, 1631,-32768,
661 482,-32768,-32768,-32768,-32768,-32768, 493, 2233, 1731, 1784,
662 -32768,-32768, 368,-32768,-32768,-32768, 368,-32768,-32768, 449,
663 -32768,-32768, 197, 457,-32768,-32768, 67, 155,-32768,-32768,
664 1360,-32768, 544, 272,-32768,-32768,-32768, 471, 984,-32768,
665 1327, 65,-32768,-32768, 65, 468,-32768,-32768, 468, 75,
666 75, 1917,-32768, 75, 473, 479, 335, 924, 482,-32768,
667 1144,-32768, 1678,-32768,-32768, 2233,-32768,-32768,-32768, 155,
668 75, 74, 92, 75,-32768, 75, 92, 75, 887,-32768,
669 -32768,-32768,-32768,-32768, 221,-32768, 227,-32768, 673,-32768,
670 -32768, 1917,-32768,-32768, 1327,-32768,-32768, 199,-32768,-32768,
671 -32768, 75,-32768,-32768, 284, 390, 640, 480, 481, 730,
672 -32768,-32768,-32768,-32768,-32768, 525, 335, 2233,-32768, 527,
673 1917, 497, 495,-32768,-32768, 160, 1266, 2233, 237, 414,
674 67,-32768, 1760,-32768,-32768,-32768, 210, 155,-32768,-32768,
675 -32768, 300, 307, 166, 673,-32768,-32768, 1144,-32768,-32768,
676 2233, 157,-32768,-32768, 335,-32768,-32768,-32768,-32768, 504,
677 -32768,-32768,-32768,-32768, 1896,-32768, 2432, 1144,-32768,-32768,
678 1205,-32768, 1383,-32768,-32768, 1678,-32768, 411, 411,-32768,
679 1814,-32768, 500,-32768,-32768, 506, 2483, 2233,-32768,-32768,
680 -32768, 1977, 547, 528,-32768,-32768, 532, 533, 2233, 548,
681 517, 519, 2179, 79, 597,-32768, 570, 537,-32768, 538,
682 1606,-32768, 604, 1005, 57,-32768,-32768,-32768,-32768,-32768,
683 2090, 2233,-32768, 531, 1383,-32768,-32768,-32768,-32768,-32768,
684 -32768, 2483, 2233, 561,-32768, 2233, 2233, 1840,-32768,-32768,
685 -32768,-32768, 549, 2233, 552,-32768, 565, 75,-32768,-32768,
686 221,-32768, 227, 1086,-32768,-32768,-32768,-32768, 2233,-32768,
687 2414,-32768,-32768,-32768, 563, 2233, 609,-32768, 796, 560,
688 573, 2233,-32768,-32768, 578,-32768, 2233,-32768, 314,-32768,
689 415, 322,-32768, 933,-32768,-32768, 1977, 595,-32768,-32768,
690 599,-32768,-32768,-32768,-32768, 2506,-32768, 29,-32768, 402,
691 -32768, 402,-32768,-32768,-32768, 605,-32768,-32768, 2233,-32768,
692 -32768, 668, 610,-32768,-32768,-32768,-32768,-32768,-32768, 615,
693 -32768, 622, 38, 617,-32768,-32768, 272, 272,-32768,-32768,
694 2233, 668, 619, 668,-32768,-32768, 2233, 625, 56,-32768,
695 -32768, 628,-32768, 404, 630,-32768, 267, 263,-32768,-32768,
696 634, 404,-32768,-32768, 267, 706, 713,-32768
699 static const short yypgoto
[] = {-32768,
700 -32768,-32768,-32768, 76,-32768,-32768,-32768,-32768,-32768,-32768,
701 -32768,-32768, -25,-32768, -38, 419, -133, 386,-32768,-32768,
702 -21,-32768, 359,-32768,-32768,-32768,-32768,-32768, 139,-32768,
703 -189, -206, 501,-32768,-32768, 269,-32768, 20, -75, 161,
704 4, 671,-32768, 298, 6, -3, -70, 539, 7, -161,
705 -377, -39, -103, -58,-32768,-32768,-32768, 200, 12, 146,
706 -32768, 435,-32768, 297,-32768, -396,-32768, 224,-32768, -405,
707 -32768,-32768, 271,-32768,-32768,-32768,-32768,-32768,-32768, -36,
708 -57, 16, -15,-32768,-32768,-32768, -32,-32768,-32768,-32768,
709 -32768,-32768, 398, -30,-32768, 503, 413, 309, 511, 426,
710 -29, -64, -62, -86, -143, 296,-32768,-32768, -167,-32768,
711 -32768,-32768, 367, -294,-32768, -131,-32768,-32768,-32768,-32768,
712 -89, -331, -472, 317,-32768, 142,-32768,-32768,-32768,-32768,
713 -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, -502, 101,
714 -32768, 94,-32768, 488,-32768, -235,-32768,-32768,-32768, 416,
715 -197,-32768,-32768,-32768,-32768, 8
722 static const short yytable
[] = { 87,
723 98, 62, 64, 66, 47, 21, 21, 22, 22, 31,
724 31, 124, 121, 25, 25, 253, 296, 227, 52, 321,
725 35, 36, 37, 217, 132, 326, 291, 105, 53, 220,
726 323, 46, 136, 54, 21, 125, 22, 192, 31, 283,
727 49, 51, 25, 280, 224, 100, 312, 482, 203, 355,
728 143, 140, 141, 148, 46, 179, 438, 598, 144, 221,
729 120, 515, 46, 236, 149, 374, -103, 652, 131, 41,
730 408, 238, -1, 211, 180, 313, 672, 196, 32, 33,
731 34, 59, 60, 59, 60, 59, 60, 434, 201, 100,
732 436, 526, 205, 132, 684, 282, 14, -2, 59, 60,
733 227, 105, 607, 14, 14, 653, 67, 567, 191, 288,
734 185, 564, 244, 185, 673, 46, 599, 409, 120, 46,
735 505, 14, 257, 365, 258, 217, 410, 184, 120, 584,
736 291, 106, 685, 472, 473, 107, 217, 131, 353, 281,
737 100, 239, 217, 38, 357, 287, 660, 251, -103, 277,
738 278, 111, 112, 643, 55, 132, 56, 41, 100, 603,
739 100, 280, 317, 61, 319, 63, 320, 14, 236, 39,
740 58, 532, 656, 40, 682, 659, 238, 661, 65, 48,
741 58, 58, 58, 481, 14, 669, 14, 144, 182, 222,
742 325, 58, 110, 223, 185, 528, 513, 183, 184, 58,
743 103, 41, 115, 135, 201, 415, 41, 115, 205, 332,
744 200, 334, 41, 619, 410, 184, 200, 693, 457, 25,
745 458, 244, 347, 41, 115, 111, 112, 137, 14, 41,
746 451, 120, 344, 14, 120, 120, 139, 491, 388, 14,
747 388, 142, 423, 293, 191, 100, 239, 372, 294, 116,
748 14, 360, 373, 150, 116, 328, 14, 330, 117, 132,
749 415, 151, 200, 117, 627, 58, 283, 487, 196, 410,
750 184, 116, 469, 405, 520, 179, 58, 42, 406, 497,
751 117, 5, 502, 7, 190, 14, 43, 111, 112, 9,
752 10, 11, 181, 185, 230, 189, 25, 52, 107, 185,
753 228, 229, 414, 418, 202, 13, 182, 53, 452, 396,
754 244, 379, 54, 517, 206, 183, 184, 318, 151, 367,
755 368, 380, 470, 487, 289, 290, 353, 357, 477, 233,
756 58, 241, 41, 353, 357, 471, 200, 59, 60, 691,
757 478, 354, 128, 129, 692, 100, 249, 388, 9, 10,
758 11, 413, 417, 370, 251, -270, -270, 371, 452, 14,
759 503, 494, 250, 212, 58, 495, -106, -106, -106, -106,
760 254, 444, -106, 552, -106, -106, -106, 524, 411, 416,
761 42, 223, 25, 255, 525, 428, -83, 483, 107, 43,
762 -106, 639, 228, 229, 105, 223, 132, 425, 427, 641,
763 552, 492, 212, 107, 295, -326, -326, -326, -326, 111,
764 112, 484, 70, -326, -326, -326, 41, 408, -268, -268,
765 200, 416, 243, 110, 59, 60, 322, 289, 290, -326,
766 25, 506, 327, 654, 523, 655, 120, 309, 46, 310,
767 333, 110, 316, 14, -163, -106, 170, 171, 172, 120,
768 329, -163, 132, 335, 201, 205, 59, 60, 193, 194,
769 195, 201, 205, 336, 409, 340, 548, 310, 496, 530,
770 472, 473, 348, 410, 184, 153, 155, 342, 352, 547,
771 383, 411, 411, 345, -102, 518, 519, 390, 416, 416,
772 391, 356, -163, 548, 687, 552, -163, 346, 394, 144,
773 248, 351, 695, 361, 583, 366, 547, 369, 550, 256,
774 551, 384, 561, 397, 259, 260, 25, 227, 585, 265,
775 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
776 276, 402, 404, 407, 605, 675, 676, 608, 611, 180,
777 168, 169, 170, 171, 172, 615, 422, 52, 424, 437,
778 217, 442, 217, 622, 621, 443, 58, 53, -305, 501,
779 628, 58, 54, -31, 550, 509, 551, 631, 561, 591,
780 593, 5, 25, 7, 190, 510, 511, 624, 638, 9,
781 10, 11, 531, 569, 570, -32, 579, 573, 548, 439,
782 440, 576, 577, 441, 580, 13, 581, 14, 127, 128,
783 129, 547, 120, 586, 46, 9, 10, 11, 588, 602,
784 608, 474, 475, 476, 589, 590, 479, 480, 182, 594,
785 606, 349, 350, 14, 617, 632, 614, 183, 184, 616,
786 173, 174, 678, 175, 176, 177, 178, 634, 608, 630,
787 212, 493, -115, -115, -115, -115, -115, -115, -115, 635,
788 -115, -115, -115, -115, -115, 637, -115, -115, -115, -115,
789 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
790 -115, 646, -115, -115, -115, 647, 662, 486, 128, 129,
791 -115, 671, 657, -115, 9, 10, 11, 666, -115, -115,
792 -115, 529, 670, 392, -115, -115, 680, 234, 674, -115,
793 5, 683, 7, 97, 686, 697, 403, 689, 9, 10,
794 11, 694, 698, 364, 609, 314, 498, -115, -115, -115,
795 -115, 600, -115, 126, 13, 485, 571, 15, 362, 292,
796 212, 489, -326, -326, 566, 395, 514, -326, -326, 432,
797 -326, 331, 389, 499, -326, 490, -326, -326, -326, -326,
798 -326, -326, -326, -326, -326, -326, -326, 338, -326, 461,
799 -326, 393, -326, -326, -326, 454, 504, 681, 644, 645,
800 -326, 604, 679, -326, 235, -262, 358, 0, -326, -326,
801 -326, 0, 0, 0, -326, -326, 421, 618, 0, -326,
802 0, 0, 297, 432, 298, 5, 6, 7, 8, 0,
803 0, 299, 0, 9, 10, 11, 0, -326, -301, -326,
804 -326, 0, -326, 0, 0, 0, 507, 0, 0, 13,
805 0, 14, 0, 0, 0, 461, 516, 0, 0, 0,
806 145, 0, 68, 5, 0, 7, 97, 69, 70, 0,
807 71, 9, 10, 11, 0, 0, 461, 0, 0, 527,
808 173, 174, 0, 175, 176, 177, 178, 13, 72, 0,
809 15, 0, 73, 74, 75, 0, 461, 0, -386, 461,
810 76, 461, 633, 77, 0, 0, 0, 0, 78, 79,
811 80, 0, 0, 0, 81, 82, 572, 297, 0, 83,
812 5, 6, 7, 8, 0, 0, 299, 578, 9, 10,
813 11, 165, 166, 167, 168, 169, 170, 171, 172, 84,
814 85, 0, -92, 0, 13, 0, 14, 0, 0, 0,
815 601, 0, 0, 461, 446, 0, -326, -326, -326, -326,
816 -326, -326, -326, 0, -326, -326, -326, -326, -326, 0,
817 -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
818 -326, -326, -326, -326, -326, 0, -326, -326, -326, 110,
819 0, 0, -163, -386, -326, 0, 0, -326, 0, -163,
820 636, 0, -326, -326, -326, 0, 0, 0, -326, -326,
821 0, 0, 0, -326, 0, 0, 0, 5, 55, 7,
822 56, 0, 111, 112, 0, 9, 10, 11, 0, 0,
823 0, -326, 0, -326, -326, 595, -326, -326, -326, 0,
824 -163, 13, -326, -326, -163, -326, 0, 0, 0, -326,
825 0, -326, -326, -326, -326, -326, -326, -326, -326, -326,
826 -326, -326, 0, -326, 0, -326, 0, -326, -326, -326,
827 0, 5, 6, 7, 8, -326, 0, 0, -326, 9,
828 10, 11, 0, -326, -326, -326, 0, 0, 0, -326,
829 -326, 426, 0, 0, -326, 13, 0, 14, 234, 0,
830 0, 5, 0, 7, 97, 0, 0, 0, 0, 9,
831 10, 11, -326, 0, -326, -326, 625, -326, -336, -336,
832 0, 0, 0, -336, -336, 13, -336, 0, 15, 0,
833 -336, 0, -336, -336, -336, -336, -336, -336, -336, -336,
834 -336, -336, -336, 0, -336, 50, -336, 0, -336, -336,
835 -336, 0, 0, 0, 0, 0, -336, 0, 0, -336,
836 0, 0, 0, 0, -336, -336, -336, 0, 0, 0,
837 -336, -336, 0, 0, 455, -336, 456, 60, 0, 0,
838 0, 69, 70, 0, 71, 166, 167, 168, 169, 170,
839 171, 172, 0, -336, 0, -336, -336, 0, -336, 0,
840 0, 0, 72, 0, 15, 0, 73, 74, 75, 0,
841 0, 0, 0, 0, 76, 0, 0, 77, 0, 0,
842 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
843 0, 0, 457, 83, 458, 455, 0, 456, 60, 0,
844 0, 0, 69, 70, 0, 71, 0, 0, 0, 0,
845 0, 0, -191, 84, 85, 0, 459, 0, 0, 0,
846 0, 0, 0, 72, 0, 15, 0, 73, 74, 75,
847 0, 0, 0, 0, 0, 76, 0, 0, 77, 0,
848 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
849 82, 0, 0, 457, 83, 458, 455, 0, 68, 0,
850 0, 0, 0, 69, 70, 0, 71, 0, 0, 0,
851 0, 0, 0, -259, 84, 85, 0, 459, 0, 0,
852 0, 0, 0, 0, 72, 0, 15, 0, 73, 74,
853 75, 0, -204, 0, 0, 0, 76, 0, 0, 77,
854 0, 0, 0, 0, 78, 79, 80, 0, 0, 0,
855 81, 82, 0, 0, -204, 83, -204, 430, 0, 68,
856 0, 0, 0, 0, 69, 70, 0, 71, 0, 0,
857 0, 0, 0, 0, 0, 84, 85, 0, 459, 0,
858 0, 0, 0, 0, 0, 72, 0, 15, 0, 73,
859 74, 75, 0, 5, 6, 7, 8, 76, 0, 420,
860 77, 9, 10, 11, 0, 78, 79, 80, 0, 0,
861 0, 81, 82, 455, 0, 68, 83, 13, 0, 14,
862 69, 70, 109, 71, 0, -27, -27, -27, -27, 0,
863 0, 0, 0, -27, -27, -27, 84, 85, 0, 431,
864 0, 72, 0, 15, 0, 73, 74, 75, 110, -27,
865 0, -163, 0, 76, 0, 0, 77, 0, -163, 0,
866 0, 78, 79, 80, 0, 0, 0, 81, 82, 0,
867 0, 0, 83, 0, 0, 0, 0, 0, 0, 0,
868 0, 111, 112, 0, 0, 231, 0, 0, -23, -23,
869 -23, -23, 84, 85, 0, 459, -23, -23, -23, -163,
870 0, 0, 0, -163, -27, 0, 0, 0, 0, 0,
871 0, 110, -23, 225, -163, 0, -19, -19, -19, -19,
872 0, -163, 68, 0, -19, -19, -19, 69, 70, 0,
873 71, 0, 0, 0, 0, 0, 0, 0, 0, 110,
874 -19, 0, -163, 0, 111, 112, 0, 0, 72, -163,
875 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
876 76, 0, -163, 77, 0, 0, -163, -23, 78, 79,
877 209, 0, 0, 0, 81, 82, 68, 0, 0, 83,
878 0, 69, 70, 0, 71, 0, 0, 0, 0, 0,
879 -163, 0, 0, 0, -163, -19, 0, 0, 0, 84,
880 85, 0, 72, 210, 15, 0, 73, 74, 75, 0,
881 5, 6, 7, 8, 76, 0, 0, 77, 9, 10,
882 11, 0, 78, 79, 80, 0, 0, 0, 81, 82,
883 68, 0, 0, 83, 13, 69, 70, 0, 71, 5,
884 6, 7, 8, 0, 0, 0, 0, 9, 10, 11,
885 0, 0, 0, 84, 85, 0, 72, 286, 15, 0,
886 73, 74, 75, 13, 5, 14, 7, 97, 76, 0,
887 0, 77, 9, 10, 11, 0, 78, 79, 80, 0,
888 0, 0, 81, 82, 68, 0, 0, 83, 13, 69,
889 70, 0, 71, 5, 6, 7, 8, 0, 0, 0,
890 0, 9, 10, 11, 0, 0, 0, 84, 85, 0,
891 72, 308, 15, 592, 73, 74, 75, 13, 0, 14,
892 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
893 78, 79, 80, 0, 0, 0, 81, 82, 68, 0,
894 0, 83, 0, 69, 70, 158, 71, 159, 160, 161,
895 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
896 172, 84, 85, 0, 72, 324, 15, 0, 73, 74,
897 75, 0, 0, 0, 0, 0, 76, 0, 0, 77,
898 0, 0, 0, 0, 78, 79, 80, 0, 0, 0,
899 81, 82, 68, 0, 0, 83, 0, 69, 70, 0,
900 71, 160, 161, 162, 163, 164, 165, 166, 167, 168,
901 169, 170, 171, 172, 0, 84, 85, 0, 72, 359,
902 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
903 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
904 521, 0, 0, 0, 81, 82, 68, 0, 0, 83,
905 0, 69, 70, 0, 71, 161, 162, 163, 164, 165,
906 166, 167, 168, 169, 170, 171, 172, 0, 0, 84,
907 85, 0, 72, 522, 15, 0, 73, 74, 75, 612,
908 0, 0, 0, 0, 76, 0, 0, 77, 0, 0,
909 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
910 0, 0, 0, 83, 0, 156, 157, 158, 613, 159,
911 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
912 170, 171, 172, 84, 85, 0, 0, 568, 456, 533,
913 6, 7, 8, 69, 70, 0, 71, 9, 10, 11,
914 534, 0, 535, 536, 537, 538, 539, 540, 541, 542,
915 543, 544, 545, 13, 72, 14, 15, 0, 73, 74,
916 75, 0, 0, 0, 0, 0, 76, 0, 0, 77,
917 0, 0, 0, 0, 78, 79, 80, 0, 0, 0,
918 81, 82, 156, 157, 158, 83, 159, 160, 161, 162,
919 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
920 0, 0, 0, 546, 0, 84, 85, 0, 251, 456,
921 60, 0, 0, 0, 69, 70, 0, 71, 0, 0,
922 0, 534, 0, 535, 536, 537, 538, 539, 540, 541,
923 542, 543, 544, 545, 0, 72, 0, 15, 0, 73,
924 74, 75, 0, 0, 0, 0, 0, 76, 0, 0,
925 77, 0, 0, 0, 0, 78, 79, 80, 0, 0,
926 0, 81, 82, 0, 68, 0, 83, 0, 0, 69,
927 70, 0, 71, 162, 163, 164, 165, 166, 167, 168,
928 169, 170, 171, 172, 546, 0, 84, 85, 0, 251,
929 72, 0, 15, 0, 73, 74, 75, 0, 0, 0,
930 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
931 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
932 0, 83, 68, 5, 6, 7, 8, 69, 70, 0,
933 71, 9, 10, 11, 0, 0, 0, 0, 0, 0,
934 0, 84, 85, 0, 343, 0, 0, 13, 72, 14,
935 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
936 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
937 80, 0, 0, 0, 81, 82, 0, 68, 5, 83,
938 7, 97, 69, 70, 0, 71, 9, 10, 11, 163,
939 164, 165, 166, 167, 168, 169, 170, 171, 172, 84,
940 85, 0, 13, 72, 0, 15, 0, 73, 74, 75,
941 0, 68, 0, 0, 0, 76, 69, 70, 77, 71,
942 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
943 82, 0, 0, 0, 83, 0, 0, 72, 0, 15,
944 0, 73, 74, 75, 0, 0, 0, 0, 0, 76,
945 0, 0, 77, 0, 84, 85, 0, 78, 79, 80,
946 0, 0, 0, 81, 82, 68, 0, 0, 83, 0,
947 69, 70, 0, 71, 164, 165, 166, 167, 168, 169,
948 170, 171, 172, 0, 0, 0, 582, 0, 84, 85,
949 0, 72, 0, 15, 0, 73, 74, 75, 0, 68,
950 0, 0, 0, 76, 69, 70, 77, 71, 0, 0,
951 0, 78, 79, 80, 0, 0, 0, 81, 82, 0,
952 0, 0, 83, 0, 0, 72, 0, 15, 0, 73,
953 74, 75, 0, 68, 0, 0, 0, 76, 69, 70,
954 77, 71, 84, 85, 0, 78, 79, 80, 0, 0,
955 0, 81, 82, 0, 0, 0, 152, 0, 0, 72,
956 0, 15, 0, 73, 74, 75, 0, 363, 0, 0,
957 0, 76, 69, 70, 77, 71, 84, 85, 0, 78,
958 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
959 154, 0, 0, 72, 0, 15, 0, 73, 74, 75,
960 0, 0, 0, 0, 0, 76, 0, 0, 77, 0,
961 84, 85, 0, 78, 79, 80, 0, 0, 0, 81,
962 82, 0, 0, 4, 83, -119, 5, 6, 7, 8,
963 0, 0, 0, 0, 9, 10, 11, 0, 0, 0,
964 0, 0, 0, 0, 84, 85, 0, 0, 0, 12,
965 13, 0, 14, 15, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
967 0, 562, 0, -119, 0, 0, 0, 0, 0, 156,
968 157, 158, -119, 159, 160, 161, 162, 163, 164, 165,
969 166, 167, 168, 169, 170, 171, 172, 156, 157, 158,
970 16, 159, 160, 161, 162, 163, 164, 165, 166, 167,
971 168, 169, 170, 171, 172, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 156, 157, 158, 629, 159, 160,
973 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
974 171, 172, 14, 0, 0, 563, 0, 0, 156, 157,
975 158, 0, 159, 160, 161, 162, 163, 164, 165, 166,
976 167, 168, 169, 170, 171, 172, 0, 0, 0, 0,
977 339, 156, 157, 158, 651, 159, 160, 161, 162, 163,
978 164, 165, 166, 167, 168, 169, 170, 171, 172
981 static const short yycheck
[] = { 38,
982 39, 27, 28, 29, 20, 2, 3, 2, 3, 2,
983 3, 51, 49, 2, 3, 147, 206, 121, 22, 226,
984 9, 10, 11, 113, 57, 232, 188, 43, 22, 116,
985 228, 20, 63, 22, 31, 51, 31, 102, 31, 183,
986 21, 22, 31, 177, 120, 39, 214, 425, 107, 285,
987 76, 73, 74, 83, 43, 9, 388, 1, 80, 117,
988 49, 467, 51, 134, 86, 1, 1, 39, 57, 3,
989 4, 134, 0, 112, 96, 10, 39, 103, 3, 78,
990 79, 3, 4, 3, 4, 3, 4, 382, 104, 83,
991 385, 488, 108, 126, 39, 182, 30, 0, 3, 4,
992 204, 117, 575, 30, 30, 77, 31, 513, 102, 185,
993 99, 508, 138, 102, 77, 104, 60, 51, 107, 108,
994 452, 30, 152, 77, 154, 215, 60, 61, 117, 51,
995 292, 78, 77, 60, 61, 82, 226, 126, 282, 178,
996 134, 134, 232, 60, 288, 184, 649, 83, 83, 175,
997 176, 60, 61, 626, 5, 188, 7, 3, 152, 565,
998 154, 295, 220, 83, 223, 83, 224, 30, 239, 60,
999 25, 503, 645, 60, 677, 648, 239, 650, 83, 78,
1000 35, 36, 37, 419, 30, 658, 30, 209, 51, 78,
1001 229, 46, 27, 82, 183, 39, 37, 60, 61, 54,
1002 60, 3, 4, 83, 220, 51, 3, 4, 224, 240,
1003 7, 242, 3, 591, 60, 61, 7, 690, 59, 208,
1004 61, 247, 261, 3, 4, 60, 61, 83, 30, 3,
1005 398, 220, 254, 30, 223, 224, 83, 39, 328, 30,
1006 330, 60, 374, 77, 238, 239, 239, 77, 82, 51,
1007 30, 290, 82, 77, 51, 236, 30, 238, 60, 292,
1008 51, 82, 7, 60, 596, 120, 410, 429, 294, 60,
1009 61, 51, 406, 77, 472, 9, 131, 51, 82, 447,
1010 60, 4, 450, 6, 7, 30, 60, 60, 61, 12,
1011 13, 14, 77, 282, 78, 77, 285, 301, 82, 288,
1012 60, 61, 367, 368, 77, 28, 51, 301, 398, 339,
1013 336, 315, 301, 77, 60, 60, 61, 77, 82, 300,
1014 301, 315, 409, 485, 60, 61, 470, 471, 415, 79,
1015 185, 79, 3, 477, 478, 411, 7, 3, 4, 77,
1016 416, 77, 6, 7, 82, 339, 77, 437, 12, 13,
1017 14, 367, 368, 78, 83, 78, 79, 82, 448, 30,
1018 450, 78, 77, 1, 219, 82, 4, 5, 6, 7,
1019 77, 397, 10, 505, 12, 13, 14, 78, 367, 368,
1020 51, 82, 371, 78, 78, 379, 39, 427, 82, 60,
1021 28, 78, 60, 61, 410, 82, 429, 378, 379, 78,
1022 532, 438, 1, 82, 60, 4, 5, 6, 7, 60,
1023 61, 427, 9, 12, 13, 14, 3, 4, 78, 79,
1024 7, 410, 1, 27, 3, 4, 227, 60, 61, 28,
1025 419, 457, 233, 640, 473, 642, 425, 84, 427, 78,
1026 241, 27, 37, 30, 30, 83, 51, 52, 53, 438,
1027 78, 37, 485, 37, 470, 471, 3, 4, 5, 6,
1028 7, 477, 478, 82, 51, 79, 505, 78, 79, 495,
1029 60, 61, 39, 60, 61, 90, 91, 77, 84, 505,
1030 37, 470, 471, 77, 83, 470, 471, 79, 477, 478,
1031 79, 84, 78, 532, 684, 627, 82, 77, 79, 521,
1032 142, 77, 692, 77, 543, 77, 532, 77, 505, 151,
1033 505, 84, 505, 32, 156, 157, 505, 621, 544, 161,
1034 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
1035 172, 39, 84, 77, 573, 667, 668, 576, 577, 561,
1036 49, 50, 51, 52, 53, 584, 3, 551, 78, 82,
1037 640, 79, 642, 593, 591, 77, 411, 551, 79, 79,
1038 599, 416, 551, 39, 561, 39, 561, 606, 561, 550,
1039 551, 4, 561, 6, 7, 79, 82, 593, 617, 12,
1040 13, 14, 79, 84, 79, 39, 39, 60, 627, 390,
1041 391, 60, 60, 394, 78, 28, 78, 30, 5, 6,
1042 7, 627, 591, 7, 593, 12, 13, 14, 39, 79,
1043 649, 412, 413, 414, 78, 78, 417, 418, 51, 16,
1044 60, 263, 264, 30, 60, 17, 78, 60, 61, 78,
1045 55, 56, 671, 58, 59, 60, 61, 78, 677, 77,
1046 1, 442, 3, 4, 5, 6, 7, 8, 9, 77,
1047 11, 12, 13, 14, 15, 78, 17, 18, 19, 20,
1048 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1049 31, 77, 33, 34, 35, 77, 9, 5, 6, 7,
1050 41, 60, 78, 44, 12, 13, 14, 78, 49, 50,
1051 51, 492, 78, 335, 55, 56, 78, 1, 82, 60,
1052 4, 77, 6, 7, 77, 0, 348, 78, 12, 13,
1053 14, 78, 0, 295, 576, 215, 448, 78, 79, 80,
1054 81, 561, 83, 53, 28, 428, 527, 31, 294, 191,
1055 1, 435, 3, 4, 511, 338, 466, 8, 9, 381,
1056 11, 239, 330, 448, 15, 437, 17, 18, 19, 20,
1057 21, 22, 23, 24, 25, 26, 27, 247, 29, 401,
1058 31, 336, 33, 34, 35, 399, 450, 674, 627, 627,
1059 41, 572, 672, 44, 78, 79, 289, -1, 49, 50,
1060 51, -1, -1, -1, 55, 56, 371, 588, -1, 60,
1061 -1, -1, 1, 435, 3, 4, 5, 6, 7, -1,
1062 -1, 10, -1, 12, 13, 14, -1, 78, 79, 80,
1063 81, -1, 83, -1, -1, -1, 458, -1, -1, 28,
1064 -1, 30, -1, -1, -1, 467, 468, -1, -1, -1,
1065 1, -1, 3, 4, -1, 6, 7, 8, 9, -1,
1066 11, 12, 13, 14, -1, -1, 488, -1, -1, 491,
1067 55, 56, -1, 58, 59, 60, 61, 28, 29, -1,
1068 31, -1, 33, 34, 35, -1, 508, -1, 77, 511,
1069 41, 513, 77, 44, -1, -1, -1, -1, 49, 50,
1070 51, -1, -1, -1, 55, 56, 528, 1, -1, 60,
1071 4, 5, 6, 7, -1, -1, 10, 539, 12, 13,
1072 14, 46, 47, 48, 49, 50, 51, 52, 53, 80,
1073 81, -1, 83, -1, 28, -1, 30, -1, -1, -1,
1074 562, -1, -1, 565, 1, -1, 3, 4, 5, 6,
1075 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
1076 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1077 27, 28, 29, 30, 31, -1, 33, 34, 35, 27,
1078 -1, -1, 30, 77, 41, -1, -1, 44, -1, 37,
1079 612, -1, 49, 50, 51, -1, -1, -1, 55, 56,
1080 -1, -1, -1, 60, -1, -1, -1, 4, 5, 6,
1081 7, -1, 60, 61, -1, 12, 13, 14, -1, -1,
1082 -1, 78, -1, 80, 81, 1, 83, 3, 4, -1,
1083 78, 28, 8, 9, 82, 11, -1, -1, -1, 15,
1084 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1085 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1086 -1, 4, 5, 6, 7, 41, -1, -1, 44, 12,
1087 13, 14, -1, 49, 50, 51, -1, -1, -1, 55,
1088 56, 78, -1, -1, 60, 28, -1, 30, 1, -1,
1089 -1, 4, -1, 6, 7, -1, -1, -1, -1, 12,
1090 13, 14, 78, -1, 80, 81, 1, 83, 3, 4,
1091 -1, -1, -1, 8, 9, 28, 11, -1, 31, -1,
1092 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1093 25, 26, 27, -1, 29, 78, 31, -1, 33, 34,
1094 35, -1, -1, -1, -1, -1, 41, -1, -1, 44,
1095 -1, -1, -1, -1, 49, 50, 51, -1, -1, -1,
1096 55, 56, -1, -1, 1, 60, 3, 4, -1, -1,
1097 -1, 8, 9, -1, 11, 47, 48, 49, 50, 51,
1098 52, 53, -1, 78, -1, 80, 81, -1, 83, -1,
1099 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1100 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
1101 -1, -1, 49, 50, 51, -1, -1, -1, 55, 56,
1102 -1, -1, 59, 60, 61, 1, -1, 3, 4, -1,
1103 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1104 -1, -1, 79, 80, 81, -1, 83, -1, -1, -1,
1105 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1106 -1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
1107 -1, -1, -1, 49, 50, 51, -1, -1, -1, 55,
1108 56, -1, -1, 59, 60, 61, 1, -1, 3, -1,
1109 -1, -1, -1, 8, 9, -1, 11, -1, -1, -1,
1110 -1, -1, -1, 79, 80, 81, -1, 83, -1, -1,
1111 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1112 35, -1, 37, -1, -1, -1, 41, -1, -1, 44,
1113 -1, -1, -1, -1, 49, 50, 51, -1, -1, -1,
1114 55, 56, -1, -1, 59, 60, 61, 1, -1, 3,
1115 -1, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1116 -1, -1, -1, -1, -1, 80, 81, -1, 83, -1,
1117 -1, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1118 34, 35, -1, 4, 5, 6, 7, 41, -1, 10,
1119 44, 12, 13, 14, -1, 49, 50, 51, -1, -1,
1120 -1, 55, 56, 1, -1, 3, 60, 28, -1, 30,
1121 8, 9, 1, 11, -1, 4, 5, 6, 7, -1,
1122 -1, -1, -1, 12, 13, 14, 80, 81, -1, 83,
1123 -1, 29, -1, 31, -1, 33, 34, 35, 27, 28,
1124 -1, 30, -1, 41, -1, -1, 44, -1, 37, -1,
1125 -1, 49, 50, 51, -1, -1, -1, 55, 56, -1,
1126 -1, -1, 60, -1, -1, -1, -1, -1, -1, -1,
1127 -1, 60, 61, -1, -1, 1, -1, -1, 4, 5,
1128 6, 7, 80, 81, -1, 83, 12, 13, 14, 78,
1129 -1, -1, -1, 82, 83, -1, -1, -1, -1, -1,
1130 -1, 27, 28, 1, 30, -1, 4, 5, 6, 7,
1131 -1, 37, 3, -1, 12, 13, 14, 8, 9, -1,
1132 11, -1, -1, -1, -1, -1, -1, -1, -1, 27,
1133 28, -1, 30, -1, 60, 61, -1, -1, 29, 37,
1134 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1135 41, -1, 78, 44, -1, -1, 82, 83, 49, 50,
1136 51, -1, -1, -1, 55, 56, 3, -1, -1, 60,
1137 -1, 8, 9, -1, 11, -1, -1, -1, -1, -1,
1138 78, -1, -1, -1, 82, 83, -1, -1, -1, 80,
1139 81, -1, 29, 84, 31, -1, 33, 34, 35, -1,
1140 4, 5, 6, 7, 41, -1, -1, 44, 12, 13,
1141 14, -1, 49, 50, 51, -1, -1, -1, 55, 56,
1142 3, -1, -1, 60, 28, 8, 9, -1, 11, 4,
1143 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1144 -1, -1, -1, 80, 81, -1, 29, 84, 31, -1,
1145 33, 34, 35, 28, 4, 30, 6, 7, 41, -1,
1146 -1, 44, 12, 13, 14, -1, 49, 50, 51, -1,
1147 -1, -1, 55, 56, 3, -1, -1, 60, 28, 8,
1148 9, -1, 11, 4, 5, 6, 7, -1, -1, -1,
1149 -1, 12, 13, 14, -1, -1, -1, 80, 81, -1,
1150 29, 84, 31, 78, 33, 34, 35, 28, -1, 30,
1151 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
1152 49, 50, 51, -1, -1, -1, 55, 56, 3, -1,
1153 -1, 60, -1, 8, 9, 38, 11, 40, 41, 42,
1154 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1155 53, 80, 81, -1, 29, 84, 31, -1, 33, 34,
1156 35, -1, -1, -1, -1, -1, 41, -1, -1, 44,
1157 -1, -1, -1, -1, 49, 50, 51, -1, -1, -1,
1158 55, 56, 3, -1, -1, 60, -1, 8, 9, -1,
1159 11, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1160 50, 51, 52, 53, -1, 80, 81, -1, 29, 84,
1161 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1162 41, -1, -1, 44, -1, -1, -1, -1, 49, 50,
1163 51, -1, -1, -1, 55, 56, 3, -1, -1, 60,
1164 -1, 8, 9, -1, 11, 42, 43, 44, 45, 46,
1165 47, 48, 49, 50, 51, 52, 53, -1, -1, 80,
1166 81, -1, 29, 84, 31, -1, 33, 34, 35, 10,
1167 -1, -1, -1, -1, 41, -1, -1, 44, -1, -1,
1168 -1, -1, 49, 50, 51, -1, -1, -1, 55, 56,
1169 -1, -1, -1, 60, -1, 36, 37, 38, 39, 40,
1170 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1171 51, 52, 53, 80, 81, -1, -1, 84, 3, 4,
1172 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1173 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1174 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
1175 35, -1, -1, -1, -1, -1, 41, -1, -1, 44,
1176 -1, -1, -1, -1, 49, 50, 51, -1, -1, -1,
1177 55, 56, 36, 37, 38, 60, 40, 41, 42, 43,
1178 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1179 -1, -1, -1, 78, -1, 80, 81, -1, 83, 3,
1180 4, -1, -1, -1, 8, 9, -1, 11, -1, -1,
1181 -1, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1182 24, 25, 26, 27, -1, 29, -1, 31, -1, 33,
1183 34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
1184 44, -1, -1, -1, -1, 49, 50, 51, -1, -1,
1185 -1, 55, 56, -1, 3, -1, 60, -1, -1, 8,
1186 9, -1, 11, 43, 44, 45, 46, 47, 48, 49,
1187 50, 51, 52, 53, 78, -1, 80, 81, -1, 83,
1188 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1189 -1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
1190 49, 50, 51, -1, -1, -1, 55, 56, -1, -1,
1191 -1, 60, 3, 4, 5, 6, 7, 8, 9, -1,
1192 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1193 -1, 80, 81, -1, 83, -1, -1, 28, 29, 30,
1194 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1195 41, -1, -1, 44, -1, -1, -1, -1, 49, 50,
1196 51, -1, -1, -1, 55, 56, -1, 3, 4, 60,
1197 6, 7, 8, 9, -1, 11, 12, 13, 14, 44,
1198 45, 46, 47, 48, 49, 50, 51, 52, 53, 80,
1199 81, -1, 28, 29, -1, 31, -1, 33, 34, 35,
1200 -1, 3, -1, -1, -1, 41, 8, 9, 44, 11,
1201 -1, -1, -1, 49, 50, 51, -1, -1, -1, 55,
1202 56, -1, -1, -1, 60, -1, -1, 29, -1, 31,
1203 -1, 33, 34, 35, -1, -1, -1, -1, -1, 41,
1204 -1, -1, 44, -1, 80, 81, -1, 49, 50, 51,
1205 -1, -1, -1, 55, 56, 3, -1, -1, 60, -1,
1206 8, 9, -1, 11, 45, 46, 47, 48, 49, 50,
1207 51, 52, 53, -1, -1, -1, 78, -1, 80, 81,
1208 -1, 29, -1, 31, -1, 33, 34, 35, -1, 3,
1209 -1, -1, -1, 41, 8, 9, 44, 11, -1, -1,
1210 -1, 49, 50, 51, -1, -1, -1, 55, 56, -1,
1211 -1, -1, 60, -1, -1, 29, -1, 31, -1, 33,
1212 34, 35, -1, 3, -1, -1, -1, 41, 8, 9,
1213 44, 11, 80, 81, -1, 49, 50, 51, -1, -1,
1214 -1, 55, 56, -1, -1, -1, 60, -1, -1, 29,
1215 -1, 31, -1, 33, 34, 35, -1, 3, -1, -1,
1216 -1, 41, 8, 9, 44, 11, 80, 81, -1, 49,
1217 50, 51, -1, -1, -1, 55, 56, -1, -1, -1,
1218 60, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1219 -1, -1, -1, -1, -1, 41, -1, -1, 44, -1,
1220 80, 81, -1, 49, 50, 51, -1, -1, -1, 55,
1221 56, -1, -1, 1, 60, 3, 4, 5, 6, 7,
1222 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1223 -1, -1, -1, -1, 80, 81, -1, -1, -1, 27,
1224 28, -1, 30, 31, -1, -1, -1, -1, -1, -1,
1225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1226 -1, 10, -1, 51, -1, -1, -1, -1, -1, 36,
1227 37, 38, 60, 40, 41, 42, 43, 44, 45, 46,
1228 47, 48, 49, 50, 51, 52, 53, 36, 37, 38,
1229 78, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1230 49, 50, 51, 52, 53, -1, -1, -1, -1, -1,
1231 -1, -1, -1, -1, 36, 37, 38, 84, 40, 41,
1232 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1233 52, 53, 30, -1, -1, 84, -1, -1, 36, 37,
1234 38, -1, 40, 41, 42, 43, 44, 45, 46, 47,
1235 48, 49, 50, 51, 52, 53, -1, -1, -1, -1,
1236 82, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1237 45, 46, 47, 48, 49, 50, 51, 52, 53
1239 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1240 #line 3 "/usr/lib/bison.simple"
1241 /* This file comes from bison-1.27. */
1243 /* Skeleton output parser for bison,
1244 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1246 This program is free software; you can redistribute it and/or modify
1247 it under the terms of the GNU General Public License as published by
1248 the Free Software Foundation; either version 2, or (at your option)
1251 This program is distributed in the hope that it will be useful,
1252 but WITHOUT ANY WARRANTY; without even the implied warranty of
1253 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1254 GNU General Public License for more details.
1256 You should have received a copy of the GNU General Public License
1257 along with this program; if not, write to the Free Software
1258 Foundation, Inc., 59 Temple Place - Suite 330,
1259 Boston, MA 02111-1307, USA. */
1261 /* As a special exception, when this file is copied by Bison into a
1262 Bison output file, you may use that output file without restriction.
1263 This special exception was added by the Free Software Foundation
1264 in version 1.24 of Bison. */
1266 /* This is the parser code that is written into each bison parser
1267 when the %semantic_parser declaration is not specified in the grammar.
1268 It was written by Richard Stallman by simplifying the hairy parser
1269 used when %semantic_parser is specified. */
1271 #ifndef YYSTACK_USE_ALLOCA
1273 #define YYSTACK_USE_ALLOCA
1274 #else /* alloca not defined */
1276 #define YYSTACK_USE_ALLOCA
1277 #define alloca __builtin_alloca
1278 #else /* not GNU C. */
1279 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1280 #define YYSTACK_USE_ALLOCA
1282 #else /* not sparc */
1283 /* We think this test detects Watcom and Microsoft C. */
1284 /* This used to test MSDOS, but that is a bad idea
1285 since that symbol is in the user namespace. */
1286 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1287 #if 0 /* No need for malloc.h, which pollutes the namespace;
1288 instead, just don't use alloca. */
1291 #else /* not MSDOS, or __TURBOC__ */
1293 /* I don't know what this was needed for, but it pollutes the namespace.
1294 So I turned it off. rms, 2 May 1997. */
1295 /* #include <malloc.h> */
1297 #define YYSTACK_USE_ALLOCA
1298 #else /* not MSDOS, or __TURBOC__, or _AIX */
1300 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1301 and on HPUX 10. Eventually we can turn this on. */
1302 #define YYSTACK_USE_ALLOCA
1303 #define alloca __builtin_alloca
1306 #endif /* not _AIX */
1307 #endif /* not MSDOS, or __TURBOC__ */
1308 #endif /* not sparc */
1309 #endif /* not GNU C */
1310 #endif /* alloca not defined */
1311 #endif /* YYSTACK_USE_ALLOCA not defined */
1313 #ifdef YYSTACK_USE_ALLOCA
1314 #define YYSTACK_ALLOC alloca
1316 #define YYSTACK_ALLOC malloc
1319 /* Note: there must be only one dollar sign in this file.
1320 It is replaced by the list of actions, each action
1321 as one case of the switch. */
1323 #define yyerrok (yyerrstatus = 0)
1324 #define yyclearin (yychar = YYEMPTY)
1327 #define YYACCEPT goto yyacceptlab
1328 #define YYABORT goto yyabortlab
1329 #define YYERROR goto yyerrlab1
1330 /* Like YYERROR except do call yyerror.
1331 This remains here temporarily to ease the
1332 transition to the new meaning of YYERROR, for GCC.
1333 Once GCC version 2 has supplanted version 1, this can go. */
1334 #define YYFAIL goto yyerrlab
1335 #define YYRECOVERING() (!!yyerrstatus)
1336 #define YYBACKUP(token, value) \
1338 if (yychar == YYEMPTY && yylen == 1) \
1339 { yychar = (token), yylval = (value); \
1340 yychar1 = YYTRANSLATE (yychar); \
1345 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1349 #define YYERRCODE 256
1352 #define YYLEX yylex()
1358 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1360 #define YYLEX yylex(&yylval, &yylloc)
1362 #else /* not YYLSP_NEEDED */
1364 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1366 #define YYLEX yylex(&yylval)
1368 #endif /* not YYLSP_NEEDED */
1371 /* If nonreentrant, generate the variables here */
1375 int yychar
; /* the lookahead symbol */
1376 YYSTYPE yylval
; /* the semantic value of the */
1377 /* lookahead symbol */
1380 YYLTYPE yylloc
; /* location data for the lookahead */
1384 int yynerrs
; /* number of parse errors so far */
1385 #endif /* not YYPURE */
1388 int yydebug
; /* nonzero means print parse trace */
1389 /* Since this is uninitialized, it does not stop multiple parsers
1393 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1396 #define YYINITDEPTH 200
1399 /* YYMAXDEPTH is the maximum size the stacks can grow to
1400 (effective only if the built-in stack extension method is used). */
1407 #define YYMAXDEPTH 10000
1410 /* Define __yy_memcpy. Note that the size argument
1411 should be passed with type unsigned int, because that is what the non-GCC
1412 definitions require. With GCC, __builtin_memcpy takes an arg
1413 of type size_t, but it can handle unsigned int. */
1415 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1416 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1417 #else /* not GNU C or C++ */
1420 /* This is the most reliable way to avoid incompatibilities
1421 in available built-in functions on various systems. */
1423 __yy_memcpy (to
, from
, count
)
1428 register char *f
= from
;
1429 register char *t
= to
;
1430 register int i
= count
;
1436 #else /* __cplusplus */
1438 /* This is the most reliable way to avoid incompatibilities
1439 in available built-in functions on various systems. */
1441 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1443 register char *t
= to
;
1444 register char *f
= from
;
1445 register int i
= count
;
1454 #line 216 "/usr/lib/bison.simple"
1456 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1457 into yyparse. The argument should have type void *.
1458 It should actually point to an object.
1459 Grammar actions can access the variable by casting it
1460 to the proper pointer type. */
1462 #ifdef YYPARSE_PARAM
1464 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1465 #define YYPARSE_PARAM_DECL
1466 #else /* not __cplusplus */
1467 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1468 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1469 #endif /* not __cplusplus */
1470 #else /* not YYPARSE_PARAM */
1471 #define YYPARSE_PARAM_ARG
1472 #define YYPARSE_PARAM_DECL
1473 #endif /* not YYPARSE_PARAM */
1475 /* Prevent warning if -Wstrict-prototypes. */
1477 #ifdef YYPARSE_PARAM
1478 int yyparse (void *);
1485 yyparse(YYPARSE_PARAM_ARG
)
1488 register int yystate
;
1490 register short *yyssp
;
1491 register YYSTYPE
*yyvsp
;
1492 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1493 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1495 short yyssa
[YYINITDEPTH
]; /* the state stack */
1496 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1498 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1499 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1502 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1503 YYLTYPE
*yyls
= yylsa
;
1506 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1508 #define YYPOPSTACK (yyvsp--, yyssp--)
1511 int yystacksize
= YYINITDEPTH
;
1512 int yyfree_stacks
= 0;
1523 YYSTYPE yyval
; /* the variable used to return */
1524 /* semantic values from the action */
1531 fprintf(stderr
, "Starting parse\n");
1537 yychar
= YYEMPTY
; /* Cause a token to be read. */
1539 /* Initialize stack pointers.
1540 Waste one element of value and location stack
1541 so that they stay on the same level as the state stack.
1542 The wasted elements are never initialized. */
1550 /* Push a new state, which is found in yystate . */
1551 /* In all cases, when you get here, the value and location stacks
1552 have just been pushed. so pushing a state here evens the stacks. */
1557 if (yyssp
>= yyss
+ yystacksize
- 1)
1559 /* Give user a chance to reallocate the stack */
1560 /* Use copies of these so that the &'s don't force the real ones into memory. */
1561 YYSTYPE
*yyvs1
= yyvs
;
1562 short *yyss1
= yyss
;
1564 YYLTYPE
*yyls1
= yyls
;
1567 /* Get the current used size of the three stacks, in elements. */
1568 int size
= yyssp
- yyss
+ 1;
1571 /* Each stack pointer address is followed by the size of
1572 the data in use in that stack, in bytes. */
1574 /* This used to be a conditional around just the two extra args,
1575 but that might be undefined if yyoverflow is a macro. */
1576 yyoverflow("parser stack overflow",
1577 &yyss1
, size
* sizeof (*yyssp
),
1578 &yyvs1
, size
* sizeof (*yyvsp
),
1579 &yyls1
, size
* sizeof (*yylsp
),
1582 yyoverflow("parser stack overflow",
1583 &yyss1
, size
* sizeof (*yyssp
),
1584 &yyvs1
, size
* sizeof (*yyvsp
),
1588 yyss
= yyss1
; yyvs
= yyvs1
;
1592 #else /* no yyoverflow */
1593 /* Extend the stack our own way. */
1594 if (yystacksize
>= YYMAXDEPTH
)
1596 yyerror("parser stack overflow");
1608 if (yystacksize
> YYMAXDEPTH
)
1609 yystacksize
= YYMAXDEPTH
;
1610 #ifndef YYSTACK_USE_ALLOCA
1613 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
1614 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
1615 size
* (unsigned int) sizeof (*yyssp
));
1616 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
1617 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
1618 size
* (unsigned int) sizeof (*yyvsp
));
1620 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
1621 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
1622 size
* (unsigned int) sizeof (*yylsp
));
1624 #endif /* no yyoverflow */
1626 yyssp
= yyss
+ size
- 1;
1627 yyvsp
= yyvs
+ size
- 1;
1629 yylsp
= yyls
+ size
- 1;
1634 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1637 if (yyssp
>= yyss
+ yystacksize
- 1)
1643 fprintf(stderr
, "Entering state %d\n", yystate
);
1649 /* Do appropriate processing given the current state. */
1650 /* Read a lookahead token if we need one and don't already have one. */
1653 /* First try to decide what to do without reference to lookahead token. */
1655 yyn
= yypact
[yystate
];
1659 /* Not known => get a lookahead token if don't already have one. */
1661 /* yychar is either YYEMPTY or YYEOF
1662 or a valid token in external form. */
1664 if (yychar
== YYEMPTY
)
1668 fprintf(stderr
, "Reading a token: ");
1673 /* Convert token to internal form (in yychar1) for indexing tables with */
1675 if (yychar
<= 0) /* This means end of input. */
1678 yychar
= YYEOF
; /* Don't call YYLEX any more */
1682 fprintf(stderr
, "Now at end of input.\n");
1687 yychar1
= YYTRANSLATE(yychar
);
1692 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1693 /* Give the individual parser a way to print the precise meaning
1694 of a token, for further debugging info. */
1696 YYPRINT (stderr
, yychar
, yylval
);
1698 fprintf (stderr
, ")\n");
1704 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1709 /* yyn is what to do for this token type in this state.
1710 Negative => reduce, -yyn is rule number.
1711 Positive => shift, yyn is new state.
1712 New state is final state => don't bother to shift,
1713 just return success.
1714 0, or most negative number => error. */
1729 /* Shift the lookahead token. */
1733 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1736 /* Discard the token being shifted unless it is eof. */
1737 if (yychar
!= YYEOF
)
1745 /* count tokens shifted since error; after three, turn off error status. */
1746 if (yyerrstatus
) yyerrstatus
--;
1751 /* Do the default action for the current state. */
1754 yyn
= yydefact
[yystate
];
1758 /* Do a reduction. yyn is the number of a rule to reduce with. */
1762 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1769 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1772 /* Print the symbols being reduced, and their result. */
1773 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1774 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1775 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1783 #line 234 "c-parse.y"
1785 pedwarn ("ANSI C forbids an empty source file");
1790 #line 239 "c-parse.y"
1792 /* In case there were missing closebraces,
1793 get us back to the global binding level. */
1794 while (! global_bindings_p ())
1800 #line 253 "c-parse.y"
1801 {yyval
.ttype
= NULL_TREE
; ;
1804 #line 254 "c-parse.y"
1805 {yyval
.ttype
= NULL_TREE
; ;
1808 #line 261 "c-parse.y"
1809 { STRIP_NOPS (yyvsp
[-2].ttype
);
1810 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1811 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1812 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1813 assemble_asm (yyvsp
[-2].ttype
);
1815 error ("argument of `asm' is not a constant string"); ;
1818 #line 269 "c-parse.y"
1819 { pedantic
= yyvsp
[-1].itype
; ;
1822 #line 274 "c-parse.y"
1824 error ("ANSI C forbids data definition with no type or storage class");
1825 else if (!flag_traditional
)
1826 warning ("data definition has no type or storage class");
1828 current_declspecs
= TREE_VALUE (declspec_stack
);
1829 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1830 declspec_stack
= TREE_CHAIN (declspec_stack
);
1831 resume_momentary (yyvsp
[-2].itype
); ;
1834 #line 284 "c-parse.y"
1835 { current_declspecs
= TREE_VALUE (declspec_stack
);
1836 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1837 declspec_stack
= TREE_CHAIN (declspec_stack
);
1838 resume_momentary (yyvsp
[-2].itype
); ;
1841 #line 289 "c-parse.y"
1842 { current_declspecs
= TREE_VALUE (declspec_stack
);
1843 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1844 declspec_stack
= TREE_CHAIN (declspec_stack
);
1845 resume_momentary (yyvsp
[-2].itype
); ;
1848 #line 294 "c-parse.y"
1849 { pedwarn ("empty declaration"); ;
1852 #line 296 "c-parse.y"
1853 { shadow_tag (yyvsp
[-1].ttype
); ;
1856 #line 300 "c-parse.y"
1858 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1861 #line 306 "c-parse.y"
1862 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1863 prefix_attributes
, NULL_TREE
, 0))
1865 reinit_parse_for_function (); ;
1868 #line 311 "c-parse.y"
1869 { store_parm_decls (); ;
1872 #line 313 "c-parse.y"
1873 { finish_function (0);
1874 current_declspecs
= TREE_VALUE (declspec_stack
);
1875 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1876 declspec_stack
= TREE_CHAIN (declspec_stack
);
1877 resume_momentary (yyvsp
[-5].itype
); ;
1880 #line 319 "c-parse.y"
1881 { current_declspecs
= TREE_VALUE (declspec_stack
);
1882 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1883 declspec_stack
= TREE_CHAIN (declspec_stack
);
1884 resume_momentary (yyvsp
[-2].itype
); ;
1887 #line 324 "c-parse.y"
1888 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1889 prefix_attributes
, NULL_TREE
, 0))
1891 reinit_parse_for_function (); ;
1894 #line 329 "c-parse.y"
1895 { store_parm_decls (); ;
1898 #line 331 "c-parse.y"
1899 { finish_function (0);
1900 current_declspecs
= TREE_VALUE (declspec_stack
);
1901 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1902 declspec_stack
= TREE_CHAIN (declspec_stack
);
1903 resume_momentary (yyvsp
[-5].itype
); ;
1906 #line 337 "c-parse.y"
1907 { current_declspecs
= TREE_VALUE (declspec_stack
);
1908 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1909 declspec_stack
= TREE_CHAIN (declspec_stack
);
1910 resume_momentary (yyvsp
[-2].itype
); ;
1913 #line 342 "c-parse.y"
1914 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1915 prefix_attributes
, NULL_TREE
, 0))
1917 reinit_parse_for_function (); ;
1920 #line 347 "c-parse.y"
1921 { store_parm_decls (); ;
1924 #line 349 "c-parse.y"
1925 { finish_function (0);
1926 current_declspecs
= TREE_VALUE (declspec_stack
);
1927 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1928 declspec_stack
= TREE_CHAIN (declspec_stack
);
1929 resume_momentary (yyvsp
[-5].itype
); ;
1932 #line 355 "c-parse.y"
1933 { current_declspecs
= TREE_VALUE (declspec_stack
);
1934 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1935 declspec_stack
= TREE_CHAIN (declspec_stack
);
1936 resume_momentary (yyvsp
[-2].itype
); ;
1939 #line 367 "c-parse.y"
1940 { yyval
.code
= ADDR_EXPR
; ;
1943 #line 369 "c-parse.y"
1944 { yyval
.code
= NEGATE_EXPR
; ;
1947 #line 371 "c-parse.y"
1948 { yyval
.code
= CONVERT_EXPR
; ;
1951 #line 373 "c-parse.y"
1952 { yyval
.code
= PREINCREMENT_EXPR
; ;
1955 #line 375 "c-parse.y"
1956 { yyval
.code
= PREDECREMENT_EXPR
; ;
1959 #line 377 "c-parse.y"
1960 { yyval
.code
= BIT_NOT_EXPR
; ;
1963 #line 379 "c-parse.y"
1964 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1967 #line 383 "c-parse.y"
1968 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1971 #line 388 "c-parse.y"
1972 { yyval
.ttype
= NULL_TREE
; ;
1975 #line 394 "c-parse.y"
1976 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1979 #line 396 "c-parse.y"
1980 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1983 #line 402 "c-parse.y"
1984 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1987 #line 405 "c-parse.y"
1988 { yyval
.ttype
= yyvsp
[0].ttype
;
1989 pedantic
= yyvsp
[-1].itype
; ;
1992 #line 408 "c-parse.y"
1993 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1994 overflow_warning (yyval
.ttype
); ;
1997 #line 412 "c-parse.y"
1998 { tree label
= lookup_label (yyvsp
[0].ttype
);
2000 pedwarn ("ANSI C forbids `&&'");
2002 yyval
.ttype
= null_pointer_node
;
2005 TREE_USED (label
) = 1;
2006 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2007 TREE_CONSTANT (yyval
.ttype
) = 1;
2012 #line 440 "c-parse.y"
2013 { skip_evaluation
--;
2014 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2015 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2016 error ("`sizeof' applied to a bit-field");
2017 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2020 #line 446 "c-parse.y"
2021 { skip_evaluation
--;
2022 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2025 #line 449 "c-parse.y"
2026 { skip_evaluation
--;
2027 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2030 #line 452 "c-parse.y"
2031 { skip_evaluation
--;
2032 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2035 #line 455 "c-parse.y"
2036 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2039 #line 457 "c-parse.y"
2040 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2043 #line 459 "c-parse.y"
2044 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2047 #line 463 "c-parse.y"
2048 { skip_evaluation
++; ;
2051 #line 467 "c-parse.y"
2052 { skip_evaluation
++; ;
2055 #line 473 "c-parse.y"
2056 { tree type
= groktypename (yyvsp
[-2].ttype
);
2057 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2060 #line 476 "c-parse.y"
2061 { start_init (NULL_TREE
, NULL
, 0);
2062 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2063 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2066 #line 480 "c-parse.y"
2068 tree result
= pop_init_level (0);
2069 tree type
= yyvsp
[-5].ttype
;
2072 if (pedantic
&& ! flag_isoc9x
)
2073 pedwarn ("ANSI C forbids constructor expressions");
2074 if (TYPE_NAME (type
) != 0)
2076 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2077 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2079 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2083 yyval
.ttype
= result
;
2084 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2086 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2093 #line 509 "c-parse.y"
2094 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2097 #line 511 "c-parse.y"
2098 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2101 #line 513 "c-parse.y"
2102 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2105 #line 515 "c-parse.y"
2106 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2109 #line 517 "c-parse.y"
2110 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2113 #line 519 "c-parse.y"
2114 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2117 #line 521 "c-parse.y"
2118 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2121 #line 523 "c-parse.y"
2122 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2125 #line 525 "c-parse.y"
2126 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2129 #line 527 "c-parse.y"
2130 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2133 #line 529 "c-parse.y"
2134 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2137 #line 531 "c-parse.y"
2138 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2141 #line 533 "c-parse.y"
2142 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2143 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2146 #line 536 "c-parse.y"
2147 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2148 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2151 #line 539 "c-parse.y"
2152 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2153 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2156 #line 542 "c-parse.y"
2157 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2158 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2161 #line 545 "c-parse.y"
2162 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2163 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2166 #line 548 "c-parse.y"
2167 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2168 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2171 #line 551 "c-parse.y"
2172 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2173 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2176 #line 554 "c-parse.y"
2178 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2179 /* Make sure first operand is calculated only once. */
2180 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2181 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2182 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2185 #line 561 "c-parse.y"
2186 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2187 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2190 #line 564 "c-parse.y"
2192 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2193 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2194 if (class == 'e' || class == '1'
2195 || class == '2' || class == '<')
2196 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2200 #line 572 "c-parse.y"
2202 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2203 /* This inhibits warnings in truthvalue_conversion. */
2204 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2205 if (class == 'e' || class == '1'
2206 || class == '2' || class == '<')
2207 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2211 #line 584 "c-parse.y"
2213 yyval
.ttype
= lastiddecl
;
2214 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2216 if (yychar
== YYEMPTY
)
2221 /* Ordinary implicit function declaration. */
2222 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2223 assemble_external (yyval
.ttype
);
2224 TREE_USED (yyval
.ttype
) = 1;
2227 else if (current_function_decl
== 0)
2229 error ("`%s' undeclared here (not in a function)",
2230 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2231 yyval
.ttype
= error_mark_node
;
2236 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2237 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2239 error ("`%s' undeclared (first use in this function)",
2240 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2242 if (! undeclared_variable_notice
)
2244 error ("(Each undeclared identifier is reported only once");
2245 error ("for each function it appears in.)");
2246 undeclared_variable_notice
= 1;
2249 yyval
.ttype
= error_mark_node
;
2250 /* Prevent repeated error messages. */
2251 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2252 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2256 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2257 yyval
.ttype
= error_mark_node
;
2258 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2260 /* The first time we see a build-in function used,
2261 if it has not been declared. */
2262 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2263 if (yychar
== YYEMPTY
)
2267 /* Omit the implicit declaration we
2268 would ordinarily do, so we don't lose
2269 the actual built in type.
2270 But print a diagnostic for the mismatch. */
2271 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2272 error ("`%s' implicitly declared as function",
2273 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2274 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2275 != TYPE_MODE (integer_type_node
))
2276 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2278 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2279 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2280 /* If it really returns void, change that to int. */
2281 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2282 TREE_TYPE (yyval
.ttype
)
2283 = build_function_type (integer_type_node
,
2284 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2287 pedwarn ("built-in function `%s' used without declaration",
2288 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2290 /* Do what we would ordinarily do when a fn is used. */
2291 assemble_external (yyval
.ttype
);
2292 TREE_USED (yyval
.ttype
) = 1;
2296 assemble_external (yyval
.ttype
);
2297 TREE_USED (yyval
.ttype
) = 1;
2300 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2302 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2303 /* This is to prevent an enum whose value is 0
2304 from being considered a null pointer constant. */
2305 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2306 TREE_CONSTANT (yyval
.ttype
) = 1;
2311 #line 683 "c-parse.y"
2312 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2315 #line 685 "c-parse.y"
2316 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2317 if (class == 'e' || class == '1'
2318 || class == '2' || class == '<')
2319 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2320 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2323 #line 691 "c-parse.y"
2324 { yyval
.ttype
= error_mark_node
; ;
2327 #line 693 "c-parse.y"
2328 { if (current_function_decl
== 0)
2330 error ("braced-group within expression allowed only inside a function");
2333 /* We must force a BLOCK for this level
2334 so that, if it is not expanded later,
2335 there is a way to turn off the entire subtree of blocks
2336 that are contained in it. */
2338 push_iterator_stack ();
2339 push_label_level ();
2340 yyval
.ttype
= expand_start_stmt_expr (); ;
2343 #line 707 "c-parse.y"
2346 pedwarn ("ANSI C forbids braced-groups within expressions");
2347 pop_iterator_stack ();
2349 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2350 /* The statements have side effects, so the group does. */
2351 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2353 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2355 /* Make a BIND_EXPR for the BLOCK already made. */
2356 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2357 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2358 /* Remove the block from the tree at this point.
2359 It gets put back at the proper place
2360 when the BIND_EXPR is expanded. */
2361 delete_block (yyvsp
[-1].ttype
);
2364 yyval
.ttype
= yyvsp
[-1].ttype
;
2368 #line 730 "c-parse.y"
2369 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2372 #line 732 "c-parse.y"
2373 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2376 #line 734 "c-parse.y"
2378 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2382 #line 738 "c-parse.y"
2384 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2386 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2390 #line 744 "c-parse.y"
2391 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2394 #line 746 "c-parse.y"
2395 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2398 #line 753 "c-parse.y"
2399 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2402 #line 762 "c-parse.y"
2403 { c_mark_varargs ();
2405 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2408 #line 772 "c-parse.y"
2412 #line 788 "c-parse.y"
2413 { current_declspecs
= TREE_VALUE (declspec_stack
);
2414 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2415 declspec_stack
= TREE_CHAIN (declspec_stack
);
2416 resume_momentary (yyvsp
[-2].itype
); ;
2419 #line 793 "c-parse.y"
2420 { current_declspecs
= TREE_VALUE (declspec_stack
);
2421 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2422 declspec_stack
= TREE_CHAIN (declspec_stack
);
2423 resume_momentary (yyvsp
[-2].itype
); ;
2426 #line 798 "c-parse.y"
2427 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2428 pedwarn ("empty declaration"); ;
2431 #line 801 "c-parse.y"
2432 { pedwarn ("empty declaration"); ;
2435 #line 810 "c-parse.y"
2439 #line 825 "c-parse.y"
2440 { yyval
.itype
= suspend_momentary ();
2441 pending_xref_error ();
2442 declspec_stack
= tree_cons (prefix_attributes
,
2445 split_specs_attrs (yyvsp
[0].ttype
,
2446 ¤t_declspecs
, &prefix_attributes
); ;
2449 #line 836 "c-parse.y"
2450 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2453 #line 841 "c-parse.y"
2454 { current_declspecs
= TREE_VALUE (declspec_stack
);
2455 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2456 declspec_stack
= TREE_CHAIN (declspec_stack
);
2457 resume_momentary (yyvsp
[-2].itype
); ;
2460 #line 846 "c-parse.y"
2461 { current_declspecs
= TREE_VALUE (declspec_stack
);
2462 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2463 declspec_stack
= TREE_CHAIN (declspec_stack
);
2464 resume_momentary (yyvsp
[-2].itype
); ;
2467 #line 851 "c-parse.y"
2468 { current_declspecs
= TREE_VALUE (declspec_stack
);
2469 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2470 declspec_stack
= TREE_CHAIN (declspec_stack
);
2471 resume_momentary (yyvsp
[-1].itype
); ;
2474 #line 856 "c-parse.y"
2475 { current_declspecs
= TREE_VALUE (declspec_stack
);
2476 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2477 declspec_stack
= TREE_CHAIN (declspec_stack
);
2478 resume_momentary (yyvsp
[-1].itype
); ;
2481 #line 861 "c-parse.y"
2482 { shadow_tag (yyvsp
[-1].ttype
); ;
2485 #line 863 "c-parse.y"
2486 { pedwarn ("empty declaration"); ;
2489 #line 865 "c-parse.y"
2490 { pedantic
= yyvsp
[-1].itype
; ;
2493 #line 875 "c-parse.y"
2494 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2497 #line 877 "c-parse.y"
2498 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2501 #line 881 "c-parse.y"
2502 { yyval
.ttype
= NULL_TREE
; ;
2505 #line 883 "c-parse.y"
2506 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2509 #line 885 "c-parse.y"
2510 { if (extra_warnings
)
2511 warning ("`%s' is not at beginning of declaration",
2512 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2513 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2516 #line 890 "c-parse.y"
2517 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2520 #line 895 "c-parse.y"
2521 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2524 #line 897 "c-parse.y"
2525 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2528 #line 902 "c-parse.y"
2529 { yyval
.ttype
= NULL_TREE
; ;
2532 #line 904 "c-parse.y"
2533 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2536 #line 906 "c-parse.y"
2537 { if (extra_warnings
)
2538 warning ("`%s' is not at beginning of declaration",
2539 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2540 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2543 #line 919 "c-parse.y"
2544 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2547 #line 921 "c-parse.y"
2548 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2551 #line 923 "c-parse.y"
2552 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2555 #line 925 "c-parse.y"
2556 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2559 #line 930 "c-parse.y"
2560 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2561 TREE_STATIC (yyval
.ttype
) = 1; ;
2564 #line 933 "c-parse.y"
2565 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2568 #line 935 "c-parse.y"
2569 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2570 TREE_STATIC (yyval
.ttype
) = 1; ;
2573 #line 938 "c-parse.y"
2574 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2575 warning ("`%s' is not at beginning of declaration",
2576 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2577 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2578 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2581 #line 952 "c-parse.y"
2582 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2585 #line 954 "c-parse.y"
2586 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2589 #line 958 "c-parse.y"
2590 { yyval
.ttype
= NULL_TREE
; ;
2593 #line 960 "c-parse.y"
2594 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2597 #line 970 "c-parse.y"
2598 { /* For a typedef name, record the meaning, not the name.
2599 In case of `foo foo, bar;'. */
2600 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2603 #line 974 "c-parse.y"
2604 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2607 #line 976 "c-parse.y"
2608 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2611 #line 998 "c-parse.y"
2612 { yyval
.ttype
= NULL_TREE
; ;
2615 #line 1000 "c-parse.y"
2616 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2617 yyval
.ttype
= yyvsp
[-1].ttype
;
2621 #line 1007 "c-parse.y"
2622 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2623 yyvsp
[-1].ttype
, prefix_attributes
);
2624 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2627 #line 1012 "c-parse.y"
2629 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2632 #line 1015 "c-parse.y"
2633 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2634 yyvsp
[0].ttype
, prefix_attributes
);
2635 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2639 #line 1023 "c-parse.y"
2640 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2641 yyvsp
[-1].ttype
, prefix_attributes
);
2642 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2645 #line 1028 "c-parse.y"
2647 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2648 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2651 #line 1032 "c-parse.y"
2652 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2653 yyvsp
[0].ttype
, prefix_attributes
);
2654 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2657 #line 1040 "c-parse.y"
2658 { yyval
.ttype
= NULL_TREE
; ;
2661 #line 1042 "c-parse.y"
2662 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2665 #line 1047 "c-parse.y"
2666 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2669 #line 1049 "c-parse.y"
2670 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2673 #line 1054 "c-parse.y"
2674 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2677 #line 1059 "c-parse.y"
2678 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2681 #line 1061 "c-parse.y"
2682 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2685 #line 1066 "c-parse.y"
2686 { yyval
.ttype
= NULL_TREE
; ;
2689 #line 1068 "c-parse.y"
2690 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2693 #line 1070 "c-parse.y"
2694 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2697 #line 1072 "c-parse.y"
2698 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2701 #line 1074 "c-parse.y"
2702 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2705 #line 1092 "c-parse.y"
2706 { really_start_incremental_init (NULL_TREE
);
2707 /* Note that the call to clear_momentary
2708 is in process_init_element. */
2709 push_momentary (); ;
2712 #line 1097 "c-parse.y"
2713 { yyval
.ttype
= pop_init_level (0);
2714 if (yyval
.ttype
== error_mark_node
2715 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2718 pop_momentary_nofree (); ;
2721 #line 1105 "c-parse.y"
2722 { yyval
.ttype
= error_mark_node
; ;
2725 #line 1111 "c-parse.y"
2727 pedwarn ("ANSI C forbids empty initializer braces"); ;
2730 #line 1127 "c-parse.y"
2731 { set_init_label (yyvsp
[-1].ttype
); ;
2734 #line 1134 "c-parse.y"
2735 { push_init_level (0); ;
2738 #line 1136 "c-parse.y"
2739 { process_init_element (pop_init_level (0)); ;
2742 #line 1138 "c-parse.y"
2743 { process_init_element (yyvsp
[0].ttype
); ;
2746 #line 1149 "c-parse.y"
2747 { set_init_label (yyvsp
[0].ttype
); ;
2750 #line 1154 "c-parse.y"
2751 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2754 #line 1156 "c-parse.y"
2755 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2758 #line 1161 "c-parse.y"
2759 { push_c_function_context ();
2760 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2761 prefix_attributes
, NULL_TREE
, 1))
2763 pop_c_function_context ();
2766 reinit_parse_for_function (); ;
2769 #line 1170 "c-parse.y"
2770 { store_parm_decls (); ;
2773 #line 1178 "c-parse.y"
2774 { finish_function (1);
2775 pop_c_function_context (); ;
2778 #line 1184 "c-parse.y"
2779 { push_c_function_context ();
2780 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2781 prefix_attributes
, NULL_TREE
, 1))
2783 pop_c_function_context ();
2786 reinit_parse_for_function (); ;
2789 #line 1193 "c-parse.y"
2790 { store_parm_decls (); ;
2793 #line 1201 "c-parse.y"
2794 { finish_function (1);
2795 pop_c_function_context (); ;
2798 #line 1217 "c-parse.y"
2799 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2802 #line 1219 "c-parse.y"
2803 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2806 #line 1224 "c-parse.y"
2807 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2810 #line 1226 "c-parse.y"
2811 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2814 #line 1228 "c-parse.y"
2815 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2818 #line 1235 "c-parse.y"
2819 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2822 #line 1246 "c-parse.y"
2823 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2826 #line 1251 "c-parse.y"
2827 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2829 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2833 #line 1256 "c-parse.y"
2834 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2837 #line 1258 "c-parse.y"
2838 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2841 #line 1260 "c-parse.y"
2842 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2845 #line 1267 "c-parse.y"
2846 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2849 #line 1276 "c-parse.y"
2850 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2853 #line 1281 "c-parse.y"
2854 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2857 #line 1283 "c-parse.y"
2858 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2861 #line 1285 "c-parse.y"
2862 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2864 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2868 #line 1290 "c-parse.y"
2869 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2872 #line 1292 "c-parse.y"
2873 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2876 #line 1299 "c-parse.y"
2877 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2880 #line 1305 "c-parse.y"
2881 { yyval
.ttype
= NULL_TREE
; ;
2884 #line 1307 "c-parse.y"
2885 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2888 #line 1312 "c-parse.y"
2889 { yyval
.ttype
= NULL_TREE
; ;
2892 #line 1314 "c-parse.y"
2893 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2896 #line 1319 "c-parse.y"
2897 { yyval
.ttype
= NULL_TREE
; ;
2900 #line 1321 "c-parse.y"
2901 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2904 #line 1326 "c-parse.y"
2905 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2906 /* Start scope of tag before parsing components. */
2910 #line 1330 "c-parse.y"
2911 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2914 #line 1332 "c-parse.y"
2915 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2916 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2920 #line 1336 "c-parse.y"
2921 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2924 #line 1338 "c-parse.y"
2925 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2928 #line 1340 "c-parse.y"
2929 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2932 #line 1342 "c-parse.y"
2933 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2934 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2938 #line 1346 "c-parse.y"
2939 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2942 #line 1348 "c-parse.y"
2943 { yyvsp
[0].itype
= suspend_momentary ();
2944 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2947 #line 1351 "c-parse.y"
2948 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
2949 resume_momentary (yyvsp
[-5].itype
); ;
2952 #line 1354 "c-parse.y"
2953 { yyvsp
[0].itype
= suspend_momentary ();
2954 yyval
.ttype
= start_enum (NULL_TREE
); ;
2957 #line 1357 "c-parse.y"
2958 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
2959 resume_momentary (yyvsp
[-5].itype
); ;
2962 #line 1360 "c-parse.y"
2963 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2966 #line 1371 "c-parse.y"
2967 { if (pedantic
&& ! flag_isoc9x
)
2968 pedwarn ("comma at end of enumerator list"); ;
2971 #line 1377 "c-parse.y"
2972 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2975 #line 1379 "c-parse.y"
2976 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2977 pedwarn ("no semicolon at end of struct or union"); ;
2980 #line 1384 "c-parse.y"
2981 { yyval
.ttype
= NULL_TREE
; ;
2984 #line 1386 "c-parse.y"
2985 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2988 #line 1388 "c-parse.y"
2990 pedwarn ("extra semicolon in struct or union specified"); ;
2993 #line 1403 "c-parse.y"
2994 { yyval
.ttype
= yyvsp
[0].ttype
;
2995 current_declspecs
= TREE_VALUE (declspec_stack
);
2996 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2997 declspec_stack
= TREE_CHAIN (declspec_stack
);
2998 resume_momentary (yyvsp
[-1].itype
); ;
3001 #line 1409 "c-parse.y"
3003 pedwarn ("ANSI C forbids member declarations with no members");
3004 shadow_tag(yyvsp
[0].ttype
);
3005 yyval
.ttype
= NULL_TREE
; ;
3008 #line 1414 "c-parse.y"
3009 { yyval
.ttype
= yyvsp
[0].ttype
;
3010 current_declspecs
= TREE_VALUE (declspec_stack
);
3011 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3012 declspec_stack
= TREE_CHAIN (declspec_stack
);
3013 resume_momentary (yyvsp
[-1].itype
); ;
3016 #line 1420 "c-parse.y"
3018 pedwarn ("ANSI C forbids member declarations with no members");
3019 shadow_tag(yyvsp
[0].ttype
);
3020 yyval
.ttype
= NULL_TREE
; ;
3023 #line 1425 "c-parse.y"
3024 { yyval
.ttype
= NULL_TREE
; ;
3027 #line 1427 "c-parse.y"
3028 { yyval
.ttype
= yyvsp
[0].ttype
;
3029 pedantic
= yyvsp
[-1].itype
; ;
3032 #line 1434 "c-parse.y"
3033 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3036 #line 1439 "c-parse.y"
3037 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3038 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3041 #line 1443 "c-parse.y"
3042 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3043 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3046 #line 1446 "c-parse.y"
3047 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3048 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3051 #line 1458 "c-parse.y"
3052 { if (yyvsp
[-2].ttype
== error_mark_node
)
3053 yyval
.ttype
= yyvsp
[-2].ttype
;
3055 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3058 #line 1463 "c-parse.y"
3059 { yyval
.ttype
= error_mark_node
; ;
3062 #line 1469 "c-parse.y"
3063 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3066 #line 1471 "c-parse.y"
3067 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3070 #line 1476 "c-parse.y"
3071 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3074 #line 1478 "c-parse.y"
3075 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3078 #line 1483 "c-parse.y"
3079 { yyval
.ttype
= NULL_TREE
; ;
3082 #line 1489 "c-parse.y"
3083 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3086 #line 1491 "c-parse.y"
3087 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3090 #line 1496 "c-parse.y"
3091 { yyval
.ttype
= NULL_TREE
; ;
3094 #line 1498 "c-parse.y"
3095 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3098 #line 1503 "c-parse.y"
3099 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3102 #line 1506 "c-parse.y"
3103 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3106 #line 1508 "c-parse.y"
3107 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3110 #line 1510 "c-parse.y"
3111 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3114 #line 1512 "c-parse.y"
3115 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3118 #line 1514 "c-parse.y"
3119 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3122 #line 1516 "c-parse.y"
3123 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3126 #line 1518 "c-parse.y"
3127 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3130 #line 1520 "c-parse.y"
3131 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3134 #line 1524 "c-parse.y"
3135 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3138 #line 1533 "c-parse.y"
3140 if (pedantic
&& yyvsp
[0].ends_in_label
)
3141 pedwarn ("ANSI C forbids label at end of compound statement");
3145 #line 1542 "c-parse.y"
3146 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3149 #line 1544 "c-parse.y"
3150 { yyval
.ends_in_label
= 0; ;
3153 #line 1556 "c-parse.y"
3154 { emit_line_note (input_filename
, lineno
);
3158 expand_start_bindings (0);
3162 #line 1569 "c-parse.y"
3164 pedwarn ("ANSI C forbids label declarations"); ;
3167 #line 1580 "c-parse.y"
3169 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3171 tree label
= shadow_label (TREE_VALUE (link
));
3172 C_DECLARED_LABEL_FLAG (label
) = 1;
3173 declare_nonlocal_label (label
);
3178 #line 1594 "c-parse.y"
3182 #line 1598 "c-parse.y"
3183 { compstmt_count
++; ;
3186 #line 1601 "c-parse.y"
3187 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3190 #line 1603 "c-parse.y"
3191 { emit_line_note (input_filename
, lineno
);
3192 expand_end_bindings (getdecls (), 1, 0);
3193 yyval
.ttype
= poplevel (1, 1, 0);
3194 if (yychar
== CONSTANT
|| yychar
== STRING
)
3195 pop_momentary_nofree ();
3200 #line 1611 "c-parse.y"
3201 { emit_line_note (input_filename
, lineno
);
3202 expand_end_bindings (getdecls (), kept_level_p (), 0);
3203 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3204 if (yychar
== CONSTANT
|| yychar
== STRING
)
3205 pop_momentary_nofree ();
3210 #line 1619 "c-parse.y"
3211 { emit_line_note (input_filename
, lineno
);
3212 expand_end_bindings (getdecls (), kept_level_p (), 0);
3213 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3214 if (yychar
== CONSTANT
|| yychar
== STRING
)
3215 pop_momentary_nofree ();
3220 #line 1639 "c-parse.y"
3221 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3222 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3224 yyval
.itype
= stmt_count
;
3225 if_stmt_file
= yyvsp
[-5].filename
;
3226 if_stmt_line
= yyvsp
[-4].lineno
;
3227 position_after_white_space (); ;
3230 #line 1653 "c-parse.y"
3233 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3234 /* See comment in `while' alternative, above. */
3236 expand_start_loop_continue_elsewhere (1);
3237 position_after_white_space (); ;
3240 #line 1661 "c-parse.y"
3241 { expand_loop_continue_here (); ;
3244 #line 1665 "c-parse.y"
3245 { yyval
.filename
= input_filename
; ;
3248 #line 1669 "c-parse.y"
3249 { yyval
.lineno
= lineno
; ;
3252 #line 1674 "c-parse.y"
3256 #line 1679 "c-parse.y"
3260 #line 1684 "c-parse.y"
3261 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3264 #line 1689 "c-parse.y"
3265 { yyval
.ends_in_label
= 0; ;
3268 #line 1691 "c-parse.y"
3269 { yyval
.ends_in_label
= 1; ;
3272 #line 1697 "c-parse.y"
3276 #line 1700 "c-parse.y"
3278 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3279 /* It appears that this should not be done--that a non-lvalue array
3280 shouldn't get an error if the value isn't used.
3281 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3282 if it appears as a top-level expression,
3283 but says nothing about non-lvalue arrays. */
3285 /* Call default_conversion to get an error
3286 on referring to a register array if pedantic. */
3287 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3288 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3289 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3291 iterator_expand (yyvsp
[-1].ttype
);
3292 clear_momentary (); ;
3295 #line 1717 "c-parse.y"
3296 { c_expand_start_else ();
3297 yyvsp
[-1].itype
= stmt_count
;
3298 position_after_white_space (); ;
3301 #line 1721 "c-parse.y"
3302 { c_expand_end_cond ();
3303 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3304 warning ("empty body in an else-statement"); ;
3307 #line 1725 "c-parse.y"
3308 { c_expand_end_cond ();
3309 /* This warning is here instead of in simple_if, because we
3310 do not want a warning if an empty if is followed by an
3311 else statement. Increment stmt_count so we don't
3312 give a second error if this is a nested `if'. */
3313 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3314 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3315 "empty body in an if-statement"); ;
3318 #line 1737 "c-parse.y"
3319 { c_expand_end_cond (); ;
3322 #line 1739 "c-parse.y"
3324 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3325 /* The emit_nop used to come before emit_line_note,
3326 but that made the nop seem like part of the preceding line.
3327 And that was confusing when the preceding line was
3328 inside of an if statement and was not really executed.
3329 I think it ought to work to put the nop after the line number.
3330 We will see. --rms, July 15, 1991. */
3334 #line 1749 "c-parse.y"
3335 { /* Don't start the loop till we have succeeded
3336 in parsing the end test. This is to make sure
3337 that we end every loop we start. */
3338 expand_start_loop (1);
3339 emit_line_note (input_filename
, lineno
);
3340 expand_exit_loop_if_false (NULL_PTR
,
3341 truthvalue_conversion (yyvsp
[-1].ttype
));
3342 position_after_white_space (); ;
3345 #line 1758 "c-parse.y"
3346 { expand_end_loop (); ;
3349 #line 1761 "c-parse.y"
3350 { emit_line_note (input_filename
, lineno
);
3351 expand_exit_loop_if_false (NULL_PTR
,
3352 truthvalue_conversion (yyvsp
[-2].ttype
));
3354 clear_momentary (); ;
3357 #line 1768 "c-parse.y"
3358 { expand_end_loop ();
3359 clear_momentary (); ;
3362 #line 1772 "c-parse.y"
3364 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3365 /* See comment in `while' alternative, above. */
3367 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3368 /* Next step is to call expand_start_loop_continue_elsewhere,
3369 but wait till after we parse the entire for (...).
3370 Otherwise, invalid input might cause us to call that
3371 fn without calling expand_end_loop. */
3375 #line 1784 "c-parse.y"
3376 { yyvsp
[0].lineno
= lineno
;
3377 yyval
.filename
= input_filename
; ;
3380 #line 1787 "c-parse.y"
3382 /* Start the loop. Doing this after parsing
3383 all the expressions ensures we will end the loop. */
3384 expand_start_loop_continue_elsewhere (1);
3385 /* Emit the end-test, with a line number. */
3386 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3387 if (yyvsp
[-4].ttype
)
3388 expand_exit_loop_if_false (NULL_PTR
,
3389 truthvalue_conversion (yyvsp
[-4].ttype
));
3390 /* Don't let the tree nodes for $9 be discarded by
3391 clear_momentary during the parsing of the next stmt. */
3393 yyvsp
[-3].lineno
= lineno
;
3394 yyvsp
[-2].filename
= input_filename
;
3395 position_after_white_space (); ;
3398 #line 1803 "c-parse.y"
3399 { /* Emit the increment expression, with a line number. */
3400 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3401 expand_loop_continue_here ();
3402 if (yyvsp
[-3].ttype
)
3403 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3404 if (yychar
== CONSTANT
|| yychar
== STRING
)
3405 pop_momentary_nofree ();
3408 expand_end_loop (); ;
3411 #line 1814 "c-parse.y"
3413 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3414 c_expand_start_case (yyvsp
[-1].ttype
);
3415 /* Don't let the tree nodes for $3 be discarded by
3416 clear_momentary during the parsing of the next stmt. */
3418 position_after_white_space (); ;
3421 #line 1822 "c-parse.y"
3422 { expand_end_case (yyvsp
[-3].ttype
);
3423 if (yychar
== CONSTANT
|| yychar
== STRING
)
3424 pop_momentary_nofree ();
3429 #line 1828 "c-parse.y"
3431 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3432 if ( ! expand_exit_something ())
3433 error ("break statement not within loop or switch"); ;
3436 #line 1833 "c-parse.y"
3438 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3439 if (! expand_continue_loop (NULL_PTR
))
3440 error ("continue statement not within a loop"); ;
3443 #line 1838 "c-parse.y"
3445 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3446 c_expand_return (NULL_TREE
); ;
3449 #line 1842 "c-parse.y"
3451 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3452 c_expand_return (yyvsp
[-1].ttype
); ;
3455 #line 1846 "c-parse.y"
3457 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3458 STRIP_NOPS (yyvsp
[-2].ttype
);
3459 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3460 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3461 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3462 expand_asm (yyvsp
[-2].ttype
);
3464 error ("argument of `asm' is not a constant string"); ;
3467 #line 1857 "c-parse.y"
3469 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3470 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3471 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3472 input_filename
, lineno
); ;
3475 #line 1864 "c-parse.y"
3477 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3478 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3479 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3480 input_filename
, lineno
); ;
3483 #line 1872 "c-parse.y"
3485 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3486 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3487 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3488 input_filename
, lineno
); ;
3491 #line 1878 "c-parse.y"
3494 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3495 decl
= lookup_label (yyvsp
[-1].ttype
);
3498 TREE_USED (decl
) = 1;
3504 #line 1889 "c-parse.y"
3506 pedwarn ("ANSI C forbids `goto *expr;'");
3508 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3509 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3512 #line 1904 "c-parse.y"
3514 /* The value returned by this action is */
3515 /* 1 if everything is OK */
3516 /* 0 in case of error or already bound iterator */
3519 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3520 error ("invalid `for (ITERATOR)' syntax");
3521 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3522 error ("`%s' is not an iterator",
3523 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3524 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3525 error ("`for (%s)' inside expansion of same iterator",
3526 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3530 iterator_for_loop_start (yyvsp
[-1].ttype
);
3535 #line 1925 "c-parse.y"
3537 if (yyvsp
[-1].itype
)
3538 iterator_for_loop_end (yyvsp
[-3].ttype
);
3542 #line 1960 "c-parse.y"
3543 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3545 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3549 if (value
!= error_mark_node
)
3554 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3555 pedwarn ("label must have integral type in ANSI C");
3557 success
= pushcase (value
, convert_and_check
,
3561 error ("case label not within a switch statement");
3562 else if (success
== 2)
3564 error ("duplicate case value");
3565 error_with_decl (duplicate
, "this is the first entry for that value");
3567 else if (success
== 3)
3568 warning ("case value out of range");
3569 else if (success
== 5)
3570 error ("case label within scope of cleanup or variable array");
3572 position_after_white_space (); ;
3575 #line 1991 "c-parse.y"
3576 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3577 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3579 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3582 pedwarn ("ANSI C forbids case ranges");
3585 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3588 int success
= pushcase_range (value1
, value2
,
3589 convert_and_check
, label
,
3592 error ("case label not within a switch statement");
3593 else if (success
== 2)
3595 error ("duplicate case value");
3596 error_with_decl (duplicate
, "this is the first entry for that value");
3598 else if (success
== 3)
3599 warning ("case value out of range");
3600 else if (success
== 4)
3601 warning ("empty case range");
3602 else if (success
== 5)
3603 error ("case label within scope of cleanup or variable array");
3605 position_after_white_space (); ;
3608 #line 2022 "c-parse.y"
3612 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3613 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3616 error ("default label not within a switch statement");
3617 else if (success
== 2)
3619 error ("multiple default labels in one switch");
3620 error_with_decl (duplicate
, "this is the first default label");
3622 position_after_white_space (); ;
3625 #line 2037 "c-parse.y"
3626 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3631 expand_label (label
);
3632 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3634 position_after_white_space (); ;
3637 #line 2052 "c-parse.y"
3638 { emit_line_note (input_filename
, lineno
);
3639 yyval
.ttype
= NULL_TREE
; ;
3642 #line 2055 "c-parse.y"
3643 { emit_line_note (input_filename
, lineno
); ;
3646 #line 2060 "c-parse.y"
3647 { yyval
.ttype
= NULL_TREE
; ;
3650 #line 2067 "c-parse.y"
3651 { yyval
.ttype
= NULL_TREE
; ;
3654 #line 2074 "c-parse.y"
3655 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3658 #line 2079 "c-parse.y"
3659 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3662 #line 2084 "c-parse.y"
3663 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3666 #line 2086 "c-parse.y"
3667 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3670 #line 2092 "c-parse.y"
3672 clear_parm_order ();
3673 declare_parm_level (0); ;
3676 #line 2096 "c-parse.y"
3677 { yyval
.ttype
= yyvsp
[0].ttype
;
3678 parmlist_tags_warning ();
3679 poplevel (0, 0, 0); ;
3682 #line 2104 "c-parse.y"
3685 pedwarn ("ANSI C forbids forward parameter declarations");
3686 /* Mark the forward decls as such. */
3687 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3688 TREE_ASM_WRITTEN (parm
) = 1;
3689 clear_parm_order (); ;
3692 #line 2112 "c-parse.y"
3693 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3696 #line 2114 "c-parse.y"
3697 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3700 #line 2120 "c-parse.y"
3701 { yyval
.ttype
= get_parm_info (0); ;
3704 #line 2122 "c-parse.y"
3705 { yyval
.ttype
= get_parm_info (0);
3706 /* Gcc used to allow this as an extension. However, it does
3707 not work for all targets, and thus has been disabled.
3708 Also, since func (...) and func () are indistinguishable,
3709 it caused problems with the code in expand_builtin which
3710 tries to verify that BUILT_IN_NEXT_ARG is being used
3712 error ("ANSI C requires a named argument before `...'");
3716 #line 2132 "c-parse.y"
3717 { yyval
.ttype
= get_parm_info (1); ;
3720 #line 2134 "c-parse.y"
3721 { yyval
.ttype
= get_parm_info (0); ;
3724 #line 2139 "c-parse.y"
3725 { push_parm_decl (yyvsp
[0].ttype
); ;
3728 #line 2141 "c-parse.y"
3729 { push_parm_decl (yyvsp
[0].ttype
); ;
3732 #line 2148 "c-parse.y"
3733 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3735 build_tree_list (prefix_attributes
,
3737 current_declspecs
= TREE_VALUE (declspec_stack
);
3738 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3739 declspec_stack
= TREE_CHAIN (declspec_stack
);
3740 resume_momentary (yyvsp
[-2].itype
); ;
3743 #line 2157 "c-parse.y"
3744 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3746 build_tree_list (prefix_attributes
,
3748 current_declspecs
= TREE_VALUE (declspec_stack
);
3749 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3750 declspec_stack
= TREE_CHAIN (declspec_stack
);
3751 resume_momentary (yyvsp
[-2].itype
); ;
3754 #line 2166 "c-parse.y"
3755 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3757 build_tree_list (prefix_attributes
,
3759 current_declspecs
= TREE_VALUE (declspec_stack
);
3760 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3761 declspec_stack
= TREE_CHAIN (declspec_stack
);
3762 resume_momentary (yyvsp
[-2].itype
); ;
3765 #line 2175 "c-parse.y"
3766 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3768 build_tree_list (prefix_attributes
,
3770 current_declspecs
= TREE_VALUE (declspec_stack
);
3771 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3772 declspec_stack
= TREE_CHAIN (declspec_stack
);
3773 resume_momentary (yyvsp
[-2].itype
); ;
3776 #line 2185 "c-parse.y"
3777 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3779 build_tree_list (prefix_attributes
,
3781 current_declspecs
= TREE_VALUE (declspec_stack
);
3782 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3783 declspec_stack
= TREE_CHAIN (declspec_stack
);
3784 resume_momentary (yyvsp
[-2].itype
); ;
3787 #line 2199 "c-parse.y"
3789 clear_parm_order ();
3790 declare_parm_level (1); ;
3793 #line 2203 "c-parse.y"
3794 { yyval
.ttype
= yyvsp
[0].ttype
;
3795 parmlist_tags_warning ();
3796 poplevel (0, 0, 0); ;
3799 #line 2211 "c-parse.y"
3801 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3802 if (TREE_VALUE (t
) == NULL_TREE
)
3803 error ("`...' in old-style identifier list");
3804 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3807 #line 2221 "c-parse.y"
3808 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3811 #line 2223 "c-parse.y"
3812 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3815 #line 2229 "c-parse.y"
3816 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3819 #line 2231 "c-parse.y"
3820 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3823 #line 2236 "c-parse.y"
3824 { yyval
.itype
= pedantic
;
3828 /* the action file gets copied in in place of this dollarsign */
3829 #line 542 "/usr/lib/bison.simple"
3840 short *ssp1
= yyss
- 1;
3841 fprintf (stderr
, "state stack now");
3842 while (ssp1
!= yyssp
)
3843 fprintf (stderr
, " %d", *++ssp1
);
3844 fprintf (stderr
, "\n");
3854 yylsp
->first_line
= yylloc
.first_line
;
3855 yylsp
->first_column
= yylloc
.first_column
;
3856 yylsp
->last_line
= (yylsp
-1)->last_line
;
3857 yylsp
->last_column
= (yylsp
-1)->last_column
;
3862 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3863 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3867 /* Now "shift" the result of the reduction.
3868 Determine what state that goes to,
3869 based on the state we popped back to
3870 and the rule number reduced by. */
3874 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3875 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3876 yystate
= yytable
[yystate
];
3878 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3882 yyerrlab
: /* here on detecting error */
3885 /* If not already recovering from an error, report this error. */
3889 #ifdef YYERROR_VERBOSE
3890 yyn
= yypact
[yystate
];
3892 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3899 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3900 for (x
= (yyn
< 0 ? -yyn
: 0);
3901 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3902 if (yycheck
[x
+ yyn
] == x
)
3903 size
+= strlen(yytname
[x
]) + 15, count
++;
3904 msg
= (char *) malloc(size
+ 15);
3907 strcpy(msg
, "parse error");
3912 for (x
= (yyn
< 0 ? -yyn
: 0);
3913 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3914 if (yycheck
[x
+ yyn
] == x
)
3916 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3917 strcat(msg
, yytname
[x
]);
3926 yyerror ("parse error; also virtual memory exceeded");
3929 #endif /* YYERROR_VERBOSE */
3930 yyerror("parse error");
3934 yyerrlab1
: /* here on error raised explicitly by an action */
3936 if (yyerrstatus
== 3)
3938 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3940 /* return failure if at end of input */
3941 if (yychar
== YYEOF
)
3946 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3952 /* Else will try to reuse lookahead token
3953 after shifting the error token. */
3955 yyerrstatus
= 3; /* Each real token shifted decrements this */
3959 yyerrdefault
: /* current state does not do anything special for the error token. */
3962 /* This is wrong; only states that explicitly want error tokens
3963 should shift them. */
3964 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3965 if (yyn
) goto yydefault
;
3968 yyerrpop
: /* pop the current state because it cannot handle the error token */
3970 if (yyssp
== yyss
) YYABORT
;
3980 short *ssp1
= yyss
- 1;
3981 fprintf (stderr
, "Error: state stack now");
3982 while (ssp1
!= yyssp
)
3983 fprintf (stderr
, " %d", *++ssp1
);
3984 fprintf (stderr
, "\n");
3990 yyn
= yypact
[yystate
];
3995 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
4014 fprintf(stderr
, "Shifting error token, ");
4026 /* YYACCEPT comes here. */
4038 /* YYABORT comes here. */
4049 #line 2240 "c-parse.y"