2 /* A Bison parser, made from c-parse.y
3 by Bison version A2.5 (Andrew Consortium)
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
79 #ifdef MULTIBYTE_CHARS
85 /* Since parsers are distinct for each language, put the language string
87 char *language_string
= "GNU C";
95 /* Like YYERROR but do call yyerror. */
96 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
98 /* Cause the `yydebug' variable to be defined. */
102 typedef union {long itype
; tree ttype
; enum tree_code code
;
103 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
104 #line 207 "c-parse.y"
106 /* Number of statements (loosely speaking) and compound statements
108 static int stmt_count
;
109 static int compstmt_count
;
111 /* Input file and line number of the end of the body of last simple_if;
112 used by the stmt-rule immediately after simple_if returns. */
113 static char *if_stmt_file
;
114 static int if_stmt_line
;
116 /* List of types and structure classes of the current declaration. */
117 static tree current_declspecs
= NULL_TREE
;
118 static tree prefix_attributes
= NULL_TREE
;
120 /* Stack of saved values of current_declspecs and prefix_attributes. */
121 static tree declspec_stack
;
123 /* 1 if we explained undeclared var errors. */
124 static int undeclared_variable_notice
;
127 /* Tell yyparse how to print a token's value, if yydebug is set. */
129 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
130 extern void yyprint ();
142 #define YYFLAG -32768
145 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 239)
147 static const char yytranslate
[] = { 0,
148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
152 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
153 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
154 36, 2, 37, 2, 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 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 82, 41, 78, 79, 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, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
174 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
175 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
176 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
177 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
178 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
179 70, 71, 72, 73, 74, 75
183 static const short yyprhs
[] = { 0,
184 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
185 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
186 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
187 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
188 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
189 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
190 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
191 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
192 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
193 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
194 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
195 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
196 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
197 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
198 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
199 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
200 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
201 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
202 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
203 582, 585, 587, 591, 593, 594, 599, 601, 602, 611,
204 612, 619, 620, 626, 627, 632, 633, 639, 640, 641,
205 647, 648, 649, 655, 657, 659, 663, 667, 672, 676,
206 680, 684, 686, 690, 695, 699, 703, 707, 709, 713,
207 717, 721, 726, 730, 734, 736, 737, 745, 751, 754,
208 755, 763, 769, 772, 773, 782, 783, 791, 794, 795,
209 797, 798, 800, 802, 805, 806, 810, 813, 817, 819,
210 823, 825, 827, 830, 832, 836, 841, 848, 854, 856,
211 860, 862, 864, 868, 871, 874, 875, 877, 879, 882,
212 883, 886, 890, 894, 897, 901, 906, 910, 913, 917,
213 920, 922, 924, 927, 930, 931, 933, 936, 937, 938,
214 940, 942, 945, 949, 951, 954, 956, 959, 966, 972,
215 978, 981, 984, 989, 990, 995, 996, 997, 1001, 1006,
216 1010, 1012, 1014, 1016, 1018, 1021, 1022, 1027, 1029, 1033,
217 1034, 1035, 1043, 1049, 1052, 1053, 1054, 1055, 1068, 1069,
218 1076, 1079, 1082, 1085, 1089, 1096, 1105, 1116, 1129, 1133,
219 1138, 1140, 1142, 1143, 1150, 1154, 1160, 1163, 1166, 1167,
220 1169, 1170, 1172, 1173, 1175, 1177, 1181, 1186, 1188, 1192,
221 1193, 1196, 1199, 1200, 1205, 1208, 1209, 1211, 1213, 1217,
222 1219, 1223, 1228, 1233, 1238, 1243, 1248, 1249, 1252, 1254,
223 1257, 1259, 1263, 1265, 1269
226 static const short yyrhs
[] = { -1,
227 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
228 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
229 0, 238, 88, 0, 122, 136, 77, 0, 129, 122,
230 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
231 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
232 77, 0, 0, 0, 125, 122, 165, 91, 116, 92,
233 196, 0, 125, 122, 165, 1, 0, 0, 0, 129,
234 122, 168, 93, 116, 94, 196, 0, 129, 122, 168,
235 1, 0, 0, 0, 122, 168, 95, 116, 96, 196,
236 0, 122, 168, 1, 0, 3, 0, 4, 0, 43,
237 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
238 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
239 101, 81, 107, 0, 113, 0, 50, 105, 0, 238,
240 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
241 0, 103, 59, 183, 76, 0, 104, 102, 0, 104,
242 59, 183, 76, 0, 33, 105, 0, 34, 105, 0,
243 11, 0, 29, 0, 102, 0, 59, 183, 76, 105,
244 0, 0, 59, 183, 76, 82, 106, 150, 78, 0,
245 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
246 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
247 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
248 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
249 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
250 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
251 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
252 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
253 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
254 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
255 0, 0, 59, 114, 198, 76, 0, 113, 59, 100,
256 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
257 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
258 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
259 10, 0, 203, 204, 119, 0, 117, 0, 191, 0,
260 118, 117, 0, 117, 191, 0, 127, 122, 135, 77,
261 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
262 77, 0, 203, 204, 124, 0, 120, 0, 191, 0,
263 121, 120, 0, 120, 191, 0, 0, 0, 125, 122,
264 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
265 159, 0, 129, 122, 162, 0, 125, 77, 0, 129,
266 77, 0, 238, 124, 0, 133, 126, 0, 129, 133,
267 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
268 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
269 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
270 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
271 130, 7, 0, 130, 5, 0, 133, 132, 0, 185,
272 133, 132, 0, 0, 132, 134, 0, 6, 0, 169,
273 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
274 183, 76, 0, 6, 0, 7, 0, 169, 0, 138,
275 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
276 0, 0, 27, 59, 115, 76, 0, 0, 165, 137,
277 142, 36, 139, 148, 0, 165, 137, 142, 0, 0,
278 168, 137, 142, 36, 141, 148, 0, 168, 137, 142,
279 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
280 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
281 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
282 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
283 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
284 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
285 0, 151, 174, 0, 152, 0, 151, 81, 152, 0,
286 107, 0, 0, 82, 153, 150, 78, 0, 1, 0,
287 0, 60, 107, 10, 107, 83, 36, 154, 152, 0,
288 0, 60, 107, 83, 36, 155, 152, 0, 0, 60,
289 107, 83, 156, 152, 0, 0, 97, 38, 157, 152,
290 0, 0, 58, 97, 36, 158, 152, 0, 0, 0,
291 165, 160, 116, 161, 198, 0, 0, 0, 168, 163,
292 116, 164, 198, 0, 166, 0, 168, 0, 59, 166,
293 76, 0, 166, 59, 233, 0, 166, 60, 99, 83,
294 0, 166, 60, 83, 0, 50, 186, 166, 0, 143,
295 123, 166, 0, 4, 0, 167, 59, 233, 0, 167,
296 60, 99, 83, 0, 167, 60, 83, 0, 50, 186,
297 167, 0, 143, 123, 167, 0, 4, 0, 168, 59,
298 233, 0, 59, 168, 76, 0, 50, 186, 168, 0,
299 168, 60, 99, 83, 0, 168, 60, 83, 0, 143,
300 123, 168, 0, 3, 0, 0, 13, 97, 82, 170,
301 176, 78, 142, 0, 13, 82, 176, 78, 142, 0,
302 13, 97, 0, 0, 14, 97, 82, 171, 176, 78,
303 142, 0, 14, 82, 176, 78, 142, 0, 14, 97,
304 0, 0, 12, 97, 82, 172, 181, 175, 78, 142,
305 0, 0, 12, 82, 173, 181, 175, 78, 142, 0,
306 12, 97, 0, 0, 81, 0, 0, 81, 0, 177,
307 0, 177, 178, 0, 0, 177, 178, 77, 0, 177,
308 77, 0, 131, 122, 179, 0, 131, 0, 185, 122,
309 179, 0, 185, 0, 1, 0, 238, 178, 0, 180,
310 0, 179, 81, 180, 0, 203, 204, 165, 142, 0,
311 203, 204, 165, 38, 107, 142, 0, 203, 204, 38,
312 107, 142, 0, 182, 0, 181, 81, 182, 0, 1,
313 0, 97, 0, 97, 36, 107, 0, 131, 184, 0,
314 185, 184, 0, 0, 187, 0, 7, 0, 185, 7,
315 0, 0, 186, 7, 0, 59, 187, 76, 0, 50,
316 186, 187, 0, 50, 186, 0, 187, 59, 226, 0,
317 187, 60, 99, 83, 0, 187, 60, 83, 0, 59,
318 226, 0, 60, 99, 83, 0, 60, 83, 0, 189,
319 0, 206, 0, 189, 206, 0, 189, 191, 0, 0,
320 188, 0, 1, 77, 0, 0, 0, 194, 0, 195,
321 0, 194, 195, 0, 32, 237, 77, 0, 198, 0,
322 1, 198, 0, 82, 0, 197, 78, 0, 197, 192,
323 193, 121, 190, 78, 0, 197, 192, 193, 1, 78,
324 0, 197, 192, 193, 188, 78, 0, 200, 205, 0,
325 200, 1, 0, 15, 59, 99, 76, 0, 0, 18,
326 202, 205, 17, 0, 0, 0, 203, 204, 208, 0,
327 203, 204, 219, 205, 0, 203, 204, 207, 0, 208,
328 0, 219, 0, 198, 0, 216, 0, 99, 77, 0,
329 0, 199, 16, 209, 205, 0, 199, 0, 199, 16,
330 1, 0, 0, 0, 17, 210, 59, 99, 76, 211,
331 205, 0, 201, 59, 99, 76, 77, 0, 201, 1,
332 0, 0, 0, 0, 19, 59, 221, 77, 212, 221,
333 77, 213, 221, 76, 214, 205, 0, 0, 20, 59,
334 99, 76, 215, 205, 0, 23, 77, 0, 24, 77,
335 0, 25, 77, 0, 25, 99, 77, 0, 27, 220,
336 59, 99, 76, 77, 0, 27, 220, 59, 99, 38,
337 222, 76, 77, 0, 27, 220, 59, 99, 38, 222,
338 38, 222, 76, 77, 0, 27, 220, 59, 99, 38,
339 222, 38, 222, 38, 225, 76, 77, 0, 26, 97,
340 77, 0, 26, 50, 99, 77, 0, 77, 0, 217,
341 0, 0, 19, 59, 113, 76, 218, 205, 0, 21,
342 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
343 38, 0, 97, 38, 0, 0, 7, 0, 0, 99,
344 0, 0, 223, 0, 224, 0, 223, 81, 224, 0,
345 9, 59, 99, 76, 0, 115, 0, 225, 81, 115,
346 0, 0, 227, 228, 0, 230, 76, 0, 0, 231,
347 77, 229, 228, 0, 1, 76, 0, 0, 10, 0,
348 231, 0, 231, 81, 10, 0, 232, 0, 231, 81,
349 232, 0, 125, 122, 167, 142, 0, 125, 122, 168,
350 142, 0, 125, 122, 184, 142, 0, 129, 122, 168,
351 142, 0, 129, 122, 184, 142, 0, 0, 234, 235,
352 0, 228, 0, 236, 76, 0, 3, 0, 236, 81,
353 3, 0, 97, 0, 237, 81, 97, 0, 31, 0
359 static const short yyrline
[] = { 0,
360 236, 241, 255, 257, 257, 258, 260, 262, 263, 271,
361 275, 286, 291, 296, 298, 300, 301, 302, 307, 314,
362 316, 321, 326, 332, 334, 339, 344, 350, 352, 357,
363 364, 366, 369, 371, 373, 375, 377, 379, 381, 385,
364 389, 392, 395, 398, 402, 404, 407, 410, 414, 442,
365 448, 451, 454, 457, 459, 463, 467, 471, 473, 476,
366 480, 507, 509, 511, 513, 515, 517, 519, 521, 523,
367 525, 527, 529, 531, 533, 537, 539, 543, 545, 548,
368 552, 554, 561, 564, 567, 573, 672, 673, 675, 681,
369 683, 697, 720, 722, 724, 728, 734, 736, 741, 743,
370 748, 750, 751, 761, 766, 768, 769, 770, 777, 783,
371 788, 791, 799, 804, 806, 807, 808, 815, 826, 830,
372 836, 841, 846, 851, 853, 855, 864, 867, 871, 873,
373 875, 880, 884, 887, 891, 894, 896, 908, 911, 913,
374 915, 919, 923, 925, 928, 941, 944, 948, 950, 958,
375 959, 960, 964, 966, 972, 973, 974, 977, 979, 982,
376 984, 987, 990, 996, 1003, 1005, 1012, 1019, 1022, 1029,
377 1032, 1036, 1039, 1043, 1048, 1051, 1055, 1058, 1060, 1062,
378 1064, 1071, 1073, 1074, 1075, 1080, 1082, 1087, 1095, 1100,
379 1104, 1107, 1109, 1114, 1117, 1119, 1121, 1125, 1128, 1128,
380 1131, 1131, 1134, 1134, 1137, 1137, 1140, 1142, 1153, 1161,
381 1165, 1176, 1184, 1191, 1193, 1198, 1201, 1206, 1208, 1210,
382 1217, 1219, 1227, 1233, 1235, 1237, 1244, 1246, 1252, 1258,
383 1260, 1262, 1264, 1271, 1273, 1276, 1281, 1283, 1287, 1289,
384 1291, 1293, 1297, 1299, 1302, 1305, 1308, 1311, 1315, 1317,
385 1320, 1322, 1326, 1329, 1334, 1336, 1338, 1352, 1359, 1364,
386 1370, 1375, 1377, 1382, 1384, 1388, 1392, 1396, 1406, 1408,
387 1413, 1418, 1421, 1425, 1428, 1432, 1435, 1438, 1441, 1445,
388 1448, 1452, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 1470,
389 1480, 1488, 1490, 1492, 1496, 1498, 1501, 1504, 1515, 1517,
390 1522, 1524, 1527, 1541, 1544, 1547, 1549, 1551, 1559, 1567,
391 1578, 1583, 1586, 1600, 1609, 1613, 1617, 1621, 1627, 1631,
392 1636, 1639, 1644, 1647, 1648, 1665, 1670, 1673, 1685, 1687,
393 1697, 1707, 1708, 1716, 1719, 1731, 1735, 1752, 1762, 1771,
394 1776, 1781, 1786, 1790, 1794, 1805, 1812, 1819, 1826, 1837,
395 1843, 1846, 1851, 1874, 1908, 1939, 1970, 1985, 1996, 2000,
396 2004, 2007, 2012, 2014, 2017, 2019, 2023, 2028, 2031, 2037,
397 2042, 2047, 2049, 2058, 2059, 2065, 2067, 2077, 2079, 2083,
398 2086, 2092, 2102, 2111, 2120, 2130, 2144, 2149, 2154, 2156,
399 2165, 2168, 2173, 2176, 2180
406 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
407 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
408 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
409 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
410 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
411 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
412 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
413 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
414 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
415 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
416 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
417 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
418 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
419 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
420 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
421 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
422 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
423 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
424 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
425 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
426 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
427 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
428 "structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
429 "component_decl_list2","component_decl","components","component_declarator",
430 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
431 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
432 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
433 "if_prefix","do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt",
434 "lineno_stmt_or_label","stmt_or_label","stmt","@34","@35","@36","@37","@38",
435 "@39","@40","all_iter_stmt","all_iter_stmt_simple","@41","label","maybe_type_qual",
436 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
437 "@42","parmlist_1","@43","parmlist_2","parms","parm","parmlist_or_identifiers",
438 "@44","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
442 static const short yyr1
[] = { 0,
443 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
444 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
445 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
446 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
447 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
448 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
449 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
450 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
451 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
452 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
453 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
454 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
455 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
456 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
457 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
458 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
459 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
460 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
461 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
462 150, 151, 151, 152, 153, 152, 152, 154, 152, 155,
463 152, 156, 152, 157, 152, 158, 152, 160, 161, 159,
464 163, 164, 162, 165, 165, 166, 166, 166, 166, 166,
465 166, 166, 167, 167, 167, 167, 167, 167, 168, 168,
466 168, 168, 168, 168, 168, 170, 169, 169, 169, 171,
467 169, 169, 169, 172, 169, 173, 169, 169, 174, 174,
468 175, 175, 176, 176, 177, 177, 177, 178, 178, 178,
469 178, 178, 178, 179, 179, 180, 180, 180, 181, 181,
470 181, 182, 182, 183, 183, 184, 184, 185, 185, 186,
471 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
472 188, 189, 189, 189, 190, 190, 191, 192, 193, 193,
473 194, 194, 195, 196, 196, 197, 198, 198, 198, 198,
474 199, 199, 200, 202, 201, 203, 204, 205, 205, 206,
475 207, 207, 208, 208, 208, 209, 208, 208, 208, 210,
476 211, 208, 208, 208, 212, 213, 214, 208, 215, 208,
477 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
478 208, 216, 218, 217, 219, 219, 219, 219, 220, 220,
479 221, 221, 222, 222, 223, 223, 224, 225, 225, 227,
480 226, 228, 229, 228, 228, 230, 230, 230, 230, 231,
481 231, 232, 232, 232, 232, 232, 234, 233, 235, 235,
482 236, 236, 237, 237, 238
485 static const short yyr2
[] = { 0,
486 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
487 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
488 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
490 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
491 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
492 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
493 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
494 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
495 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
496 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
497 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
498 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
499 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
500 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
501 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
502 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
503 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
504 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
505 2, 1, 3, 1, 0, 4, 1, 0, 8, 0,
506 6, 0, 5, 0, 4, 0, 5, 0, 0, 5,
507 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
508 3, 1, 3, 4, 3, 3, 3, 1, 3, 3,
509 3, 4, 3, 3, 1, 0, 7, 5, 2, 0,
510 7, 5, 2, 0, 8, 0, 7, 2, 0, 1,
511 0, 1, 1, 2, 0, 3, 2, 3, 1, 3,
512 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
513 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
514 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
515 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
516 1, 2, 3, 1, 2, 1, 2, 6, 5, 5,
517 2, 2, 4, 0, 4, 0, 0, 3, 4, 3,
518 1, 1, 1, 1, 2, 0, 4, 1, 3, 0,
519 0, 7, 5, 2, 0, 0, 0, 12, 0, 6,
520 2, 2, 2, 3, 6, 8, 10, 12, 3, 4,
521 1, 1, 0, 6, 3, 5, 2, 2, 0, 1,
522 0, 1, 0, 1, 1, 3, 4, 1, 3, 0,
523 2, 2, 0, 4, 2, 0, 1, 1, 3, 1,
524 3, 4, 4, 4, 4, 4, 0, 2, 1, 2,
528 static const short yydefact
[] = { 3,
529 5, 0, 0, 0, 152, 143, 150, 142, 0, 0,
530 0, 0, 0, 0, 395, 18, 4, 8, 7, 0,
531 118, 118, 138, 129, 139, 172, 151, 0, 6, 16,
532 17, 31, 32, 246, 248, 255, 239, 255, 243, 0,
533 0, 0, 235, 280, 0, 0, 160, 119, 0, 15,
534 0, 14, 0, 140, 129, 141, 145, 144, 127, 173,
535 10, 0, 244, 0, 0, 236, 0, 240, 86, 87,
536 99, 56, 57, 0, 0, 0, 33, 35, 34, 0,
537 36, 37, 0, 38, 39, 0, 0, 40, 58, 0,
538 0, 62, 43, 45, 88, 0, 278, 0, 276, 148,
539 0, 276, 177, 0, 0, 11, 0, 0, 30, 0,
540 387, 0, 0, 170, 222, 280, 0, 0, 158, 119,
541 0, 214, 215, 0, 0, 128, 131, 155, 156, 130,
542 132, 157, 271, 272, 251, 269, 0, 170, 262, 257,
543 118, 254, 118, 0, 255, 170, 255, 54, 55, 49,
544 46, 0, 0, 0, 0, 48, 0, 0, 0, 50,
545 0, 52, 0, 0, 79, 77, 75, 0, 0, 0,
546 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
547 98, 0, 0, 41, 0, 100, 47, 153, 280, 370,
548 0, 274, 277, 146, 154, 279, 148, 275, 183, 184,
549 185, 182, 0, 175, 178, 281, 231, 230, 161, 162,
550 234, 0, 229, 0, 233, 0, 0, 28, 0, 316,
551 106, 317, 169, 171, 0, 0, 13, 0, 0, 22,
552 0, 170, 387, 0, 12, 26, 0, 0, 252, 0,
553 251, 238, 316, 256, 316, 263, 0, 242, 0, 90,
554 89, 306, 298, 0, 0, 9, 44, 0, 0, 85,
555 84, 0, 0, 0, 0, 73, 74, 72, 71, 70,
556 68, 69, 63, 64, 65, 66, 67, 96, 95, 0,
557 42, 0, 284, 0, 288, 0, 290, 0, 370, 0,
558 149, 147, 0, 177, 41, 0, 0, 391, 377, 118,
559 118, 389, 0, 378, 380, 388, 0, 232, 297, 0,
560 108, 103, 107, 0, 167, 220, 216, 159, 221, 20,
561 166, 217, 219, 0, 24, 273, 270, 170, 0, 258,
562 264, 317, 260, 170, 170, 307, 299, 92, 60, 59,
563 51, 53, 0, 0, 78, 76, 93, 94, 283, 282,
564 371, 289, 285, 287, 0, 174, 176, 86, 0, 163,
565 375, 276, 276, 372, 373, 0, 390, 0, 0, 29,
566 304, 104, 118, 118, 135, 0, 0, 164, 218, 0,
567 247, 170, 316, 0, 237, 241, 0, 0, 300, 301,
568 0, 80, 83, 286, 179, 0, 181, 228, 280, 370,
569 119, 170, 170, 170, 280, 170, 170, 0, 379, 381,
570 392, 305, 111, 0, 112, 0, 135, 133, 189, 187,
571 186, 168, 21, 0, 25, 245, 265, 0, 170, 393,
572 0, 0, 0, 316, 0, 0, 115, 317, 292, 302,
573 197, 86, 0, 0, 195, 0, 194, 0, 249, 192,
574 0, 0, 284, 0, 387, 0, 382, 383, 384, 284,
575 385, 386, 374, 0, 0, 162, 134, 137, 136, 0,
576 165, 170, 0, 266, 303, 0, 309, 117, 116, 296,
577 0, 310, 294, 317, 293, 0, 0, 0, 0, 204,
578 61, 0, 191, 81, 180, 226, 280, 227, 223, 225,
579 0, 109, 110, 0, 268, 170, 394, 308, 0, 152,
580 0, 330, 314, 0, 0, 0, 0, 0, 0, 0,
581 0, 359, 351, 0, 0, 113, 118, 118, 323, 328,
582 0, 0, 320, 321, 324, 352, 322, 0, 206, 0,
583 202, 0, 0, 193, 0, 224, 188, 267, 0, 0,
584 316, 361, 0, 0, 357, 341, 342, 343, 0, 0,
585 0, 360, 0, 358, 325, 124, 0, 125, 0, 0,
586 312, 317, 311, 334, 0, 126, 0, 0, 200, 0,
587 196, 205, 0, 0, 0, 362, 45, 0, 0, 0,
588 355, 344, 0, 349, 0, 0, 122, 208, 0, 123,
589 211, 329, 316, 0, 0, 207, 0, 0, 203, 313,
590 0, 315, 353, 335, 339, 0, 350, 0, 120, 0,
591 121, 0, 327, 318, 316, 0, 198, 201, 331, 316,
592 361, 316, 356, 363, 0, 209, 212, 319, 333, 0,
593 316, 354, 0, 340, 0, 0, 364, 365, 345, 0,
594 0, 199, 332, 336, 0, 363, 0, 0, 210, 213,
595 361, 0, 0, 346, 366, 0, 367, 0, 0, 337,
596 368, 0, 347, 316, 0, 0, 338, 348, 369, 0,
600 static const short yydefgoto
[] = { 680,
601 1, 2, 3, 17, 18, 19, 231, 377, 237, 380,
602 113, 310, 446, 86, 153, 280, 88, 89, 90, 91,
603 92, 391, 93, 265, 264, 262, 451, 263, 94, 154,
604 95, 218, 219, 220, 372, 433, 434, 20, 108, 526,
605 300, 59, 373, 418, 301, 23, 99, 194, 24, 130,
606 118, 46, 114, 119, 424, 47, 376, 223, 224, 26,
607 203, 204, 205, 422, 470, 448, 449, 450, 489, 640,
608 608, 580, 543, 577, 597, 620, 650, 600, 622, 651,
609 210, 122, 496, 123, 27, 145, 147, 137, 62, 493,
610 240, 64, 65, 142, 330, 331, 135, 136, 101, 192,
611 102, 104, 193, 435, 436, 481, 221, 337, 388, 389,
612 390, 370, 253, 371, 530, 531, 532, 551, 572, 314,
613 573, 439, 533, 534, 603, 550, 641, 631, 661, 674,
614 632, 535, 536, 630, 537, 563, 588, 646, 647, 648,
615 672, 285, 286, 302, 408, 303, 304, 305, 213, 214,
619 static const short yypact
[] = { 66,
620 82, 2070, 2070, 286,-32768,-32768,-32768,-32768, 77, 84,
621 103, 30, 55, 79,-32768,-32768,-32768,-32768,-32768, 60,
622 113, 405, 142,-32768, 183,-32768,-32768, 2070,-32768,-32768,
623 -32768,-32768,-32768,-32768, 163,-32768, 170,-32768, 173, 1932,
624 1866, 165,-32768,-32768, 60, 35,-32768, 183, 589,-32768,
625 530,-32768, 60, 142,-32768, 183,-32768,-32768, 1138,-32768,
626 -32768, 458,-32768, 192, 267,-32768, 200,-32768,-32768,-32768,
627 -32768,-32768,-32768, 1932, 1932, 229,-32768,-32768,-32768, 1932,
628 -32768,-32768, 850,-32768,-32768, 1932, 206, 211,-32768, 1959,
629 1986,-32768, 2136, 366, 288, 1932,-32768, 243, 161,-32768,
630 271, 438, 842, 237, 150,-32768, 530, 60,-32768, 254,
631 -32768, 1408, 361, 183,-32768,-32768, 530, 106,-32768, 183,
632 732, 389, 413, 112, 1354, 1138,-32768,-32768,-32768,-32768,
633 183,-32768,-32768, 318, 297,-32768, 458, 183,-32768,-32768,
634 412, 306, 639, 824,-32768, 183,-32768,-32768,-32768,-32768,
635 -32768, 315, 321, 322, 331,-32768, 352, 1932, 850,-32768,
636 850,-32768, 1932, 1932, 401,-32768,-32768, 1932, 1932, 1932,
637 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932,-32768,
638 -32768, 229, 229, 1932, 1932,-32768,-32768,-32768,-32768, 161,
639 1421,-32768, 442, 648,-32768,-32768,-32768,-32768,-32768,-32768,
640 -32768,-32768, 93,-32768, 394,-32768, 413,-32768,-32768, 443,
641 413, 466,-32768, 907,-32768, 377, 407,-32768, 323, 59,
642 -32768,-32768, 456, 183, 199, 283,-32768, 530, 530,-32768,
643 361, 183,-32768, 1474,-32768,-32768, 361, 1932, 229, 400,
644 297,-32768,-32768,-32768,-32768,-32768, 409,-32768, 416,-32768,
645 -32768,-32768, 418, 423, 1755,-32768, 2136, 427, 432, 2136,
646 2136, 1932, 479, 1932, 1932, 1725, 2193, 1903, 1130, 1357,
647 960, 960, 455, 455,-32768,-32768,-32768,-32768,-32768, 450,
648 211, 448, 310, 296,-32768, 628,-32768, 457,-32768, 1487,
649 -32768, 648, 465, 842, 2013, 52, 467,-32768,-32768,-32768,
650 1088,-32768, 470, 257,-32768,-32768, 154,-32768,-32768, 57,
651 -32768,-32768,-32768, 861,-32768, 389,-32768,-32768, 389,-32768,
652 512,-32768,-32768, 468,-32768, 2136,-32768, 183, 475, 473,
653 -32768,-32768, 473, 183, 183,-32768, 526,-32768,-32768,-32768,
654 -32768,-32768, 523, 1932, 2171, 2183,-32768,-32768, 442,-32768,
655 -32768,-32768,-32768,-32768, 482,-32768,-32768, 209, 490,-32768,
656 -32768, 177, 67,-32768,-32768, 1058,-32768, 576, 322,-32768,
657 -32768,-32768, 505, 451,-32768, 1343, 57,-32768,-32768, 57,
658 -32768, 183,-32768, 261,-32768,-32768, 229, 944, 526,-32768,
659 1163,-32768, 2065,-32768,-32768, 1932,-32768,-32768,-32768, 67,
660 183, 137, 242, 183,-32768, 242, 183, 628,-32768,-32768,
661 -32768,-32768,-32768, 530,-32768, 60,-32768, 387,-32768,-32768,
662 2136,-32768,-32768, 1343,-32768,-32768,-32768, 1932, 187,-32768,
663 276, 433, 672, 507, 508, 762,-32768,-32768,-32768,-32768,
664 -32768, 549, 229, 1932,-32768, 550, 2136, 514, 516,-32768,
665 1932, 250, 188, 609,-32768, 1540,-32768,-32768,-32768, 216,
666 -32768,-32768,-32768, 309, 325, 155, 387,-32768,-32768, 1163,
667 -32768, 1642, 1932,-32768,-32768, 229,-32768,-32768,-32768,-32768,
668 520,-32768,-32768,-32768,-32768, 1621, 564, 2109, 1163,-32768,
669 -32768, 1223,-32768, 2065,-32768, 459,-32768, 459,-32768,-32768,
670 524,-32768,-32768, 532,-32768, 1642,-32768,-32768, 1701, 573,
671 555,-32768,-32768, 559, 561, 1932, 584, 546, 547, 1879,
672 201, 619,-32768, 590, 553,-32768, 567, 794,-32768, 611,
673 1026, 61,-32768,-32768,-32768,-32768,-32768, 1812,-32768, 1932,
674 600, 569, 1283,-32768, 302,-32768,-32768,-32768, 1932, 591,
675 -32768, 1932, 1932, 1565,-32768,-32768,-32768,-32768, 580, 1932,
676 588,-32768, 610,-32768,-32768,-32768, 530,-32768, 60, 1106,
677 -32768,-32768,-32768,-32768, 1932,-32768, 1283, 2091,-32768, 1283,
678 -32768,-32768, 596, 1932, 665,-32768, 868, 630, 612, 1932,
679 -32768,-32768, 632,-32768, 1932, 350,-32768, 227, 355,-32768,
680 955,-32768,-32768, 1701, 634,-32768, 675, 1283,-32768,-32768,
681 637,-32768,-32768,-32768,-32768, 2158,-32768, 39,-32768, 361,
682 -32768, 361,-32768,-32768,-32768, 641,-32768,-32768,-32768,-32768,
683 1932,-32768,-32768, 705, 642,-32768,-32768,-32768,-32768, 1283,
684 -32768,-32768, 646,-32768, 666, 47, 643,-32768,-32768, 322,
685 322,-32768,-32768,-32768, 1932, 705, 651, 705,-32768,-32768,
686 1932, 653, 48,-32768,-32768, 654,-32768, 466, 655,-32768,
687 288, 303,-32768,-32768, 657, 466,-32768,-32768, 288, 735,
691 static const short yypgoto
[] = {-32768,
692 -32768,-32768,-32768, 65,-32768,-32768,-32768,-32768,-32768,-32768,
693 -32768,-32768, -5,-32768, -40, 446, -137, 424,-32768,-32768,
694 -55,-32768, 399,-32768,-32768,-32768,-32768,-32768, 190,-32768,
695 -191, -207, 527,-32768,-32768, 314,-32768, 22, -98, 215,
696 0, 700,-32768, 339, 7, -7, -15, 560, 11, -149,
697 -366, -45, -107, -52,-32768,-32768,-32768, 202, 14, 53,
698 -32768, 464,-32768, 337,-32768, -378,-32768, -409,-32768,-32768,
699 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
700 -38, -68, -298, -13, -30,-32768,-32768,-32768,-32768,-32768,
701 528, 41,-32768, 620, 522, 391, 635, 537, 1, -79,
702 -11, -89, -139, 344,-32768,-32768, -180,-32768,-32768,-32768,
703 403, -278,-32768, -128,-32768,-32768,-32768,-32768, -95, -286,
704 -495, 358,-32768, 193,-32768,-32768,-32768,-32768,-32768,-32768,
705 -32768,-32768,-32768,-32768, 214,-32768, -556, 147,-32768, 146,
706 -32768, 531,-32768, -233,-32768,-32768,-32768, 449, -195,-32768,
707 -32768,-32768,-32768, 9
714 static const short yytable
[] = { 87,
715 98, 21, 21, 35, 37, 39, 49, 124, 22, 22,
716 28, 28, 121, 232, 54, 25, 25, 222, 148, 149,
717 296, 229, 198, 320, 151, 254, 225, 21, 132, 325,
718 156, 105, 55, 48, 22, 56, 28, 322, 311, 125,
719 187, 25, 51, 53, 291, 384, 281, 464, 226, 141,
720 284, 100, 351, 143, 209, 585, 134, 369, 48, -102,
721 186, 574, 43, 402, 120, -1, 48, 29, 312, 43,
722 150, 216, 131, 144, 643, 100, 634, 60, 67, 32,
723 33, -2, 544, 155, 656, 668, 32, 33, 40, 14,
724 207, 504, 61, 100, 211, 132, 14, 202, 423, 283,
725 60, 425, 232, 105, 666, 32, 33, 623, 60, 44,
726 542, 106, 197, 41, 635, 107, 405, 48, 45, 575,
727 120, 48, 657, 669, 222, 400, 191, 360, 141, 638,
728 120, 134, 143, 582, 642, 222, 644, 42, 252, 131,
729 -102, 222, 291, 349, 282, 653, 57, 332, 58, 332,
730 288, 486, 144, 197, 100, 498, 316, 281, 34, 258,
731 319, 259, 243, 132, 245, 36, 14, 606, 293, 100,
732 609, 100, 60, 294, 463, 318, 278, 279, 677, 43,
733 398, 110, 227, 60, 38, 247, 228, 249, 235, 50,
734 43, 398, 107, 324, 206, 455, 456, 509, 628, 340,
735 596, 43, 115, 32, 33, 206, 14, 437, 111, 112,
736 189, 207, 14, 111, 112, 211, 14, 14, 43, 190,
737 191, 343, 206, 103, 473, 208, 399, 25, 14, 367,
738 652, 32, 33, 134, 368, 400, 191, 399, 120, 43,
739 412, 120, 120, 206, 63, 14, 400, 191, 116, 355,
740 560, 66, 478, 110, 68, 483, -162, 117, 452, 499,
741 284, 132, -162, 43, 115, 405, 14, 139, 469, 138,
742 5, 14, 7, 97, 400, 191, 60, 146, 9, 10,
743 11, 157, 404, 407, 395, 604, 44, 332, 202, 396,
744 14, 158, 438, 54, 13, 45, 186, 15, 428, 25,
745 111, 112, 454, -162, 43, 398, 374, -162, 206, 453,
746 116, 55, 212, 349, 56, 460, 206, 469, 188, 117,
747 349, 362, 363, 217, 375, 495, -105, -105, -105, -105,
748 158, 14, -105, 365, -105, -105, -105, 366, 438, 242,
749 484, 233, 234, 140, -253, 429, 195, 248, 403, 406,
750 -105, 497, 475, 238, 289, 290, 476, 529, 317, 189,
751 45, 217, 30, 31, -316, -316, -316, -316, 190, 191,
752 465, 350, -316, -316, -316, 401, 48, 239, 675, 25,
753 529, 430, 244, 676, 417, 502, 105, 132, -316, 228,
754 250, 468, 128, 129, 414, 416, 251, 120, 9, 10,
755 11, 503, 466, 252, -105, 107, 255, 545, 5, 6,
756 7, 8, 636, 48, 637, 501, 9, 10, 11, 180,
757 181, 25, 182, 183, 184, 185, 619, 120, 256, 48,
758 228, 621, 13, 321, 14, 107, 132, 487, -82, 207,
759 211, 5, -101, 7, 196, 525, 207, 233, 234, 9,
760 10, 11, 295, 60, 5, 57, 7, 58, 133, 308,
761 32, 33, 9, 10, 11, 13, 401, 401, 525, 110,
762 507, 111, 112, 48, 71, 529, 671, 328, 13, 559,
763 524, 52, 187, 309, 679, 527, 334, 189, -259, -259,
764 232, 315, 528, 335, 538, 336, 190, 191, 338, 25,
765 289, 290, 341, 524, 177, 178, 179, 342, 583, 309,
766 477, 586, 589, 160, 162, 561, 344, 455, 456, 593,
767 54, 659, 660, 599, 222, 347, 222, 415, 598, 381,
768 348, 207, 43, 115, 605, 385, 386, 527, 55, 352,
769 356, 56, 361, 611, 528, 364, 538, 378, 567, 569,
770 379, 25, 382, 383, 618, 601, 257, 387, 401, 14,
771 392, 260, 261, 525, 394, 397, 266, 267, 268, 269,
772 270, 271, 272, 273, 274, 275, 276, 277, 411, 116,
773 120, 413, 48, 426, -295, 482, -31, 490, 117, 109,
774 586, 491, -27, -27, -27, -27, 492, 508, 524, 539,
775 -27, -27, -27, 457, 458, 459, 546, 461, 462, 547,
776 -32, 43, 398, 549, 662, 110, -27, 552, -162, 553,
777 586, 555, 556, 557, -162, 562, 570, 564, 297, 565,
778 474, 5, 6, 7, 8, 579, 326, 299, 14, 9,
779 10, 11, 5, 566, 7, 196, 581, 111, 112, 584,
780 9, 10, 11, 128, 129, 13, 592, 14, 497, 9,
781 10, 11, 345, 346, 594, -162, 13, 45, 595, -162,
782 -27, 610, 217, 505, -114, -114, -114, -114, -114, -114,
783 -114, 612, -114, -114, -114, -114, -114, 615, -114, -114,
784 -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
785 -114, -114, -114, -376, -114, -114, 614, 548, 617, 626,
786 627, -114, 629, 645, -114, -261, -261, 639, 649, -114,
787 -114, -114, 654, 658, 655, -114, -114, 664, 667, 670,
788 -114, 673, 230, 678, 681, -19, -19, -19, -19, 682,
789 359, 587, 393, -19, -19, -19, 313, 479, -114, -114,
790 -114, -114, 576, -114, 126, 467, 292, 357, 110, -19,
791 471, -162, 217, 246, -316, -316, 333, -162, 329, -316,
792 -316, 241, -316, 427, 421, 327, -316, 480, -316, -316,
793 -316, -316, -316, -316, -316, -316, -316, -316, -316, 447,
794 -316, 440, -316, 485, -316, -316, 624, 5, 6, 7,
795 8, -316, 663, 665, -316, 9, 10, 11, -162, -316,
796 -316, -316, -162, -19, 410, -316, -316, 625, 0, 353,
797 -316, 13, 421, 14, 139, 0, 472, 5, 0, 7,
798 97, 0, 0, 0, 0, 9, 10, 11, -316, -291,
799 -316, -316, 488, -316, 32, 33, 199, 200, 201, 494,
800 152, 13, 69, 5, 15, 7, 97, 70, 71, 0,
801 72, 9, 10, 11, 5, 6, 7, 8, 447, 0,
802 568, 506, 9, 10, 11, 0, 0, 13, 73, 0,
803 15, 0, 74, 75, 0, 0, 0, 447, 13, 76,
804 447, 0, 77, 0, 0, 0, 0, 78, 79, 80,
805 0, 0, 0, 81, 82, 0, 0, 297, 83, 298,
806 5, 6, 7, 8, 554, 0, 299, 0, 9, 10,
807 11, 180, 181, 0, 182, 183, 184, 185, 84, 85,
808 0, -91, 0, 0, 13, 0, 14, 0, 578, 0,
809 0, 447, 0, 613, 432, 0, -316, -316, -316, -316,
810 -316, -316, -316, 0, -316, -316, -316, -316, -316, 0,
811 -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
812 -316, -316, -316, -316, -316, 447, -316, -316, 447, 0,
813 0, 110, -376, -316, -162, 0, -316, 0, 616, 0,
814 -162, -316, -316, -316, 0, 0, 0, -316, -316, 0,
815 0, 0, -316, 0, 0, 0, 447, 175, 176, 177,
816 178, 179, 0, 111, 112, 0, 0, 0, 0, 0,
817 -316, 0, -316, -316, 0, -316, 571, 0, -316, -316,
818 0, -162, 0, -316, -316, -162, -316, 0, 447, 0,
819 -316, 0, -316, -316, -316, -316, -316, -316, -316, -316,
820 -316, -316, -316, 0, -316, 0, -316, 0, -316, -316,
821 0, 5, 6, 7, 8, -316, 0, 409, -316, 9,
822 10, 11, 0, -316, -316, -316, 0, 0, 0, -316,
823 -316, 0, 0, 0, -316, 13, 0, 14, 0, 0,
824 0, 5, 6, 7, 8, 0, 0, 0, 0, 9,
825 10, 11, -316, 0, -316, -316, 602, -316, -326, -326,
826 0, 0, 0, -326, -326, 13, -326, 14, 0, 0,
827 -326, 0, -326, -326, -326, -326, -326, -326, -326, -326,
828 -326, -326, -326, 0, -326, 0, -326, 0, -326, -326,
829 0, 0, 127, 128, 129, -326, 0, 0, -326, 9,
830 10, 11, 0, -326, -326, -326, 0, 0, 0, -326,
831 -326, 0, 0, 441, -326, 442, 33, 14, 0, 0,
832 70, 71, 0, 72, 172, 173, 174, 175, 176, 177,
833 178, 179, -326, 0, -326, -326, 0, -326, 0, 0,
834 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
835 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
836 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
837 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
838 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
839 -190, 84, 85, 0, 445, 0, 0, 0, 0, 0,
840 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
841 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
842 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
843 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
844 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
845 -250, 84, 85, 0, 445, 0, 0, 0, 0, 0,
846 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
847 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
848 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
849 443, 83, 444, 419, 0, 69, 0, 0, 0, 0,
850 70, 71, 0, 72, 236, 0, 0, -23, -23, -23,
851 -23, 84, 85, 0, 445, -23, -23, -23, 0, 0,
852 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
853 110, -23, 76, -162, 0, 77, 0, 0, 0, -162,
854 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
855 0, 83, 173, 174, 175, 176, 177, 178, 179, 0,
856 69, 0, 111, 112, 0, 70, 71, 0, 72, 0,
857 0, 84, 85, 69, 420, 0, 0, 0, 70, 71,
858 -162, 72, 0, 0, -162, -23, 73, 0, 15, 0,
859 74, 75, 0, 0, 0, 0, 0, 76, 0, 73,
860 77, 15, 0, 74, 75, 78, 79, 80, 0, 0,
861 76, 81, 82, 77, 0, 0, 83, 0, 78, 79,
862 80, 0, 0, 0, 81, 82, 69, 0, 0, 83,
863 0, 70, 71, 0, 72, 0, 84, 85, 0, 69,
864 215, 0, 0, 0, 70, 71, 0, 72, 0, 84,
865 85, 0, 73, 287, 15, 0, 74, 75, 0, 0,
866 0, 0, 0, 76, 0, 73, 77, 15, 0, 74,
867 75, 78, 79, 80, 0, 0, 76, 81, 82, 77,
868 0, 0, 83, 0, 78, 79, 80, 0, 0, 0,
869 81, 82, 69, 0, 0, 83, 0, 70, 71, 0,
870 72, 0, 84, 85, 0, 0, 323, 0, 0, 0,
871 0, 0, 0, 0, 0, 84, 85, 0, 73, 354,
872 15, 0, 74, 75, 590, 0, 0, 0, 0, 76,
873 0, 0, 77, 0, 0, 0, 0, 78, 79, 80,
874 0, 0, 0, 81, 82, 0, 0, 0, 83, 163,
875 164, 165, 591, 166, 167, 168, 169, 170, 171, 172,
876 173, 174, 175, 176, 177, 178, 179, 0, 84, 85,
877 0, 0, 500, 442, 510, 6, 7, 8, 70, 71,
878 0, 72, 9, 10, 11, 511, 0, 512, 513, 514,
879 515, 516, 517, 518, 519, 520, 521, 522, 13, 73,
880 14, 15, 0, 74, 75, 0, 0, 0, 0, 0,
881 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
882 80, 14, 0, 0, 81, 82, 163, 164, 165, 83,
883 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
884 176, 177, 178, 179, 0, 0, 0, 523, 0, 84,
885 85, 0, 252, 442, 33, 0, 0, 0, 70, 71,
886 0, 72, 0, 0, 0, 511, 0, 512, 513, 514,
887 515, 516, 517, 518, 519, 520, 521, 522, 0, 73,
888 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
889 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
890 80, 0, 0, 0, 81, 82, 0, 69, 0, 83,
891 0, 0, 70, 71, 0, 72, 169, 170, 171, 172,
892 173, 174, 175, 176, 177, 178, 179, 523, 0, 84,
893 85, 0, 252, 73, 0, 15, 0, 74, 75, 0,
894 0, 0, 0, 0, 76, 0, 0, 77, 0, 0,
895 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
896 0, 0, 0, 83, 69, 5, 6, 7, 8, 70,
897 71, 0, 72, 9, 10, 11, 0, 0, 0, 0,
898 0, 0, 0, 84, 85, 0, 339, 0, 0, 13,
899 73, 14, 15, 0, 74, 75, 0, 0, 0, 0,
900 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
901 79, 80, 0, 0, 0, 81, 82, 0, 69, 5,
902 83, 7, 97, 70, 71, 0, 72, 9, 10, 11,
903 0, 69, 0, 0, 0, 0, 70, 71, 0, 72,
904 84, 85, 0, 13, 73, 0, 15, 0, 74, 75,
905 0, 0, 0, 0, 0, 76, 0, 73, 77, 15,
906 0, 74, 75, 78, 79, 80, 0, 0, 76, 81,
907 82, 77, 0, 0, 83, 0, 78, 79, 80, 0,
908 0, 0, 81, 82, 69, 0, 0, 83, 0, 70,
909 71, 0, 72, 0, 84, 85, 171, 172, 173, 174,
910 175, 176, 177, 178, 179, 558, 0, 84, 85, 0,
911 73, 69, 15, 0, 74, 75, 70, 71, 0, 72,
912 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
913 79, 80, 0, 0, 0, 81, 82, 73, 69, 15,
914 83, 74, 75, 70, 71, 0, 72, 0, 76, 0,
915 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
916 84, 85, 81, 82, 73, 358, 15, 159, 74, 75,
917 70, 71, 0, 72, 0, 76, 0, 0, 77, 0,
918 0, 0, 0, 78, 79, 80, 0, 84, 85, 81,
919 82, 73, 0, 15, 161, 74, 75, 0, 0, 0,
920 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
921 78, 79, 80, 0, 84, 85, 81, 82, 0, 0,
922 4, 83, -118, 5, 6, 7, 8, 0, 0, 0,
923 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
924 0, 84, 85, 0, 0, 0, 12, 13, 0, 14,
925 15, 165, 0, 166, 167, 168, 169, 170, 171, 172,
926 173, 174, 175, 176, 177, 178, 179, 0, 540, -118,
927 0, 0, 0, 0, 0, 163, 164, 165, -118, 166,
928 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
929 177, 178, 179, 163, 164, 165, 16, 166, 167, 168,
930 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
931 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
932 163, 164, 165, 607, 166, 167, 168, 169, 170, 171,
933 172, 173, 174, 175, 176, 177, 178, 179, 0, 0,
934 0, 541, 163, 164, 165, 633, 166, 167, 168, 169,
935 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
936 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
937 177, 178, 179, 168, 169, 170, 171, 172, 173, 174,
938 175, 176, 177, 178, 179, 170, 171, 172, 173, 174,
939 175, 176, 177, 178, 179
942 static const short yycheck
[] = { 40,
943 41, 2, 3, 9, 10, 11, 20, 53, 2, 3,
944 2, 3, 51, 121, 22, 2, 3, 113, 74, 75,
945 212, 120, 102, 231, 80, 154, 116, 28, 59, 237,
946 86, 45, 22, 20, 28, 22, 28, 233, 219, 53,
947 96, 28, 21, 22, 194, 332, 184, 414, 117, 65,
948 190, 41, 286, 65, 107, 551, 62, 1, 45, 1,
949 9, 1, 3, 362, 51, 0, 53, 3, 10, 3,
950 76, 112, 59, 65, 631, 65, 38, 25, 38, 3,
951 4, 0, 492, 83, 38, 38, 3, 4, 59, 30,
952 104, 470, 28, 83, 108, 126, 30, 103, 377, 189,
953 48, 380, 210, 117, 661, 3, 4, 603, 56, 50,
954 489, 77, 102, 59, 76, 81, 50, 104, 59, 59,
955 107, 108, 76, 76, 220, 59, 60, 76, 144, 625,
956 117, 137, 144, 543, 630, 231, 632, 59, 82, 126,
957 82, 237, 292, 283, 185, 641, 5, 243, 7, 245,
958 191, 438, 144, 143, 144, 454, 225, 295, 82, 159,
959 229, 161, 141, 194, 143, 82, 30, 577, 76, 159,
960 580, 161, 120, 81, 408, 228, 182, 183, 674, 3,
961 4, 27, 77, 131, 82, 145, 81, 147, 77, 77,
962 3, 4, 81, 234, 7, 59, 60, 484, 608, 255,
963 567, 3, 4, 3, 4, 7, 30, 388, 59, 60,
964 50, 225, 30, 59, 60, 229, 30, 30, 3, 59,
965 60, 262, 7, 59, 38, 76, 50, 214, 30, 76,
966 640, 3, 4, 239, 81, 59, 60, 50, 225, 3,
967 369, 228, 229, 7, 82, 30, 59, 60, 50, 290,
968 50, 82, 433, 27, 82, 436, 30, 59, 396, 455,
969 400, 292, 36, 3, 4, 50, 30, 1, 418, 78,
970 4, 30, 6, 7, 59, 60, 224, 78, 12, 13,
971 14, 76, 362, 363, 76, 572, 50, 383, 294, 81,
972 30, 81, 388, 301, 28, 59, 9, 31, 38, 286,
973 59, 60, 401, 77, 3, 4, 314, 81, 7, 399,
974 50, 301, 59, 453, 301, 405, 7, 467, 76, 59,
975 460, 300, 301, 1, 314, 76, 4, 5, 6, 7,
976 81, 30, 10, 77, 12, 13, 14, 81, 434, 138,
977 436, 59, 60, 77, 78, 384, 76, 146, 362, 363,
978 28, 50, 77, 36, 59, 60, 81, 486, 76, 50,
979 59, 1, 77, 78, 4, 5, 6, 7, 59, 60,
980 416, 76, 12, 13, 14, 362, 363, 81, 76, 366,
981 509, 387, 77, 81, 374, 77, 400, 418, 28, 81,
982 76, 5, 6, 7, 373, 374, 76, 384, 12, 13,
983 14, 77, 416, 82, 82, 81, 76, 497, 4, 5,
984 6, 7, 620, 400, 622, 456, 12, 13, 14, 54,
985 55, 408, 57, 58, 59, 60, 77, 414, 77, 416,
986 81, 77, 28, 232, 30, 81, 467, 443, 38, 453,
987 454, 4, 82, 6, 7, 486, 460, 59, 60, 12,
988 13, 14, 59, 401, 4, 5, 6, 7, 1, 83,
989 3, 4, 12, 13, 14, 28, 453, 454, 509, 27,
990 476, 59, 60, 460, 9, 604, 668, 78, 28, 520,
991 486, 77, 538, 77, 676, 486, 78, 50, 77, 78,
992 598, 36, 486, 78, 486, 78, 59, 60, 76, 486,
993 59, 60, 76, 509, 50, 51, 52, 76, 549, 77,
994 78, 552, 553, 90, 91, 521, 38, 59, 60, 560,
995 528, 650, 651, 569, 620, 76, 622, 77, 567, 328,
996 83, 545, 3, 4, 575, 334, 335, 538, 528, 83,
997 76, 528, 76, 584, 538, 76, 538, 36, 527, 528,
998 83, 538, 78, 81, 595, 569, 158, 32, 545, 30,
999 38, 163, 164, 604, 83, 76, 168, 169, 170, 171,
1000 172, 173, 174, 175, 176, 177, 178, 179, 3, 50,
1001 567, 77, 569, 382, 78, 78, 38, 38, 59, 1,
1002 631, 78, 4, 5, 6, 7, 81, 78, 604, 36,
1003 12, 13, 14, 402, 403, 404, 83, 406, 407, 78,
1004 38, 3, 4, 59, 655, 27, 28, 59, 30, 59,
1005 661, 38, 77, 77, 36, 7, 16, 38, 1, 77,
1006 429, 4, 5, 6, 7, 36, 238, 10, 30, 12,
1007 13, 14, 4, 77, 6, 7, 78, 59, 60, 59,
1008 12, 13, 14, 6, 7, 28, 77, 30, 50, 12,
1009 13, 14, 264, 265, 77, 77, 28, 59, 59, 81,
1010 82, 76, 1, 472, 3, 4, 5, 6, 7, 8,
1011 9, 17, 11, 12, 13, 14, 15, 76, 17, 18,
1012 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1013 29, 30, 31, 76, 33, 34, 77, 506, 77, 76,
1014 36, 40, 76, 9, 43, 77, 78, 77, 77, 48,
1015 49, 50, 77, 81, 59, 54, 55, 77, 76, 76,
1016 59, 77, 1, 77, 0, 4, 5, 6, 7, 0,
1017 295, 552, 344, 12, 13, 14, 220, 434, 77, 78,
1018 79, 80, 538, 82, 55, 417, 197, 294, 27, 28,
1019 424, 30, 1, 144, 3, 4, 245, 36, 241, 8,
1020 9, 137, 11, 383, 376, 239, 15, 434, 17, 18,
1021 19, 20, 21, 22, 23, 24, 25, 26, 27, 391,
1022 29, 389, 31, 436, 33, 34, 604, 4, 5, 6,
1023 7, 40, 656, 658, 43, 12, 13, 14, 77, 48,
1024 49, 50, 81, 82, 366, 54, 55, 604, -1, 289,
1025 59, 28, 424, 30, 1, -1, 428, 4, -1, 6,
1026 7, -1, -1, -1, -1, 12, 13, 14, 77, 78,
1027 79, 80, 444, 82, 3, 4, 5, 6, 7, 451,
1028 1, 28, 3, 4, 31, 6, 7, 8, 9, -1,
1029 11, 12, 13, 14, 4, 5, 6, 7, 470, -1,
1030 77, 473, 12, 13, 14, -1, -1, 28, 29, -1,
1031 31, -1, 33, 34, -1, -1, -1, 489, 28, 40,
1032 492, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1033 -1, -1, -1, 54, 55, -1, -1, 1, 59, 3,
1034 4, 5, 6, 7, 516, -1, 10, -1, 12, 13,
1035 14, 54, 55, -1, 57, 58, 59, 60, 79, 80,
1036 -1, 82, -1, -1, 28, -1, 30, -1, 540, -1,
1037 -1, 543, -1, 76, 1, -1, 3, 4, 5, 6,
1038 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
1039 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1040 27, 28, 29, 30, 31, 577, 33, 34, 580, -1,
1041 -1, 27, 76, 40, 30, -1, 43, -1, 590, -1,
1042 36, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1043 -1, -1, 59, -1, -1, -1, 608, 48, 49, 50,
1044 51, 52, -1, 59, 60, -1, -1, -1, -1, -1,
1045 77, -1, 79, 80, -1, 82, 1, -1, 3, 4,
1046 -1, 77, -1, 8, 9, 81, 11, -1, 640, -1,
1047 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1048 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1049 -1, 4, 5, 6, 7, 40, -1, 10, 43, 12,
1050 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1051 55, -1, -1, -1, 59, 28, -1, 30, -1, -1,
1052 -1, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1053 13, 14, 77, -1, 79, 80, 1, 82, 3, 4,
1054 -1, -1, -1, 8, 9, 28, 11, 30, -1, -1,
1055 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1056 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1057 -1, -1, 5, 6, 7, 40, -1, -1, 43, 12,
1058 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1059 55, -1, -1, 1, 59, 3, 4, 30, -1, -1,
1060 8, 9, -1, 11, 45, 46, 47, 48, 49, 50,
1061 51, 52, 77, -1, 79, 80, -1, 82, -1, -1,
1062 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1063 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1064 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1065 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1066 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1067 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1068 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1069 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1070 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1071 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1072 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1073 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1074 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1075 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1076 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1077 58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
1078 8, 9, -1, 11, 1, -1, -1, 4, 5, 6,
1079 7, 79, 80, -1, 82, 12, 13, 14, -1, -1,
1080 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1081 27, 28, 40, 30, -1, 43, -1, -1, -1, 36,
1082 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1083 -1, 59, 46, 47, 48, 49, 50, 51, 52, -1,
1084 3, -1, 59, 60, -1, 8, 9, -1, 11, -1,
1085 -1, 79, 80, 3, 82, -1, -1, -1, 8, 9,
1086 77, 11, -1, -1, 81, 82, 29, -1, 31, -1,
1087 33, 34, -1, -1, -1, -1, -1, 40, -1, 29,
1088 43, 31, -1, 33, 34, 48, 49, 50, -1, -1,
1089 40, 54, 55, 43, -1, -1, 59, -1, 48, 49,
1090 50, -1, -1, -1, 54, 55, 3, -1, -1, 59,
1091 -1, 8, 9, -1, 11, -1, 79, 80, -1, 3,
1092 83, -1, -1, -1, 8, 9, -1, 11, -1, 79,
1093 80, -1, 29, 83, 31, -1, 33, 34, -1, -1,
1094 -1, -1, -1, 40, -1, 29, 43, 31, -1, 33,
1095 34, 48, 49, 50, -1, -1, 40, 54, 55, 43,
1096 -1, -1, 59, -1, 48, 49, 50, -1, -1, -1,
1097 54, 55, 3, -1, -1, 59, -1, 8, 9, -1,
1098 11, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1099 -1, -1, -1, -1, -1, 79, 80, -1, 29, 83,
1100 31, -1, 33, 34, 10, -1, -1, -1, -1, 40,
1101 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1102 -1, -1, -1, 54, 55, -1, -1, -1, 59, 35,
1103 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1104 46, 47, 48, 49, 50, 51, 52, -1, 79, 80,
1105 -1, -1, 83, 3, 4, 5, 6, 7, 8, 9,
1106 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1107 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1108 30, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1109 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1110 50, 30, -1, -1, 54, 55, 35, 36, 37, 59,
1111 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1112 49, 50, 51, 52, -1, -1, -1, 77, -1, 79,
1113 80, -1, 82, 3, 4, -1, -1, -1, 8, 9,
1114 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1115 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1116 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1117 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1118 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
1119 -1, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1120 46, 47, 48, 49, 50, 51, 52, 77, -1, 79,
1121 80, -1, 82, 29, -1, 31, -1, 33, 34, -1,
1122 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1123 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1124 -1, -1, -1, 59, 3, 4, 5, 6, 7, 8,
1125 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
1126 -1, -1, -1, 79, 80, -1, 82, -1, -1, 28,
1127 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1128 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1129 49, 50, -1, -1, -1, 54, 55, -1, 3, 4,
1130 59, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1131 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1132 79, 80, -1, 28, 29, -1, 31, -1, 33, 34,
1133 -1, -1, -1, -1, -1, 40, -1, 29, 43, 31,
1134 -1, 33, 34, 48, 49, 50, -1, -1, 40, 54,
1135 55, 43, -1, -1, 59, -1, 48, 49, 50, -1,
1136 -1, -1, 54, 55, 3, -1, -1, 59, -1, 8,
1137 9, -1, 11, -1, 79, 80, 44, 45, 46, 47,
1138 48, 49, 50, 51, 52, 77, -1, 79, 80, -1,
1139 29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
1140 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1141 49, 50, -1, -1, -1, 54, 55, 29, 3, 31,
1142 59, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1143 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1144 79, 80, 54, 55, 29, 3, 31, 59, 33, 34,
1145 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1146 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1147 55, 29, -1, 31, 59, 33, 34, -1, -1, -1,
1148 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1149 48, 49, 50, -1, 79, 80, 54, 55, -1, -1,
1150 1, 59, 3, 4, 5, 6, 7, -1, -1, -1,
1151 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1152 -1, 79, 80, -1, -1, -1, 27, 28, -1, 30,
1153 31, 37, -1, 39, 40, 41, 42, 43, 44, 45,
1154 46, 47, 48, 49, 50, 51, 52, -1, 10, 50,
1155 -1, -1, -1, -1, -1, 35, 36, 37, 59, 39,
1156 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1157 50, 51, 52, 35, 36, 37, 77, 39, 40, 41,
1158 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1159 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1160 35, 36, 37, 83, 39, 40, 41, 42, 43, 44,
1161 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1162 -1, 83, 35, 36, 37, 38, 39, 40, 41, 42,
1163 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1164 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1165 50, 51, 52, 41, 42, 43, 44, 45, 46, 47,
1166 48, 49, 50, 51, 52, 43, 44, 45, 46, 47,
1169 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1170 #line 3 "/usr/share/bison.simple"
1172 /* Skeleton output parser for bison,
1173 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1175 This program is free software; you can redistribute it and/or modify
1176 it under the terms of the GNU General Public License as published by
1177 the Free Software Foundation; either version 2, or (at your option)
1180 This program is distributed in the hope that it will be useful,
1181 but WITHOUT ANY WARRANTY; without even the implied warranty of
1182 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1183 GNU General Public License for more details.
1185 You should have received a copy of the GNU General Public License
1186 along with this program; if not, write to the Free Software
1187 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1189 /* As a special exception, when this file is copied by Bison into a
1190 Bison output file, you may use that output file without restriction.
1191 This special exception was added by the Free Software Foundation
1192 in version 1.24 of Bison. */
1196 #define alloca __builtin_alloca
1197 #else /* not GNU C. */
1198 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1200 #else /* not sparc */
1201 #if defined (MSDOS) && !defined (__TURBOC__)
1203 #else /* not MSDOS, or __TURBOC__ */
1207 #else /* not MSDOS, __TURBOC__, or _AIX */
1211 void *alloca (unsigned int);
1213 #else /* not __cplusplus */
1215 #endif /* not __cplusplus */
1217 #endif /* not _AIX */
1218 #endif /* not MSDOS, or __TURBOC__ */
1219 #endif /* not sparc. */
1220 #endif /* not GNU C. */
1221 #endif /* alloca not defined. */
1223 /* This is the parser code that is written into each bison parser
1224 when the %semantic_parser declaration is not specified in the grammar.
1225 It was written by Richard Stallman by simplifying the hairy parser
1226 used when %semantic_parser is specified. */
1228 /* Note: there must be only one dollar sign in this file.
1229 It is replaced by the list of actions, each action
1230 as one case of the switch. */
1232 #define yyerrok (yyerrstatus = 0)
1233 #define yyclearin (yychar = YYEMPTY)
1236 #define YYACCEPT return(0)
1237 #define YYABORT return(1)
1238 #define YYERROR goto yyerrlab1
1239 /* Like YYERROR except do call yyerror.
1240 This remains here temporarily to ease the
1241 transition to the new meaning of YYERROR, for GCC.
1242 Once GCC version 2 has supplanted version 1, this can go. */
1243 #define YYFAIL goto yyerrlab
1244 #define YYRECOVERING() (!!yyerrstatus)
1245 #define YYBACKUP(token, value) \
1247 if (yychar == YYEMPTY && yylen == 1) \
1248 { yychar = (token), yylval = (value); \
1249 yychar1 = YYTRANSLATE (yychar); \
1254 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1258 #define YYERRCODE 256
1261 #define YYLEX yylex()
1267 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1269 #define YYLEX yylex(&yylval, &yylloc)
1271 #else /* not YYLSP_NEEDED */
1273 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1275 #define YYLEX yylex(&yylval)
1277 #endif /* not YYLSP_NEEDED */
1280 /* If nonreentrant, generate the variables here */
1284 int yychar
; /* the lookahead symbol */
1285 YYSTYPE yylval
; /* the semantic value of the */
1286 /* lookahead symbol */
1289 YYLTYPE yylloc
; /* location data for the lookahead */
1293 int yynerrs
; /* number of parse errors so far */
1294 #endif /* not YYPURE */
1297 int yydebug
; /* nonzero means print parse trace */
1298 /* Since this is uninitialized, it does not stop multiple parsers
1302 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1305 #define YYINITDEPTH 200
1308 /* YYMAXDEPTH is the maximum size the stacks can grow to
1309 (effective only if the built-in stack extension method is used). */
1316 #define YYMAXDEPTH 10000
1319 /* Prevent warning if -Wstrict-prototypes. */
1324 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1325 #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1326 #else /* not GNU C or C++ */
1329 /* This is the most reliable way to avoid incompatibilities
1330 in available built-in functions on various systems. */
1332 __yy_memcpy (from
, to
, count
)
1337 register char *f
= from
;
1338 register char *t
= to
;
1339 register int i
= count
;
1345 #else /* __cplusplus */
1347 /* This is the most reliable way to avoid incompatibilities
1348 in available built-in functions on various systems. */
1350 __yy_memcpy (char *from
, char *to
, int count
)
1352 register char *f
= from
;
1353 register char *t
= to
;
1354 register int i
= count
;
1363 #line 192 "/usr/share/bison.simple"
1365 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1366 into yyparse. The argument should have type void *.
1367 It should actually point to an object.
1368 Grammar actions can access the variable by casting it
1369 to the proper pointer type. */
1371 #ifdef YYPARSE_PARAM
1372 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1374 #define YYPARSE_PARAM
1375 #define YYPARSE_PARAM_DECL
1379 yyparse(YYPARSE_PARAM
)
1382 register int yystate
;
1384 register short *yyssp
;
1385 register YYSTYPE
*yyvsp
;
1386 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1387 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1389 short yyssa
[YYINITDEPTH
]; /* the state stack */
1390 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1392 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1393 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1396 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1397 YYLTYPE
*yyls
= yylsa
;
1400 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1402 #define YYPOPSTACK (yyvsp--, yyssp--)
1405 int yystacksize
= YYINITDEPTH
;
1416 YYSTYPE yyval
; /* the variable used to return */
1417 /* semantic values from the action */
1424 fprintf(stderr
, "Starting parse\n");
1430 yychar
= YYEMPTY
; /* Cause a token to be read. */
1432 /* Initialize stack pointers.
1433 Waste one element of value and location stack
1434 so that they stay on the same level as the state stack.
1435 The wasted elements are never initialized. */
1443 /* Push a new state, which is found in yystate . */
1444 /* In all cases, when you get here, the value and location stacks
1445 have just been pushed. so pushing a state here evens the stacks. */
1450 if (yyssp
>= yyss
+ yystacksize
- 1)
1452 /* Give user a chance to reallocate the stack */
1453 /* Use copies of these so that the &'s don't force the real ones into memory. */
1454 YYSTYPE
*yyvs1
= yyvs
;
1455 short *yyss1
= yyss
;
1457 YYLTYPE
*yyls1
= yyls
;
1460 /* Get the current used size of the three stacks, in elements. */
1461 int size
= yyssp
- yyss
+ 1;
1464 /* Each stack pointer address is followed by the size of
1465 the data in use in that stack, in bytes. */
1467 /* This used to be a conditional around just the two extra args,
1468 but that might be undefined if yyoverflow is a macro. */
1469 yyoverflow("parser stack overflow",
1470 &yyss1
, size
* sizeof (*yyssp
),
1471 &yyvs1
, size
* sizeof (*yyvsp
),
1472 &yyls1
, size
* sizeof (*yylsp
),
1475 yyoverflow("parser stack overflow",
1476 &yyss1
, size
* sizeof (*yyssp
),
1477 &yyvs1
, size
* sizeof (*yyvsp
),
1481 yyss
= yyss1
; yyvs
= yyvs1
;
1485 #else /* no yyoverflow */
1486 /* Extend the stack our own way. */
1487 if (yystacksize
>= YYMAXDEPTH
)
1489 yyerror("parser stack overflow");
1493 if (yystacksize
> YYMAXDEPTH
)
1494 yystacksize
= YYMAXDEPTH
;
1495 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1496 __yy_memcpy ((char *)yyss1
, (char *)yyss
, size
* sizeof (*yyssp
));
1497 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1498 __yy_memcpy ((char *)yyvs1
, (char *)yyvs
, size
* sizeof (*yyvsp
));
1500 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1501 __yy_memcpy ((char *)yyls1
, (char *)yyls
, size
* sizeof (*yylsp
));
1503 #endif /* no yyoverflow */
1505 yyssp
= yyss
+ size
- 1;
1506 yyvsp
= yyvs
+ size
- 1;
1508 yylsp
= yyls
+ size
- 1;
1513 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1516 if (yyssp
>= yyss
+ yystacksize
- 1)
1522 fprintf(stderr
, "Entering state %d\n", yystate
);
1528 /* Do appropriate processing given the current state. */
1529 /* Read a lookahead token if we need one and don't already have one. */
1532 /* First try to decide what to do without reference to lookahead token. */
1534 yyn
= yypact
[yystate
];
1538 /* Not known => get a lookahead token if don't already have one. */
1540 /* yychar is either YYEMPTY or YYEOF
1541 or a valid token in external form. */
1543 if (yychar
== YYEMPTY
)
1547 fprintf(stderr
, "Reading a token: ");
1552 /* Convert token to internal form (in yychar1) for indexing tables with */
1554 if (yychar
<= 0) /* This means end of input. */
1557 yychar
= YYEOF
; /* Don't call YYLEX any more */
1561 fprintf(stderr
, "Now at end of input.\n");
1566 yychar1
= YYTRANSLATE(yychar
);
1571 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1572 /* Give the individual parser a way to print the precise meaning
1573 of a token, for further debugging info. */
1575 YYPRINT (stderr
, yychar
, yylval
);
1577 fprintf (stderr
, ")\n");
1583 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1588 /* yyn is what to do for this token type in this state.
1589 Negative => reduce, -yyn is rule number.
1590 Positive => shift, yyn is new state.
1591 New state is final state => don't bother to shift,
1592 just return success.
1593 0, or most negative number => error. */
1608 /* Shift the lookahead token. */
1612 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1615 /* Discard the token being shifted unless it is eof. */
1616 if (yychar
!= YYEOF
)
1624 /* count tokens shifted since error; after three, turn off error status. */
1625 if (yyerrstatus
) yyerrstatus
--;
1630 /* Do the default action for the current state. */
1633 yyn
= yydefact
[yystate
];
1637 /* Do a reduction. yyn is the number of a rule to reduce with. */
1641 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1648 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1651 /* Print the symbols being reduced, and their result. */
1652 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1653 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1654 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1662 #line 237 "c-parse.y"
1664 pedwarn ("ANSI C forbids an empty source file");
1669 #line 242 "c-parse.y"
1671 /* In case there were missing closebraces,
1672 get us back to the global binding level. */
1673 while (! global_bindings_p ())
1679 #line 256 "c-parse.y"
1680 {yyval
.ttype
= NULL_TREE
; ;
1683 #line 257 "c-parse.y"
1684 {yyval
.ttype
= NULL_TREE
; ;
1687 #line 264 "c-parse.y"
1688 { STRIP_NOPS (yyvsp
[-2].ttype
);
1689 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1690 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1691 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1692 assemble_asm (yyvsp
[-2].ttype
);
1694 error ("argument of `asm' is not a constant string"); ;
1697 #line 272 "c-parse.y"
1698 { pedantic
= yyvsp
[-1].itype
; ;
1701 #line 277 "c-parse.y"
1703 error ("ANSI C forbids data definition with no type or storage class");
1704 else if (!flag_traditional
)
1705 warning ("data definition has no type or storage class");
1707 current_declspecs
= TREE_VALUE (declspec_stack
);
1708 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1709 declspec_stack
= TREE_CHAIN (declspec_stack
);
1710 resume_momentary (yyvsp
[-2].itype
); ;
1713 #line 287 "c-parse.y"
1714 { current_declspecs
= TREE_VALUE (declspec_stack
);
1715 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1716 declspec_stack
= TREE_CHAIN (declspec_stack
);
1717 resume_momentary (yyvsp
[-2].itype
); ;
1720 #line 292 "c-parse.y"
1721 { current_declspecs
= TREE_VALUE (declspec_stack
);
1722 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1723 declspec_stack
= TREE_CHAIN (declspec_stack
);
1724 resume_momentary (yyvsp
[-2].itype
); ;
1727 #line 297 "c-parse.y"
1728 { pedwarn ("empty declaration"); ;
1731 #line 299 "c-parse.y"
1732 { shadow_tag (yyvsp
[-1].ttype
); ;
1735 #line 303 "c-parse.y"
1737 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1740 #line 309 "c-parse.y"
1741 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1742 prefix_attributes
, NULL_TREE
, 0))
1744 reinit_parse_for_function (); ;
1747 #line 314 "c-parse.y"
1748 { store_parm_decls (); ;
1751 #line 316 "c-parse.y"
1752 { finish_function (0);
1753 current_declspecs
= TREE_VALUE (declspec_stack
);
1754 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1755 declspec_stack
= TREE_CHAIN (declspec_stack
);
1756 resume_momentary (yyvsp
[-5].itype
); ;
1759 #line 322 "c-parse.y"
1760 { current_declspecs
= TREE_VALUE (declspec_stack
);
1761 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1762 declspec_stack
= TREE_CHAIN (declspec_stack
);
1763 resume_momentary (yyvsp
[-2].itype
); ;
1766 #line 327 "c-parse.y"
1767 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1768 prefix_attributes
, NULL_TREE
, 0))
1770 reinit_parse_for_function (); ;
1773 #line 332 "c-parse.y"
1774 { store_parm_decls (); ;
1777 #line 334 "c-parse.y"
1778 { finish_function (0);
1779 current_declspecs
= TREE_VALUE (declspec_stack
);
1780 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1781 declspec_stack
= TREE_CHAIN (declspec_stack
);
1782 resume_momentary (yyvsp
[-5].itype
); ;
1785 #line 340 "c-parse.y"
1786 { current_declspecs
= TREE_VALUE (declspec_stack
);
1787 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1788 declspec_stack
= TREE_CHAIN (declspec_stack
);
1789 resume_momentary (yyvsp
[-2].itype
); ;
1792 #line 345 "c-parse.y"
1793 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1794 prefix_attributes
, NULL_TREE
, 0))
1796 reinit_parse_for_function (); ;
1799 #line 350 "c-parse.y"
1800 { store_parm_decls (); ;
1803 #line 352 "c-parse.y"
1804 { finish_function (0);
1805 current_declspecs
= TREE_VALUE (declspec_stack
);
1806 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1807 declspec_stack
= TREE_CHAIN (declspec_stack
);
1808 resume_momentary (yyvsp
[-5].itype
); ;
1811 #line 358 "c-parse.y"
1812 { current_declspecs
= TREE_VALUE (declspec_stack
);
1813 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1814 declspec_stack
= TREE_CHAIN (declspec_stack
);
1815 resume_momentary (yyvsp
[-2].itype
); ;
1818 #line 370 "c-parse.y"
1819 { yyval
.code
= ADDR_EXPR
; ;
1822 #line 372 "c-parse.y"
1823 { yyval
.code
= NEGATE_EXPR
; ;
1826 #line 374 "c-parse.y"
1827 { yyval
.code
= CONVERT_EXPR
; ;
1830 #line 376 "c-parse.y"
1831 { yyval
.code
= PREINCREMENT_EXPR
; ;
1834 #line 378 "c-parse.y"
1835 { yyval
.code
= PREDECREMENT_EXPR
; ;
1838 #line 380 "c-parse.y"
1839 { yyval
.code
= BIT_NOT_EXPR
; ;
1842 #line 382 "c-parse.y"
1843 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1846 #line 386 "c-parse.y"
1847 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1850 #line 391 "c-parse.y"
1851 { yyval
.ttype
= NULL_TREE
; ;
1854 #line 397 "c-parse.y"
1855 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1858 #line 399 "c-parse.y"
1859 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1862 #line 405 "c-parse.y"
1863 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1866 #line 408 "c-parse.y"
1867 { yyval
.ttype
= yyvsp
[0].ttype
;
1868 pedantic
= yyvsp
[-1].itype
; ;
1871 #line 411 "c-parse.y"
1872 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1873 overflow_warning (yyval
.ttype
); ;
1876 #line 415 "c-parse.y"
1877 { tree label
= lookup_label (yyvsp
[0].ttype
);
1879 pedwarn ("ANSI C forbids `&&'");
1881 yyval
.ttype
= null_pointer_node
;
1884 TREE_USED (label
) = 1;
1885 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1886 TREE_CONSTANT (yyval
.ttype
) = 1;
1891 #line 443 "c-parse.y"
1892 { skip_evaluation
--;
1893 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1894 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1895 error ("`sizeof' applied to a bit-field");
1896 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1899 #line 449 "c-parse.y"
1900 { skip_evaluation
--;
1901 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1904 #line 452 "c-parse.y"
1905 { skip_evaluation
--;
1906 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1909 #line 455 "c-parse.y"
1910 { skip_evaluation
--;
1911 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1914 #line 458 "c-parse.y"
1915 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1918 #line 460 "c-parse.y"
1919 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1922 #line 464 "c-parse.y"
1923 { skip_evaluation
++; ;
1926 #line 468 "c-parse.y"
1927 { skip_evaluation
++; ;
1930 #line 474 "c-parse.y"
1931 { tree type
= groktypename (yyvsp
[-2].ttype
);
1932 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1935 #line 477 "c-parse.y"
1936 { start_init (NULL_TREE
, NULL
, 0);
1937 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1938 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1941 #line 481 "c-parse.y"
1943 tree result
= pop_init_level (0);
1944 tree type
= yyvsp
[-5].ttype
;
1948 pedwarn ("ANSI C forbids constructor expressions");
1949 if (TYPE_NAME (type
) != 0)
1951 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1952 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1954 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
1958 yyval
.ttype
= result
;
1959 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
1961 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
1968 #line 510 "c-parse.y"
1969 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1972 #line 512 "c-parse.y"
1973 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1976 #line 514 "c-parse.y"
1977 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1980 #line 516 "c-parse.y"
1981 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1984 #line 518 "c-parse.y"
1985 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1988 #line 520 "c-parse.y"
1989 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1992 #line 522 "c-parse.y"
1993 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1996 #line 524 "c-parse.y"
1997 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2000 #line 526 "c-parse.y"
2001 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2004 #line 528 "c-parse.y"
2005 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2008 #line 530 "c-parse.y"
2009 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2012 #line 532 "c-parse.y"
2013 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2016 #line 534 "c-parse.y"
2017 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2018 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2021 #line 537 "c-parse.y"
2022 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2023 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2026 #line 540 "c-parse.y"
2027 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2028 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2031 #line 543 "c-parse.y"
2032 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2033 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2036 #line 546 "c-parse.y"
2037 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2038 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2041 #line 549 "c-parse.y"
2042 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2043 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2046 #line 552 "c-parse.y"
2047 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2048 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2051 #line 555 "c-parse.y"
2053 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2054 /* Make sure first operand is calculated only once. */
2055 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2056 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2057 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2060 #line 562 "c-parse.y"
2061 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2062 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2065 #line 565 "c-parse.y"
2066 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2067 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2070 #line 568 "c-parse.y"
2071 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2072 /* This inhibits warnings in truthvalue_conversion. */
2073 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2076 #line 575 "c-parse.y"
2078 yyval
.ttype
= lastiddecl
;
2079 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2081 if (yychar
== YYEMPTY
)
2086 /* Ordinary implicit function declaration. */
2087 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2088 assemble_external (yyval
.ttype
);
2089 TREE_USED (yyval
.ttype
) = 1;
2092 else if (current_function_decl
== 0)
2094 error ("`%s' undeclared here (not in a function)",
2095 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2096 yyval
.ttype
= error_mark_node
;
2101 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2102 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2104 error ("`%s' undeclared (first use in this function)",
2105 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2107 if (! undeclared_variable_notice
)
2109 error ("(Each undeclared identifier is reported only once");
2110 error ("for each function it appears in.)");
2111 undeclared_variable_notice
= 1;
2114 yyval
.ttype
= error_mark_node
;
2115 /* Prevent repeated error messages. */
2116 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2117 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2121 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2122 yyval
.ttype
= error_mark_node
;
2123 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2125 /* The first time we see a build-in function used,
2126 if it has not been declared. */
2127 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2128 if (yychar
== YYEMPTY
)
2132 /* Omit the implicit declaration we
2133 would ordinarily do, so we don't lose
2134 the actual built in type.
2135 But print a diagnostic for the mismatch. */
2136 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2137 error ("`%s' implicitly declared as function",
2138 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2139 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2140 != TYPE_MODE (integer_type_node
))
2141 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2143 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2144 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2145 /* If it really returns void, change that to int. */
2146 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2147 TREE_TYPE (yyval
.ttype
)
2148 = build_function_type (integer_type_node
,
2149 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2152 pedwarn ("built-in function `%s' used without declaration",
2153 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2155 /* Do what we would ordinarily do when a fn is used. */
2156 assemble_external (yyval
.ttype
);
2157 TREE_USED (yyval
.ttype
) = 1;
2161 assemble_external (yyval
.ttype
);
2162 TREE_USED (yyval
.ttype
) = 1;
2165 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2167 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2168 /* This is to prevent an enum whose value is 0
2169 from being considered a null pointer constant. */
2170 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2171 TREE_CONSTANT (yyval
.ttype
) = 1;
2176 #line 674 "c-parse.y"
2177 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2180 #line 676 "c-parse.y"
2181 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2182 if (class == 'e' || class == '1'
2183 || class == '2' || class == '<')
2184 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2185 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2188 #line 682 "c-parse.y"
2189 { yyval
.ttype
= error_mark_node
; ;
2192 #line 684 "c-parse.y"
2193 { if (current_function_decl
== 0)
2195 error ("braced-group within expression allowed only inside a function");
2198 /* We must force a BLOCK for this level
2199 so that, if it is not expanded later,
2200 there is a way to turn off the entire subtree of blocks
2201 that are contained in it. */
2203 push_iterator_stack ();
2204 push_label_level ();
2205 yyval
.ttype
= expand_start_stmt_expr (); ;
2208 #line 698 "c-parse.y"
2211 pedwarn ("ANSI C forbids braced-groups within expressions");
2212 pop_iterator_stack ();
2214 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2215 /* The statements have side effects, so the group does. */
2216 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2218 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2220 /* Make a BIND_EXPR for the BLOCK already made. */
2221 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2222 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2223 /* Remove the block from the tree at this point.
2224 It gets put back at the proper place
2225 when the BIND_EXPR is expanded. */
2226 delete_block (yyvsp
[-1].ttype
);
2229 yyval
.ttype
= yyvsp
[-1].ttype
;
2233 #line 721 "c-parse.y"
2234 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2237 #line 723 "c-parse.y"
2238 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2241 #line 725 "c-parse.y"
2243 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2247 #line 729 "c-parse.y"
2249 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2251 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2255 #line 735 "c-parse.y"
2256 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2259 #line 737 "c-parse.y"
2260 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2263 #line 744 "c-parse.y"
2264 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2267 #line 753 "c-parse.y"
2268 { c_mark_varargs ();
2270 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2273 #line 763 "c-parse.y"
2277 #line 779 "c-parse.y"
2278 { current_declspecs
= TREE_VALUE (declspec_stack
);
2279 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2280 declspec_stack
= TREE_CHAIN (declspec_stack
);
2281 resume_momentary (yyvsp
[-2].itype
); ;
2284 #line 784 "c-parse.y"
2285 { current_declspecs
= TREE_VALUE (declspec_stack
);
2286 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2287 declspec_stack
= TREE_CHAIN (declspec_stack
);
2288 resume_momentary (yyvsp
[-2].itype
); ;
2291 #line 789 "c-parse.y"
2292 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2293 pedwarn ("empty declaration"); ;
2296 #line 792 "c-parse.y"
2297 { pedwarn ("empty declaration"); ;
2300 #line 801 "c-parse.y"
2304 #line 816 "c-parse.y"
2305 { yyval
.itype
= suspend_momentary ();
2306 pending_xref_error ();
2307 declspec_stack
= tree_cons (prefix_attributes
,
2310 split_specs_attrs (yyvsp
[0].ttype
,
2311 ¤t_declspecs
, &prefix_attributes
); ;
2314 #line 827 "c-parse.y"
2315 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2318 #line 832 "c-parse.y"
2319 { current_declspecs
= TREE_VALUE (declspec_stack
);
2320 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2321 declspec_stack
= TREE_CHAIN (declspec_stack
);
2322 resume_momentary (yyvsp
[-2].itype
); ;
2325 #line 837 "c-parse.y"
2326 { current_declspecs
= TREE_VALUE (declspec_stack
);
2327 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2328 declspec_stack
= TREE_CHAIN (declspec_stack
);
2329 resume_momentary (yyvsp
[-2].itype
); ;
2332 #line 842 "c-parse.y"
2333 { current_declspecs
= TREE_VALUE (declspec_stack
);
2334 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2335 declspec_stack
= TREE_CHAIN (declspec_stack
);
2336 resume_momentary (yyvsp
[-1].itype
); ;
2339 #line 847 "c-parse.y"
2340 { current_declspecs
= TREE_VALUE (declspec_stack
);
2341 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2342 declspec_stack
= TREE_CHAIN (declspec_stack
);
2343 resume_momentary (yyvsp
[-1].itype
); ;
2346 #line 852 "c-parse.y"
2347 { shadow_tag (yyvsp
[-1].ttype
); ;
2350 #line 854 "c-parse.y"
2351 { pedwarn ("empty declaration"); ;
2354 #line 856 "c-parse.y"
2355 { pedantic
= yyvsp
[-1].itype
; ;
2358 #line 866 "c-parse.y"
2359 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2362 #line 868 "c-parse.y"
2363 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2366 #line 872 "c-parse.y"
2367 { yyval
.ttype
= NULL_TREE
; ;
2370 #line 874 "c-parse.y"
2371 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2374 #line 876 "c-parse.y"
2375 { if (extra_warnings
)
2376 warning ("`%s' is not at beginning of declaration",
2377 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2378 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2381 #line 881 "c-parse.y"
2382 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2385 #line 886 "c-parse.y"
2386 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2389 #line 888 "c-parse.y"
2390 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2393 #line 893 "c-parse.y"
2394 { yyval
.ttype
= NULL_TREE
; ;
2397 #line 895 "c-parse.y"
2398 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2401 #line 897 "c-parse.y"
2402 { if (extra_warnings
)
2403 warning ("`%s' is not at beginning of declaration",
2404 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2405 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2408 #line 910 "c-parse.y"
2409 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2412 #line 912 "c-parse.y"
2413 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2416 #line 914 "c-parse.y"
2417 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2420 #line 916 "c-parse.y"
2421 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2424 #line 921 "c-parse.y"
2425 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2426 TREE_STATIC (yyval
.ttype
) = 1; ;
2429 #line 924 "c-parse.y"
2430 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2433 #line 926 "c-parse.y"
2434 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2435 TREE_STATIC (yyval
.ttype
) = 1; ;
2438 #line 929 "c-parse.y"
2439 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2440 warning ("`%s' is not at beginning of declaration",
2441 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2442 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2443 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2446 #line 943 "c-parse.y"
2447 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2450 #line 945 "c-parse.y"
2451 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2454 #line 949 "c-parse.y"
2455 { yyval
.ttype
= NULL_TREE
; ;
2458 #line 951 "c-parse.y"
2459 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2462 #line 961 "c-parse.y"
2463 { /* For a typedef name, record the meaning, not the name.
2464 In case of `foo foo, bar;'. */
2465 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2468 #line 965 "c-parse.y"
2469 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2472 #line 967 "c-parse.y"
2473 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2476 #line 989 "c-parse.y"
2477 { yyval
.ttype
= NULL_TREE
; ;
2480 #line 991 "c-parse.y"
2481 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2482 yyval
.ttype
= yyvsp
[-1].ttype
;
2486 #line 998 "c-parse.y"
2487 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2488 yyvsp
[-1].ttype
, prefix_attributes
);
2489 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2492 #line 1003 "c-parse.y"
2494 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2497 #line 1006 "c-parse.y"
2498 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2499 yyvsp
[0].ttype
, prefix_attributes
);
2500 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2504 #line 1014 "c-parse.y"
2505 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2506 yyvsp
[-1].ttype
, prefix_attributes
);
2507 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2510 #line 1019 "c-parse.y"
2512 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2513 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2516 #line 1023 "c-parse.y"
2517 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2518 yyvsp
[0].ttype
, prefix_attributes
);
2519 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2522 #line 1031 "c-parse.y"
2523 { yyval
.ttype
= NULL_TREE
; ;
2526 #line 1033 "c-parse.y"
2527 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2530 #line 1038 "c-parse.y"
2531 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2534 #line 1040 "c-parse.y"
2535 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2538 #line 1045 "c-parse.y"
2539 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2542 #line 1050 "c-parse.y"
2543 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2546 #line 1052 "c-parse.y"
2547 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2550 #line 1057 "c-parse.y"
2551 { yyval
.ttype
= NULL_TREE
; ;
2554 #line 1059 "c-parse.y"
2555 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2558 #line 1061 "c-parse.y"
2559 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2562 #line 1063 "c-parse.y"
2563 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2566 #line 1065 "c-parse.y"
2567 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2570 #line 1083 "c-parse.y"
2571 { really_start_incremental_init (NULL_TREE
);
2572 /* Note that the call to clear_momentary
2573 is in process_init_element. */
2574 push_momentary (); ;
2577 #line 1088 "c-parse.y"
2578 { yyval
.ttype
= pop_init_level (0);
2579 if (yyval
.ttype
== error_mark_node
2580 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2583 pop_momentary_nofree (); ;
2586 #line 1096 "c-parse.y"
2587 { yyval
.ttype
= error_mark_node
; ;
2590 #line 1102 "c-parse.y"
2592 pedwarn ("ANSI C forbids empty initializer braces"); ;
2595 #line 1116 "c-parse.y"
2596 { process_init_element (yyvsp
[0].ttype
); ;
2599 #line 1118 "c-parse.y"
2600 { push_init_level (0); ;
2603 #line 1120 "c-parse.y"
2604 { process_init_element (pop_init_level (0)); ;
2607 #line 1126 "c-parse.y"
2608 { set_init_index (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
); ;
2611 #line 1129 "c-parse.y"
2612 { set_init_index (yyvsp
[-2].ttype
, NULL_TREE
); ;
2615 #line 1132 "c-parse.y"
2616 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2619 #line 1135 "c-parse.y"
2620 { set_init_label (yyvsp
[-1].ttype
); ;
2623 #line 1138 "c-parse.y"
2624 { set_init_label (yyvsp
[-1].ttype
); ;
2627 #line 1144 "c-parse.y"
2628 { push_c_function_context ();
2629 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2630 prefix_attributes
, NULL_TREE
, 1))
2632 pop_c_function_context ();
2635 reinit_parse_for_function (); ;
2638 #line 1153 "c-parse.y"
2639 { store_parm_decls (); ;
2642 #line 1161 "c-parse.y"
2643 { finish_function (1);
2644 pop_c_function_context (); ;
2647 #line 1167 "c-parse.y"
2648 { push_c_function_context ();
2649 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2650 prefix_attributes
, NULL_TREE
, 1))
2652 pop_c_function_context ();
2655 reinit_parse_for_function (); ;
2658 #line 1176 "c-parse.y"
2659 { store_parm_decls (); ;
2662 #line 1184 "c-parse.y"
2663 { finish_function (1);
2664 pop_c_function_context (); ;
2667 #line 1200 "c-parse.y"
2668 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2671 #line 1202 "c-parse.y"
2672 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2675 #line 1207 "c-parse.y"
2676 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2679 #line 1209 "c-parse.y"
2680 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2683 #line 1211 "c-parse.y"
2684 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2687 #line 1218 "c-parse.y"
2688 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2691 #line 1229 "c-parse.y"
2692 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2695 #line 1234 "c-parse.y"
2696 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2699 #line 1236 "c-parse.y"
2700 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2703 #line 1238 "c-parse.y"
2704 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2707 #line 1245 "c-parse.y"
2708 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2711 #line 1254 "c-parse.y"
2712 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2715 #line 1259 "c-parse.y"
2716 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2719 #line 1261 "c-parse.y"
2720 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2723 #line 1263 "c-parse.y"
2724 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2727 #line 1265 "c-parse.y"
2728 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2731 #line 1272 "c-parse.y"
2732 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2735 #line 1278 "c-parse.y"
2736 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2737 /* Start scope of tag before parsing components. */
2741 #line 1282 "c-parse.y"
2742 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2745 #line 1284 "c-parse.y"
2746 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2747 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2751 #line 1288 "c-parse.y"
2752 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2755 #line 1290 "c-parse.y"
2756 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2759 #line 1292 "c-parse.y"
2760 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2763 #line 1294 "c-parse.y"
2764 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2765 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2769 #line 1298 "c-parse.y"
2770 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2773 #line 1300 "c-parse.y"
2774 { yyvsp
[0].itype
= suspend_momentary ();
2775 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2778 #line 1303 "c-parse.y"
2779 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2780 resume_momentary (yyvsp
[-5].itype
); ;
2783 #line 1306 "c-parse.y"
2784 { yyvsp
[0].itype
= suspend_momentary ();
2785 yyval
.ttype
= start_enum (NULL_TREE
); ;
2788 #line 1309 "c-parse.y"
2789 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2790 resume_momentary (yyvsp
[-5].itype
); ;
2793 #line 1312 "c-parse.y"
2794 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2797 #line 1323 "c-parse.y"
2798 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
2801 #line 1328 "c-parse.y"
2802 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2805 #line 1330 "c-parse.y"
2806 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2807 pedwarn ("no semicolon at end of struct or union"); ;
2810 #line 1335 "c-parse.y"
2811 { yyval
.ttype
= NULL_TREE
; ;
2814 #line 1337 "c-parse.y"
2815 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2818 #line 1339 "c-parse.y"
2820 pedwarn ("extra semicolon in struct or union specified"); ;
2823 #line 1354 "c-parse.y"
2824 { yyval
.ttype
= yyvsp
[0].ttype
;
2825 current_declspecs
= TREE_VALUE (declspec_stack
);
2826 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2827 declspec_stack
= TREE_CHAIN (declspec_stack
);
2828 resume_momentary (yyvsp
[-1].itype
); ;
2831 #line 1360 "c-parse.y"
2833 pedwarn ("ANSI C forbids member declarations with no members");
2834 shadow_tag(yyvsp
[0].ttype
);
2835 yyval
.ttype
= NULL_TREE
; ;
2838 #line 1365 "c-parse.y"
2839 { yyval
.ttype
= yyvsp
[0].ttype
;
2840 current_declspecs
= TREE_VALUE (declspec_stack
);
2841 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2842 declspec_stack
= TREE_CHAIN (declspec_stack
);
2843 resume_momentary (yyvsp
[-1].itype
); ;
2846 #line 1371 "c-parse.y"
2848 pedwarn ("ANSI C forbids member declarations with no members");
2849 shadow_tag(yyvsp
[0].ttype
);
2850 yyval
.ttype
= NULL_TREE
; ;
2853 #line 1376 "c-parse.y"
2854 { yyval
.ttype
= NULL_TREE
; ;
2857 #line 1378 "c-parse.y"
2858 { yyval
.ttype
= yyvsp
[0].ttype
;
2859 pedantic
= yyvsp
[-1].itype
; ;
2862 #line 1385 "c-parse.y"
2863 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2866 #line 1390 "c-parse.y"
2867 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2868 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2871 #line 1394 "c-parse.y"
2872 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2873 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2876 #line 1397 "c-parse.y"
2877 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2878 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2881 #line 1409 "c-parse.y"
2882 { if (yyvsp
[-2].ttype
== error_mark_node
)
2883 yyval
.ttype
= yyvsp
[-2].ttype
;
2885 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2888 #line 1414 "c-parse.y"
2889 { yyval
.ttype
= error_mark_node
; ;
2892 #line 1420 "c-parse.y"
2893 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2896 #line 1422 "c-parse.y"
2897 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2900 #line 1427 "c-parse.y"
2901 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2904 #line 1429 "c-parse.y"
2905 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2908 #line 1434 "c-parse.y"
2909 { yyval
.ttype
= NULL_TREE
; ;
2912 #line 1440 "c-parse.y"
2913 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2916 #line 1442 "c-parse.y"
2917 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2920 #line 1447 "c-parse.y"
2921 { yyval
.ttype
= NULL_TREE
; ;
2924 #line 1449 "c-parse.y"
2925 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2928 #line 1454 "c-parse.y"
2929 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2932 #line 1457 "c-parse.y"
2933 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2936 #line 1459 "c-parse.y"
2937 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
2940 #line 1461 "c-parse.y"
2941 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2944 #line 1463 "c-parse.y"
2945 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2948 #line 1465 "c-parse.y"
2949 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2952 #line 1467 "c-parse.y"
2953 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2956 #line 1469 "c-parse.y"
2957 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2960 #line 1471 "c-parse.y"
2961 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
2964 #line 1482 "c-parse.y"
2966 if (pedantic
&& yyvsp
[0].ends_in_label
)
2967 pedwarn ("ANSI C forbids label at end of compound statement");
2971 #line 1491 "c-parse.y"
2972 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
2975 #line 1493 "c-parse.y"
2976 { yyval
.ends_in_label
= 0; ;
2979 #line 1505 "c-parse.y"
2980 { emit_line_note (input_filename
, lineno
);
2984 expand_start_bindings (0);
2988 #line 1518 "c-parse.y"
2990 pedwarn ("ANSI C forbids label declarations"); ;
2993 #line 1529 "c-parse.y"
2995 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
2997 tree label
= shadow_label (TREE_VALUE (link
));
2998 C_DECLARED_LABEL_FLAG (label
) = 1;
2999 declare_nonlocal_label (label
);
3004 #line 1543 "c-parse.y"
3008 #line 1547 "c-parse.y"
3009 { compstmt_count
++; ;
3012 #line 1550 "c-parse.y"
3013 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3016 #line 1552 "c-parse.y"
3017 { emit_line_note (input_filename
, lineno
);
3018 expand_end_bindings (getdecls (), 1, 0);
3019 yyval
.ttype
= poplevel (1, 1, 0);
3020 if (yychar
== CONSTANT
|| yychar
== STRING
)
3021 pop_momentary_nofree ();
3026 #line 1560 "c-parse.y"
3027 { emit_line_note (input_filename
, lineno
);
3028 expand_end_bindings (getdecls (), kept_level_p (), 0);
3029 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3030 if (yychar
== CONSTANT
|| yychar
== STRING
)
3031 pop_momentary_nofree ();
3036 #line 1568 "c-parse.y"
3037 { emit_line_note (input_filename
, lineno
);
3038 expand_end_bindings (getdecls (), kept_level_p (), 0);
3039 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3040 if (yychar
== CONSTANT
|| yychar
== STRING
)
3041 pop_momentary_nofree ();
3046 #line 1588 "c-parse.y"
3047 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3048 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3050 yyval
.itype
= stmt_count
;
3051 if_stmt_file
= yyvsp
[-5].filename
;
3052 if_stmt_line
= yyvsp
[-4].lineno
;
3053 position_after_white_space (); ;
3056 #line 1602 "c-parse.y"
3059 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3060 /* See comment in `while' alternative, above. */
3062 expand_start_loop_continue_elsewhere (1);
3063 position_after_white_space (); ;
3066 #line 1610 "c-parse.y"
3067 { expand_loop_continue_here (); ;
3070 #line 1614 "c-parse.y"
3071 { yyval
.filename
= input_filename
; ;
3074 #line 1618 "c-parse.y"
3075 { yyval
.lineno
= lineno
; ;
3078 #line 1623 "c-parse.y"
3082 #line 1628 "c-parse.y"
3086 #line 1633 "c-parse.y"
3087 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3090 #line 1638 "c-parse.y"
3091 { yyval
.ends_in_label
= 0; ;
3094 #line 1640 "c-parse.y"
3095 { yyval
.ends_in_label
= 1; ;
3098 #line 1646 "c-parse.y"
3102 #line 1649 "c-parse.y"
3104 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3105 /* It appears that this should not be done--that a non-lvalue array
3106 shouldn't get an error if the value isn't used.
3107 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3108 if it appears as a top-level expression,
3109 but says nothing about non-lvalue arrays. */
3111 /* Call default_conversion to get an error
3112 on referring to a register array if pedantic. */
3113 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3114 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3115 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3117 iterator_expand (yyvsp
[-1].ttype
);
3118 clear_momentary (); ;
3121 #line 1666 "c-parse.y"
3122 { c_expand_start_else ();
3123 yyvsp
[-1].itype
= stmt_count
;
3124 position_after_white_space (); ;
3127 #line 1670 "c-parse.y"
3128 { c_expand_end_cond ();
3129 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3130 warning ("empty body in an else-statement"); ;
3133 #line 1674 "c-parse.y"
3134 { c_expand_end_cond ();
3135 /* This warning is here instead of in simple_if, because we
3136 do not want a warning if an empty if is followed by an
3137 else statement. Increment stmt_count so we don't
3138 give a second error if this is a nested `if'. */
3139 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3140 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3141 "empty body in an if-statement"); ;
3144 #line 1686 "c-parse.y"
3145 { c_expand_end_cond (); ;
3148 #line 1688 "c-parse.y"
3150 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3151 /* The emit_nop used to come before emit_line_note,
3152 but that made the nop seem like part of the preceding line.
3153 And that was confusing when the preceding line was
3154 inside of an if statement and was not really executed.
3155 I think it ought to work to put the nop after the line number.
3156 We will see. --rms, July 15, 1991. */
3160 #line 1698 "c-parse.y"
3161 { /* Don't start the loop till we have succeeded
3162 in parsing the end test. This is to make sure
3163 that we end every loop we start. */
3164 expand_start_loop (1);
3165 emit_line_note (input_filename
, lineno
);
3166 expand_exit_loop_if_false (NULL_PTR
,
3167 truthvalue_conversion (yyvsp
[-1].ttype
));
3168 position_after_white_space (); ;
3171 #line 1707 "c-parse.y"
3172 { expand_end_loop (); ;
3175 #line 1710 "c-parse.y"
3176 { emit_line_note (input_filename
, lineno
);
3177 expand_exit_loop_if_false (NULL_PTR
,
3178 truthvalue_conversion (yyvsp
[-2].ttype
));
3180 clear_momentary (); ;
3183 #line 1717 "c-parse.y"
3184 { expand_end_loop ();
3185 clear_momentary (); ;
3188 #line 1721 "c-parse.y"
3190 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3191 /* See comment in `while' alternative, above. */
3193 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3194 /* Next step is to call expand_start_loop_continue_elsewhere,
3195 but wait till after we parse the entire for (...).
3196 Otherwise, invalid input might cause us to call that
3197 fn without calling expand_end_loop. */
3201 #line 1733 "c-parse.y"
3202 { yyvsp
[0].lineno
= lineno
;
3203 yyval
.filename
= input_filename
; ;
3206 #line 1736 "c-parse.y"
3208 /* Start the loop. Doing this after parsing
3209 all the expressions ensures we will end the loop. */
3210 expand_start_loop_continue_elsewhere (1);
3211 /* Emit the end-test, with a line number. */
3212 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3213 if (yyvsp
[-4].ttype
)
3214 expand_exit_loop_if_false (NULL_PTR
,
3215 truthvalue_conversion (yyvsp
[-4].ttype
));
3216 /* Don't let the tree nodes for $9 be discarded by
3217 clear_momentary during the parsing of the next stmt. */
3219 yyvsp
[-3].lineno
= lineno
;
3220 yyvsp
[-2].filename
= input_filename
;
3221 position_after_white_space (); ;
3224 #line 1752 "c-parse.y"
3225 { /* Emit the increment expression, with a line number. */
3226 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3227 expand_loop_continue_here ();
3228 if (yyvsp
[-3].ttype
)
3229 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3230 if (yychar
== CONSTANT
|| yychar
== STRING
)
3231 pop_momentary_nofree ();
3234 expand_end_loop (); ;
3237 #line 1763 "c-parse.y"
3239 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3240 c_expand_start_case (yyvsp
[-1].ttype
);
3241 /* Don't let the tree nodes for $3 be discarded by
3242 clear_momentary during the parsing of the next stmt. */
3244 position_after_white_space (); ;
3247 #line 1771 "c-parse.y"
3248 { expand_end_case (yyvsp
[-3].ttype
);
3249 if (yychar
== CONSTANT
|| yychar
== STRING
)
3250 pop_momentary_nofree ();
3255 #line 1777 "c-parse.y"
3257 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3258 if ( ! expand_exit_something ())
3259 error ("break statement not within loop or switch"); ;
3262 #line 1782 "c-parse.y"
3264 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3265 if (! expand_continue_loop (NULL_PTR
))
3266 error ("continue statement not within a loop"); ;
3269 #line 1787 "c-parse.y"
3271 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3272 c_expand_return (NULL_TREE
); ;
3275 #line 1791 "c-parse.y"
3277 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3278 c_expand_return (yyvsp
[-1].ttype
); ;
3281 #line 1795 "c-parse.y"
3283 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3284 STRIP_NOPS (yyvsp
[-2].ttype
);
3285 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3286 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3287 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3288 expand_asm (yyvsp
[-2].ttype
);
3290 error ("argument of `asm' is not a constant string"); ;
3293 #line 1806 "c-parse.y"
3295 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3296 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3297 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3298 input_filename
, lineno
); ;
3301 #line 1813 "c-parse.y"
3303 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3304 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3305 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3306 input_filename
, lineno
); ;
3309 #line 1821 "c-parse.y"
3311 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3312 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3313 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3314 input_filename
, lineno
); ;
3317 #line 1827 "c-parse.y"
3320 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3321 decl
= lookup_label (yyvsp
[-1].ttype
);
3324 TREE_USED (decl
) = 1;
3330 #line 1838 "c-parse.y"
3332 pedwarn ("ANSI C forbids `goto *expr;'");
3334 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3335 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3338 #line 1853 "c-parse.y"
3340 /* The value returned by this action is */
3341 /* 1 if everything is OK */
3342 /* 0 in case of error or already bound iterator */
3345 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3346 error ("invalid `for (ITERATOR)' syntax");
3347 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3348 error ("`%s' is not an iterator",
3349 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3350 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3351 error ("`for (%s)' inside expansion of same iterator",
3352 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3356 iterator_for_loop_start (yyvsp
[-1].ttype
);
3361 #line 1874 "c-parse.y"
3363 if (yyvsp
[-1].itype
)
3364 iterator_for_loop_end (yyvsp
[-3].ttype
);
3368 #line 1909 "c-parse.y"
3369 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3371 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3375 if (value
!= error_mark_node
)
3380 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3381 pedwarn ("label must have integral type in ANSI C");
3383 success
= pushcase (value
, convert_and_check
,
3387 error ("case label not within a switch statement");
3388 else if (success
== 2)
3390 error ("duplicate case value");
3391 error_with_decl (duplicate
, "this is the first entry for that value");
3393 else if (success
== 3)
3394 warning ("case value out of range");
3395 else if (success
== 5)
3396 error ("case label within scope of cleanup or variable array");
3398 position_after_white_space (); ;
3401 #line 1940 "c-parse.y"
3402 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3403 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3405 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3408 pedwarn ("ANSI C forbids case ranges");
3411 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3414 int success
= pushcase_range (value1
, value2
,
3415 convert_and_check
, label
,
3418 error ("case label not within a switch statement");
3419 else if (success
== 2)
3421 error ("duplicate case value");
3422 error_with_decl (duplicate
, "this is the first entry for that value");
3424 else if (success
== 3)
3425 warning ("case value out of range");
3426 else if (success
== 4)
3427 warning ("empty case range");
3428 else if (success
== 5)
3429 error ("case label within scope of cleanup or variable array");
3431 position_after_white_space (); ;
3434 #line 1971 "c-parse.y"
3438 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3439 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3442 error ("default label not within a switch statement");
3443 else if (success
== 2)
3445 error ("multiple default labels in one switch");
3446 error_with_decl (duplicate
, "this is the first default label");
3448 position_after_white_space (); ;
3451 #line 1986 "c-parse.y"
3452 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
3456 expand_label (label
);
3457 position_after_white_space (); ;
3460 #line 1998 "c-parse.y"
3461 { emit_line_note (input_filename
, lineno
);
3462 yyval
.ttype
= NULL_TREE
; ;
3465 #line 2001 "c-parse.y"
3466 { emit_line_note (input_filename
, lineno
); ;
3469 #line 2006 "c-parse.y"
3470 { yyval
.ttype
= NULL_TREE
; ;
3473 #line 2013 "c-parse.y"
3474 { yyval
.ttype
= NULL_TREE
; ;
3477 #line 2020 "c-parse.y"
3478 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3481 #line 2025 "c-parse.y"
3482 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3485 #line 2030 "c-parse.y"
3486 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3489 #line 2032 "c-parse.y"
3490 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3493 #line 2038 "c-parse.y"
3495 clear_parm_order ();
3496 declare_parm_level (0); ;
3499 #line 2042 "c-parse.y"
3500 { yyval
.ttype
= yyvsp
[0].ttype
;
3501 parmlist_tags_warning ();
3502 poplevel (0, 0, 0); ;
3505 #line 2050 "c-parse.y"
3508 pedwarn ("ANSI C forbids forward parameter declarations");
3509 /* Mark the forward decls as such. */
3510 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3511 TREE_ASM_WRITTEN (parm
) = 1;
3512 clear_parm_order (); ;
3515 #line 2058 "c-parse.y"
3516 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3519 #line 2060 "c-parse.y"
3520 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3523 #line 2066 "c-parse.y"
3524 { yyval
.ttype
= get_parm_info (0); ;
3527 #line 2068 "c-parse.y"
3528 { yyval
.ttype
= get_parm_info (0);
3529 /* Gcc used to allow this as an extension. However, it does
3530 not work for all targets, and thus has been disabled.
3531 Also, since func (...) and func () are indistinguishable,
3532 it caused problems with the code in expand_builtin which
3533 tries to verify that BUILT_IN_NEXT_ARG is being used
3535 error ("ANSI C requires a named argument before `...'");
3539 #line 2078 "c-parse.y"
3540 { yyval
.ttype
= get_parm_info (1); ;
3543 #line 2080 "c-parse.y"
3544 { yyval
.ttype
= get_parm_info (0); ;
3547 #line 2085 "c-parse.y"
3548 { push_parm_decl (yyvsp
[0].ttype
); ;
3551 #line 2087 "c-parse.y"
3552 { push_parm_decl (yyvsp
[0].ttype
); ;
3555 #line 2094 "c-parse.y"
3556 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3558 build_tree_list (prefix_attributes
,
3560 current_declspecs
= TREE_VALUE (declspec_stack
);
3561 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3562 declspec_stack
= TREE_CHAIN (declspec_stack
);
3563 resume_momentary (yyvsp
[-2].itype
); ;
3566 #line 2103 "c-parse.y"
3567 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3569 build_tree_list (prefix_attributes
,
3571 current_declspecs
= TREE_VALUE (declspec_stack
);
3572 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3573 declspec_stack
= TREE_CHAIN (declspec_stack
);
3574 resume_momentary (yyvsp
[-2].itype
); ;
3577 #line 2112 "c-parse.y"
3578 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3580 build_tree_list (prefix_attributes
,
3582 current_declspecs
= TREE_VALUE (declspec_stack
);
3583 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3584 declspec_stack
= TREE_CHAIN (declspec_stack
);
3585 resume_momentary (yyvsp
[-2].itype
); ;
3588 #line 2121 "c-parse.y"
3589 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3591 build_tree_list (prefix_attributes
,
3593 current_declspecs
= TREE_VALUE (declspec_stack
);
3594 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3595 declspec_stack
= TREE_CHAIN (declspec_stack
);
3596 resume_momentary (yyvsp
[-2].itype
); ;
3599 #line 2131 "c-parse.y"
3600 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3602 build_tree_list (prefix_attributes
,
3604 current_declspecs
= TREE_VALUE (declspec_stack
);
3605 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3606 declspec_stack
= TREE_CHAIN (declspec_stack
);
3607 resume_momentary (yyvsp
[-2].itype
); ;
3610 #line 2145 "c-parse.y"
3612 clear_parm_order ();
3613 declare_parm_level (1); ;
3616 #line 2149 "c-parse.y"
3617 { yyval
.ttype
= yyvsp
[0].ttype
;
3618 parmlist_tags_warning ();
3619 poplevel (0, 0, 0); ;
3622 #line 2157 "c-parse.y"
3624 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3625 if (TREE_VALUE (t
) == NULL_TREE
)
3626 error ("`...' in old-style identifier list");
3627 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3630 #line 2167 "c-parse.y"
3631 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3634 #line 2169 "c-parse.y"
3635 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3638 #line 2175 "c-parse.y"
3639 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3642 #line 2177 "c-parse.y"
3643 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3646 #line 2182 "c-parse.y"
3647 { yyval
.itype
= pedantic
;
3651 /* the action file gets copied in in place of this dollarsign */
3652 #line 487 "/usr/share/bison.simple"
3663 short *ssp1
= yyss
- 1;
3664 fprintf (stderr
, "state stack now");
3665 while (ssp1
!= yyssp
)
3666 fprintf (stderr
, " %d", *++ssp1
);
3667 fprintf (stderr
, "\n");
3677 yylsp
->first_line
= yylloc
.first_line
;
3678 yylsp
->first_column
= yylloc
.first_column
;
3679 yylsp
->last_line
= (yylsp
-1)->last_line
;
3680 yylsp
->last_column
= (yylsp
-1)->last_column
;
3685 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3686 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3690 /* Now "shift" the result of the reduction.
3691 Determine what state that goes to,
3692 based on the state we popped back to
3693 and the rule number reduced by. */
3697 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3698 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3699 yystate
= yytable
[yystate
];
3701 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3705 yyerrlab
: /* here on detecting error */
3708 /* If not already recovering from an error, report this error. */
3712 #ifdef YYERROR_VERBOSE
3713 yyn
= yypact
[yystate
];
3715 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3722 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3723 for (x
= (yyn
< 0 ? -yyn
: 0);
3724 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3725 if (yycheck
[x
+ yyn
] == x
)
3726 size
+= strlen(yytname
[x
]) + 15, count
++;
3727 msg
= (char *) malloc(size
+ 15);
3730 strcpy(msg
, "parse error");
3735 for (x
= (yyn
< 0 ? -yyn
: 0);
3736 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3737 if (yycheck
[x
+ yyn
] == x
)
3739 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3740 strcat(msg
, yytname
[x
]);
3749 yyerror ("parse error; also virtual memory exceeded");
3752 #endif /* YYERROR_VERBOSE */
3753 yyerror("parse error");
3757 yyerrlab1
: /* here on error raised explicitly by an action */
3759 if (yyerrstatus
== 3)
3761 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3763 /* return failure if at end of input */
3764 if (yychar
== YYEOF
)
3769 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3775 /* Else will try to reuse lookahead token
3776 after shifting the error token. */
3778 yyerrstatus
= 3; /* Each real token shifted decrements this */
3782 yyerrdefault
: /* current state does not do anything special for the error token. */
3785 /* This is wrong; only states that explicitly want error tokens
3786 should shift them. */
3787 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3788 if (yyn
) goto yydefault
;
3791 yyerrpop
: /* pop the current state because it cannot handle the error token */
3793 if (yyssp
== yyss
) YYABORT
;
3803 short *ssp1
= yyss
- 1;
3804 fprintf (stderr
, "Error: state stack now");
3805 while (ssp1
!= yyssp
)
3806 fprintf (stderr
, " %d", *++ssp1
);
3807 fprintf (stderr
, "\n");
3813 yyn
= yypact
[yystate
];
3818 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3837 fprintf(stderr
, "Shifting error token, ");
3848 #line 2186 "c-parse.y"