2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 282
44 #define ARITHCOMPARE 294
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
53 #define IMPLEMENTATION 303
63 #define OBJECTNAME 313
66 #define OBJC_STRING 316
82 #ifdef MULTIBYTE_CHARS
87 /* Since parsers are distinct for each language, put the language string
89 char *language_string
= "GNU C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
98 typedef union {long itype
; tree ttype
; enum tree_code code
;
99 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
100 #line 203 "c-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
104 static int stmt_count
;
105 static int compstmt_count
;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file
;
110 static int if_stmt_line
;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs
= NULL_TREE
;
114 static tree prefix_attributes
= NULL_TREE
;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack
;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice
;
123 /* Tell yyparse how to print a token's value, if yydebug is set. */
125 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
126 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
138 #define YYFLAG -32768
141 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 239)
143 static const char yytranslate
[] = { 0,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
148 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
150 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
170 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
171 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
172 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
173 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
174 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
175 70, 71, 72, 73, 74, 75
179 static const short yyprhs
[] = { 0,
180 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
181 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
182 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
183 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
184 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
185 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
186 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
187 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
188 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
189 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
190 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
191 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
192 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
193 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
194 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
195 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
196 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
197 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
198 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
199 582, 585, 587, 591, 593, 594, 599, 601, 602, 611,
200 612, 619, 620, 626, 627, 632, 633, 639, 640, 641,
201 647, 648, 649, 655, 657, 659, 663, 667, 672, 676,
202 680, 684, 686, 690, 695, 699, 703, 707, 709, 713,
203 717, 721, 726, 730, 734, 736, 737, 745, 751, 754,
204 755, 763, 769, 772, 773, 782, 783, 791, 794, 795,
205 797, 798, 800, 802, 805, 806, 810, 813, 817, 819,
206 823, 825, 827, 830, 832, 836, 841, 848, 854, 856,
207 860, 862, 864, 868, 871, 874, 875, 877, 879, 882,
208 883, 886, 890, 894, 897, 901, 906, 910, 913, 917,
209 920, 922, 924, 927, 930, 931, 933, 936, 937, 938,
210 940, 942, 945, 949, 951, 954, 956, 959, 966, 972,
211 978, 981, 984, 989, 990, 995, 996, 997, 1001, 1006,
212 1010, 1012, 1014, 1016, 1018, 1021, 1022, 1027, 1029, 1033,
213 1034, 1035, 1043, 1049, 1052, 1053, 1054, 1055, 1068, 1069,
214 1076, 1079, 1082, 1085, 1089, 1096, 1105, 1116, 1129, 1133,
215 1138, 1140, 1142, 1143, 1150, 1154, 1160, 1163, 1166, 1167,
216 1169, 1170, 1172, 1173, 1175, 1177, 1181, 1186, 1188, 1192,
217 1193, 1196, 1199, 1200, 1205, 1208, 1209, 1211, 1213, 1217,
218 1219, 1223, 1228, 1233, 1238, 1243, 1248, 1249, 1252, 1254,
219 1257, 1259, 1263, 1265, 1269
222 static const short yyrhs
[] = { -1,
223 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
224 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
225 0, 238, 88, 0, 122, 136, 77, 0, 129, 122,
226 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
227 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
228 77, 0, 0, 0, 125, 122, 165, 91, 116, 92,
229 196, 0, 125, 122, 165, 1, 0, 0, 0, 129,
230 122, 168, 93, 116, 94, 196, 0, 129, 122, 168,
231 1, 0, 0, 0, 122, 168, 95, 116, 96, 196,
232 0, 122, 168, 1, 0, 3, 0, 4, 0, 43,
233 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
234 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
235 101, 81, 107, 0, 113, 0, 50, 105, 0, 238,
236 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
237 0, 103, 59, 183, 76, 0, 104, 102, 0, 104,
238 59, 183, 76, 0, 33, 105, 0, 34, 105, 0,
239 11, 0, 29, 0, 102, 0, 59, 183, 76, 105,
240 0, 0, 59, 183, 76, 82, 106, 150, 78, 0,
241 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
242 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
243 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
244 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
245 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
246 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
247 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
248 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
249 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
250 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
251 0, 0, 59, 114, 198, 76, 0, 113, 59, 100,
252 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
253 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
254 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
255 10, 0, 203, 204, 119, 0, 117, 0, 191, 0,
256 118, 117, 0, 117, 191, 0, 127, 122, 135, 77,
257 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
258 77, 0, 203, 204, 124, 0, 120, 0, 191, 0,
259 121, 120, 0, 120, 191, 0, 0, 0, 125, 122,
260 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
261 159, 0, 129, 122, 162, 0, 125, 77, 0, 129,
262 77, 0, 238, 124, 0, 133, 126, 0, 129, 133,
263 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
264 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
265 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
266 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
267 130, 7, 0, 130, 5, 0, 133, 132, 0, 185,
268 133, 132, 0, 0, 132, 134, 0, 6, 0, 169,
269 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
270 183, 76, 0, 6, 0, 7, 0, 169, 0, 138,
271 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
272 0, 0, 27, 59, 115, 76, 0, 0, 165, 137,
273 142, 36, 139, 148, 0, 165, 137, 142, 0, 0,
274 168, 137, 142, 36, 141, 148, 0, 168, 137, 142,
275 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
276 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
277 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
278 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
279 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
280 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
281 0, 151, 174, 0, 152, 0, 151, 81, 152, 0,
282 107, 0, 0, 82, 153, 150, 78, 0, 1, 0,
283 0, 60, 107, 10, 107, 83, 36, 154, 152, 0,
284 0, 60, 107, 83, 36, 155, 152, 0, 0, 60,
285 107, 83, 156, 152, 0, 0, 97, 38, 157, 152,
286 0, 0, 58, 97, 36, 158, 152, 0, 0, 0,
287 165, 160, 116, 161, 198, 0, 0, 0, 168, 163,
288 116, 164, 198, 0, 166, 0, 168, 0, 59, 166,
289 76, 0, 166, 59, 233, 0, 166, 60, 99, 83,
290 0, 166, 60, 83, 0, 50, 186, 166, 0, 143,
291 123, 166, 0, 4, 0, 167, 59, 233, 0, 167,
292 60, 99, 83, 0, 167, 60, 83, 0, 50, 186,
293 167, 0, 143, 123, 167, 0, 4, 0, 168, 59,
294 233, 0, 59, 168, 76, 0, 50, 186, 168, 0,
295 168, 60, 99, 83, 0, 168, 60, 83, 0, 143,
296 123, 168, 0, 3, 0, 0, 13, 97, 82, 170,
297 176, 78, 142, 0, 13, 82, 176, 78, 142, 0,
298 13, 97, 0, 0, 14, 97, 82, 171, 176, 78,
299 142, 0, 14, 82, 176, 78, 142, 0, 14, 97,
300 0, 0, 12, 97, 82, 172, 181, 175, 78, 142,
301 0, 0, 12, 82, 173, 181, 175, 78, 142, 0,
302 12, 97, 0, 0, 81, 0, 0, 81, 0, 177,
303 0, 177, 178, 0, 0, 177, 178, 77, 0, 177,
304 77, 0, 131, 122, 179, 0, 131, 0, 185, 122,
305 179, 0, 185, 0, 1, 0, 238, 178, 0, 180,
306 0, 179, 81, 180, 0, 203, 204, 165, 142, 0,
307 203, 204, 165, 38, 107, 142, 0, 203, 204, 38,
308 107, 142, 0, 182, 0, 181, 81, 182, 0, 1,
309 0, 97, 0, 97, 36, 107, 0, 131, 184, 0,
310 185, 184, 0, 0, 187, 0, 7, 0, 185, 7,
311 0, 0, 186, 7, 0, 59, 187, 76, 0, 50,
312 186, 187, 0, 50, 186, 0, 187, 59, 226, 0,
313 187, 60, 99, 83, 0, 187, 60, 83, 0, 59,
314 226, 0, 60, 99, 83, 0, 60, 83, 0, 189,
315 0, 206, 0, 189, 206, 0, 189, 191, 0, 0,
316 188, 0, 1, 77, 0, 0, 0, 194, 0, 195,
317 0, 194, 195, 0, 32, 237, 77, 0, 198, 0,
318 1, 198, 0, 82, 0, 197, 78, 0, 197, 192,
319 193, 121, 190, 78, 0, 197, 192, 193, 1, 78,
320 0, 197, 192, 193, 188, 78, 0, 200, 205, 0,
321 200, 1, 0, 15, 59, 99, 76, 0, 0, 18,
322 202, 205, 17, 0, 0, 0, 203, 204, 208, 0,
323 203, 204, 219, 205, 0, 203, 204, 207, 0, 208,
324 0, 219, 0, 198, 0, 216, 0, 99, 77, 0,
325 0, 199, 16, 209, 205, 0, 199, 0, 199, 16,
326 1, 0, 0, 0, 17, 210, 59, 99, 76, 211,
327 205, 0, 201, 59, 99, 76, 77, 0, 201, 1,
328 0, 0, 0, 0, 19, 59, 221, 77, 212, 221,
329 77, 213, 221, 76, 214, 205, 0, 0, 20, 59,
330 99, 76, 215, 205, 0, 23, 77, 0, 24, 77,
331 0, 25, 77, 0, 25, 99, 77, 0, 27, 220,
332 59, 99, 76, 77, 0, 27, 220, 59, 99, 38,
333 222, 76, 77, 0, 27, 220, 59, 99, 38, 222,
334 38, 222, 76, 77, 0, 27, 220, 59, 99, 38,
335 222, 38, 222, 38, 225, 76, 77, 0, 26, 97,
336 77, 0, 26, 50, 99, 77, 0, 77, 0, 217,
337 0, 0, 19, 59, 113, 76, 218, 205, 0, 21,
338 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
339 38, 0, 97, 38, 0, 0, 7, 0, 0, 99,
340 0, 0, 223, 0, 224, 0, 223, 81, 224, 0,
341 9, 59, 99, 76, 0, 115, 0, 225, 81, 115,
342 0, 0, 227, 228, 0, 230, 76, 0, 0, 231,
343 77, 229, 228, 0, 1, 76, 0, 0, 10, 0,
344 231, 0, 231, 81, 10, 0, 232, 0, 231, 81,
345 232, 0, 125, 122, 167, 142, 0, 125, 122, 168,
346 142, 0, 125, 122, 184, 142, 0, 129, 122, 168,
347 142, 0, 129, 122, 184, 142, 0, 0, 234, 235,
348 0, 228, 0, 236, 76, 0, 3, 0, 236, 81,
349 3, 0, 97, 0, 237, 81, 97, 0, 31, 0
355 static const short yyrline
[] = { 0,
356 232, 237, 251, 253, 253, 254, 256, 258, 259, 267,
357 271, 282, 287, 292, 294, 296, 297, 298, 303, 310,
358 312, 317, 322, 328, 330, 335, 340, 346, 348, 353,
359 360, 362, 365, 367, 369, 371, 373, 375, 377, 381,
360 385, 388, 391, 394, 398, 400, 403, 406, 410, 438,
361 444, 447, 450, 453, 455, 459, 463, 467, 469, 472,
362 476, 503, 505, 507, 509, 511, 513, 515, 517, 519,
363 521, 523, 525, 527, 529, 533, 535, 539, 541, 544,
364 548, 550, 557, 560, 563, 569, 668, 669, 671, 677,
365 679, 693, 716, 718, 720, 724, 730, 732, 737, 739,
366 744, 746, 747, 757, 762, 764, 765, 766, 773, 779,
367 784, 787, 795, 800, 802, 803, 804, 811, 822, 826,
368 832, 837, 842, 847, 849, 851, 860, 863, 867, 869,
369 871, 876, 880, 883, 887, 890, 892, 904, 907, 909,
370 911, 915, 919, 921, 924, 937, 940, 944, 946, 954,
371 955, 956, 960, 962, 968, 969, 970, 973, 975, 978,
372 980, 983, 986, 992, 999, 1001, 1008, 1015, 1018, 1025,
373 1028, 1032, 1035, 1039, 1044, 1047, 1051, 1054, 1056, 1058,
374 1060, 1067, 1069, 1070, 1071, 1076, 1078, 1083, 1091, 1096,
375 1100, 1103, 1105, 1110, 1113, 1115, 1117, 1121, 1124, 1124,
376 1127, 1127, 1130, 1130, 1133, 1133, 1136, 1138, 1149, 1157,
377 1161, 1172, 1180, 1187, 1189, 1194, 1197, 1202, 1204, 1206,
378 1213, 1215, 1223, 1229, 1231, 1233, 1240, 1242, 1248, 1254,
379 1256, 1258, 1260, 1267, 1269, 1272, 1277, 1279, 1283, 1285,
380 1287, 1289, 1293, 1295, 1298, 1301, 1304, 1307, 1311, 1313,
381 1316, 1318, 1322, 1325, 1330, 1332, 1334, 1348, 1355, 1360,
382 1366, 1371, 1373, 1378, 1380, 1384, 1388, 1392, 1402, 1404,
383 1409, 1414, 1417, 1421, 1424, 1428, 1431, 1434, 1437, 1441,
384 1444, 1448, 1452, 1454, 1456, 1458, 1460, 1462, 1464, 1466,
385 1476, 1484, 1486, 1488, 1492, 1494, 1497, 1500, 1511, 1513,
386 1518, 1520, 1523, 1537, 1540, 1543, 1545, 1547, 1555, 1563,
387 1574, 1579, 1582, 1596, 1605, 1609, 1613, 1617, 1623, 1627,
388 1632, 1635, 1640, 1643, 1644, 1661, 1666, 1669, 1681, 1683,
389 1693, 1703, 1704, 1712, 1715, 1727, 1731, 1748, 1758, 1767,
390 1772, 1777, 1782, 1786, 1790, 1801, 1808, 1815, 1822, 1833,
391 1839, 1842, 1847, 1870, 1904, 1935, 1966, 1981, 1992, 1996,
392 2000, 2003, 2008, 2010, 2013, 2015, 2019, 2024, 2027, 2033,
393 2038, 2043, 2045, 2054, 2055, 2061, 2063, 2073, 2075, 2079,
394 2082, 2088, 2098, 2107, 2116, 2126, 2140, 2145, 2150, 2152,
395 2161, 2164, 2169, 2172, 2176
400 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
402 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
403 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
404 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
405 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
406 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
407 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
408 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
409 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
410 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
411 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
412 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
413 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
414 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
415 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
416 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
417 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
418 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
419 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
420 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
421 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
422 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
423 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
424 "structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
425 "component_decl_list2","component_decl","components","component_declarator",
426 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
427 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
428 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
429 "if_prefix","do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt",
430 "lineno_stmt_or_label","stmt_or_label","stmt","@34","@35","@36","@37","@38",
431 "@39","@40","all_iter_stmt","all_iter_stmt_simple","@41","label","maybe_type_qual",
432 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
433 "@42","parmlist_1","@43","parmlist_2","parms","parm","parmlist_or_identifiers",
434 "@44","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
438 static const short yyr1
[] = { 0,
439 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
440 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
441 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
442 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
443 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
444 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
445 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
446 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
447 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
448 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
449 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
450 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
451 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
452 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
453 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
454 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
455 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
456 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
457 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
458 150, 151, 151, 152, 153, 152, 152, 154, 152, 155,
459 152, 156, 152, 157, 152, 158, 152, 160, 161, 159,
460 163, 164, 162, 165, 165, 166, 166, 166, 166, 166,
461 166, 166, 167, 167, 167, 167, 167, 167, 168, 168,
462 168, 168, 168, 168, 168, 170, 169, 169, 169, 171,
463 169, 169, 169, 172, 169, 173, 169, 169, 174, 174,
464 175, 175, 176, 176, 177, 177, 177, 178, 178, 178,
465 178, 178, 178, 179, 179, 180, 180, 180, 181, 181,
466 181, 182, 182, 183, 183, 184, 184, 185, 185, 186,
467 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
468 188, 189, 189, 189, 190, 190, 191, 192, 193, 193,
469 194, 194, 195, 196, 196, 197, 198, 198, 198, 198,
470 199, 199, 200, 202, 201, 203, 204, 205, 205, 206,
471 207, 207, 208, 208, 208, 209, 208, 208, 208, 210,
472 211, 208, 208, 208, 212, 213, 214, 208, 215, 208,
473 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
474 208, 216, 218, 217, 219, 219, 219, 219, 220, 220,
475 221, 221, 222, 222, 223, 223, 224, 225, 225, 227,
476 226, 228, 229, 228, 228, 230, 230, 230, 230, 231,
477 231, 232, 232, 232, 232, 232, 234, 233, 235, 235,
478 236, 236, 237, 237, 238
481 static const short yyr2
[] = { 0,
482 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
483 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
484 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
487 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
488 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
489 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
490 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
491 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
492 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
493 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
494 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
495 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
496 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
497 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
498 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
499 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
500 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
501 2, 1, 3, 1, 0, 4, 1, 0, 8, 0,
502 6, 0, 5, 0, 4, 0, 5, 0, 0, 5,
503 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
504 3, 1, 3, 4, 3, 3, 3, 1, 3, 3,
505 3, 4, 3, 3, 1, 0, 7, 5, 2, 0,
506 7, 5, 2, 0, 8, 0, 7, 2, 0, 1,
507 0, 1, 1, 2, 0, 3, 2, 3, 1, 3,
508 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
509 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
510 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
511 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
512 1, 2, 3, 1, 2, 1, 2, 6, 5, 5,
513 2, 2, 4, 0, 4, 0, 0, 3, 4, 3,
514 1, 1, 1, 1, 2, 0, 4, 1, 3, 0,
515 0, 7, 5, 2, 0, 0, 0, 12, 0, 6,
516 2, 2, 2, 3, 6, 8, 10, 12, 3, 4,
517 1, 1, 0, 6, 3, 5, 2, 2, 0, 1,
518 0, 1, 0, 1, 1, 3, 4, 1, 3, 0,
519 2, 2, 0, 4, 2, 0, 1, 1, 3, 1,
520 3, 4, 4, 4, 4, 4, 0, 2, 1, 2,
524 static const short yydefact
[] = { 3,
525 5, 0, 0, 0, 152, 143, 150, 142, 0, 0,
526 0, 0, 0, 0, 395, 18, 4, 8, 7, 0,
527 118, 118, 138, 129, 139, 172, 151, 0, 6, 16,
528 17, 31, 32, 246, 248, 255, 239, 255, 243, 0,
529 0, 0, 235, 280, 0, 0, 160, 119, 0, 15,
530 0, 14, 0, 140, 129, 141, 145, 144, 127, 173,
531 10, 0, 244, 0, 0, 236, 0, 240, 86, 87,
532 99, 56, 57, 0, 0, 0, 33, 35, 34, 0,
533 36, 37, 0, 38, 39, 0, 0, 40, 58, 0,
534 0, 62, 43, 45, 88, 0, 278, 0, 276, 148,
535 0, 276, 177, 0, 0, 11, 0, 0, 30, 0,
536 387, 0, 0, 170, 222, 280, 0, 0, 158, 119,
537 0, 214, 215, 0, 0, 128, 131, 155, 156, 130,
538 132, 157, 271, 272, 251, 269, 0, 170, 262, 257,
539 118, 254, 118, 0, 255, 170, 255, 54, 55, 49,
540 46, 0, 0, 0, 0, 48, 0, 0, 0, 50,
541 0, 52, 0, 0, 79, 77, 75, 0, 0, 0,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
543 98, 0, 0, 41, 0, 100, 47, 153, 280, 370,
544 0, 274, 277, 146, 154, 279, 148, 275, 183, 184,
545 185, 182, 0, 175, 178, 281, 231, 230, 161, 162,
546 234, 0, 229, 0, 233, 0, 0, 28, 0, 316,
547 106, 317, 169, 171, 0, 0, 13, 0, 0, 22,
548 0, 170, 387, 0, 12, 26, 0, 0, 252, 0,
549 251, 238, 316, 256, 316, 263, 0, 242, 0, 90,
550 89, 306, 298, 0, 0, 9, 44, 0, 0, 85,
551 84, 0, 0, 0, 0, 73, 74, 72, 71, 70,
552 68, 69, 63, 64, 65, 66, 67, 96, 95, 0,
553 42, 0, 284, 0, 288, 0, 290, 0, 370, 0,
554 149, 147, 0, 177, 41, 0, 0, 391, 377, 118,
555 118, 389, 0, 378, 380, 388, 0, 232, 297, 0,
556 108, 103, 107, 0, 167, 220, 216, 159, 221, 20,
557 166, 217, 219, 0, 24, 273, 270, 170, 0, 258,
558 264, 317, 260, 170, 170, 307, 299, 92, 60, 59,
559 51, 53, 0, 0, 78, 76, 93, 94, 283, 282,
560 371, 289, 285, 287, 0, 174, 176, 86, 0, 163,
561 375, 276, 276, 372, 373, 0, 390, 0, 0, 29,
562 304, 104, 118, 118, 135, 0, 0, 164, 218, 0,
563 247, 170, 316, 0, 237, 241, 0, 0, 300, 301,
564 0, 80, 83, 286, 179, 0, 181, 228, 280, 370,
565 119, 170, 170, 170, 280, 170, 170, 0, 379, 381,
566 392, 305, 111, 0, 112, 0, 135, 133, 189, 187,
567 186, 168, 21, 0, 25, 245, 265, 0, 170, 393,
568 0, 0, 0, 316, 0, 0, 115, 317, 292, 302,
569 197, 86, 0, 0, 195, 0, 194, 0, 249, 192,
570 0, 0, 284, 0, 387, 0, 382, 383, 384, 284,
571 385, 386, 374, 0, 0, 162, 134, 137, 136, 0,
572 165, 170, 0, 266, 303, 0, 309, 117, 116, 296,
573 0, 310, 294, 317, 293, 0, 0, 0, 0, 204,
574 61, 0, 191, 81, 180, 226, 280, 227, 223, 225,
575 0, 109, 110, 0, 268, 170, 394, 308, 0, 152,
576 0, 330, 314, 0, 0, 0, 0, 0, 0, 0,
577 0, 359, 351, 0, 0, 113, 118, 118, 323, 328,
578 0, 0, 320, 321, 324, 352, 322, 0, 206, 0,
579 202, 0, 0, 193, 0, 224, 188, 267, 0, 0,
580 316, 361, 0, 0, 357, 341, 342, 343, 0, 0,
581 0, 360, 0, 358, 325, 124, 0, 125, 0, 0,
582 312, 317, 311, 334, 0, 126, 0, 0, 200, 0,
583 196, 205, 0, 0, 0, 362, 45, 0, 0, 0,
584 355, 344, 0, 349, 0, 0, 122, 208, 0, 123,
585 211, 329, 316, 0, 0, 207, 0, 0, 203, 313,
586 0, 315, 353, 335, 339, 0, 350, 0, 120, 0,
587 121, 0, 327, 318, 316, 0, 198, 201, 331, 316,
588 361, 316, 356, 363, 0, 209, 212, 319, 333, 0,
589 316, 354, 0, 340, 0, 0, 364, 365, 345, 0,
590 0, 199, 332, 336, 0, 363, 0, 0, 210, 213,
591 361, 0, 0, 346, 366, 0, 367, 0, 0, 337,
592 368, 0, 347, 316, 0, 0, 338, 348, 369, 0,
596 static const short yydefgoto
[] = { 680,
597 1, 2, 3, 17, 18, 19, 231, 377, 237, 380,
598 113, 310, 446, 86, 153, 280, 88, 89, 90, 91,
599 92, 391, 93, 265, 264, 262, 451, 263, 94, 154,
600 95, 218, 219, 220, 372, 433, 434, 20, 108, 526,
601 300, 59, 373, 418, 301, 23, 99, 194, 24, 130,
602 118, 46, 114, 119, 424, 47, 376, 223, 224, 26,
603 203, 204, 205, 422, 470, 448, 449, 450, 489, 640,
604 608, 580, 543, 577, 597, 620, 650, 600, 622, 651,
605 210, 122, 496, 123, 27, 145, 147, 137, 62, 493,
606 240, 64, 65, 142, 330, 331, 135, 136, 101, 192,
607 102, 104, 193, 435, 436, 481, 221, 337, 388, 389,
608 390, 370, 253, 371, 530, 531, 532, 551, 572, 314,
609 573, 439, 533, 534, 603, 550, 641, 631, 661, 674,
610 632, 535, 536, 630, 537, 563, 588, 646, 647, 648,
611 672, 285, 286, 302, 408, 303, 304, 305, 213, 214,
615 static const short yypact
[] = { 66,
616 82, 2070, 2070, 286,-32768,-32768,-32768,-32768, 77, 84,
617 103, 30, 55, 79,-32768,-32768,-32768,-32768,-32768, 60,
618 113, 405, 142,-32768, 183,-32768,-32768, 2070,-32768,-32768,
619 -32768,-32768,-32768,-32768, 163,-32768, 170,-32768, 173, 1932,
620 1866, 165,-32768,-32768, 60, 35,-32768, 183, 589,-32768,
621 530,-32768, 60, 142,-32768, 183,-32768,-32768, 1138,-32768,
622 -32768, 458,-32768, 192, 267,-32768, 200,-32768,-32768,-32768,
623 -32768,-32768,-32768, 1932, 1932, 229,-32768,-32768,-32768, 1932,
624 -32768,-32768, 850,-32768,-32768, 1932, 206, 211,-32768, 1959,
625 1986,-32768, 2136, 366, 288, 1932,-32768, 243, 161,-32768,
626 271, 438, 842, 237, 150,-32768, 530, 60,-32768, 254,
627 -32768, 1408, 361, 183,-32768,-32768, 530, 106,-32768, 183,
628 732, 389, 413, 112, 1354, 1138,-32768,-32768,-32768,-32768,
629 183,-32768,-32768, 318, 297,-32768, 458, 183,-32768,-32768,
630 412, 306, 639, 824,-32768, 183,-32768,-32768,-32768,-32768,
631 -32768, 315, 321, 322, 331,-32768, 352, 1932, 850,-32768,
632 850,-32768, 1932, 1932, 401,-32768,-32768, 1932, 1932, 1932,
633 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932,-32768,
634 -32768, 229, 229, 1932, 1932,-32768,-32768,-32768,-32768, 161,
635 1421,-32768, 442, 648,-32768,-32768,-32768,-32768,-32768,-32768,
636 -32768,-32768, 93,-32768, 394,-32768, 413,-32768,-32768, 443,
637 413, 466,-32768, 907,-32768, 377, 407,-32768, 323, 59,
638 -32768,-32768, 456, 183, 199, 283,-32768, 530, 530,-32768,
639 361, 183,-32768, 1474,-32768,-32768, 361, 1932, 229, 400,
640 297,-32768,-32768,-32768,-32768,-32768, 409,-32768, 416,-32768,
641 -32768,-32768, 418, 423, 1755,-32768, 2136, 427, 432, 2136,
642 2136, 1932, 479, 1932, 1932, 1725, 2193, 1903, 1130, 1357,
643 960, 960, 455, 455,-32768,-32768,-32768,-32768,-32768, 450,
644 211, 448, 310, 296,-32768, 628,-32768, 457,-32768, 1487,
645 -32768, 648, 465, 842, 2013, 52, 467,-32768,-32768,-32768,
646 1088,-32768, 470, 257,-32768,-32768, 154,-32768,-32768, 57,
647 -32768,-32768,-32768, 861,-32768, 389,-32768,-32768, 389,-32768,
648 512,-32768,-32768, 468,-32768, 2136,-32768, 183, 475, 473,
649 -32768,-32768, 473, 183, 183,-32768, 526,-32768,-32768,-32768,
650 -32768,-32768, 523, 1932, 2171, 2183,-32768,-32768, 442,-32768,
651 -32768,-32768,-32768,-32768, 482,-32768,-32768, 209, 490,-32768,
652 -32768, 177, 67,-32768,-32768, 1058,-32768, 576, 322,-32768,
653 -32768,-32768, 505, 451,-32768, 1343, 57,-32768,-32768, 57,
654 -32768, 183,-32768, 261,-32768,-32768, 229, 944, 526,-32768,
655 1163,-32768, 2065,-32768,-32768, 1932,-32768,-32768,-32768, 67,
656 183, 137, 242, 183,-32768, 242, 183, 628,-32768,-32768,
657 -32768,-32768,-32768, 530,-32768, 60,-32768, 387,-32768,-32768,
658 2136,-32768,-32768, 1343,-32768,-32768,-32768, 1932, 187,-32768,
659 276, 433, 672, 507, 508, 762,-32768,-32768,-32768,-32768,
660 -32768, 549, 229, 1932,-32768, 550, 2136, 514, 516,-32768,
661 1932, 250, 188, 609,-32768, 1540,-32768,-32768,-32768, 216,
662 -32768,-32768,-32768, 309, 325, 155, 387,-32768,-32768, 1163,
663 -32768, 1642, 1932,-32768,-32768, 229,-32768,-32768,-32768,-32768,
664 520,-32768,-32768,-32768,-32768, 1621, 564, 2109, 1163,-32768,
665 -32768, 1223,-32768, 2065,-32768, 459,-32768, 459,-32768,-32768,
666 524,-32768,-32768, 532,-32768, 1642,-32768,-32768, 1701, 573,
667 555,-32768,-32768, 559, 561, 1932, 584, 546, 547, 1879,
668 201, 619,-32768, 590, 553,-32768, 567, 794,-32768, 611,
669 1026, 61,-32768,-32768,-32768,-32768,-32768, 1812,-32768, 1932,
670 600, 569, 1283,-32768, 302,-32768,-32768,-32768, 1932, 591,
671 -32768, 1932, 1932, 1565,-32768,-32768,-32768,-32768, 580, 1932,
672 588,-32768, 610,-32768,-32768,-32768, 530,-32768, 60, 1106,
673 -32768,-32768,-32768,-32768, 1932,-32768, 1283, 2091,-32768, 1283,
674 -32768,-32768, 596, 1932, 665,-32768, 868, 630, 612, 1932,
675 -32768,-32768, 632,-32768, 1932, 350,-32768, 227, 355,-32768,
676 955,-32768,-32768, 1701, 634,-32768, 675, 1283,-32768,-32768,
677 637,-32768,-32768,-32768,-32768, 2158,-32768, 39,-32768, 361,
678 -32768, 361,-32768,-32768,-32768, 641,-32768,-32768,-32768,-32768,
679 1932,-32768,-32768, 705, 642,-32768,-32768,-32768,-32768, 1283,
680 -32768,-32768, 646,-32768, 666, 47, 643,-32768,-32768, 322,
681 322,-32768,-32768,-32768, 1932, 705, 651, 705,-32768,-32768,
682 1932, 653, 48,-32768,-32768, 654,-32768, 466, 655,-32768,
683 288, 303,-32768,-32768, 657, 466,-32768,-32768, 288, 735,
687 static const short yypgoto
[] = {-32768,
688 -32768,-32768,-32768, 65,-32768,-32768,-32768,-32768,-32768,-32768,
689 -32768,-32768, -5,-32768, -40, 446, -137, 424,-32768,-32768,
690 -55,-32768, 399,-32768,-32768,-32768,-32768,-32768, 190,-32768,
691 -191, -207, 527,-32768,-32768, 314,-32768, 22, -98, 215,
692 0, 700,-32768, 339, 7, -7, -15, 560, 11, -149,
693 -366, -45, -107, -52,-32768,-32768,-32768, 202, 14, 53,
694 -32768, 464,-32768, 337,-32768, -378,-32768, -409,-32768,-32768,
695 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
696 -38, -68, -298, -13, -30,-32768,-32768,-32768,-32768,-32768,
697 528, 41,-32768, 620, 522, 391, 635, 537, 1, -79,
698 -11, -89, -139, 344,-32768,-32768, -180,-32768,-32768,-32768,
699 403, -278,-32768, -128,-32768,-32768,-32768,-32768, -95, -286,
700 -495, 358,-32768, 193,-32768,-32768,-32768,-32768,-32768,-32768,
701 -32768,-32768,-32768,-32768, 214,-32768, -556, 147,-32768, 146,
702 -32768, 531,-32768, -233,-32768,-32768,-32768, 449, -195,-32768,
703 -32768,-32768,-32768, 9
710 static const short yytable
[] = { 87,
711 98, 21, 21, 35, 37, 39, 49, 124, 22, 22,
712 28, 28, 121, 232, 54, 25, 25, 222, 148, 149,
713 296, 229, 198, 320, 151, 254, 225, 21, 132, 325,
714 156, 105, 55, 48, 22, 56, 28, 322, 311, 125,
715 187, 25, 51, 53, 291, 384, 281, 464, 226, 141,
716 284, 100, 351, 143, 209, 585, 134, 369, 48, -102,
717 186, 574, 43, 402, 120, -1, 48, 29, 312, 43,
718 150, 216, 131, 144, 643, 100, 634, 60, 67, 32,
719 33, -2, 544, 155, 656, 668, 32, 33, 40, 14,
720 207, 504, 61, 100, 211, 132, 14, 202, 423, 283,
721 60, 425, 232, 105, 666, 32, 33, 623, 60, 44,
722 542, 106, 197, 41, 635, 107, 405, 48, 45, 575,
723 120, 48, 657, 669, 222, 400, 191, 360, 141, 638,
724 120, 134, 143, 582, 642, 222, 644, 42, 252, 131,
725 -102, 222, 291, 349, 282, 653, 57, 332, 58, 332,
726 288, 486, 144, 197, 100, 498, 316, 281, 34, 258,
727 319, 259, 243, 132, 245, 36, 14, 606, 293, 100,
728 609, 100, 60, 294, 463, 318, 278, 279, 677, 43,
729 398, 110, 227, 60, 38, 247, 228, 249, 235, 50,
730 43, 398, 107, 324, 206, 455, 456, 509, 628, 340,
731 596, 43, 115, 32, 33, 206, 14, 437, 111, 112,
732 189, 207, 14, 111, 112, 211, 14, 14, 43, 190,
733 191, 343, 206, 103, 473, 208, 399, 25, 14, 367,
734 652, 32, 33, 134, 368, 400, 191, 399, 120, 43,
735 412, 120, 120, 206, 63, 14, 400, 191, 116, 355,
736 560, 66, 478, 110, 68, 483, -162, 117, 452, 499,
737 284, 132, -162, 43, 115, 405, 14, 139, 469, 138,
738 5, 14, 7, 97, 400, 191, 60, 146, 9, 10,
739 11, 157, 404, 407, 395, 604, 44, 332, 202, 396,
740 14, 158, 438, 54, 13, 45, 186, 15, 428, 25,
741 111, 112, 454, -162, 43, 398, 374, -162, 206, 453,
742 116, 55, 212, 349, 56, 460, 206, 469, 188, 117,
743 349, 362, 363, 217, 375, 495, -105, -105, -105, -105,
744 158, 14, -105, 365, -105, -105, -105, 366, 438, 242,
745 484, 233, 234, 140, -253, 429, 195, 248, 403, 406,
746 -105, 497, 475, 238, 289, 290, 476, 529, 317, 189,
747 45, 217, 30, 31, -316, -316, -316, -316, 190, 191,
748 465, 350, -316, -316, -316, 401, 48, 239, 675, 25,
749 529, 430, 244, 676, 417, 502, 105, 132, -316, 228,
750 250, 468, 128, 129, 414, 416, 251, 120, 9, 10,
751 11, 503, 466, 252, -105, 107, 255, 545, 5, 6,
752 7, 8, 636, 48, 637, 501, 9, 10, 11, 180,
753 181, 25, 182, 183, 184, 185, 619, 120, 256, 48,
754 228, 621, 13, 321, 14, 107, 132, 487, -82, 207,
755 211, 5, -101, 7, 196, 525, 207, 233, 234, 9,
756 10, 11, 295, 60, 5, 57, 7, 58, 133, 308,
757 32, 33, 9, 10, 11, 13, 401, 401, 525, 110,
758 507, 111, 112, 48, 71, 529, 671, 328, 13, 559,
759 524, 52, 187, 309, 679, 527, 334, 189, -259, -259,
760 232, 315, 528, 335, 538, 336, 190, 191, 338, 25,
761 289, 290, 341, 524, 177, 178, 179, 342, 583, 309,
762 477, 586, 589, 160, 162, 561, 344, 455, 456, 593,
763 54, 659, 660, 599, 222, 347, 222, 415, 598, 381,
764 348, 207, 43, 115, 605, 385, 386, 527, 55, 352,
765 356, 56, 361, 611, 528, 364, 538, 378, 567, 569,
766 379, 25, 382, 383, 618, 601, 257, 387, 401, 14,
767 392, 260, 261, 525, 394, 397, 266, 267, 268, 269,
768 270, 271, 272, 273, 274, 275, 276, 277, 411, 116,
769 120, 413, 48, 426, -295, 482, -31, 490, 117, 109,
770 586, 491, -27, -27, -27, -27, 492, 508, 524, 539,
771 -27, -27, -27, 457, 458, 459, 546, 461, 462, 547,
772 -32, 43, 398, 549, 662, 110, -27, 552, -162, 553,
773 586, 555, 556, 557, -162, 562, 570, 564, 297, 565,
774 474, 5, 6, 7, 8, 579, 326, 299, 14, 9,
775 10, 11, 5, 566, 7, 196, 581, 111, 112, 584,
776 9, 10, 11, 128, 129, 13, 592, 14, 497, 9,
777 10, 11, 345, 346, 594, -162, 13, 45, 595, -162,
778 -27, 610, 217, 505, -114, -114, -114, -114, -114, -114,
779 -114, 612, -114, -114, -114, -114, -114, 615, -114, -114,
780 -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
781 -114, -114, -114, -376, -114, -114, 614, 548, 617, 626,
782 627, -114, 629, 645, -114, -261, -261, 639, 649, -114,
783 -114, -114, 654, 658, 655, -114, -114, 664, 667, 670,
784 -114, 673, 230, 678, 681, -19, -19, -19, -19, 682,
785 359, 587, 393, -19, -19, -19, 313, 479, -114, -114,
786 -114, -114, 576, -114, 126, 467, 292, 357, 110, -19,
787 471, -162, 217, 246, -316, -316, 333, -162, 329, -316,
788 -316, 241, -316, 427, 421, 327, -316, 480, -316, -316,
789 -316, -316, -316, -316, -316, -316, -316, -316, -316, 447,
790 -316, 440, -316, 485, -316, -316, 624, 5, 6, 7,
791 8, -316, 663, 665, -316, 9, 10, 11, -162, -316,
792 -316, -316, -162, -19, 410, -316, -316, 625, 0, 353,
793 -316, 13, 421, 14, 139, 0, 472, 5, 0, 7,
794 97, 0, 0, 0, 0, 9, 10, 11, -316, -291,
795 -316, -316, 488, -316, 32, 33, 199, 200, 201, 494,
796 152, 13, 69, 5, 15, 7, 97, 70, 71, 0,
797 72, 9, 10, 11, 5, 6, 7, 8, 447, 0,
798 568, 506, 9, 10, 11, 0, 0, 13, 73, 0,
799 15, 0, 74, 75, 0, 0, 0, 447, 13, 76,
800 447, 0, 77, 0, 0, 0, 0, 78, 79, 80,
801 0, 0, 0, 81, 82, 0, 0, 297, 83, 298,
802 5, 6, 7, 8, 554, 0, 299, 0, 9, 10,
803 11, 180, 181, 0, 182, 183, 184, 185, 84, 85,
804 0, -91, 0, 0, 13, 0, 14, 0, 578, 0,
805 0, 447, 0, 613, 432, 0, -316, -316, -316, -316,
806 -316, -316, -316, 0, -316, -316, -316, -316, -316, 0,
807 -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
808 -316, -316, -316, -316, -316, 447, -316, -316, 447, 0,
809 0, 110, -376, -316, -162, 0, -316, 0, 616, 0,
810 -162, -316, -316, -316, 0, 0, 0, -316, -316, 0,
811 0, 0, -316, 0, 0, 0, 447, 175, 176, 177,
812 178, 179, 0, 111, 112, 0, 0, 0, 0, 0,
813 -316, 0, -316, -316, 0, -316, 571, 0, -316, -316,
814 0, -162, 0, -316, -316, -162, -316, 0, 447, 0,
815 -316, 0, -316, -316, -316, -316, -316, -316, -316, -316,
816 -316, -316, -316, 0, -316, 0, -316, 0, -316, -316,
817 0, 5, 6, 7, 8, -316, 0, 409, -316, 9,
818 10, 11, 0, -316, -316, -316, 0, 0, 0, -316,
819 -316, 0, 0, 0, -316, 13, 0, 14, 0, 0,
820 0, 5, 6, 7, 8, 0, 0, 0, 0, 9,
821 10, 11, -316, 0, -316, -316, 602, -316, -326, -326,
822 0, 0, 0, -326, -326, 13, -326, 14, 0, 0,
823 -326, 0, -326, -326, -326, -326, -326, -326, -326, -326,
824 -326, -326, -326, 0, -326, 0, -326, 0, -326, -326,
825 0, 0, 127, 128, 129, -326, 0, 0, -326, 9,
826 10, 11, 0, -326, -326, -326, 0, 0, 0, -326,
827 -326, 0, 0, 441, -326, 442, 33, 14, 0, 0,
828 70, 71, 0, 72, 172, 173, 174, 175, 176, 177,
829 178, 179, -326, 0, -326, -326, 0, -326, 0, 0,
830 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
831 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
832 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
833 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
834 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
835 -190, 84, 85, 0, 445, 0, 0, 0, 0, 0,
836 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
837 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
838 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
839 443, 83, 444, 441, 0, 442, 33, 0, 0, 0,
840 70, 71, 0, 72, 0, 0, 0, 0, 0, 0,
841 -250, 84, 85, 0, 445, 0, 0, 0, 0, 0,
842 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
843 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
844 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
845 443, 83, 444, 419, 0, 69, 0, 0, 0, 0,
846 70, 71, 0, 72, 236, 0, 0, -23, -23, -23,
847 -23, 84, 85, 0, 445, -23, -23, -23, 0, 0,
848 0, 73, 0, 15, 0, 74, 75, 0, 0, 0,
849 110, -23, 76, -162, 0, 77, 0, 0, 0, -162,
850 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
851 0, 83, 173, 174, 175, 176, 177, 178, 179, 0,
852 69, 0, 111, 112, 0, 70, 71, 0, 72, 0,
853 0, 84, 85, 69, 420, 0, 0, 0, 70, 71,
854 -162, 72, 0, 0, -162, -23, 73, 0, 15, 0,
855 74, 75, 0, 0, 0, 0, 0, 76, 0, 73,
856 77, 15, 0, 74, 75, 78, 79, 80, 0, 0,
857 76, 81, 82, 77, 0, 0, 83, 0, 78, 79,
858 80, 0, 0, 0, 81, 82, 69, 0, 0, 83,
859 0, 70, 71, 0, 72, 0, 84, 85, 0, 69,
860 215, 0, 0, 0, 70, 71, 0, 72, 0, 84,
861 85, 0, 73, 287, 15, 0, 74, 75, 0, 0,
862 0, 0, 0, 76, 0, 73, 77, 15, 0, 74,
863 75, 78, 79, 80, 0, 0, 76, 81, 82, 77,
864 0, 0, 83, 0, 78, 79, 80, 0, 0, 0,
865 81, 82, 69, 0, 0, 83, 0, 70, 71, 0,
866 72, 0, 84, 85, 0, 0, 323, 0, 0, 0,
867 0, 0, 0, 0, 0, 84, 85, 0, 73, 354,
868 15, 0, 74, 75, 590, 0, 0, 0, 0, 76,
869 0, 0, 77, 0, 0, 0, 0, 78, 79, 80,
870 0, 0, 0, 81, 82, 0, 0, 0, 83, 163,
871 164, 165, 591, 166, 167, 168, 169, 170, 171, 172,
872 173, 174, 175, 176, 177, 178, 179, 0, 84, 85,
873 0, 0, 500, 442, 510, 6, 7, 8, 70, 71,
874 0, 72, 9, 10, 11, 511, 0, 512, 513, 514,
875 515, 516, 517, 518, 519, 520, 521, 522, 13, 73,
876 14, 15, 0, 74, 75, 0, 0, 0, 0, 0,
877 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
878 80, 14, 0, 0, 81, 82, 163, 164, 165, 83,
879 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
880 176, 177, 178, 179, 0, 0, 0, 523, 0, 84,
881 85, 0, 252, 442, 33, 0, 0, 0, 70, 71,
882 0, 72, 0, 0, 0, 511, 0, 512, 513, 514,
883 515, 516, 517, 518, 519, 520, 521, 522, 0, 73,
884 0, 15, 0, 74, 75, 0, 0, 0, 0, 0,
885 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
886 80, 0, 0, 0, 81, 82, 0, 69, 0, 83,
887 0, 0, 70, 71, 0, 72, 169, 170, 171, 172,
888 173, 174, 175, 176, 177, 178, 179, 523, 0, 84,
889 85, 0, 252, 73, 0, 15, 0, 74, 75, 0,
890 0, 0, 0, 0, 76, 0, 0, 77, 0, 0,
891 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
892 0, 0, 0, 83, 69, 5, 6, 7, 8, 70,
893 71, 0, 72, 9, 10, 11, 0, 0, 0, 0,
894 0, 0, 0, 84, 85, 0, 339, 0, 0, 13,
895 73, 14, 15, 0, 74, 75, 0, 0, 0, 0,
896 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
897 79, 80, 0, 0, 0, 81, 82, 0, 69, 5,
898 83, 7, 97, 70, 71, 0, 72, 9, 10, 11,
899 0, 69, 0, 0, 0, 0, 70, 71, 0, 72,
900 84, 85, 0, 13, 73, 0, 15, 0, 74, 75,
901 0, 0, 0, 0, 0, 76, 0, 73, 77, 15,
902 0, 74, 75, 78, 79, 80, 0, 0, 76, 81,
903 82, 77, 0, 0, 83, 0, 78, 79, 80, 0,
904 0, 0, 81, 82, 69, 0, 0, 83, 0, 70,
905 71, 0, 72, 0, 84, 85, 171, 172, 173, 174,
906 175, 176, 177, 178, 179, 558, 0, 84, 85, 0,
907 73, 69, 15, 0, 74, 75, 70, 71, 0, 72,
908 0, 76, 0, 0, 77, 0, 0, 0, 0, 78,
909 79, 80, 0, 0, 0, 81, 82, 73, 69, 15,
910 83, 74, 75, 70, 71, 0, 72, 0, 76, 0,
911 0, 77, 0, 0, 0, 0, 78, 79, 80, 0,
912 84, 85, 81, 82, 73, 358, 15, 159, 74, 75,
913 70, 71, 0, 72, 0, 76, 0, 0, 77, 0,
914 0, 0, 0, 78, 79, 80, 0, 84, 85, 81,
915 82, 73, 0, 15, 161, 74, 75, 0, 0, 0,
916 0, 0, 76, 0, 0, 77, 0, 0, 0, 0,
917 78, 79, 80, 0, 84, 85, 81, 82, 0, 0,
918 4, 83, -118, 5, 6, 7, 8, 0, 0, 0,
919 0, 9, 10, 11, 0, 0, 0, 0, 0, 0,
920 0, 84, 85, 0, 0, 0, 12, 13, 0, 14,
921 15, 165, 0, 166, 167, 168, 169, 170, 171, 172,
922 173, 174, 175, 176, 177, 178, 179, 0, 540, -118,
923 0, 0, 0, 0, 0, 163, 164, 165, -118, 166,
924 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
925 177, 178, 179, 163, 164, 165, 16, 166, 167, 168,
926 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
927 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928 163, 164, 165, 607, 166, 167, 168, 169, 170, 171,
929 172, 173, 174, 175, 176, 177, 178, 179, 0, 0,
930 0, 541, 163, 164, 165, 633, 166, 167, 168, 169,
931 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
932 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
933 177, 178, 179, 168, 169, 170, 171, 172, 173, 174,
934 175, 176, 177, 178, 179, 170, 171, 172, 173, 174,
935 175, 176, 177, 178, 179
938 static const short yycheck
[] = { 40,
939 41, 2, 3, 9, 10, 11, 20, 53, 2, 3,
940 2, 3, 51, 121, 22, 2, 3, 113, 74, 75,
941 212, 120, 102, 231, 80, 154, 116, 28, 59, 237,
942 86, 45, 22, 20, 28, 22, 28, 233, 219, 53,
943 96, 28, 21, 22, 194, 332, 184, 414, 117, 65,
944 190, 41, 286, 65, 107, 551, 62, 1, 45, 1,
945 9, 1, 3, 362, 51, 0, 53, 3, 10, 3,
946 76, 112, 59, 65, 631, 65, 38, 25, 38, 3,
947 4, 0, 492, 83, 38, 38, 3, 4, 59, 30,
948 104, 470, 28, 83, 108, 126, 30, 103, 377, 189,
949 48, 380, 210, 117, 661, 3, 4, 603, 56, 50,
950 489, 77, 102, 59, 76, 81, 50, 104, 59, 59,
951 107, 108, 76, 76, 220, 59, 60, 76, 144, 625,
952 117, 137, 144, 543, 630, 231, 632, 59, 82, 126,
953 82, 237, 292, 283, 185, 641, 5, 243, 7, 245,
954 191, 438, 144, 143, 144, 454, 225, 295, 82, 159,
955 229, 161, 141, 194, 143, 82, 30, 577, 76, 159,
956 580, 161, 120, 81, 408, 228, 182, 183, 674, 3,
957 4, 27, 77, 131, 82, 145, 81, 147, 77, 77,
958 3, 4, 81, 234, 7, 59, 60, 484, 608, 255,
959 567, 3, 4, 3, 4, 7, 30, 388, 59, 60,
960 50, 225, 30, 59, 60, 229, 30, 30, 3, 59,
961 60, 262, 7, 59, 38, 76, 50, 214, 30, 76,
962 640, 3, 4, 239, 81, 59, 60, 50, 225, 3,
963 369, 228, 229, 7, 82, 30, 59, 60, 50, 290,
964 50, 82, 433, 27, 82, 436, 30, 59, 396, 455,
965 400, 292, 36, 3, 4, 50, 30, 1, 418, 78,
966 4, 30, 6, 7, 59, 60, 224, 78, 12, 13,
967 14, 76, 362, 363, 76, 572, 50, 383, 294, 81,
968 30, 81, 388, 301, 28, 59, 9, 31, 38, 286,
969 59, 60, 401, 77, 3, 4, 314, 81, 7, 399,
970 50, 301, 59, 453, 301, 405, 7, 467, 76, 59,
971 460, 300, 301, 1, 314, 76, 4, 5, 6, 7,
972 81, 30, 10, 77, 12, 13, 14, 81, 434, 138,
973 436, 59, 60, 77, 78, 384, 76, 146, 362, 363,
974 28, 50, 77, 36, 59, 60, 81, 486, 76, 50,
975 59, 1, 77, 78, 4, 5, 6, 7, 59, 60,
976 416, 76, 12, 13, 14, 362, 363, 81, 76, 366,
977 509, 387, 77, 81, 374, 77, 400, 418, 28, 81,
978 76, 5, 6, 7, 373, 374, 76, 384, 12, 13,
979 14, 77, 416, 82, 82, 81, 76, 497, 4, 5,
980 6, 7, 620, 400, 622, 456, 12, 13, 14, 54,
981 55, 408, 57, 58, 59, 60, 77, 414, 77, 416,
982 81, 77, 28, 232, 30, 81, 467, 443, 38, 453,
983 454, 4, 82, 6, 7, 486, 460, 59, 60, 12,
984 13, 14, 59, 401, 4, 5, 6, 7, 1, 83,
985 3, 4, 12, 13, 14, 28, 453, 454, 509, 27,
986 476, 59, 60, 460, 9, 604, 668, 78, 28, 520,
987 486, 77, 538, 77, 676, 486, 78, 50, 77, 78,
988 598, 36, 486, 78, 486, 78, 59, 60, 76, 486,
989 59, 60, 76, 509, 50, 51, 52, 76, 549, 77,
990 78, 552, 553, 90, 91, 521, 38, 59, 60, 560,
991 528, 650, 651, 569, 620, 76, 622, 77, 567, 328,
992 83, 545, 3, 4, 575, 334, 335, 538, 528, 83,
993 76, 528, 76, 584, 538, 76, 538, 36, 527, 528,
994 83, 538, 78, 81, 595, 569, 158, 32, 545, 30,
995 38, 163, 164, 604, 83, 76, 168, 169, 170, 171,
996 172, 173, 174, 175, 176, 177, 178, 179, 3, 50,
997 567, 77, 569, 382, 78, 78, 38, 38, 59, 1,
998 631, 78, 4, 5, 6, 7, 81, 78, 604, 36,
999 12, 13, 14, 402, 403, 404, 83, 406, 407, 78,
1000 38, 3, 4, 59, 655, 27, 28, 59, 30, 59,
1001 661, 38, 77, 77, 36, 7, 16, 38, 1, 77,
1002 429, 4, 5, 6, 7, 36, 238, 10, 30, 12,
1003 13, 14, 4, 77, 6, 7, 78, 59, 60, 59,
1004 12, 13, 14, 6, 7, 28, 77, 30, 50, 12,
1005 13, 14, 264, 265, 77, 77, 28, 59, 59, 81,
1006 82, 76, 1, 472, 3, 4, 5, 6, 7, 8,
1007 9, 17, 11, 12, 13, 14, 15, 76, 17, 18,
1008 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1009 29, 30, 31, 76, 33, 34, 77, 506, 77, 76,
1010 36, 40, 76, 9, 43, 77, 78, 77, 77, 48,
1011 49, 50, 77, 81, 59, 54, 55, 77, 76, 76,
1012 59, 77, 1, 77, 0, 4, 5, 6, 7, 0,
1013 295, 552, 344, 12, 13, 14, 220, 434, 77, 78,
1014 79, 80, 538, 82, 55, 417, 197, 294, 27, 28,
1015 424, 30, 1, 144, 3, 4, 245, 36, 241, 8,
1016 9, 137, 11, 383, 376, 239, 15, 434, 17, 18,
1017 19, 20, 21, 22, 23, 24, 25, 26, 27, 391,
1018 29, 389, 31, 436, 33, 34, 604, 4, 5, 6,
1019 7, 40, 656, 658, 43, 12, 13, 14, 77, 48,
1020 49, 50, 81, 82, 366, 54, 55, 604, -1, 289,
1021 59, 28, 424, 30, 1, -1, 428, 4, -1, 6,
1022 7, -1, -1, -1, -1, 12, 13, 14, 77, 78,
1023 79, 80, 444, 82, 3, 4, 5, 6, 7, 451,
1024 1, 28, 3, 4, 31, 6, 7, 8, 9, -1,
1025 11, 12, 13, 14, 4, 5, 6, 7, 470, -1,
1026 77, 473, 12, 13, 14, -1, -1, 28, 29, -1,
1027 31, -1, 33, 34, -1, -1, -1, 489, 28, 40,
1028 492, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1029 -1, -1, -1, 54, 55, -1, -1, 1, 59, 3,
1030 4, 5, 6, 7, 516, -1, 10, -1, 12, 13,
1031 14, 54, 55, -1, 57, 58, 59, 60, 79, 80,
1032 -1, 82, -1, -1, 28, -1, 30, -1, 540, -1,
1033 -1, 543, -1, 76, 1, -1, 3, 4, 5, 6,
1034 7, 8, 9, -1, 11, 12, 13, 14, 15, -1,
1035 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1036 27, 28, 29, 30, 31, 577, 33, 34, 580, -1,
1037 -1, 27, 76, 40, 30, -1, 43, -1, 590, -1,
1038 36, 48, 49, 50, -1, -1, -1, 54, 55, -1,
1039 -1, -1, 59, -1, -1, -1, 608, 48, 49, 50,
1040 51, 52, -1, 59, 60, -1, -1, -1, -1, -1,
1041 77, -1, 79, 80, -1, 82, 1, -1, 3, 4,
1042 -1, 77, -1, 8, 9, 81, 11, -1, 640, -1,
1043 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1044 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1045 -1, 4, 5, 6, 7, 40, -1, 10, 43, 12,
1046 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1047 55, -1, -1, -1, 59, 28, -1, 30, -1, -1,
1048 -1, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1049 13, 14, 77, -1, 79, 80, 1, 82, 3, 4,
1050 -1, -1, -1, 8, 9, 28, 11, 30, -1, -1,
1051 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1052 25, 26, 27, -1, 29, -1, 31, -1, 33, 34,
1053 -1, -1, 5, 6, 7, 40, -1, -1, 43, 12,
1054 13, 14, -1, 48, 49, 50, -1, -1, -1, 54,
1055 55, -1, -1, 1, 59, 3, 4, 30, -1, -1,
1056 8, 9, -1, 11, 45, 46, 47, 48, 49, 50,
1057 51, 52, 77, -1, 79, 80, -1, 82, -1, -1,
1058 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1059 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1060 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1061 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1062 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1063 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1064 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1065 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1066 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1067 58, 59, 60, 1, -1, 3, 4, -1, -1, -1,
1068 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1069 78, 79, 80, -1, 82, -1, -1, -1, -1, -1,
1070 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1071 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1072 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1073 58, 59, 60, 1, -1, 3, -1, -1, -1, -1,
1074 8, 9, -1, 11, 1, -1, -1, 4, 5, 6,
1075 7, 79, 80, -1, 82, 12, 13, 14, -1, -1,
1076 -1, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1077 27, 28, 40, 30, -1, 43, -1, -1, -1, 36,
1078 48, 49, 50, -1, -1, -1, 54, 55, -1, -1,
1079 -1, 59, 46, 47, 48, 49, 50, 51, 52, -1,
1080 3, -1, 59, 60, -1, 8, 9, -1, 11, -1,
1081 -1, 79, 80, 3, 82, -1, -1, -1, 8, 9,
1082 77, 11, -1, -1, 81, 82, 29, -1, 31, -1,
1083 33, 34, -1, -1, -1, -1, -1, 40, -1, 29,
1084 43, 31, -1, 33, 34, 48, 49, 50, -1, -1,
1085 40, 54, 55, 43, -1, -1, 59, -1, 48, 49,
1086 50, -1, -1, -1, 54, 55, 3, -1, -1, 59,
1087 -1, 8, 9, -1, 11, -1, 79, 80, -1, 3,
1088 83, -1, -1, -1, 8, 9, -1, 11, -1, 79,
1089 80, -1, 29, 83, 31, -1, 33, 34, -1, -1,
1090 -1, -1, -1, 40, -1, 29, 43, 31, -1, 33,
1091 34, 48, 49, 50, -1, -1, 40, 54, 55, 43,
1092 -1, -1, 59, -1, 48, 49, 50, -1, -1, -1,
1093 54, 55, 3, -1, -1, 59, -1, 8, 9, -1,
1094 11, -1, 79, 80, -1, -1, 83, -1, -1, -1,
1095 -1, -1, -1, -1, -1, 79, 80, -1, 29, 83,
1096 31, -1, 33, 34, 10, -1, -1, -1, -1, 40,
1097 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1098 -1, -1, -1, 54, 55, -1, -1, -1, 59, 35,
1099 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1100 46, 47, 48, 49, 50, 51, 52, -1, 79, 80,
1101 -1, -1, 83, 3, 4, 5, 6, 7, 8, 9,
1102 -1, 11, 12, 13, 14, 15, -1, 17, 18, 19,
1103 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1104 30, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1105 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1106 50, 30, -1, -1, 54, 55, 35, 36, 37, 59,
1107 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1108 49, 50, 51, 52, -1, -1, -1, 77, -1, 79,
1109 80, -1, 82, 3, 4, -1, -1, -1, 8, 9,
1110 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1111 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1112 -1, 31, -1, 33, 34, -1, -1, -1, -1, -1,
1113 40, -1, -1, 43, -1, -1, -1, -1, 48, 49,
1114 50, -1, -1, -1, 54, 55, -1, 3, -1, 59,
1115 -1, -1, 8, 9, -1, 11, 42, 43, 44, 45,
1116 46, 47, 48, 49, 50, 51, 52, 77, -1, 79,
1117 80, -1, 82, 29, -1, 31, -1, 33, 34, -1,
1118 -1, -1, -1, -1, 40, -1, -1, 43, -1, -1,
1119 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1120 -1, -1, -1, 59, 3, 4, 5, 6, 7, 8,
1121 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
1122 -1, -1, -1, 79, 80, -1, 82, -1, -1, 28,
1123 29, 30, 31, -1, 33, 34, -1, -1, -1, -1,
1124 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1125 49, 50, -1, -1, -1, 54, 55, -1, 3, 4,
1126 59, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1127 -1, 3, -1, -1, -1, -1, 8, 9, -1, 11,
1128 79, 80, -1, 28, 29, -1, 31, -1, 33, 34,
1129 -1, -1, -1, -1, -1, 40, -1, 29, 43, 31,
1130 -1, 33, 34, 48, 49, 50, -1, -1, 40, 54,
1131 55, 43, -1, -1, 59, -1, 48, 49, 50, -1,
1132 -1, -1, 54, 55, 3, -1, -1, 59, -1, 8,
1133 9, -1, 11, -1, 79, 80, 44, 45, 46, 47,
1134 48, 49, 50, 51, 52, 77, -1, 79, 80, -1,
1135 29, 3, 31, -1, 33, 34, 8, 9, -1, 11,
1136 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1137 49, 50, -1, -1, -1, 54, 55, 29, 3, 31,
1138 59, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1139 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1140 79, 80, 54, 55, 29, 3, 31, 59, 33, 34,
1141 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1142 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1143 55, 29, -1, 31, 59, 33, 34, -1, -1, -1,
1144 -1, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1145 48, 49, 50, -1, 79, 80, 54, 55, -1, -1,
1146 1, 59, 3, 4, 5, 6, 7, -1, -1, -1,
1147 -1, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1148 -1, 79, 80, -1, -1, -1, 27, 28, -1, 30,
1149 31, 37, -1, 39, 40, 41, 42, 43, 44, 45,
1150 46, 47, 48, 49, 50, 51, 52, -1, 10, 50,
1151 -1, -1, -1, -1, -1, 35, 36, 37, 59, 39,
1152 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1153 50, 51, 52, 35, 36, 37, 77, 39, 40, 41,
1154 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1155 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1156 35, 36, 37, 83, 39, 40, 41, 42, 43, 44,
1157 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1158 -1, 83, 35, 36, 37, 38, 39, 40, 41, 42,
1159 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1160 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1161 50, 51, 52, 41, 42, 43, 44, 45, 46, 47,
1162 48, 49, 50, 51, 52, 43, 44, 45, 46, 47,
1165 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1166 #line 3 "/usr/share/bison.simple"
1168 /* Skeleton output parser for bison,
1169 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1171 This program is free software; you can redistribute it and/or modify
1172 it under the terms of the GNU General Public License as published by
1173 the Free Software Foundation; either version 2, or (at your option)
1176 This program is distributed in the hope that it will be useful,
1177 but WITHOUT ANY WARRANTY; without even the implied warranty of
1178 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1179 GNU General Public License for more details.
1181 You should have received a copy of the GNU General Public License
1182 along with this program; if not, write to the Free Software
1183 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1185 /* As a special exception, when this file is copied by Bison into a
1186 Bison output file, you may use that output file without restriction.
1187 This special exception was added by the Free Software Foundation
1188 in version 1.24 of Bison. */
1192 #define alloca __builtin_alloca
1193 #else /* not GNU C. */
1194 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1196 #else /* not sparc */
1197 #if defined (MSDOS) && !defined (__TURBOC__)
1199 #else /* not MSDOS, or __TURBOC__ */
1203 #else /* not MSDOS, __TURBOC__, or _AIX */
1207 void *alloca (unsigned int);
1209 #else /* not __cplusplus */
1211 #endif /* not __cplusplus */
1213 #endif /* not _AIX */
1214 #endif /* not MSDOS, or __TURBOC__ */
1215 #endif /* not sparc. */
1216 #endif /* not GNU C. */
1217 #endif /* alloca not defined. */
1219 /* This is the parser code that is written into each bison parser
1220 when the %semantic_parser declaration is not specified in the grammar.
1221 It was written by Richard Stallman by simplifying the hairy parser
1222 used when %semantic_parser is specified. */
1224 /* Note: there must be only one dollar sign in this file.
1225 It is replaced by the list of actions, each action
1226 as one case of the switch. */
1228 #define yyerrok (yyerrstatus = 0)
1229 #define yyclearin (yychar = YYEMPTY)
1232 #define YYACCEPT return(0)
1233 #define YYABORT return(1)
1234 #define YYERROR goto yyerrlab1
1235 /* Like YYERROR except do call yyerror.
1236 This remains here temporarily to ease the
1237 transition to the new meaning of YYERROR, for GCC.
1238 Once GCC version 2 has supplanted version 1, this can go. */
1239 #define YYFAIL goto yyerrlab
1240 #define YYRECOVERING() (!!yyerrstatus)
1241 #define YYBACKUP(token, value) \
1243 if (yychar == YYEMPTY && yylen == 1) \
1244 { yychar = (token), yylval = (value); \
1245 yychar1 = YYTRANSLATE (yychar); \
1250 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1254 #define YYERRCODE 256
1257 #define YYLEX yylex()
1263 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1265 #define YYLEX yylex(&yylval, &yylloc)
1267 #else /* not YYLSP_NEEDED */
1269 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1271 #define YYLEX yylex(&yylval)
1273 #endif /* not YYLSP_NEEDED */
1276 /* If nonreentrant, generate the variables here */
1280 int yychar
; /* the lookahead symbol */
1281 YYSTYPE yylval
; /* the semantic value of the */
1282 /* lookahead symbol */
1285 YYLTYPE yylloc
; /* location data for the lookahead */
1289 int yynerrs
; /* number of parse errors so far */
1290 #endif /* not YYPURE */
1293 int yydebug
; /* nonzero means print parse trace */
1294 /* Since this is uninitialized, it does not stop multiple parsers
1298 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1301 #define YYINITDEPTH 200
1304 /* YYMAXDEPTH is the maximum size the stacks can grow to
1305 (effective only if the built-in stack extension method is used). */
1312 #define YYMAXDEPTH 10000
1315 /* Prevent warning if -Wstrict-prototypes. */
1320 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1321 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1322 #else /* not GNU C or C++ */
1325 /* This is the most reliable way to avoid incompatibilities
1326 in available built-in functions on various systems. */
1328 __yy_memcpy (to
, from
, count
)
1333 register char *f
= from
;
1334 register char *t
= to
;
1335 register int i
= count
;
1341 #else /* __cplusplus */
1343 /* This is the most reliable way to avoid incompatibilities
1344 in available built-in functions on various systems. */
1346 __yy_memcpy (char *to
, char *from
, int count
)
1348 register char *f
= from
;
1349 register char *t
= to
;
1350 register int i
= count
;
1359 #line 196 "/usr/share/bison.simple"
1361 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1362 into yyparse. The argument should have type void *.
1363 It should actually point to an object.
1364 Grammar actions can access the variable by casting it
1365 to the proper pointer type. */
1367 #ifdef YYPARSE_PARAM
1369 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1370 #define YYPARSE_PARAM_DECL
1371 #else /* not __cplusplus */
1372 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1373 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1374 #endif /* not __cplusplus */
1375 #else /* not YYPARSE_PARAM */
1376 #define YYPARSE_PARAM_ARG
1377 #define YYPARSE_PARAM_DECL
1378 #endif /* not YYPARSE_PARAM */
1381 yyparse(YYPARSE_PARAM_ARG
)
1384 register int yystate
;
1386 register short *yyssp
;
1387 register YYSTYPE
*yyvsp
;
1388 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1389 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1391 short yyssa
[YYINITDEPTH
]; /* the state stack */
1392 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1394 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1395 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1398 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1399 YYLTYPE
*yyls
= yylsa
;
1402 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1404 #define YYPOPSTACK (yyvsp--, yyssp--)
1407 int yystacksize
= YYINITDEPTH
;
1418 YYSTYPE yyval
; /* the variable used to return */
1419 /* semantic values from the action */
1426 fprintf(stderr
, "Starting parse\n");
1432 yychar
= YYEMPTY
; /* Cause a token to be read. */
1434 /* Initialize stack pointers.
1435 Waste one element of value and location stack
1436 so that they stay on the same level as the state stack.
1437 The wasted elements are never initialized. */
1445 /* Push a new state, which is found in yystate . */
1446 /* In all cases, when you get here, the value and location stacks
1447 have just been pushed. so pushing a state here evens the stacks. */
1452 if (yyssp
>= yyss
+ yystacksize
- 1)
1454 /* Give user a chance to reallocate the stack */
1455 /* Use copies of these so that the &'s don't force the real ones into memory. */
1456 YYSTYPE
*yyvs1
= yyvs
;
1457 short *yyss1
= yyss
;
1459 YYLTYPE
*yyls1
= yyls
;
1462 /* Get the current used size of the three stacks, in elements. */
1463 int size
= yyssp
- yyss
+ 1;
1466 /* Each stack pointer address is followed by the size of
1467 the data in use in that stack, in bytes. */
1469 /* This used to be a conditional around just the two extra args,
1470 but that might be undefined if yyoverflow is a macro. */
1471 yyoverflow("parser stack overflow",
1472 &yyss1
, size
* sizeof (*yyssp
),
1473 &yyvs1
, size
* sizeof (*yyvsp
),
1474 &yyls1
, size
* sizeof (*yylsp
),
1477 yyoverflow("parser stack overflow",
1478 &yyss1
, size
* sizeof (*yyssp
),
1479 &yyvs1
, size
* sizeof (*yyvsp
),
1483 yyss
= yyss1
; yyvs
= yyvs1
;
1487 #else /* no yyoverflow */
1488 /* Extend the stack our own way. */
1489 if (yystacksize
>= YYMAXDEPTH
)
1491 yyerror("parser stack overflow");
1495 if (yystacksize
> YYMAXDEPTH
)
1496 yystacksize
= YYMAXDEPTH
;
1497 yyss
= (short *) alloca (yystacksize
* sizeof (*yyssp
));
1498 __yy_memcpy ((char *)yyss
, (char *)yyss1
, size
* sizeof (*yyssp
));
1499 yyvs
= (YYSTYPE
*) alloca (yystacksize
* sizeof (*yyvsp
));
1500 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
, size
* sizeof (*yyvsp
));
1502 yyls
= (YYLTYPE
*) alloca (yystacksize
* sizeof (*yylsp
));
1503 __yy_memcpy ((char *)yyls
, (char *)yyls1
, size
* sizeof (*yylsp
));
1505 #endif /* no yyoverflow */
1507 yyssp
= yyss
+ size
- 1;
1508 yyvsp
= yyvs
+ size
- 1;
1510 yylsp
= yyls
+ size
- 1;
1515 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1518 if (yyssp
>= yyss
+ yystacksize
- 1)
1524 fprintf(stderr
, "Entering state %d\n", yystate
);
1530 /* Do appropriate processing given the current state. */
1531 /* Read a lookahead token if we need one and don't already have one. */
1534 /* First try to decide what to do without reference to lookahead token. */
1536 yyn
= yypact
[yystate
];
1540 /* Not known => get a lookahead token if don't already have one. */
1542 /* yychar is either YYEMPTY or YYEOF
1543 or a valid token in external form. */
1545 if (yychar
== YYEMPTY
)
1549 fprintf(stderr
, "Reading a token: ");
1554 /* Convert token to internal form (in yychar1) for indexing tables with */
1556 if (yychar
<= 0) /* This means end of input. */
1559 yychar
= YYEOF
; /* Don't call YYLEX any more */
1563 fprintf(stderr
, "Now at end of input.\n");
1568 yychar1
= YYTRANSLATE(yychar
);
1573 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1574 /* Give the individual parser a way to print the precise meaning
1575 of a token, for further debugging info. */
1577 YYPRINT (stderr
, yychar
, yylval
);
1579 fprintf (stderr
, ")\n");
1585 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1590 /* yyn is what to do for this token type in this state.
1591 Negative => reduce, -yyn is rule number.
1592 Positive => shift, yyn is new state.
1593 New state is final state => don't bother to shift,
1594 just return success.
1595 0, or most negative number => error. */
1610 /* Shift the lookahead token. */
1614 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1617 /* Discard the token being shifted unless it is eof. */
1618 if (yychar
!= YYEOF
)
1626 /* count tokens shifted since error; after three, turn off error status. */
1627 if (yyerrstatus
) yyerrstatus
--;
1632 /* Do the default action for the current state. */
1635 yyn
= yydefact
[yystate
];
1639 /* Do a reduction. yyn is the number of a rule to reduce with. */
1643 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1650 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1653 /* Print the symbols being reduced, and their result. */
1654 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1655 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1656 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1664 #line 233 "c-parse.y"
1666 pedwarn ("ANSI C forbids an empty source file");
1671 #line 238 "c-parse.y"
1673 /* In case there were missing closebraces,
1674 get us back to the global binding level. */
1675 while (! global_bindings_p ())
1681 #line 252 "c-parse.y"
1682 {yyval
.ttype
= NULL_TREE
; ;
1685 #line 253 "c-parse.y"
1686 {yyval
.ttype
= NULL_TREE
; ;
1689 #line 260 "c-parse.y"
1690 { STRIP_NOPS (yyvsp
[-2].ttype
);
1691 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1692 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1693 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1694 assemble_asm (yyvsp
[-2].ttype
);
1696 error ("argument of `asm' is not a constant string"); ;
1699 #line 268 "c-parse.y"
1700 { pedantic
= yyvsp
[-1].itype
; ;
1703 #line 273 "c-parse.y"
1705 error ("ANSI C forbids data definition with no type or storage class");
1706 else if (!flag_traditional
)
1707 warning ("data definition has no type or storage class");
1709 current_declspecs
= TREE_VALUE (declspec_stack
);
1710 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1711 declspec_stack
= TREE_CHAIN (declspec_stack
);
1712 resume_momentary (yyvsp
[-2].itype
); ;
1715 #line 283 "c-parse.y"
1716 { current_declspecs
= TREE_VALUE (declspec_stack
);
1717 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1718 declspec_stack
= TREE_CHAIN (declspec_stack
);
1719 resume_momentary (yyvsp
[-2].itype
); ;
1722 #line 288 "c-parse.y"
1723 { current_declspecs
= TREE_VALUE (declspec_stack
);
1724 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1725 declspec_stack
= TREE_CHAIN (declspec_stack
);
1726 resume_momentary (yyvsp
[-2].itype
); ;
1729 #line 293 "c-parse.y"
1730 { pedwarn ("empty declaration"); ;
1733 #line 295 "c-parse.y"
1734 { shadow_tag (yyvsp
[-1].ttype
); ;
1737 #line 299 "c-parse.y"
1739 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1742 #line 305 "c-parse.y"
1743 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1744 prefix_attributes
, NULL_TREE
, 0))
1746 reinit_parse_for_function (); ;
1749 #line 310 "c-parse.y"
1750 { store_parm_decls (); ;
1753 #line 312 "c-parse.y"
1754 { finish_function (0);
1755 current_declspecs
= TREE_VALUE (declspec_stack
);
1756 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1757 declspec_stack
= TREE_CHAIN (declspec_stack
);
1758 resume_momentary (yyvsp
[-5].itype
); ;
1761 #line 318 "c-parse.y"
1762 { current_declspecs
= TREE_VALUE (declspec_stack
);
1763 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1764 declspec_stack
= TREE_CHAIN (declspec_stack
);
1765 resume_momentary (yyvsp
[-2].itype
); ;
1768 #line 323 "c-parse.y"
1769 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1770 prefix_attributes
, NULL_TREE
, 0))
1772 reinit_parse_for_function (); ;
1775 #line 328 "c-parse.y"
1776 { store_parm_decls (); ;
1779 #line 330 "c-parse.y"
1780 { finish_function (0);
1781 current_declspecs
= TREE_VALUE (declspec_stack
);
1782 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1783 declspec_stack
= TREE_CHAIN (declspec_stack
);
1784 resume_momentary (yyvsp
[-5].itype
); ;
1787 #line 336 "c-parse.y"
1788 { current_declspecs
= TREE_VALUE (declspec_stack
);
1789 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1790 declspec_stack
= TREE_CHAIN (declspec_stack
);
1791 resume_momentary (yyvsp
[-2].itype
); ;
1794 #line 341 "c-parse.y"
1795 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1796 prefix_attributes
, NULL_TREE
, 0))
1798 reinit_parse_for_function (); ;
1801 #line 346 "c-parse.y"
1802 { store_parm_decls (); ;
1805 #line 348 "c-parse.y"
1806 { finish_function (0);
1807 current_declspecs
= TREE_VALUE (declspec_stack
);
1808 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1809 declspec_stack
= TREE_CHAIN (declspec_stack
);
1810 resume_momentary (yyvsp
[-5].itype
); ;
1813 #line 354 "c-parse.y"
1814 { current_declspecs
= TREE_VALUE (declspec_stack
);
1815 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1816 declspec_stack
= TREE_CHAIN (declspec_stack
);
1817 resume_momentary (yyvsp
[-2].itype
); ;
1820 #line 366 "c-parse.y"
1821 { yyval
.code
= ADDR_EXPR
; ;
1824 #line 368 "c-parse.y"
1825 { yyval
.code
= NEGATE_EXPR
; ;
1828 #line 370 "c-parse.y"
1829 { yyval
.code
= CONVERT_EXPR
; ;
1832 #line 372 "c-parse.y"
1833 { yyval
.code
= PREINCREMENT_EXPR
; ;
1836 #line 374 "c-parse.y"
1837 { yyval
.code
= PREDECREMENT_EXPR
; ;
1840 #line 376 "c-parse.y"
1841 { yyval
.code
= BIT_NOT_EXPR
; ;
1844 #line 378 "c-parse.y"
1845 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1848 #line 382 "c-parse.y"
1849 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1852 #line 387 "c-parse.y"
1853 { yyval
.ttype
= NULL_TREE
; ;
1856 #line 393 "c-parse.y"
1857 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
1860 #line 395 "c-parse.y"
1861 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
1864 #line 401 "c-parse.y"
1865 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
1868 #line 404 "c-parse.y"
1869 { yyval
.ttype
= yyvsp
[0].ttype
;
1870 pedantic
= yyvsp
[-1].itype
; ;
1873 #line 407 "c-parse.y"
1874 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
1875 overflow_warning (yyval
.ttype
); ;
1878 #line 411 "c-parse.y"
1879 { tree label
= lookup_label (yyvsp
[0].ttype
);
1881 pedwarn ("ANSI C forbids `&&'");
1883 yyval
.ttype
= null_pointer_node
;
1886 TREE_USED (label
) = 1;
1887 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
1888 TREE_CONSTANT (yyval
.ttype
) = 1;
1893 #line 439 "c-parse.y"
1894 { skip_evaluation
--;
1895 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
1896 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
1897 error ("`sizeof' applied to a bit-field");
1898 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
1901 #line 445 "c-parse.y"
1902 { skip_evaluation
--;
1903 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
1906 #line 448 "c-parse.y"
1907 { skip_evaluation
--;
1908 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
1911 #line 451 "c-parse.y"
1912 { skip_evaluation
--;
1913 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
1916 #line 454 "c-parse.y"
1917 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1920 #line 456 "c-parse.y"
1921 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
1924 #line 460 "c-parse.y"
1925 { skip_evaluation
++; ;
1928 #line 464 "c-parse.y"
1929 { skip_evaluation
++; ;
1932 #line 470 "c-parse.y"
1933 { tree type
= groktypename (yyvsp
[-2].ttype
);
1934 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
1937 #line 473 "c-parse.y"
1938 { start_init (NULL_TREE
, NULL
, 0);
1939 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
1940 really_start_incremental_init (yyvsp
[-2].ttype
); ;
1943 #line 477 "c-parse.y"
1945 tree result
= pop_init_level (0);
1946 tree type
= yyvsp
[-5].ttype
;
1950 pedwarn ("ANSI C forbids constructor expressions");
1951 if (TYPE_NAME (type
) != 0)
1953 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
1954 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
1956 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
1960 yyval
.ttype
= result
;
1961 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
1963 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
1970 #line 506 "c-parse.y"
1971 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1974 #line 508 "c-parse.y"
1975 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1978 #line 510 "c-parse.y"
1979 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1982 #line 512 "c-parse.y"
1983 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1986 #line 514 "c-parse.y"
1987 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1990 #line 516 "c-parse.y"
1991 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1994 #line 518 "c-parse.y"
1995 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
1998 #line 520 "c-parse.y"
1999 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2002 #line 522 "c-parse.y"
2003 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2006 #line 524 "c-parse.y"
2007 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2010 #line 526 "c-parse.y"
2011 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2014 #line 528 "c-parse.y"
2015 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2018 #line 530 "c-parse.y"
2019 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2020 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2023 #line 533 "c-parse.y"
2024 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2025 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2028 #line 536 "c-parse.y"
2029 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2030 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2033 #line 539 "c-parse.y"
2034 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2035 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2038 #line 542 "c-parse.y"
2039 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2040 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2043 #line 545 "c-parse.y"
2044 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2045 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2048 #line 548 "c-parse.y"
2049 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2050 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2053 #line 551 "c-parse.y"
2055 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2056 /* Make sure first operand is calculated only once. */
2057 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2058 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2059 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2062 #line 558 "c-parse.y"
2063 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2064 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2067 #line 561 "c-parse.y"
2068 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2069 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
); ;
2072 #line 564 "c-parse.y"
2073 { yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2074 /* This inhibits warnings in truthvalue_conversion. */
2075 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
); ;
2078 #line 571 "c-parse.y"
2080 yyval
.ttype
= lastiddecl
;
2081 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2083 if (yychar
== YYEMPTY
)
2088 /* Ordinary implicit function declaration. */
2089 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2090 assemble_external (yyval
.ttype
);
2091 TREE_USED (yyval
.ttype
) = 1;
2094 else if (current_function_decl
== 0)
2096 error ("`%s' undeclared here (not in a function)",
2097 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2098 yyval
.ttype
= error_mark_node
;
2103 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2104 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2106 error ("`%s' undeclared (first use in this function)",
2107 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2109 if (! undeclared_variable_notice
)
2111 error ("(Each undeclared identifier is reported only once");
2112 error ("for each function it appears in.)");
2113 undeclared_variable_notice
= 1;
2116 yyval
.ttype
= error_mark_node
;
2117 /* Prevent repeated error messages. */
2118 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2119 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2123 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2124 yyval
.ttype
= error_mark_node
;
2125 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2127 /* The first time we see a build-in function used,
2128 if it has not been declared. */
2129 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2130 if (yychar
== YYEMPTY
)
2134 /* Omit the implicit declaration we
2135 would ordinarily do, so we don't lose
2136 the actual built in type.
2137 But print a diagnostic for the mismatch. */
2138 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2139 error ("`%s' implicitly declared as function",
2140 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2141 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2142 != TYPE_MODE (integer_type_node
))
2143 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2145 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2146 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2147 /* If it really returns void, change that to int. */
2148 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2149 TREE_TYPE (yyval
.ttype
)
2150 = build_function_type (integer_type_node
,
2151 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2154 pedwarn ("built-in function `%s' used without declaration",
2155 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2157 /* Do what we would ordinarily do when a fn is used. */
2158 assemble_external (yyval
.ttype
);
2159 TREE_USED (yyval
.ttype
) = 1;
2163 assemble_external (yyval
.ttype
);
2164 TREE_USED (yyval
.ttype
) = 1;
2167 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2169 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2170 /* This is to prevent an enum whose value is 0
2171 from being considered a null pointer constant. */
2172 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2173 TREE_CONSTANT (yyval
.ttype
) = 1;
2178 #line 670 "c-parse.y"
2179 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2182 #line 672 "c-parse.y"
2183 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2184 if (class == 'e' || class == '1'
2185 || class == '2' || class == '<')
2186 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2187 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2190 #line 678 "c-parse.y"
2191 { yyval
.ttype
= error_mark_node
; ;
2194 #line 680 "c-parse.y"
2195 { if (current_function_decl
== 0)
2197 error ("braced-group within expression allowed only inside a function");
2200 /* We must force a BLOCK for this level
2201 so that, if it is not expanded later,
2202 there is a way to turn off the entire subtree of blocks
2203 that are contained in it. */
2205 push_iterator_stack ();
2206 push_label_level ();
2207 yyval
.ttype
= expand_start_stmt_expr (); ;
2210 #line 694 "c-parse.y"
2213 pedwarn ("ANSI C forbids braced-groups within expressions");
2214 pop_iterator_stack ();
2216 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2217 /* The statements have side effects, so the group does. */
2218 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2220 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2222 /* Make a BIND_EXPR for the BLOCK already made. */
2223 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2224 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2225 /* Remove the block from the tree at this point.
2226 It gets put back at the proper place
2227 when the BIND_EXPR is expanded. */
2228 delete_block (yyvsp
[-1].ttype
);
2231 yyval
.ttype
= yyvsp
[-1].ttype
;
2235 #line 717 "c-parse.y"
2236 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2239 #line 719 "c-parse.y"
2240 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2243 #line 721 "c-parse.y"
2245 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2249 #line 725 "c-parse.y"
2251 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2253 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2257 #line 731 "c-parse.y"
2258 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2261 #line 733 "c-parse.y"
2262 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2265 #line 740 "c-parse.y"
2266 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2269 #line 749 "c-parse.y"
2270 { c_mark_varargs ();
2272 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2275 #line 759 "c-parse.y"
2279 #line 775 "c-parse.y"
2280 { current_declspecs
= TREE_VALUE (declspec_stack
);
2281 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2282 declspec_stack
= TREE_CHAIN (declspec_stack
);
2283 resume_momentary (yyvsp
[-2].itype
); ;
2286 #line 780 "c-parse.y"
2287 { current_declspecs
= TREE_VALUE (declspec_stack
);
2288 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2289 declspec_stack
= TREE_CHAIN (declspec_stack
);
2290 resume_momentary (yyvsp
[-2].itype
); ;
2293 #line 785 "c-parse.y"
2294 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2295 pedwarn ("empty declaration"); ;
2298 #line 788 "c-parse.y"
2299 { pedwarn ("empty declaration"); ;
2302 #line 797 "c-parse.y"
2306 #line 812 "c-parse.y"
2307 { yyval
.itype
= suspend_momentary ();
2308 pending_xref_error ();
2309 declspec_stack
= tree_cons (prefix_attributes
,
2312 split_specs_attrs (yyvsp
[0].ttype
,
2313 ¤t_declspecs
, &prefix_attributes
); ;
2316 #line 823 "c-parse.y"
2317 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2320 #line 828 "c-parse.y"
2321 { current_declspecs
= TREE_VALUE (declspec_stack
);
2322 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2323 declspec_stack
= TREE_CHAIN (declspec_stack
);
2324 resume_momentary (yyvsp
[-2].itype
); ;
2327 #line 833 "c-parse.y"
2328 { current_declspecs
= TREE_VALUE (declspec_stack
);
2329 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2330 declspec_stack
= TREE_CHAIN (declspec_stack
);
2331 resume_momentary (yyvsp
[-2].itype
); ;
2334 #line 838 "c-parse.y"
2335 { current_declspecs
= TREE_VALUE (declspec_stack
);
2336 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2337 declspec_stack
= TREE_CHAIN (declspec_stack
);
2338 resume_momentary (yyvsp
[-1].itype
); ;
2341 #line 843 "c-parse.y"
2342 { current_declspecs
= TREE_VALUE (declspec_stack
);
2343 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2344 declspec_stack
= TREE_CHAIN (declspec_stack
);
2345 resume_momentary (yyvsp
[-1].itype
); ;
2348 #line 848 "c-parse.y"
2349 { shadow_tag (yyvsp
[-1].ttype
); ;
2352 #line 850 "c-parse.y"
2353 { pedwarn ("empty declaration"); ;
2356 #line 852 "c-parse.y"
2357 { pedantic
= yyvsp
[-1].itype
; ;
2360 #line 862 "c-parse.y"
2361 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2364 #line 864 "c-parse.y"
2365 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2368 #line 868 "c-parse.y"
2369 { yyval
.ttype
= NULL_TREE
; ;
2372 #line 870 "c-parse.y"
2373 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2376 #line 872 "c-parse.y"
2377 { if (extra_warnings
)
2378 warning ("`%s' is not at beginning of declaration",
2379 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2380 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2383 #line 877 "c-parse.y"
2384 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2387 #line 882 "c-parse.y"
2388 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2391 #line 884 "c-parse.y"
2392 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2395 #line 889 "c-parse.y"
2396 { yyval
.ttype
= NULL_TREE
; ;
2399 #line 891 "c-parse.y"
2400 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2403 #line 893 "c-parse.y"
2404 { if (extra_warnings
)
2405 warning ("`%s' is not at beginning of declaration",
2406 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2407 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2410 #line 906 "c-parse.y"
2411 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2414 #line 908 "c-parse.y"
2415 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2418 #line 910 "c-parse.y"
2419 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2422 #line 912 "c-parse.y"
2423 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2426 #line 917 "c-parse.y"
2427 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2428 TREE_STATIC (yyval
.ttype
) = 1; ;
2431 #line 920 "c-parse.y"
2432 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2435 #line 922 "c-parse.y"
2436 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2437 TREE_STATIC (yyval
.ttype
) = 1; ;
2440 #line 925 "c-parse.y"
2441 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2442 warning ("`%s' is not at beginning of declaration",
2443 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2444 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2445 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2448 #line 939 "c-parse.y"
2449 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2452 #line 941 "c-parse.y"
2453 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2456 #line 945 "c-parse.y"
2457 { yyval
.ttype
= NULL_TREE
; ;
2460 #line 947 "c-parse.y"
2461 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2464 #line 957 "c-parse.y"
2465 { /* For a typedef name, record the meaning, not the name.
2466 In case of `foo foo, bar;'. */
2467 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2470 #line 961 "c-parse.y"
2471 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2474 #line 963 "c-parse.y"
2475 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2478 #line 985 "c-parse.y"
2479 { yyval
.ttype
= NULL_TREE
; ;
2482 #line 987 "c-parse.y"
2483 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2484 yyval
.ttype
= yyvsp
[-1].ttype
;
2488 #line 994 "c-parse.y"
2489 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2490 yyvsp
[-1].ttype
, prefix_attributes
);
2491 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2494 #line 999 "c-parse.y"
2496 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2499 #line 1002 "c-parse.y"
2500 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2501 yyvsp
[0].ttype
, prefix_attributes
);
2502 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2506 #line 1010 "c-parse.y"
2507 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2508 yyvsp
[-1].ttype
, prefix_attributes
);
2509 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2512 #line 1015 "c-parse.y"
2514 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2515 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2518 #line 1019 "c-parse.y"
2519 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2520 yyvsp
[0].ttype
, prefix_attributes
);
2521 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2524 #line 1027 "c-parse.y"
2525 { yyval
.ttype
= NULL_TREE
; ;
2528 #line 1029 "c-parse.y"
2529 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2532 #line 1034 "c-parse.y"
2533 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2536 #line 1036 "c-parse.y"
2537 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2540 #line 1041 "c-parse.y"
2541 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2544 #line 1046 "c-parse.y"
2545 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2548 #line 1048 "c-parse.y"
2549 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2552 #line 1053 "c-parse.y"
2553 { yyval
.ttype
= NULL_TREE
; ;
2556 #line 1055 "c-parse.y"
2557 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2560 #line 1057 "c-parse.y"
2561 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2564 #line 1059 "c-parse.y"
2565 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2568 #line 1061 "c-parse.y"
2569 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2572 #line 1079 "c-parse.y"
2573 { really_start_incremental_init (NULL_TREE
);
2574 /* Note that the call to clear_momentary
2575 is in process_init_element. */
2576 push_momentary (); ;
2579 #line 1084 "c-parse.y"
2580 { yyval
.ttype
= pop_init_level (0);
2581 if (yyval
.ttype
== error_mark_node
2582 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
2585 pop_momentary_nofree (); ;
2588 #line 1092 "c-parse.y"
2589 { yyval
.ttype
= error_mark_node
; ;
2592 #line 1098 "c-parse.y"
2594 pedwarn ("ANSI C forbids empty initializer braces"); ;
2597 #line 1112 "c-parse.y"
2598 { process_init_element (yyvsp
[0].ttype
); ;
2601 #line 1114 "c-parse.y"
2602 { push_init_level (0); ;
2605 #line 1116 "c-parse.y"
2606 { process_init_element (pop_init_level (0)); ;
2609 #line 1122 "c-parse.y"
2610 { set_init_index (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
); ;
2613 #line 1125 "c-parse.y"
2614 { set_init_index (yyvsp
[-2].ttype
, NULL_TREE
); ;
2617 #line 1128 "c-parse.y"
2618 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2621 #line 1131 "c-parse.y"
2622 { set_init_label (yyvsp
[-1].ttype
); ;
2625 #line 1134 "c-parse.y"
2626 { set_init_label (yyvsp
[-1].ttype
); ;
2629 #line 1140 "c-parse.y"
2630 { push_c_function_context ();
2631 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2632 prefix_attributes
, NULL_TREE
, 1))
2634 pop_c_function_context ();
2637 reinit_parse_for_function (); ;
2640 #line 1149 "c-parse.y"
2641 { store_parm_decls (); ;
2644 #line 1157 "c-parse.y"
2645 { finish_function (1);
2646 pop_c_function_context (); ;
2649 #line 1163 "c-parse.y"
2650 { push_c_function_context ();
2651 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2652 prefix_attributes
, NULL_TREE
, 1))
2654 pop_c_function_context ();
2657 reinit_parse_for_function (); ;
2660 #line 1172 "c-parse.y"
2661 { store_parm_decls (); ;
2664 #line 1180 "c-parse.y"
2665 { finish_function (1);
2666 pop_c_function_context (); ;
2669 #line 1196 "c-parse.y"
2670 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2673 #line 1198 "c-parse.y"
2674 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2677 #line 1203 "c-parse.y"
2678 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2681 #line 1205 "c-parse.y"
2682 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2685 #line 1207 "c-parse.y"
2686 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2689 #line 1214 "c-parse.y"
2690 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2693 #line 1225 "c-parse.y"
2694 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2697 #line 1230 "c-parse.y"
2698 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2701 #line 1232 "c-parse.y"
2702 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2705 #line 1234 "c-parse.y"
2706 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2709 #line 1241 "c-parse.y"
2710 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2713 #line 1250 "c-parse.y"
2714 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2717 #line 1255 "c-parse.y"
2718 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2721 #line 1257 "c-parse.y"
2722 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2725 #line 1259 "c-parse.y"
2726 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2729 #line 1261 "c-parse.y"
2730 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2733 #line 1268 "c-parse.y"
2734 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2737 #line 1274 "c-parse.y"
2738 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2739 /* Start scope of tag before parsing components. */
2743 #line 1278 "c-parse.y"
2744 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2747 #line 1280 "c-parse.y"
2748 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2749 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2753 #line 1284 "c-parse.y"
2754 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2757 #line 1286 "c-parse.y"
2758 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2761 #line 1288 "c-parse.y"
2762 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2765 #line 1290 "c-parse.y"
2766 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2767 yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2771 #line 1294 "c-parse.y"
2772 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2775 #line 1296 "c-parse.y"
2776 { yyvsp
[0].itype
= suspend_momentary ();
2777 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2780 #line 1299 "c-parse.y"
2781 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2782 resume_momentary (yyvsp
[-5].itype
); ;
2785 #line 1302 "c-parse.y"
2786 { yyvsp
[0].itype
= suspend_momentary ();
2787 yyval
.ttype
= start_enum (NULL_TREE
); ;
2790 #line 1305 "c-parse.y"
2791 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), yyvsp
[0].ttype
);
2792 resume_momentary (yyvsp
[-5].itype
); ;
2795 #line 1308 "c-parse.y"
2796 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2799 #line 1319 "c-parse.y"
2800 { if (pedantic
) pedwarn ("comma at end of enumerator list"); ;
2803 #line 1324 "c-parse.y"
2804 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2807 #line 1326 "c-parse.y"
2808 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2809 pedwarn ("no semicolon at end of struct or union"); ;
2812 #line 1331 "c-parse.y"
2813 { yyval
.ttype
= NULL_TREE
; ;
2816 #line 1333 "c-parse.y"
2817 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
2820 #line 1335 "c-parse.y"
2822 pedwarn ("extra semicolon in struct or union specified"); ;
2825 #line 1350 "c-parse.y"
2826 { yyval
.ttype
= yyvsp
[0].ttype
;
2827 current_declspecs
= TREE_VALUE (declspec_stack
);
2828 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2829 declspec_stack
= TREE_CHAIN (declspec_stack
);
2830 resume_momentary (yyvsp
[-1].itype
); ;
2833 #line 1356 "c-parse.y"
2835 pedwarn ("ANSI C forbids member declarations with no members");
2836 shadow_tag(yyvsp
[0].ttype
);
2837 yyval
.ttype
= NULL_TREE
; ;
2840 #line 1361 "c-parse.y"
2841 { yyval
.ttype
= yyvsp
[0].ttype
;
2842 current_declspecs
= TREE_VALUE (declspec_stack
);
2843 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2844 declspec_stack
= TREE_CHAIN (declspec_stack
);
2845 resume_momentary (yyvsp
[-1].itype
); ;
2848 #line 1367 "c-parse.y"
2850 pedwarn ("ANSI C forbids member declarations with no members");
2851 shadow_tag(yyvsp
[0].ttype
);
2852 yyval
.ttype
= NULL_TREE
; ;
2855 #line 1372 "c-parse.y"
2856 { yyval
.ttype
= NULL_TREE
; ;
2859 #line 1374 "c-parse.y"
2860 { yyval
.ttype
= yyvsp
[0].ttype
;
2861 pedantic
= yyvsp
[-1].itype
; ;
2864 #line 1381 "c-parse.y"
2865 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2868 #line 1386 "c-parse.y"
2869 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
2870 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2873 #line 1390 "c-parse.y"
2874 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
2875 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2878 #line 1393 "c-parse.y"
2879 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
2880 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
2883 #line 1405 "c-parse.y"
2884 { if (yyvsp
[-2].ttype
== error_mark_node
)
2885 yyval
.ttype
= yyvsp
[-2].ttype
;
2887 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
2890 #line 1410 "c-parse.y"
2891 { yyval
.ttype
= error_mark_node
; ;
2894 #line 1416 "c-parse.y"
2895 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
2898 #line 1418 "c-parse.y"
2899 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2902 #line 1423 "c-parse.y"
2903 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2906 #line 1425 "c-parse.y"
2907 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2910 #line 1430 "c-parse.y"
2911 { yyval
.ttype
= NULL_TREE
; ;
2914 #line 1436 "c-parse.y"
2915 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2918 #line 1438 "c-parse.y"
2919 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2922 #line 1443 "c-parse.y"
2923 { yyval
.ttype
= NULL_TREE
; ;
2926 #line 1445 "c-parse.y"
2927 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2930 #line 1450 "c-parse.y"
2931 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2934 #line 1453 "c-parse.y"
2935 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2938 #line 1455 "c-parse.y"
2939 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
2942 #line 1457 "c-parse.y"
2943 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2946 #line 1459 "c-parse.y"
2947 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2950 #line 1461 "c-parse.y"
2951 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2954 #line 1463 "c-parse.y"
2955 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2958 #line 1465 "c-parse.y"
2959 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2962 #line 1467 "c-parse.y"
2963 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
2966 #line 1478 "c-parse.y"
2968 if (pedantic
&& yyvsp
[0].ends_in_label
)
2969 pedwarn ("ANSI C forbids label at end of compound statement");
2973 #line 1487 "c-parse.y"
2974 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
2977 #line 1489 "c-parse.y"
2978 { yyval
.ends_in_label
= 0; ;
2981 #line 1501 "c-parse.y"
2982 { emit_line_note (input_filename
, lineno
);
2986 expand_start_bindings (0);
2990 #line 1514 "c-parse.y"
2992 pedwarn ("ANSI C forbids label declarations"); ;
2995 #line 1525 "c-parse.y"
2997 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
2999 tree label
= shadow_label (TREE_VALUE (link
));
3000 C_DECLARED_LABEL_FLAG (label
) = 1;
3001 declare_nonlocal_label (label
);
3006 #line 1539 "c-parse.y"
3010 #line 1543 "c-parse.y"
3011 { compstmt_count
++; ;
3014 #line 1546 "c-parse.y"
3015 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3018 #line 1548 "c-parse.y"
3019 { emit_line_note (input_filename
, lineno
);
3020 expand_end_bindings (getdecls (), 1, 0);
3021 yyval
.ttype
= poplevel (1, 1, 0);
3022 if (yychar
== CONSTANT
|| yychar
== STRING
)
3023 pop_momentary_nofree ();
3028 #line 1556 "c-parse.y"
3029 { emit_line_note (input_filename
, lineno
);
3030 expand_end_bindings (getdecls (), kept_level_p (), 0);
3031 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3032 if (yychar
== CONSTANT
|| yychar
== STRING
)
3033 pop_momentary_nofree ();
3038 #line 1564 "c-parse.y"
3039 { emit_line_note (input_filename
, lineno
);
3040 expand_end_bindings (getdecls (), kept_level_p (), 0);
3041 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3042 if (yychar
== CONSTANT
|| yychar
== STRING
)
3043 pop_momentary_nofree ();
3048 #line 1584 "c-parse.y"
3049 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3050 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3052 yyval
.itype
= stmt_count
;
3053 if_stmt_file
= yyvsp
[-5].filename
;
3054 if_stmt_line
= yyvsp
[-4].lineno
;
3055 position_after_white_space (); ;
3058 #line 1598 "c-parse.y"
3061 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3062 /* See comment in `while' alternative, above. */
3064 expand_start_loop_continue_elsewhere (1);
3065 position_after_white_space (); ;
3068 #line 1606 "c-parse.y"
3069 { expand_loop_continue_here (); ;
3072 #line 1610 "c-parse.y"
3073 { yyval
.filename
= input_filename
; ;
3076 #line 1614 "c-parse.y"
3077 { yyval
.lineno
= lineno
; ;
3080 #line 1619 "c-parse.y"
3084 #line 1624 "c-parse.y"
3088 #line 1629 "c-parse.y"
3089 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3092 #line 1634 "c-parse.y"
3093 { yyval
.ends_in_label
= 0; ;
3096 #line 1636 "c-parse.y"
3097 { yyval
.ends_in_label
= 1; ;
3100 #line 1642 "c-parse.y"
3104 #line 1645 "c-parse.y"
3106 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3107 /* It appears that this should not be done--that a non-lvalue array
3108 shouldn't get an error if the value isn't used.
3109 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3110 if it appears as a top-level expression,
3111 but says nothing about non-lvalue arrays. */
3113 /* Call default_conversion to get an error
3114 on referring to a register array if pedantic. */
3115 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3116 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3117 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3119 iterator_expand (yyvsp
[-1].ttype
);
3120 clear_momentary (); ;
3123 #line 1662 "c-parse.y"
3124 { c_expand_start_else ();
3125 yyvsp
[-1].itype
= stmt_count
;
3126 position_after_white_space (); ;
3129 #line 1666 "c-parse.y"
3130 { c_expand_end_cond ();
3131 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3132 warning ("empty body in an else-statement"); ;
3135 #line 1670 "c-parse.y"
3136 { c_expand_end_cond ();
3137 /* This warning is here instead of in simple_if, because we
3138 do not want a warning if an empty if is followed by an
3139 else statement. Increment stmt_count so we don't
3140 give a second error if this is a nested `if'. */
3141 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3142 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3143 "empty body in an if-statement"); ;
3146 #line 1682 "c-parse.y"
3147 { c_expand_end_cond (); ;
3150 #line 1684 "c-parse.y"
3152 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3153 /* The emit_nop used to come before emit_line_note,
3154 but that made the nop seem like part of the preceding line.
3155 And that was confusing when the preceding line was
3156 inside of an if statement and was not really executed.
3157 I think it ought to work to put the nop after the line number.
3158 We will see. --rms, July 15, 1991. */
3162 #line 1694 "c-parse.y"
3163 { /* Don't start the loop till we have succeeded
3164 in parsing the end test. This is to make sure
3165 that we end every loop we start. */
3166 expand_start_loop (1);
3167 emit_line_note (input_filename
, lineno
);
3168 expand_exit_loop_if_false (NULL_PTR
,
3169 truthvalue_conversion (yyvsp
[-1].ttype
));
3170 position_after_white_space (); ;
3173 #line 1703 "c-parse.y"
3174 { expand_end_loop (); ;
3177 #line 1706 "c-parse.y"
3178 { emit_line_note (input_filename
, lineno
);
3179 expand_exit_loop_if_false (NULL_PTR
,
3180 truthvalue_conversion (yyvsp
[-2].ttype
));
3182 clear_momentary (); ;
3185 #line 1713 "c-parse.y"
3186 { expand_end_loop ();
3187 clear_momentary (); ;
3190 #line 1717 "c-parse.y"
3192 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3193 /* See comment in `while' alternative, above. */
3195 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3196 /* Next step is to call expand_start_loop_continue_elsewhere,
3197 but wait till after we parse the entire for (...).
3198 Otherwise, invalid input might cause us to call that
3199 fn without calling expand_end_loop. */
3203 #line 1729 "c-parse.y"
3204 { yyvsp
[0].lineno
= lineno
;
3205 yyval
.filename
= input_filename
; ;
3208 #line 1732 "c-parse.y"
3210 /* Start the loop. Doing this after parsing
3211 all the expressions ensures we will end the loop. */
3212 expand_start_loop_continue_elsewhere (1);
3213 /* Emit the end-test, with a line number. */
3214 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3215 if (yyvsp
[-4].ttype
)
3216 expand_exit_loop_if_false (NULL_PTR
,
3217 truthvalue_conversion (yyvsp
[-4].ttype
));
3218 /* Don't let the tree nodes for $9 be discarded by
3219 clear_momentary during the parsing of the next stmt. */
3221 yyvsp
[-3].lineno
= lineno
;
3222 yyvsp
[-2].filename
= input_filename
;
3223 position_after_white_space (); ;
3226 #line 1748 "c-parse.y"
3227 { /* Emit the increment expression, with a line number. */
3228 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3229 expand_loop_continue_here ();
3230 if (yyvsp
[-3].ttype
)
3231 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3232 if (yychar
== CONSTANT
|| yychar
== STRING
)
3233 pop_momentary_nofree ();
3236 expand_end_loop (); ;
3239 #line 1759 "c-parse.y"
3241 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3242 c_expand_start_case (yyvsp
[-1].ttype
);
3243 /* Don't let the tree nodes for $3 be discarded by
3244 clear_momentary during the parsing of the next stmt. */
3246 position_after_white_space (); ;
3249 #line 1767 "c-parse.y"
3250 { expand_end_case (yyvsp
[-3].ttype
);
3251 if (yychar
== CONSTANT
|| yychar
== STRING
)
3252 pop_momentary_nofree ();
3257 #line 1773 "c-parse.y"
3259 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3260 if ( ! expand_exit_something ())
3261 error ("break statement not within loop or switch"); ;
3264 #line 1778 "c-parse.y"
3266 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3267 if (! expand_continue_loop (NULL_PTR
))
3268 error ("continue statement not within a loop"); ;
3271 #line 1783 "c-parse.y"
3273 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3274 c_expand_return (NULL_TREE
); ;
3277 #line 1787 "c-parse.y"
3279 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3280 c_expand_return (yyvsp
[-1].ttype
); ;
3283 #line 1791 "c-parse.y"
3285 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3286 STRIP_NOPS (yyvsp
[-2].ttype
);
3287 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3288 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3289 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3290 expand_asm (yyvsp
[-2].ttype
);
3292 error ("argument of `asm' is not a constant string"); ;
3295 #line 1802 "c-parse.y"
3297 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3298 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3299 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3300 input_filename
, lineno
); ;
3303 #line 1809 "c-parse.y"
3305 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3306 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3307 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3308 input_filename
, lineno
); ;
3311 #line 1817 "c-parse.y"
3313 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3314 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3315 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3316 input_filename
, lineno
); ;
3319 #line 1823 "c-parse.y"
3322 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3323 decl
= lookup_label (yyvsp
[-1].ttype
);
3326 TREE_USED (decl
) = 1;
3332 #line 1834 "c-parse.y"
3334 pedwarn ("ANSI C forbids `goto *expr;'");
3336 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3337 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3340 #line 1849 "c-parse.y"
3342 /* The value returned by this action is */
3343 /* 1 if everything is OK */
3344 /* 0 in case of error or already bound iterator */
3347 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3348 error ("invalid `for (ITERATOR)' syntax");
3349 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3350 error ("`%s' is not an iterator",
3351 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3352 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3353 error ("`for (%s)' inside expansion of same iterator",
3354 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3358 iterator_for_loop_start (yyvsp
[-1].ttype
);
3363 #line 1870 "c-parse.y"
3365 if (yyvsp
[-1].itype
)
3366 iterator_for_loop_end (yyvsp
[-3].ttype
);
3370 #line 1905 "c-parse.y"
3371 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3373 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3377 if (value
!= error_mark_node
)
3382 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3383 pedwarn ("label must have integral type in ANSI C");
3385 success
= pushcase (value
, convert_and_check
,
3389 error ("case label not within a switch statement");
3390 else if (success
== 2)
3392 error ("duplicate case value");
3393 error_with_decl (duplicate
, "this is the first entry for that value");
3395 else if (success
== 3)
3396 warning ("case value out of range");
3397 else if (success
== 5)
3398 error ("case label within scope of cleanup or variable array");
3400 position_after_white_space (); ;
3403 #line 1936 "c-parse.y"
3404 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3405 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3407 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3410 pedwarn ("ANSI C forbids case ranges");
3413 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3416 int success
= pushcase_range (value1
, value2
,
3417 convert_and_check
, label
,
3420 error ("case label not within a switch statement");
3421 else if (success
== 2)
3423 error ("duplicate case value");
3424 error_with_decl (duplicate
, "this is the first entry for that value");
3426 else if (success
== 3)
3427 warning ("case value out of range");
3428 else if (success
== 4)
3429 warning ("empty case range");
3430 else if (success
== 5)
3431 error ("case label within scope of cleanup or variable array");
3433 position_after_white_space (); ;
3436 #line 1967 "c-parse.y"
3440 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3441 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3444 error ("default label not within a switch statement");
3445 else if (success
== 2)
3447 error ("multiple default labels in one switch");
3448 error_with_decl (duplicate
, "this is the first default label");
3450 position_after_white_space (); ;
3453 #line 1982 "c-parse.y"
3454 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-1].ttype
);
3458 expand_label (label
);
3459 position_after_white_space (); ;
3462 #line 1994 "c-parse.y"
3463 { emit_line_note (input_filename
, lineno
);
3464 yyval
.ttype
= NULL_TREE
; ;
3467 #line 1997 "c-parse.y"
3468 { emit_line_note (input_filename
, lineno
); ;
3471 #line 2002 "c-parse.y"
3472 { yyval
.ttype
= NULL_TREE
; ;
3475 #line 2009 "c-parse.y"
3476 { yyval
.ttype
= NULL_TREE
; ;
3479 #line 2016 "c-parse.y"
3480 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3483 #line 2021 "c-parse.y"
3484 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3487 #line 2026 "c-parse.y"
3488 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3491 #line 2028 "c-parse.y"
3492 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3495 #line 2034 "c-parse.y"
3497 clear_parm_order ();
3498 declare_parm_level (0); ;
3501 #line 2038 "c-parse.y"
3502 { yyval
.ttype
= yyvsp
[0].ttype
;
3503 parmlist_tags_warning ();
3504 poplevel (0, 0, 0); ;
3507 #line 2046 "c-parse.y"
3510 pedwarn ("ANSI C forbids forward parameter declarations");
3511 /* Mark the forward decls as such. */
3512 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3513 TREE_ASM_WRITTEN (parm
) = 1;
3514 clear_parm_order (); ;
3517 #line 2054 "c-parse.y"
3518 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3521 #line 2056 "c-parse.y"
3522 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3525 #line 2062 "c-parse.y"
3526 { yyval
.ttype
= get_parm_info (0); ;
3529 #line 2064 "c-parse.y"
3530 { yyval
.ttype
= get_parm_info (0);
3531 /* Gcc used to allow this as an extension. However, it does
3532 not work for all targets, and thus has been disabled.
3533 Also, since func (...) and func () are indistinguishable,
3534 it caused problems with the code in expand_builtin which
3535 tries to verify that BUILT_IN_NEXT_ARG is being used
3537 error ("ANSI C requires a named argument before `...'");
3541 #line 2074 "c-parse.y"
3542 { yyval
.ttype
= get_parm_info (1); ;
3545 #line 2076 "c-parse.y"
3546 { yyval
.ttype
= get_parm_info (0); ;
3549 #line 2081 "c-parse.y"
3550 { push_parm_decl (yyvsp
[0].ttype
); ;
3553 #line 2083 "c-parse.y"
3554 { push_parm_decl (yyvsp
[0].ttype
); ;
3557 #line 2090 "c-parse.y"
3558 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3560 build_tree_list (prefix_attributes
,
3562 current_declspecs
= TREE_VALUE (declspec_stack
);
3563 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3564 declspec_stack
= TREE_CHAIN (declspec_stack
);
3565 resume_momentary (yyvsp
[-2].itype
); ;
3568 #line 2099 "c-parse.y"
3569 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3571 build_tree_list (prefix_attributes
,
3573 current_declspecs
= TREE_VALUE (declspec_stack
);
3574 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3575 declspec_stack
= TREE_CHAIN (declspec_stack
);
3576 resume_momentary (yyvsp
[-2].itype
); ;
3579 #line 2108 "c-parse.y"
3580 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3582 build_tree_list (prefix_attributes
,
3584 current_declspecs
= TREE_VALUE (declspec_stack
);
3585 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3586 declspec_stack
= TREE_CHAIN (declspec_stack
);
3587 resume_momentary (yyvsp
[-2].itype
); ;
3590 #line 2117 "c-parse.y"
3591 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3593 build_tree_list (prefix_attributes
,
3595 current_declspecs
= TREE_VALUE (declspec_stack
);
3596 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3597 declspec_stack
= TREE_CHAIN (declspec_stack
);
3598 resume_momentary (yyvsp
[-2].itype
); ;
3601 #line 2127 "c-parse.y"
3602 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3604 build_tree_list (prefix_attributes
,
3606 current_declspecs
= TREE_VALUE (declspec_stack
);
3607 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3608 declspec_stack
= TREE_CHAIN (declspec_stack
);
3609 resume_momentary (yyvsp
[-2].itype
); ;
3612 #line 2141 "c-parse.y"
3614 clear_parm_order ();
3615 declare_parm_level (1); ;
3618 #line 2145 "c-parse.y"
3619 { yyval
.ttype
= yyvsp
[0].ttype
;
3620 parmlist_tags_warning ();
3621 poplevel (0, 0, 0); ;
3624 #line 2153 "c-parse.y"
3626 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3627 if (TREE_VALUE (t
) == NULL_TREE
)
3628 error ("`...' in old-style identifier list");
3629 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3632 #line 2163 "c-parse.y"
3633 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3636 #line 2165 "c-parse.y"
3637 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3640 #line 2171 "c-parse.y"
3641 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3644 #line 2173 "c-parse.y"
3645 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3648 #line 2178 "c-parse.y"
3649 { yyval
.itype
= pedantic
;
3653 /* the action file gets copied in in place of this dollarsign */
3654 #line 498 "/usr/share/bison.simple"
3665 short *ssp1
= yyss
- 1;
3666 fprintf (stderr
, "state stack now");
3667 while (ssp1
!= yyssp
)
3668 fprintf (stderr
, " %d", *++ssp1
);
3669 fprintf (stderr
, "\n");
3679 yylsp
->first_line
= yylloc
.first_line
;
3680 yylsp
->first_column
= yylloc
.first_column
;
3681 yylsp
->last_line
= (yylsp
-1)->last_line
;
3682 yylsp
->last_column
= (yylsp
-1)->last_column
;
3687 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3688 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3692 /* Now "shift" the result of the reduction.
3693 Determine what state that goes to,
3694 based on the state we popped back to
3695 and the rule number reduced by. */
3699 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3700 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3701 yystate
= yytable
[yystate
];
3703 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3707 yyerrlab
: /* here on detecting error */
3710 /* If not already recovering from an error, report this error. */
3714 #ifdef YYERROR_VERBOSE
3715 yyn
= yypact
[yystate
];
3717 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3724 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3725 for (x
= (yyn
< 0 ? -yyn
: 0);
3726 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3727 if (yycheck
[x
+ yyn
] == x
)
3728 size
+= strlen(yytname
[x
]) + 15, count
++;
3729 msg
= (char *) malloc(size
+ 15);
3732 strcpy(msg
, "parse error");
3737 for (x
= (yyn
< 0 ? -yyn
: 0);
3738 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3739 if (yycheck
[x
+ yyn
] == x
)
3741 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3742 strcat(msg
, yytname
[x
]);
3751 yyerror ("parse error; also virtual memory exceeded");
3754 #endif /* YYERROR_VERBOSE */
3755 yyerror("parse error");
3759 yyerrlab1
: /* here on error raised explicitly by an action */
3761 if (yyerrstatus
== 3)
3763 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3765 /* return failure if at end of input */
3766 if (yychar
== YYEOF
)
3771 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3777 /* Else will try to reuse lookahead token
3778 after shifting the error token. */
3780 yyerrstatus
= 3; /* Each real token shifted decrements this */
3784 yyerrdefault
: /* current state does not do anything special for the error token. */
3787 /* This is wrong; only states that explicitly want error tokens
3788 should shift them. */
3789 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3790 if (yyn
) goto yydefault
;
3793 yyerrpop
: /* pop the current state because it cannot handle the error token */
3795 if (yyssp
== yyss
) YYABORT
;
3805 short *ssp1
= yyss
- 1;
3806 fprintf (stderr
, "Error: state stack now");
3807 while (ssp1
!= yyssp
)
3808 fprintf (stderr
, " %d", *++ssp1
);
3809 fprintf (stderr
, "\n");
3815 yyn
= yypact
[yystate
];
3820 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3839 fprintf(stderr
, "Shifting error token, ");
3850 #line 2182 "c-parse.y"