2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
31 #define ASM_KEYWORD 281
42 #define PTR_EXTENT 292
43 #define END_OF_LINE 293
48 #define ARITHCOMPARE 298
53 #define MINUSMINUS 303
54 #define HYPERUNARY 304
57 #define IMPLEMENTATION 307
67 #define OBJECTNAME 317
70 #define OBJC_STRING 320
86 #ifdef MULTIBYTE_CHARS
91 /* Since parsers are distinct for each language, put the language string
93 const char * const language_string
= "GNU C";
95 /* Like YYERROR but do call yyerror. */
96 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
98 /* Cause the `yydebug' variable to be defined. */
102 typedef union {long itype
; tree ttype
; enum tree_code code
;
103 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
104 #line 186 "c-parse.y"
106 /* Number of statements (loosely speaking) and compound statements
108 static int stmt_count
;
109 static int compstmt_count
;
111 /* Input file and line number of the end of the body of last simple_if;
112 used by the stmt-rule immediately after simple_if returns. */
113 static char *if_stmt_file
;
114 static int if_stmt_line
;
116 /* List of types and structure classes of the current declaration. */
117 static tree current_declspecs
= NULL_TREE
;
118 static tree prefix_attributes
= NULL_TREE
;
120 /* Stack of saved values of current_declspecs and prefix_attributes. */
121 static tree declspec_stack
;
123 /* 1 if we explained undeclared var errors. */
124 static int undeclared_variable_notice
;
126 /* For __extension__, save/restore the warning flags which are
127 controlled by __extension__. */
128 #define SAVE_WARN_FLAGS() \
129 size_int (pedantic | (warn_pointer_arith << 1))
130 #define RESTORE_WARN_FLAGS(tval) \
132 int val = tree_low_cst (tval, 0); \
133 pedantic = val & 1; \
134 warn_pointer_arith = (val >> 1) & 1; \
138 /* Tell yyparse how to print a token's value, if yydebug is set. */
140 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
141 extern void yyprint
PARAMS ((FILE *, int, YYSTYPE
));
143 /* Add GC roots for variables local to this file. */
147 ggc_add_tree_root (&declspec_stack
, 1);
148 ggc_add_tree_root (¤t_declspecs
, 1);
149 ggc_add_tree_root (&prefix_attributes
, 1);
163 #define YYFLAG -32768
166 #define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 247)
168 static const char yytranslate
[] = { 0,
169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 85, 2, 2, 2, 57, 48, 2, 64,
173 81, 55, 53, 86, 54, 63, 56, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 43, 82, 2,
175 41, 2, 42, 2, 2, 2, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 65, 2, 88, 47, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 87, 46, 83, 84, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
195 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
196 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
197 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
198 37, 38, 39, 40, 44, 45, 49, 50, 51, 52,
199 58, 59, 60, 61, 62, 66, 67, 68, 69, 70,
200 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
204 static const short yyprhs
[] = { 0,
205 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
206 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
207 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
208 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
209 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
210 142, 147, 150, 155, 158, 161, 168, 170, 172, 174,
211 179, 180, 188, 190, 194, 198, 202, 206, 210, 214,
212 218, 222, 226, 230, 234, 238, 239, 244, 245, 250,
213 251, 252, 260, 261, 267, 271, 275, 277, 279, 281,
214 285, 289, 293, 297, 302, 307, 311, 315, 318, 321,
215 323, 326, 327, 329, 332, 336, 338, 340, 343, 346,
216 351, 356, 359, 362, 366, 368, 370, 373, 376, 377,
217 378, 383, 388, 392, 396, 399, 402, 405, 408, 412,
218 413, 416, 419, 422, 425, 429, 430, 433, 436, 438,
219 440, 443, 446, 448, 450, 453, 456, 459, 463, 464,
220 467, 469, 471, 473, 478, 483, 485, 487, 489, 491,
221 495, 497, 501, 502, 507, 508, 515, 519, 520, 527,
222 531, 532, 534, 536, 539, 546, 548, 552, 553, 555,
223 560, 567, 572, 574, 576, 578, 580, 582, 583, 588,
224 590, 591, 594, 596, 600, 604, 607, 608, 613, 615,
225 616, 621, 623, 625, 627, 630, 633, 639, 643, 644,
226 645, 651, 652, 653, 659, 661, 663, 667, 671, 676,
227 680, 684, 688, 690, 694, 699, 704, 708, 712, 716,
228 718, 722, 726, 730, 735, 740, 744, 748, 750, 752,
229 755, 757, 760, 762, 765, 766, 774, 780, 783, 784,
230 792, 798, 801, 802, 811, 812, 820, 823, 824, 826,
231 827, 829, 831, 834, 835, 839, 842, 846, 852, 856,
232 858, 860, 863, 865, 869, 874, 881, 887, 889, 893,
233 895, 897, 901, 904, 907, 908, 910, 912, 915, 916,
234 919, 923, 927, 930, 934, 939, 943, 946, 950, 953,
235 957, 959, 961, 964, 967, 968, 970, 973, 974, 975,
236 977, 979, 982, 986, 988, 991, 993, 995, 1001, 1006,
237 1011, 1014, 1017, 1020, 1023, 1028, 1029, 1034, 1035, 1036,
238 1040, 1045, 1049, 1051, 1053, 1055, 1057, 1060, 1061, 1066,
239 1068, 1072, 1073, 1074, 1082, 1088, 1091, 1092, 1093, 1094,
240 1107, 1108, 1115, 1118, 1121, 1124, 1128, 1135, 1144, 1155,
241 1168, 1172, 1177, 1179, 1181, 1182, 1189, 1193, 1199, 1202,
242 1206, 1207, 1209, 1210, 1212, 1213, 1215, 1217, 1221, 1226,
243 1228, 1232, 1233, 1236, 1239, 1240, 1245, 1248, 1249, 1251,
244 1253, 1257, 1259, 1263, 1268, 1273, 1278, 1283, 1288, 1289,
245 1292, 1294, 1297, 1299, 1303, 1305, 1309
248 static const short yyrhs
[] = { -1,
249 90, 0, 0, 91, 93, 0, 0, 90, 92, 93,
250 0, 95, 0, 94, 0, 27, 64, 104, 81, 82,
251 0, 246, 93, 0, 126, 140, 82, 0, 133, 126,
252 140, 82, 0, 129, 126, 139, 82, 0, 133, 82,
253 0, 129, 82, 0, 1, 82, 0, 1, 83, 0,
254 82, 0, 0, 0, 129, 126, 168, 96, 120, 97,
255 202, 0, 129, 126, 168, 1, 0, 0, 0, 133,
256 126, 171, 98, 120, 99, 202, 0, 133, 126, 171,
257 1, 0, 0, 0, 126, 171, 100, 120, 101, 202,
258 0, 126, 171, 1, 0, 3, 0, 4, 0, 48,
259 0, 54, 0, 53, 0, 59, 0, 60, 0, 84,
260 0, 85, 0, 106, 0, 0, 106, 0, 112, 0,
261 106, 86, 112, 0, 118, 0, 55, 110, 0, 246,
262 110, 0, 103, 110, 0, 45, 102, 0, 108, 107,
263 0, 108, 64, 189, 81, 0, 109, 107, 0, 109,
264 64, 189, 81, 0, 33, 110, 0, 34, 110, 0,
265 35, 64, 112, 86, 189, 81, 0, 11, 0, 29,
266 0, 107, 0, 64, 189, 81, 110, 0, 0, 64,
267 189, 81, 87, 111, 154, 83, 0, 110, 0, 112,
268 53, 112, 0, 112, 54, 112, 0, 112, 55, 112,
269 0, 112, 56, 112, 0, 112, 57, 112, 0, 112,
270 51, 112, 0, 112, 52, 112, 0, 112, 50, 112,
271 0, 112, 49, 112, 0, 112, 48, 112, 0, 112,
272 46, 112, 0, 112, 47, 112, 0, 0, 112, 45,
273 113, 112, 0, 0, 112, 44, 114, 112, 0, 0,
274 0, 112, 42, 115, 104, 43, 116, 112, 0, 0,
275 112, 42, 117, 43, 112, 0, 112, 41, 112, 0,
276 112, 40, 112, 0, 3, 0, 8, 0, 119, 0,
277 64, 104, 81, 0, 64, 1, 81, 0, 205, 204,
278 81, 0, 205, 1, 81, 0, 118, 64, 105, 81,
279 0, 118, 65, 104, 88, 0, 118, 63, 102, 0,
280 118, 62, 102, 0, 118, 59, 0, 118, 60, 0,
281 9, 0, 119, 9, 0, 0, 122, 0, 122, 10,
282 0, 211, 212, 123, 0, 121, 0, 197, 0, 122,
283 121, 0, 121, 197, 0, 131, 126, 139, 82, 0,
284 134, 126, 140, 82, 0, 131, 82, 0, 134, 82,
285 0, 211, 212, 128, 0, 124, 0, 197, 0, 125,
286 124, 0, 124, 197, 0, 0, 0, 129, 126, 139,
287 82, 0, 133, 126, 140, 82, 0, 129, 126, 162,
288 0, 133, 126, 165, 0, 129, 82, 0, 133, 82,
289 0, 246, 128, 0, 137, 130, 0, 133, 137, 130,
290 0, 0, 130, 138, 0, 130, 5, 0, 130, 147,
291 0, 137, 132, 0, 134, 137, 132, 0, 0, 132,
292 138, 0, 132, 5, 0, 134, 0, 147, 0, 133,
293 134, 0, 133, 147, 0, 7, 0, 5, 0, 134,
294 7, 0, 134, 5, 0, 137, 136, 0, 191, 137,
295 136, 0, 0, 136, 138, 0, 6, 0, 175, 0,
296 4, 0, 28, 64, 104, 81, 0, 28, 64, 189,
297 81, 0, 6, 0, 7, 0, 175, 0, 142, 0,
298 139, 86, 142, 0, 144, 0, 140, 86, 142, 0,
299 0, 27, 64, 119, 81, 0, 0, 168, 141, 146,
300 41, 143, 152, 0, 168, 141, 146, 0, 0, 171,
301 141, 146, 41, 145, 152, 0, 171, 141, 146, 0,
302 0, 147, 0, 148, 0, 147, 148, 0, 30, 64,
303 64, 149, 81, 81, 0, 150, 0, 149, 86, 150,
304 0, 0, 151, 0, 151, 64, 3, 81, 0, 151,
305 64, 3, 86, 106, 81, 0, 151, 64, 105, 81,
306 0, 102, 0, 5, 0, 6, 0, 7, 0, 112,
307 0, 0, 87, 153, 154, 83, 0, 1, 0, 0,
308 155, 180, 0, 156, 0, 155, 86, 156, 0, 160,
309 41, 158, 0, 161, 158, 0, 0, 102, 43, 157,
310 158, 0, 158, 0, 0, 87, 159, 154, 83, 0,
311 112, 0, 1, 0, 161, 0, 160, 161, 0, 63,
312 102, 0, 65, 112, 10, 112, 88, 0, 65, 112,
313 88, 0, 0, 0, 168, 163, 120, 164, 206, 0,
314 0, 0, 171, 166, 120, 167, 206, 0, 169, 0,
315 171, 0, 64, 169, 81, 0, 169, 64, 241, 0,
316 169, 65, 104, 88, 0, 169, 65, 88, 0, 55,
317 192, 169, 0, 147, 127, 169, 0, 4, 0, 170,
318 64, 241, 0, 170, 65, 55, 88, 0, 170, 65,
319 104, 88, 0, 170, 65, 88, 0, 55, 192, 170,
320 0, 147, 127, 170, 0, 4, 0, 171, 64, 241,
321 0, 64, 171, 81, 0, 55, 192, 171, 0, 171,
322 65, 55, 88, 0, 171, 65, 104, 88, 0, 171,
323 65, 88, 0, 147, 127, 171, 0, 3, 0, 13,
324 0, 13, 147, 0, 14, 0, 14, 147, 0, 12,
325 0, 12, 147, 0, 0, 172, 102, 87, 176, 182,
326 83, 146, 0, 172, 87, 182, 83, 146, 0, 172,
327 102, 0, 0, 173, 102, 87, 177, 182, 83, 146,
328 0, 173, 87, 182, 83, 146, 0, 173, 102, 0,
329 0, 174, 102, 87, 178, 187, 181, 83, 146, 0,
330 0, 174, 87, 179, 187, 181, 83, 146, 0, 174,
331 102, 0, 0, 86, 0, 0, 86, 0, 183, 0,
332 183, 184, 0, 0, 183, 184, 82, 0, 183, 82,
333 0, 135, 126, 185, 0, 135, 126, 211, 212, 146,
334 0, 191, 126, 185, 0, 191, 0, 1, 0, 246,
335 184, 0, 186, 0, 185, 86, 186, 0, 211, 212,
336 168, 146, 0, 211, 212, 168, 43, 112, 146, 0,
337 211, 212, 43, 112, 146, 0, 188, 0, 187, 86,
338 188, 0, 1, 0, 102, 0, 102, 41, 112, 0,
339 135, 190, 0, 191, 190, 0, 0, 193, 0, 7,
340 0, 191, 7, 0, 0, 192, 7, 0, 64, 193,
341 81, 0, 55, 192, 193, 0, 55, 192, 0, 193,
342 64, 234, 0, 193, 65, 104, 88, 0, 193, 65,
343 88, 0, 64, 234, 0, 65, 104, 88, 0, 65,
344 88, 0, 147, 127, 193, 0, 195, 0, 214, 0,
345 195, 214, 0, 195, 197, 0, 0, 194, 0, 1,
346 82, 0, 0, 0, 200, 0, 201, 0, 200, 201,
347 0, 32, 245, 82, 0, 206, 0, 1, 206, 0,
348 87, 0, 83, 0, 198, 199, 125, 196, 83, 0,
349 198, 199, 1, 83, 0, 198, 199, 194, 83, 0,
350 64, 87, 0, 203, 204, 0, 208, 213, 0, 208,
351 1, 0, 15, 64, 104, 81, 0, 0, 18, 210,
352 213, 17, 0, 0, 0, 211, 212, 216, 0, 211,
353 212, 227, 213, 0, 211, 212, 215, 0, 216, 0,
354 227, 0, 206, 0, 224, 0, 104, 82, 0, 0,
355 207, 16, 217, 213, 0, 207, 0, 207, 16, 1,
356 0, 0, 0, 17, 218, 64, 104, 81, 219, 213,
357 0, 209, 64, 104, 81, 82, 0, 209, 1, 0,
358 0, 0, 0, 19, 64, 229, 82, 220, 229, 82,
359 221, 229, 81, 222, 213, 0, 0, 20, 64, 104,
360 81, 223, 213, 0, 23, 82, 0, 24, 82, 0,
361 25, 82, 0, 25, 104, 82, 0, 27, 228, 64,
362 104, 81, 82, 0, 27, 228, 64, 104, 43, 230,
363 81, 82, 0, 27, 228, 64, 104, 43, 230, 43,
364 230, 81, 82, 0, 27, 228, 64, 104, 43, 230,
365 43, 230, 43, 233, 81, 82, 0, 26, 102, 82,
366 0, 26, 55, 104, 82, 0, 82, 0, 225, 0,
367 0, 19, 64, 118, 81, 226, 213, 0, 21, 112,
368 43, 0, 21, 112, 10, 112, 43, 0, 22, 43,
369 0, 102, 43, 146, 0, 0, 7, 0, 0, 104,
370 0, 0, 231, 0, 232, 0, 231, 86, 232, 0,
371 9, 64, 104, 81, 0, 119, 0, 233, 86, 119,
372 0, 0, 235, 236, 0, 238, 81, 0, 0, 239,
373 82, 237, 236, 0, 1, 81, 0, 0, 10, 0,
374 239, 0, 239, 86, 10, 0, 240, 0, 239, 86,
375 240, 0, 129, 126, 170, 146, 0, 129, 126, 171,
376 146, 0, 129, 126, 190, 146, 0, 133, 126, 171,
377 146, 0, 133, 126, 190, 146, 0, 0, 242, 243,
378 0, 236, 0, 244, 81, 0, 3, 0, 244, 86,
379 3, 0, 102, 0, 245, 86, 102, 0, 31, 0
385 static const short yyrline
[] = { 0,
386 236, 241, 255, 257, 257, 258, 260, 262, 263, 271,
387 275, 285, 289, 293, 295, 297, 298, 299, 304, 311,
388 313, 317, 321, 327, 329, 333, 337, 343, 345, 349,
389 355, 357, 360, 362, 364, 366, 368, 370, 372, 376,
390 380, 383, 386, 389, 393, 395, 398, 401, 405, 433,
391 439, 442, 445, 448, 450, 452, 456, 460, 464, 466,
392 469, 473, 500, 502, 504, 506, 508, 510, 512, 514,
393 516, 518, 520, 522, 524, 526, 530, 532, 536, 538,
394 541, 545, 547, 554, 557, 565, 576, 675, 676, 678,
395 684, 686, 709, 718, 720, 722, 726, 732, 734, 739,
396 741, 749, 751, 752, 762, 767, 769, 770, 771, 778,
397 783, 787, 790, 798, 803, 805, 806, 807, 814, 824,
398 828, 833, 837, 841, 845, 847, 849, 858, 861, 865,
399 867, 869, 874, 878, 881, 885, 888, 890, 902, 905,
400 907, 909, 913, 917, 919, 922, 935, 938, 942, 944,
401 952, 953, 954, 958, 960, 966, 967, 968, 971, 973,
402 976, 978, 981, 984, 990, 997, 999, 1006, 1013, 1016,
403 1023, 1026, 1030, 1033, 1037, 1042, 1045, 1049, 1052, 1054,
404 1056, 1058, 1065, 1067, 1068, 1069, 1074, 1076, 1078, 1080,
405 1085, 1089, 1092, 1094, 1099, 1101, 1102, 1105, 1105, 1108,
406 1111, 1113, 1115, 1118, 1120, 1123, 1129, 1131, 1135, 1149,
407 1157, 1161, 1175, 1183, 1190, 1192, 1197, 1200, 1205, 1207,
408 1209, 1216, 1218, 1226, 1232, 1237, 1239, 1241, 1248, 1250,
409 1256, 1262, 1264, 1266, 1271, 1273, 1280, 1282, 1285, 1288,
410 1292, 1295, 1299, 1302, 1306, 1311, 1313, 1317, 1319, 1321,
411 1323, 1327, 1329, 1331, 1334, 1336, 1339, 1343, 1345, 1348,
412 1350, 1355, 1358, 1363, 1365, 1367, 1381, 1387, 1400, 1405,
413 1410, 1412, 1417, 1419, 1423, 1427, 1431, 1441, 1443, 1448,
414 1453, 1456, 1460, 1463, 1467, 1470, 1473, 1476, 1480, 1483,
415 1487, 1491, 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1509,
416 1517, 1525, 1527, 1529, 1533, 1535, 1538, 1541, 1551, 1553,
417 1558, 1560, 1563, 1577, 1580, 1583, 1585, 1587, 1591, 1595,
418 1601, 1619, 1624, 1629, 1632, 1646, 1655, 1659, 1663, 1667,
419 1673, 1677, 1682, 1685, 1690, 1693, 1694, 1710, 1715, 1718,
420 1730, 1732, 1742, 1752, 1753, 1760, 1762, 1774, 1778, 1792,
421 1798, 1804, 1805, 1810, 1815, 1819, 1823, 1834, 1841, 1848,
422 1855, 1866, 1872, 1875, 1880, 1903, 1933, 1964, 1995, 2010,
423 2024, 2028, 2032, 2035, 2040, 2042, 2045, 2047, 2051, 2056,
424 2059, 2065, 2070, 2075, 2077, 2086, 2087, 2093, 2095, 2105,
425 2107, 2111, 2114, 2120, 2129, 2137, 2145, 2154, 2167, 2172,
426 2177, 2179, 2188, 2191, 2196, 2199, 2203
431 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
433 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
434 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
435 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
436 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
437 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT",
438 "END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE",
439 "ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
440 "MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION",
441 "END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED",
442 "PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
443 "'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef",
444 "@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist",
445 "unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11",
446 "@12","@13","@14","primary","string","old_style_parm_decls","lineno_datadecl",
447 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
448 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
449 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
450 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
451 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
452 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
453 "initelt","@18","initval","@19","designator_list","designator","nested_function",
454 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
455 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
456 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
457 "component_decl_list2","component_decl","components","component_declarator",
458 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
459 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
460 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
461 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
462 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
463 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
464 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
465 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
466 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
467 "identifiers","identifiers_or_typenames","extension", NULL
471 static const short yyr1
[] = { 0,
472 89, 89, 91, 90, 92, 90, 93, 93, 93, 93,
473 94, 94, 94, 94, 94, 94, 94, 94, 96, 97,
474 95, 95, 98, 99, 95, 95, 100, 101, 95, 95,
475 102, 102, 103, 103, 103, 103, 103, 103, 103, 104,
476 105, 105, 106, 106, 107, 107, 107, 107, 107, 107,
477 107, 107, 107, 107, 107, 107, 108, 109, 110, 110,
478 111, 110, 112, 112, 112, 112, 112, 112, 112, 112,
479 112, 112, 112, 112, 112, 113, 112, 114, 112, 115,
480 116, 112, 117, 112, 112, 112, 118, 118, 118, 118,
481 118, 118, 118, 118, 118, 118, 118, 118, 118, 119,
482 119, 120, 120, 120, 121, 122, 122, 122, 122, 123,
483 123, 123, 123, 124, 125, 125, 125, 125, 126, 127,
484 128, 128, 128, 128, 128, 128, 128, 129, 129, 130,
485 130, 130, 130, 131, 131, 132, 132, 132, 133, 133,
486 133, 133, 134, 134, 134, 134, 135, 135, 136, 136,
487 137, 137, 137, 137, 137, 138, 138, 138, 139, 139,
488 140, 140, 141, 141, 143, 142, 142, 145, 144, 144,
489 146, 146, 147, 147, 148, 149, 149, 150, 150, 150,
490 150, 150, 151, 151, 151, 151, 152, 153, 152, 152,
491 154, 154, 155, 155, 156, 156, 157, 156, 156, 159,
492 158, 158, 158, 160, 160, 161, 161, 161, 163, 164,
493 162, 166, 167, 165, 168, 168, 169, 169, 169, 169,
494 169, 169, 169, 170, 170, 170, 170, 170, 170, 170,
495 171, 171, 171, 171, 171, 171, 171, 171, 172, 172,
496 173, 173, 174, 174, 176, 175, 175, 175, 177, 175,
497 175, 175, 178, 175, 179, 175, 175, 180, 180, 181,
498 181, 182, 182, 183, 183, 183, 184, 184, 184, 184,
499 184, 184, 185, 185, 186, 186, 186, 187, 187, 187,
500 188, 188, 189, 189, 190, 190, 191, 191, 192, 192,
501 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
502 194, 195, 195, 195, 196, 196, 197, 198, 199, 199,
503 200, 200, 201, 202, 202, 203, 204, 204, 204, 204,
504 205, 206, 207, 207, 208, 210, 209, 211, 212, 213,
505 213, 214, 215, 215, 216, 216, 216, 217, 216, 216,
506 216, 218, 219, 216, 216, 216, 220, 221, 222, 216,
507 223, 216, 216, 216, 216, 216, 216, 216, 216, 216,
508 216, 216, 216, 224, 226, 225, 227, 227, 227, 227,
509 228, 228, 229, 229, 230, 230, 231, 231, 232, 233,
510 233, 235, 234, 236, 237, 236, 236, 238, 238, 238,
511 238, 239, 239, 240, 240, 240, 240, 240, 242, 241,
512 243, 243, 244, 244, 245, 245, 246
515 static const short yyr2
[] = { 0,
516 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
517 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
518 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
520 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
521 4, 2, 4, 2, 2, 6, 1, 1, 1, 4,
522 0, 7, 1, 3, 3, 3, 3, 3, 3, 3,
523 3, 3, 3, 3, 3, 0, 4, 0, 4, 0,
524 0, 7, 0, 5, 3, 3, 1, 1, 1, 3,
525 3, 3, 3, 4, 4, 3, 3, 2, 2, 1,
526 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
527 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
528 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
529 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
530 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
531 1, 1, 1, 4, 4, 1, 1, 1, 1, 3,
532 1, 3, 0, 4, 0, 6, 3, 0, 6, 3,
533 0, 1, 1, 2, 6, 1, 3, 0, 1, 4,
534 6, 4, 1, 1, 1, 1, 1, 0, 4, 1,
535 0, 2, 1, 3, 3, 2, 0, 4, 1, 0,
536 4, 1, 1, 1, 2, 2, 5, 3, 0, 0,
537 5, 0, 0, 5, 1, 1, 3, 3, 4, 3,
538 3, 3, 1, 3, 4, 4, 3, 3, 3, 1,
539 3, 3, 3, 4, 4, 3, 3, 1, 1, 2,
540 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
541 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
542 1, 1, 2, 0, 3, 2, 3, 5, 3, 1,
543 1, 2, 1, 3, 4, 6, 5, 1, 3, 1,
544 1, 3, 2, 2, 0, 1, 1, 2, 0, 2,
545 3, 3, 2, 3, 4, 3, 2, 3, 2, 3,
546 1, 1, 2, 2, 0, 1, 2, 0, 0, 1,
547 1, 2, 3, 1, 2, 1, 1, 5, 4, 4,
548 2, 2, 2, 2, 4, 0, 4, 0, 0, 3,
549 4, 3, 1, 1, 1, 1, 2, 0, 4, 1,
550 3, 0, 0, 7, 5, 2, 0, 0, 0, 12,
551 0, 6, 2, 2, 2, 3, 6, 8, 10, 12,
552 3, 4, 1, 1, 0, 6, 3, 5, 2, 3,
553 0, 1, 0, 1, 0, 1, 1, 3, 4, 1,
554 3, 0, 2, 2, 0, 4, 2, 0, 1, 1,
555 3, 1, 3, 4, 4, 4, 4, 4, 0, 2,
559 static const short yydefact
[] = { 3,
560 5, 0, 0, 0, 153, 144, 151, 143, 243, 239,
561 241, 0, 0, 0, 407, 18, 4, 8, 7, 0,
562 119, 119, 139, 130, 140, 173, 0, 0, 0, 152,
563 0, 6, 16, 17, 244, 240, 242, 0, 0, 0,
564 238, 289, 0, 0, 161, 120, 0, 15, 0, 14,
565 0, 141, 130, 142, 146, 145, 128, 174, 31, 32,
566 264, 248, 264, 252, 255, 257, 10, 87, 88, 100,
567 57, 58, 0, 0, 0, 0, 33, 35, 34, 0,
568 36, 37, 0, 38, 39, 0, 0, 40, 59, 0,
569 0, 63, 43, 45, 89, 0, 0, 287, 0, 285,
570 149, 0, 285, 178, 0, 0, 11, 0, 0, 30,
571 0, 399, 0, 0, 171, 223, 289, 0, 0, 159,
572 120, 0, 215, 216, 0, 0, 129, 132, 156, 157,
573 131, 133, 158, 0, 0, 245, 0, 249, 0, 253,
574 54, 55, 0, 49, 46, 0, 321, 0, 0, 48,
575 0, 0, 0, 50, 0, 52, 0, 0, 80, 78,
576 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
577 0, 0, 0, 98, 99, 0, 0, 41, 0, 101,
578 0, 317, 309, 0, 47, 154, 289, 382, 0, 120,
579 283, 286, 147, 155, 288, 149, 284, 184, 185, 186,
580 183, 0, 176, 179, 290, 233, 232, 162, 163, 237,
581 0, 231, 0, 0, 236, 0, 0, 28, 0, 328,
582 107, 329, 170, 172, 0, 0, 13, 0, 0, 22,
583 0, 171, 399, 0, 12, 26, 0, 171, 271, 266,
584 119, 263, 119, 0, 264, 171, 264, 280, 281, 260,
585 278, 0, 0, 91, 90, 0, 9, 44, 0, 0,
586 86, 85, 0, 0, 0, 0, 74, 75, 73, 72,
587 71, 69, 70, 64, 65, 66, 67, 68, 97, 96,
588 0, 42, 0, 93, 0, 0, 310, 311, 92, 293,
589 0, 297, 0, 299, 0, 0, 382, 0, 150, 148,
590 0, 178, 41, 0, 0, 403, 389, 119, 119, 401,
591 0, 390, 392, 400, 0, 234, 235, 307, 0, 109,
592 104, 108, 0, 168, 221, 217, 160, 222, 20, 167,
593 218, 220, 0, 24, 247, 328, 265, 328, 272, 0,
594 251, 0, 0, 261, 0, 260, 0, 61, 60, 51,
595 53, 0, 0, 79, 77, 94, 95, 405, 0, 0,
596 0, 328, 0, 0, 116, 329, 302, 312, 292, 291,
597 383, 298, 300, 294, 296, 0, 175, 177, 87, 0,
598 164, 387, 285, 285, 384, 385, 0, 402, 0, 0,
599 316, 29, 308, 314, 105, 119, 119, 136, 0, 0,
600 165, 219, 0, 267, 273, 329, 269, 329, 171, 171,
601 282, 279, 171, 0, 0, 0, 81, 84, 313, 0,
602 319, 118, 117, 306, 0, 320, 304, 329, 303, 0,
603 295, 180, 0, 182, 230, 289, 382, 120, 171, 171,
604 171, 289, 120, 171, 171, 0, 391, 393, 404, 315,
605 322, 112, 0, 113, 0, 136, 134, 190, 188, 187,
606 169, 21, 0, 25, 328, 171, 0, 246, 250, 256,
607 171, 56, 203, 87, 0, 0, 200, 0, 202, 0,
608 258, 193, 199, 0, 0, 0, 406, 318, 0, 153,
609 0, 342, 326, 0, 0, 0, 0, 0, 0, 0,
610 0, 371, 363, 0, 0, 114, 119, 119, 335, 340,
611 0, 0, 332, 333, 336, 364, 334, 0, 0, 293,
612 0, 399, 0, 394, 395, 396, 293, 0, 397, 398,
613 386, 0, 0, 163, 135, 138, 137, 0, 166, 274,
614 0, 268, 120, 171, 254, 206, 0, 0, 197, 62,
615 0, 192, 0, 205, 196, 82, 0, 0, 328, 373,
616 0, 0, 369, 353, 354, 355, 0, 0, 0, 372,
617 0, 171, 337, 125, 0, 126, 0, 0, 324, 329,
618 323, 346, 0, 127, 181, 228, 229, 224, 0, 227,
619 0, 110, 111, 0, 171, 0, 275, 0, 208, 0,
620 0, 194, 195, 0, 0, 0, 374, 45, 0, 0,
621 0, 367, 356, 0, 361, 0, 370, 0, 123, 209,
622 0, 124, 212, 341, 328, 0, 0, 225, 226, 189,
623 277, 171, 0, 201, 198, 325, 0, 327, 365, 347,
624 351, 0, 362, 0, 121, 0, 122, 0, 339, 330,
625 328, 0, 276, 207, 343, 328, 373, 328, 368, 375,
626 0, 210, 213, 331, 345, 328, 366, 0, 352, 0,
627 0, 376, 377, 357, 0, 0, 344, 348, 0, 375,
628 0, 0, 211, 214, 373, 0, 0, 358, 378, 0,
629 379, 0, 0, 349, 380, 0, 359, 328, 0, 0,
630 350, 360, 381, 0, 0, 0
633 static const short yydefgoto
[] = { 704,
634 1, 2, 3, 17, 18, 19, 231, 400, 237, 403,
635 114, 319, 478, 86, 148, 281, 88, 89, 90, 91,
636 92, 416, 93, 266, 265, 263, 486, 264, 94, 95,
637 218, 219, 220, 395, 361, 362, 20, 229, 506, 308,
638 57, 396, 457, 309, 23, 100, 193, 24, 131, 119,
639 44, 115, 120, 463, 45, 399, 223, 224, 26, 202,
640 203, 204, 461, 538, 480, 481, 482, 601, 483, 548,
641 484, 485, 619, 646, 675, 622, 648, 676, 209, 123,
642 439, 124, 27, 28, 29, 30, 245, 247, 252, 139,
643 552, 345, 134, 135, 242, 404, 405, 250, 251, 102,
644 191, 103, 105, 192, 363, 364, 425, 221, 183, 286,
645 287, 288, 392, 393, 184, 96, 394, 510, 511, 512,
646 559, 580, 323, 581, 367, 513, 514, 625, 558, 666,
647 657, 685, 698, 658, 515, 516, 656, 517, 571, 609,
648 671, 672, 673, 696, 292, 293, 310, 446, 311, 312,
649 313, 212, 213, 314, 315, 359, 97
652 static const short yypact
[] = { 60,
653 74, 2478, 2478, 206,-32768,-32768,-32768,-32768, 53, 53,
654 53, 56, 64, 70,-32768,-32768,-32768,-32768,-32768, 66,
655 21, 483, 244,-32768, 53,-32768, 59, 73, 85,-32768,
656 2478,-32768,-32768,-32768, 53, 53, 53, 2279, 2200, 81,
657 -32768,-32768, 66, 215,-32768, 53, 608,-32768, 461,-32768,
658 66, 244,-32768, 53,-32768,-32768, 1057,-32768,-32768,-32768,
659 -32768, 27,-32768, 77,-32768, 95,-32768,-32768,-32768,-32768,
660 -32768,-32768, 2279, 2279, 127, 392,-32768,-32768,-32768, 2279,
661 -32768,-32768, 1222,-32768,-32768, 2279, 116, 120,-32768, 2337,
662 2375,-32768, 2542, 827, 203, 713, 2279,-32768, 139, 238,
663 -32768, 193, 1137, 569, 403, 213,-32768, 461, 66,-32768,
664 180,-32768, 1573, 321, 53,-32768,-32768, 461, 222,-32768,
665 53, 1560, 339, 377, 271, 1530, 1057,-32768,-32768,-32768,
666 -32768, 53,-32768, 170, 387,-32768, 212,-32768, 410,-32768,
667 -32768,-32768, 2279,-32768,-32768, 195,-32768, 225, 228,-32768,
668 247, 2279, 1222,-32768, 1222,-32768, 2279, 2279, 293,-32768,
669 -32768, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279,
670 2279, 2279, 2279,-32768,-32768, 392, 392, 2279, 2279,-32768,
671 250,-32768, 319, 278,-32768,-32768,-32768, 238, 1640, 53,
672 -32768, 395, 544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
673 -32768, 129,-32768, 297,-32768, 377,-32768,-32768, 337, 377,
674 358,-32768, 778, 1678,-32768, 284, 303,-32768, 233, 57,
675 -32768,-32768, 349, 53, 891, 249,-32768, 461, 461,-32768,
676 321, 53,-32768, 1736,-32768,-32768, 321, 53,-32768,-32768,
677 -32768, 305, 172, 857,-32768, 53,-32768,-32768, 379, 336,
678 -32768, 410, 2499,-32768,-32768, 2079,-32768, 2542, 369, 382,
679 2542, 2542, 2279, 386, 2279, 2279, 2553, 2167, 1456, 1664,
680 1392, 589, 589, 288, 288,-32768,-32768,-32768,-32768,-32768,
681 390, 120, 398,-32768, 392, 905, 319,-32768,-32768, 72,
682 259,-32768, 967,-32768, 406, 238,-32768, 1774,-32768, 544,
683 419, 569, 2416, 50, 424,-32768,-32768,-32768, 1112,-32768,
684 425, 316,-32768,-32768, 140,-32768,-32768,-32768, 46,-32768,
685 -32768,-32768, 1534,-32768, 339,-32768,-32768, 339,-32768, 457,
686 -32768,-32768, 426,-32768,-32768,-32768,-32768,-32768,-32768, 429,
687 -32768, 435, 2279, 392, 441, 336, 1585,-32768,-32768,-32768,
688 -32768, 464, 2279, 1799, 2303,-32768,-32768,-32768, 323, 374,
689 820, 444, 448, 990,-32768,-32768,-32768,-32768, 395,-32768,
690 -32768,-32768, 395,-32768,-32768, 465,-32768,-32768, 155, 455,
691 -32768,-32768, 282, 158,-32768,-32768, 1027,-32768, 552, 473,
692 -32768,-32768, 478,-32768,-32768, 480, 1054,-32768, 1431, 46,
693 -32768,-32768, 46, 482,-32768,-32768, 482,-32768, 53, 53,
694 2542,-32768, 53, 486, 496, 1260,-32768, 1704,-32768, 392,
695 -32768,-32768,-32768,-32768, 498,-32768,-32768,-32768,-32768, 1956,
696 -32768,-32768, 2279,-32768,-32768,-32768, 158, 53, 205, 235,
697 53,-32768, 53, 235, 53, 967,-32768,-32768,-32768,-32768,
698 -32768,-32768, 461,-32768, 66,-32768, 698,-32768,-32768, 2542,
699 -32768,-32768, 1431,-32768,-32768, 536, 536,-32768,-32768,-32768,
700 53,-32768,-32768, 542, 392, 2279,-32768, 549, 2542, 501,
701 507,-32768,-32768, 167, 1366, 2279,-32768,-32768, 2041, 554,
702 535,-32768,-32768, 537, 538, 2279, 564, 529, 534, 2238,
703 104, 610,-32768, 575, 546,-32768, 550, 672,-32768, 615,
704 1075, 84,-32768,-32768,-32768,-32768,-32768, 2141, 177, 277,
705 282,-32768, 1832,-32768,-32768,-32768, 541, 158,-32768,-32768,
706 -32768, 346, 348, 163, 698,-32768,-32768, 1260,-32768,-32768,
707 2279,-32768, 67, 175,-32768,-32768, 613, 1260,-32768,-32768,
708 1325,-32768, 1469,-32768,-32768, 1704, 2279, 570,-32768, 2279,
709 2279, 1896,-32768,-32768,-32768,-32768, 551, 2279, 558,-32768,
710 584, 53,-32768,-32768, 461,-32768, 66, 1160,-32768,-32768,
711 -32768,-32768, 2279,-32768,-32768, 417, 417,-32768, 1870,-32768,
712 562,-32768,-32768, 588, 1977, 2279,-32768, 2279,-32768, 592,
713 1469,-32768,-32768, 571, 2279, 663,-32768, 1237, 599, 601,
714 2279,-32768,-32768, 606,-32768, 2279,-32768, 357,-32768, 733,
715 362,-32768, 522,-32768,-32768, 2041, 602,-32768,-32768,-32768,
716 -32768, 1977, 2470,-32768,-32768,-32768, 611,-32768,-32768,-32768,
717 -32768, 2521,-32768, 37,-32768, 321,-32768, 321,-32768,-32768,
718 -32768, 607,-32768,-32768,-32768,-32768, 2279,-32768,-32768, 682,
719 616,-32768,-32768,-32768,-32768,-32768,-32768, 617,-32768, 629,
720 43, 620,-32768,-32768, 473, 473,-32768,-32768, 2279, 682,
721 626, 682,-32768,-32768, 2279, 628, 96,-32768,-32768, 632,
722 -32768, 358, 633,-32768, 203, 186,-32768,-32768, 641, 358,
723 -32768,-32768, 203, 750, 751,-32768
726 static const short yypgoto
[] = {-32768,
727 -32768,-32768,-32768, 63,-32768,-32768,-32768,-32768,-32768,-32768,
728 -32768,-32768, -23,-32768, -38, 450, -137, 384,-32768,-32768,
729 -57,-32768, 211,-32768,-32768,-32768,-32768,-32768, 196, -199,
730 -193, 545,-32768,-32768, 393,-32768, 30, -3, 251, 17,
731 717,-32768, 315, 24, -4, -89, 579, 39, -165, -417,
732 -43, -100, -59,-32768,-32768,-32768, 185, 62, -22,-32768,
733 474,-32768, 324,-32768, -345,-32768, 227,-32768, -428,-32768,
734 -32768, 302,-32768,-32768,-32768,-32768,-32768,-32768, -42, -73,
735 -37, -18,-32768,-32768,-32768, 11,-32768,-32768,-32768,-32768,
736 -32768, 443, -28,-32768, 555, 456, 328, 553, 458, -49,
737 -66, -81, -86, -48, 439,-32768,-32768, -163,-32768,-32768,
738 -32768, 516, -305,-32768, 411,-32768, -360,-32768,-32768,-32768,
739 -32768, -105, -316, -442, 446,-32768, 187,-32768,-32768,-32768,
740 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 188,-32768, -510,
741 131,-32768, 134,-32768, 521,-32768, -251,-32768,-32768,-32768,
742 433, -212,-32768,-32768,-32768,-32768, 8
749 static const short yytable
[] = { 87,
750 99, 47, 58, 62, 64, 66, 122, 125, 222, 31,
751 31, 304, 58, 58, 58, 141, 142, 52, 21, 21,
752 331, 232, 145, 58, 106, 22, 22, 299, 150, 450,
753 225, 58, 126, 149, 137, 532, 197, 329, 31, 185,
754 282, 371, 109, 334, 226, 241, 390, 21, 208, 430,
755 49, 51, 144, 243, 22, 320, 555, -103, 180, -1,
756 53, 59, 60, 25, 25, 32, 321, 133, 41, 509,
757 35, 36, 37, -2, 216, 59, 60, 101, 205, 660,
758 201, 46, 14, 54, 582, 680, 206, 59, 60, 466,
759 210, 467, 25, 67, 462, 14, 14, 464, 58, 106,
760 290, 14, 48, 259, 46, 260, 59, 60, 232, 58,
761 121, 489, 46, 136, 222, 249, 606, 661, 132, 38,
762 42, 101, 365, 681, 603, 222, 187, 39, 509, 43,
763 381, 222, 391, 40, 299, 188, 189, 133, 692, 291,
764 283, 196, 244, -103, 104, 61, 668, 583, -172, -172,
765 295, 325, 279, 280, 241, 328, 145, 618, 568, 63,
766 41, 190, 243, 138, 190, 282, 46, 58, 327, 121,
767 46, 65, 635, 101, 690, 5, 693, 7, 195, 121,
768 366, 140, 649, 9, 10, 11, 296, 14, 132, 111,
769 143, 101, 594, 101, 531, 333, 151, 422, 349, 13,
770 427, 58, 600, 133, 14, 152, 206, 553, 664, 301,
771 210, 180, 442, 667, 302, 669, 340, 596, 342, 186,
772 388, 437, 189, 677, 352, 389, 112, 113, 249, 475,
773 406, 476, 408, 217, 14, 432, -106, -106, -106, -106,
774 433, 369, -106, 211, -106, -106, -106, 373, 55, 190,
775 56, 244, 238, -270, -270, 701, 366, 585, 428, 376,
776 -106, 358, 152, 626, 14, 509, 699, 14, 522, 523,
777 336, 700, 338, 194, 25, 254, 112, 113, 201, 41,
778 435, 196, 101, 205, 41, 435, 121, 33, 34, 121,
779 121, 537, 187, 207, 246, 519, 107, 415, 112, 113,
780 108, 188, 189, 227, 52, 255, 14, 228, 256, 588,
781 133, 14, 233, 234, 683, 684, 441, 445, 397, -106,
782 249, 217, 297, 298, -328, -328, -328, -328, 257, 326,
783 284, 436, -328, -328, -328, -83, 436, 383, 384, 370,
784 437, 189, 171, 172, 173, 437, 189, 53, -328, 520,
785 285, 190, 235, 253, 25, 527, 108, 190, 289, 408,
786 303, 398, 258, 111, 440, 444, 70, 261, 262, 537,
787 54, 317, 267, 268, 269, 270, 271, 272, 273, 274,
788 275, 276, 277, 278, 318, 101, 337, 239, 291, 324,
789 5, 505, 7, 98, 59, 60, 487, 386, 9, 10,
790 11, 387, 233, 234, 419, 41, 504, -102, 420, 205,
791 248, 533, 59, 60, 13, 58, 330, 15, 106, 343,
792 58, 344, 335, 544, 544, 453, 455, 592, 353, 593,
793 341, 228, 14, 108, 521, 456, 534, 518, 645, 528,
794 112, 113, 228, 647, 438, 443, 507, 108, 25, 350,
795 505, 546, 662, 508, 663, 318, 421, 42, 297, 298,
796 185, 567, 351, 41, 116, 504, 43, 133, 240, -262,
797 356, 369, 373, 154, 156, 354, 355, 569, 369, 373,
798 522, 523, 586, 587, 591, 357, 5, 6, 7, 8,
799 14, 25, 695, 372, 9, 10, 11, 401, 443, 377,
800 703, 206, 210, 52, 382, 385, 417, 25, 206, 210,
801 13, 409, 14, 402, 121, 117, 46, 410, 604, 232,
802 58, 607, 610, 413, 118, 518, -305, 543, 121, 614,
803 426, 145, 620, 621, 507, 434, 575, 577, 41, 116,
804 222, 508, 222, 41, 627, 133, 53, 205, 111, 129,
805 130, -163, 431, 411, 449, 9, 10, 11, 623, 391,
806 182, 452, -163, 418, 50, 14, 637, 465, 471, 54,
807 14, 59, 60, 198, 199, 200, 472, 644, 541, 25,
808 488, 438, 438, 550, -31, 112, 113, 505, 443, 443,
809 117, 549, 551, 468, 469, 442, -32, 470, 557, 118,
810 560, 561, 504, -163, 437, 189, 563, -163, 110, 460,
811 564, -27, -27, -27, -27, 565, 570, 572, 607, -27,
812 -27, -27, 598, 524, 525, 526, 479, 573, 529, 530,
813 578, 574, 613, 605, 111, -27, 121, -163, 46, 615,
814 686, 169, 170, 171, 172, 173, 607, 616, -163, 629,
815 542, 636, 157, 158, 159, 545, 160, 161, 162, 163,
816 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
817 630, 112, 113, 460, 634, 5, 6, 7, 8, 638,
818 640, 641, 652, 9, 10, 11, 547, 643, 665, -163,
819 670, 655, 679, -163, -27, 479, 556, 674, 678, 13,
820 599, 14, 536, 129, 130, 682, 562, 688, 691, 9,
821 10, 11, 694, 181, 697, -308, -308, -308, -308, -308,
822 -308, -308, 702, -308, -308, -308, -308, -308, 597, -308,
823 -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
824 -308, -308, -308, -308, -308, -308, -308, -308, 479, 705,
825 706, 595, 380, 576, 423, 608, 617, -308, 479, 111,
826 -308, 479, -163, 479, 322, -308, -308, -308, 584, 127,
827 535, -308, -308, -163, 300, 378, -308, 602, 305, 631,
828 306, 5, 6, 7, 8, 554, 539, 307, 414, 9,
829 10, 11, 540, 407, -308, 182, -308, -308, 339, -308,
830 424, 412, 368, 451, 346, 13, 632, 14, 633, 429,
831 687, 479, 650, 651, -163, 689, 653, 374, -163, 448,
832 217, 642, -115, -115, -115, -115, -115, -115, -115, 0,
833 -115, -115, -115, -115, -115, 0, -115, -115, -115, -115,
834 -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
835 -115, 0, -115, -115, -115, 0, 0, 239, -388, 0,
836 5, 0, 7, 98, -115, 0, 0, -115, 9, 10,
837 11, 0, -115, -115, -115, 0, 0, 0, -115, -115,
838 0, 0, 0, -115, 13, 174, 175, 15, 176, 177,
839 178, 179, 0, 41, 116, 0, 0, 205, 0, 0,
840 0, -115, -115, -115, -115, 360, -115, -328, -328, -328,
841 -328, -328, -328, -328, 0, -328, -328, -328, -328, -328,
842 14, -328, -328, -328, -328, -328, -328, -328, -328, -328,
843 -328, -328, -328, -328, -328, -328, 0, -328, -328, -328,
844 0, 0, 0, 0, 0, 117, 0, 0, 0, -328,
845 0, 0, -328, 0, 118, 0, 0, -328, -328, -328,
846 0, 0, 0, -328, -328, 0, 0, 305, -328, 0,
847 5, 6, 7, 8, 0, 0, 307, 0, 9, 10,
848 11, 0, 0, 0, 0, 0, -328, 0, -328, -328,
849 217, -328, -328, -328, 13, 0, 14, -328, -328, 0,
850 -328, 0, 0, 0, -328, 0, -328, -328, -328, -328,
851 -328, -328, -328, -328, -328, -328, -328, 0, -328, 0,
852 -328, 0, -328, -328, -328, 0, 0, 0, 0, 0,
853 5, 6, 7, 8, -328, 0, 447, -328, 9, 10,
854 11, 0, -328, -328, -328, 0, 0, -388, -328, -328,
855 0, 0, 0, -328, 13, 0, 14, 5, 55, 7,
856 56, 128, 129, 130, 0, 9, 10, 11, 9, 10,
857 11, -328, -301, -328, -328, 579, -328, -328, -328, 0,
858 0, 13, -328, -328, 0, -328, 14, 0, 0, -328,
859 0, -328, -328, -328, -328, -328, -328, -328, -328, -328,
860 -328, -328, 0, -328, 0, -328, 0, -328, -328, -328,
861 0, 0, 0, 0, 0, 5, 6, 7, 8, -328,
862 0, 0, -328, 9, 10, 11, 0, -328, -328, -328,
863 0, 0, 0, -328, -328, 454, 0, 0, -328, 13,
864 5, 14, 7, 195, 0, 0, 0, 0, 9, 10,
865 11, 0, 0, 0, 0, 0, -328, 0, -328, -328,
866 624, -328, -338, -338, 13, 0, 14, -338, -338, 0,
867 -338, 0, 0, 0, -338, 0, -338, -338, -338, -338,
868 -338, -338, -338, -338, -338, -338, -338, 0, -338, 0,
869 -338, 187, -338, -338, -338, 0, 0, 0, 0, 0,
870 188, 189, 0, 0, -338, 0, 0, -338, 0, 0,
871 0, 0, -338, -338, -338, 0, 0, 0, -338, -338,
872 0, 0, 146, -338, 68, 5, 0, 7, 98, 69,
873 70, 0, 71, 9, 10, 11, 0, 0, 0, 0,
874 0, -338, 0, -338, -338, 0, -338, 0, 0, 13,
875 72, 0, 15, 0, 73, 74, 75, 0, 0, 0,
876 473, 0, 474, 60, 0, 0, 76, 69, 70, 77,
877 71, 0, 0, 0, 78, 79, 80, 0, 0, 0,
878 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
879 15, 0, 73, 74, 75, 174, 175, 0, 176, 177,
880 178, 179, 0, 0, 76, 84, 85, 77, 147, 0,
881 0, 0, 78, 79, 80, 0, 0, 639, 81, 82,
882 0, 0, 475, 83, 476, 473, 0, 474, 60, 0,
883 0, 0, 69, 70, 0, 71, 0, 0, 0, 0,
884 0, 0, -191, 84, 85, 0, 477, 0, 0, 0,
885 0, 0, 0, 72, 0, 15, 0, 73, 74, 75,
886 0, 0, 0, 0, 0, 0, 473, 0, 68, 76,
887 0, 0, 77, 69, 70, 0, 71, 78, 79, 80,
888 0, 0, 0, 81, 82, 0, 0, 475, 83, 476,
889 0, 0, 0, 0, 72, 0, 15, 0, 73, 74,
890 75, 0, 0, 0, 0, 0, -204, -259, 84, 85,
891 76, 477, 0, 77, 0, 0, 0, 0, 78, 79,
892 80, 0, 0, 0, 81, 82, 0, 0, -204, 83,
893 -204, 458, 0, 68, 0, 0, 0, 0, 69, 70,
894 0, 71, 167, 168, 169, 170, 171, 172, 173, 84,
895 85, 0, 477, 0, 0, 0, 0, 0, 0, 72,
896 0, 15, 0, 73, 74, 75, 0, 0, 0, 473,
897 0, 68, 0, 0, 0, 76, 69, 70, 77, 71,
898 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
899 82, 0, 0, 0, 83, 0, 0, 72, 0, 15,
900 0, 73, 74, 75, 165, 166, 167, 168, 169, 170,
901 171, 172, 173, 76, 84, 85, 77, 459, 0, 0,
902 0, 78, 79, 80, 0, 0, 0, 81, 82, 0,
903 236, 0, 83, -23, -23, -23, -23, 5, 6, 7,
904 8, -23, -23, -23, 0, 9, 10, 11, 0, 0,
905 0, 0, 84, 85, 0, 477, 111, -23, 0, -163,
906 230, 13, 0, -19, -19, -19, -19, 0, 0, 0,
907 -163, -19, -19, -19, 0, 68, 0, 0, 0, 0,
908 69, 70, 0, 71, 0, 0, 111, -19, 5, -163,
909 7, 98, 0, 112, 113, 0, 9, 10, 11, 0,
910 -163, 72, 0, 15, 0, 73, 74, 75, 0, 0,
911 0, -163, 13, 0, 0, -163, -23, 76, 0, 0,
912 77, 0, 0, 0, 0, 78, 79, 214, 0, 0,
913 0, 81, 82, 0, 0, 0, 83, 0, 0, 0,
914 0, -163, 68, 0, 0, -163, -19, 69, 70, 0,
915 71, 0, 0, 0, 0, 0, 84, 85, 0, 0,
916 215, 0, 0, 0, 0, 0, 0, 0, 72, 0,
917 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
918 68, 0, 0, 0, 76, 69, 70, 77, 71, 0,
919 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
920 0, 0, 0, 83, 0, 0, 72, 0, 15, 0,
921 73, 74, 75, 166, 167, 168, 169, 170, 171, 172,
922 173, 0, 76, 84, 85, 77, 0, 294, 0, 0,
923 78, 79, 80, 0, 0, 0, 81, 82, 68, 0,
924 0, 83, 0, 69, 70, 159, 71, 160, 161, 162,
925 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
926 173, 84, 85, 0, 72, 316, 15, 0, 73, 74,
927 75, 0, 0, 0, 0, 0, 68, 0, 0, 0,
928 76, 69, 70, 77, 71, 0, 0, 0, 78, 79,
929 80, 0, 0, 0, 81, 82, 0, 0, 0, 83,
930 0, 0, 72, 0, 15, 0, 73, 74, 75, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 76, 84,
932 85, 77, 0, 332, 0, 0, 78, 79, 80, 0,
933 0, 0, 81, 82, 68, 0, 0, 83, 0, 69,
934 70, 0, 71, 161, 162, 163, 164, 165, 166, 167,
935 168, 169, 170, 171, 172, 173, 0, 84, 85, 0,
936 72, 375, 15, 0, 73, 74, 75, 0, 0, 0,
937 0, 0, 68, 0, 0, 0, 76, 69, 70, 77,
938 71, 0, 0, 0, 78, 79, 589, 0, 0, 0,
939 81, 82, 0, 0, 0, 83, 0, 0, 72, 0,
940 15, 0, 73, 74, 75, 611, 0, 0, 0, 0,
941 0, 0, 0, 0, 76, 84, 85, 77, 0, 590,
942 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
943 0, 0, 0, 83, 0, 157, 158, 159, 612, 160,
944 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
945 171, 172, 173, 84, 85, 0, 0, 628, 474, 490,
946 6, 7, 8, 69, 70, 0, 71, 9, 10, 11,
947 491, 0, 492, 493, 494, 495, 496, 497, 498, 499,
948 500, 501, 502, 13, 72, 14, 15, 0, 73, 74,
949 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
950 76, 0, 0, 77, 0, 0, 14, 0, 78, 79,
951 80, 0, 0, 0, 81, 82, 157, 158, 159, 83,
952 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
953 170, 171, 172, 173, 0, 0, 0, 503, 0, 84,
954 85, 0, 391, 474, 60, 0, 0, 0, 69, 70,
955 0, 71, 0, 0, 0, 491, 0, 492, 493, 494,
956 495, 496, 497, 498, 499, 500, 501, 502, 0, 72,
957 0, 15, 0, 73, 74, 75, 0, 0, 0, 0,
958 0, 68, 0, 0, 0, 76, 69, 70, 77, 71,
959 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
960 82, 0, 0, 0, 83, 0, 0, 72, 0, 15,
961 0, 73, 74, 75, 0, 0, 0, 0, 0, 0,
962 0, 0, 503, 76, 84, 85, 77, 391, 0, 0,
963 0, 78, 79, 80, 0, 0, 0, 81, 82, 0,
964 0, 0, 83, 68, 5, 6, 7, 8, 69, 70,
965 0, 71, 9, 10, 11, 0, 0, 0, 0, 0,
966 0, 0, 84, 85, 0, 348, 0, 0, 13, 72,
967 14, 15, 0, 73, 74, 75, 0, 0, 0, 0,
968 0, 0, 0, 0, 0, 76, 0, 0, 77, 0,
969 0, 0, 0, 78, 79, 80, 0, 0, 0, 81,
970 82, 0, 68, 5, 83, 7, 98, 69, 70, 0,
971 71, 9, 10, 11, 164, 165, 166, 167, 168, 169,
972 170, 171, 172, 173, 84, 85, 0, 13, 72, 0,
973 15, 0, 73, 74, 75, 0, 0, 0, 0, 0,
974 68, 0, 0, 0, 76, 69, 70, 77, 71, 0,
975 0, 0, 78, 79, 80, 0, 0, 0, 81, 82,
976 0, 0, 0, 83, 0, 0, 72, 0, 15, 0,
977 73, 74, 75, 0, 0, 0, 0, 0, 0, 0,
978 0, 68, 76, 84, 85, 77, 69, 70, 0, 71,
979 78, 79, 80, 0, 0, 0, 81, 82, 0, 0,
980 0, 83, 0, 0, 0, 0, 0, 72, 0, 15,
981 0, 73, 74, 75, 0, 0, 0, 0, 0, 566,
982 0, 84, 85, 76, 0, 0, 77, 0, 0, 0,
983 0, 78, 79, 80, 0, 0, 0, 81, 82, 68,
984 0, 0, 83, 0, 69, 70, 0, 71, 162, 163,
985 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
986 0, 0, 84, 85, 0, 72, 0, 15, 0, 73,
987 74, 75, 0, 0, 0, 0, 0, 68, 0, 0,
988 0, 76, 69, 70, 77, 71, 0, 0, 0, 78,
989 79, 80, 0, 0, 0, 81, 82, 0, 0, 0,
990 153, 0, 0, 72, 0, 15, 0, 73, 74, 75,
991 0, 0, 0, 0, 0, 0, 0, 0, 379, 76,
992 84, 85, 77, 69, 70, 0, 71, 78, 79, 80,
993 0, 0, 0, 81, 82, 0, 0, 0, 155, 0,
994 0, 0, 0, 0, 72, 0, 15, 0, 73, 74,
995 75, 0, 0, 0, 0, 0, 0, 0, 84, 85,
996 76, 0, 0, 77, 0, 0, 0, 0, 78, 79,
997 80, 0, 0, 0, 81, 82, 0, 0, 4, 83,
998 -119, 5, 6, 7, 8, 0, 0, 0, 0, 9,
999 10, 11, 0, 0, 0, 0, 0, 0, 0, 84,
1000 85, 0, 0, 0, 12, 13, 0, 14, 15, 157,
1001 158, 159, 0, 160, 161, 162, 163, 164, 165, 166,
1002 167, 168, 169, 170, 171, 172, 173, 0, 0, 0,
1003 0, 0, -119, 0, 0, 0, 0, 0, 157, 158,
1004 159, -119, 160, 161, 162, 163, 164, 165, 166, 167,
1005 168, 169, 170, 171, 172, 173, 0, 654, 0, 16,
1006 157, 158, 159, 659, 160, 161, 162, 163, 164, 165,
1007 166, 167, 168, 169, 170, 171, 172, 173, 0, 0,
1008 0, 157, 158, 159, 347, 160, 161, 162, 163, 164,
1009 165, 166, 167, 168, 169, 170, 171, 172, 173, 163,
1010 164, 165, 166, 167, 168, 169, 170, 171, 172, 173
1013 static const short yycheck
[] = { 38,
1014 39, 20, 25, 27, 28, 29, 49, 51, 114, 2,
1015 3, 211, 35, 36, 37, 73, 74, 22, 2, 3,
1016 233, 122, 80, 46, 43, 2, 3, 193, 86, 390,
1017 117, 54, 51, 83, 63, 453, 103, 231, 31, 97,
1018 178, 293, 46, 237, 118, 135, 1, 31, 108, 366,
1019 21, 22, 76, 135, 31, 219, 485, 1, 9, 0,
1020 22, 3, 4, 2, 3, 3, 10, 57, 3, 430,
1021 9, 10, 11, 0, 113, 3, 4, 39, 7, 43,
1022 104, 20, 30, 22, 1, 43, 105, 3, 4, 406,
1023 109, 408, 31, 31, 400, 30, 30, 403, 121, 118,
1024 187, 30, 82, 153, 43, 155, 3, 4, 209, 132,
1025 49, 428, 51, 87, 220, 139, 559, 81, 57, 64,
1026 55, 83, 286, 81, 553, 231, 55, 64, 489, 64,
1027 81, 237, 87, 64, 300, 64, 65, 127, 43, 188,
1028 179, 103, 135, 87, 64, 87, 657, 64, 82, 83,
1029 189, 225, 176, 177, 244, 229, 214, 575, 55, 87,
1030 3, 100, 244, 87, 103, 303, 105, 190, 228, 108,
1031 109, 87, 601, 135, 685, 4, 81, 6, 7, 118,
1032 286, 87, 625, 12, 13, 14, 190, 30, 127, 27,
1033 64, 153, 538, 155, 446, 234, 81, 361, 256, 28,
1034 364, 224, 548, 193, 30, 86, 225, 41, 651, 81,
1035 229, 9, 55, 656, 86, 658, 245, 43, 247, 81,
1036 81, 64, 65, 666, 263, 86, 64, 65, 252, 63,
1037 336, 65, 338, 1, 30, 81, 4, 5, 6, 7,
1038 86, 290, 10, 64, 12, 13, 14, 296, 5, 188,
1039 7, 244, 83, 82, 83, 698, 362, 81, 364, 298,
1040 28, 285, 86, 580, 30, 626, 81, 30, 64, 65,
1041 241, 86, 243, 81, 213, 81, 64, 65, 302, 3,
1042 4, 243, 244, 7, 3, 4, 225, 82, 83, 228,
1043 229, 457, 55, 81, 83, 433, 82, 347, 64, 65,
1044 86, 64, 65, 82, 309, 81, 30, 86, 81, 522,
1045 300, 30, 64, 65, 675, 676, 383, 384, 323, 87,
1046 344, 1, 64, 65, 4, 5, 6, 7, 82, 81,
1047 81, 55, 12, 13, 14, 43, 55, 308, 309, 81,
1048 64, 65, 55, 56, 57, 64, 65, 309, 28, 436,
1049 32, 290, 82, 143, 293, 442, 86, 296, 81, 465,
1050 64, 323, 152, 27, 383, 384, 9, 157, 158, 535,
1051 309, 88, 162, 163, 164, 165, 166, 167, 168, 169,
1052 170, 171, 172, 173, 82, 347, 82, 1, 437, 41,
1053 4, 430, 6, 7, 3, 4, 420, 82, 12, 13,
1054 14, 86, 64, 65, 82, 3, 430, 87, 86, 7,
1055 1, 455, 3, 4, 28, 438, 232, 31, 437, 41,
1056 443, 86, 238, 466, 467, 396, 397, 82, 43, 82,
1057 246, 86, 30, 86, 438, 397, 455, 430, 82, 443,
1058 64, 65, 86, 82, 383, 384, 430, 86, 387, 81,
1059 489, 475, 646, 430, 648, 82, 83, 55, 64, 65,
1060 518, 500, 81, 3, 4, 489, 64, 457, 82, 83,
1061 81, 520, 521, 90, 91, 265, 266, 501, 527, 528,
1062 64, 65, 520, 521, 523, 88, 4, 5, 6, 7,
1063 30, 430, 692, 88, 12, 13, 14, 41, 437, 81,
1064 700, 520, 521, 508, 81, 81, 43, 446, 527, 528,
1065 28, 83, 30, 88, 453, 55, 455, 83, 557, 620,
1066 543, 560, 561, 83, 64, 518, 83, 466, 467, 568,
1067 83, 589, 575, 577, 518, 81, 507, 508, 3, 4,
1068 646, 518, 648, 3, 583, 535, 508, 7, 27, 6,
1069 7, 30, 88, 343, 3, 12, 13, 14, 577, 87,
1070 83, 82, 41, 353, 82, 30, 605, 86, 83, 508,
1071 30, 3, 4, 5, 6, 7, 81, 616, 43, 518,
1072 83, 520, 521, 83, 43, 64, 65, 626, 527, 528,
1073 55, 43, 86, 409, 410, 55, 43, 413, 64, 64,
1074 64, 64, 626, 82, 64, 65, 43, 86, 1, 399,
1075 82, 4, 5, 6, 7, 82, 7, 43, 657, 12,
1076 13, 14, 10, 439, 440, 441, 416, 82, 444, 445,
1077 16, 82, 82, 64, 27, 28, 575, 30, 577, 82,
1078 679, 53, 54, 55, 56, 57, 685, 64, 41, 88,
1079 466, 81, 40, 41, 42, 471, 44, 45, 46, 47,
1080 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1081 83, 64, 65, 463, 83, 4, 5, 6, 7, 17,
1082 82, 81, 81, 12, 13, 14, 476, 82, 82, 82,
1083 9, 81, 64, 86, 87, 485, 486, 82, 82, 28,
1084 88, 30, 5, 6, 7, 86, 496, 82, 81, 12,
1085 13, 14, 81, 1, 82, 3, 4, 5, 6, 7,
1086 8, 9, 82, 11, 12, 13, 14, 15, 544, 17,
1087 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1088 28, 29, 30, 31, 32, 33, 34, 35, 538, 0,
1089 0, 541, 303, 82, 362, 560, 572, 45, 548, 27,
1090 48, 551, 30, 553, 220, 53, 54, 55, 518, 53,
1091 456, 59, 60, 41, 196, 302, 64, 551, 1, 595,
1092 3, 4, 5, 6, 7, 484, 463, 10, 346, 12,
1093 13, 14, 465, 338, 82, 83, 84, 85, 244, 87,
1094 362, 344, 287, 393, 252, 28, 596, 30, 598, 364,
1095 680, 601, 626, 626, 82, 682, 632, 297, 86, 387,
1096 1, 611, 3, 4, 5, 6, 7, 8, 9, -1,
1097 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
1098 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1099 31, -1, 33, 34, 35, -1, -1, 1, 81, -1,
1100 4, -1, 6, 7, 45, -1, -1, 48, 12, 13,
1101 14, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1102 -1, -1, -1, 64, 28, 59, 60, 31, 62, 63,
1103 64, 65, -1, 3, 4, -1, -1, 7, -1, -1,
1104 -1, 82, 83, 84, 85, 1, 87, 3, 4, 5,
1105 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
1106 30, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1107 26, 27, 28, 29, 30, 31, -1, 33, 34, 35,
1108 -1, -1, -1, -1, -1, 55, -1, -1, -1, 45,
1109 -1, -1, 48, -1, 64, -1, -1, 53, 54, 55,
1110 -1, -1, -1, 59, 60, -1, -1, 1, 64, -1,
1111 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
1112 14, -1, -1, -1, -1, -1, 82, -1, 84, 85,
1113 1, 87, 3, 4, 28, -1, 30, 8, 9, -1,
1114 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1115 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1116 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1117 4, 5, 6, 7, 45, -1, 10, 48, 12, 13,
1118 14, -1, 53, 54, 55, -1, -1, 81, 59, 60,
1119 -1, -1, -1, 64, 28, -1, 30, 4, 5, 6,
1120 7, 5, 6, 7, -1, 12, 13, 14, 12, 13,
1121 14, 82, 83, 84, 85, 1, 87, 3, 4, -1,
1122 -1, 28, 8, 9, -1, 11, 30, -1, -1, 15,
1123 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1124 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1125 -1, -1, -1, -1, -1, 4, 5, 6, 7, 45,
1126 -1, -1, 48, 12, 13, 14, -1, 53, 54, 55,
1127 -1, -1, -1, 59, 60, 82, -1, -1, 64, 28,
1128 4, 30, 6, 7, -1, -1, -1, -1, 12, 13,
1129 14, -1, -1, -1, -1, -1, 82, -1, 84, 85,
1130 1, 87, 3, 4, 28, -1, 30, 8, 9, -1,
1131 11, -1, -1, -1, 15, -1, 17, 18, 19, 20,
1132 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1133 31, 55, 33, 34, 35, -1, -1, -1, -1, -1,
1134 64, 65, -1, -1, 45, -1, -1, 48, -1, -1,
1135 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1136 -1, -1, 1, 64, 3, 4, -1, 6, 7, 8,
1137 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
1138 -1, 82, -1, 84, 85, -1, 87, -1, -1, 28,
1139 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1140 1, -1, 3, 4, -1, -1, 45, 8, 9, 48,
1141 11, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1142 59, 60, -1, -1, -1, 64, -1, -1, 29, -1,
1143 31, -1, 33, 34, 35, 59, 60, -1, 62, 63,
1144 64, 65, -1, -1, 45, 84, 85, 48, 87, -1,
1145 -1, -1, 53, 54, 55, -1, -1, 81, 59, 60,
1146 -1, -1, 63, 64, 65, 1, -1, 3, 4, -1,
1147 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1148 -1, -1, 83, 84, 85, -1, 87, -1, -1, -1,
1149 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1150 -1, -1, -1, -1, -1, -1, 1, -1, 3, 45,
1151 -1, -1, 48, 8, 9, -1, 11, 53, 54, 55,
1152 -1, -1, -1, 59, 60, -1, -1, 63, 64, 65,
1153 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1154 35, -1, -1, -1, -1, -1, 41, 83, 84, 85,
1155 45, 87, -1, 48, -1, -1, -1, -1, 53, 54,
1156 55, -1, -1, -1, 59, 60, -1, -1, 63, 64,
1157 65, 1, -1, 3, -1, -1, -1, -1, 8, 9,
1158 -1, 11, 51, 52, 53, 54, 55, 56, 57, 84,
1159 85, -1, 87, -1, -1, -1, -1, -1, -1, 29,
1160 -1, 31, -1, 33, 34, 35, -1, -1, -1, 1,
1161 -1, 3, -1, -1, -1, 45, 8, 9, 48, 11,
1162 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1163 60, -1, -1, -1, 64, -1, -1, 29, -1, 31,
1164 -1, 33, 34, 35, 49, 50, 51, 52, 53, 54,
1165 55, 56, 57, 45, 84, 85, 48, 87, -1, -1,
1166 -1, 53, 54, 55, -1, -1, -1, 59, 60, -1,
1167 1, -1, 64, 4, 5, 6, 7, 4, 5, 6,
1168 7, 12, 13, 14, -1, 12, 13, 14, -1, -1,
1169 -1, -1, 84, 85, -1, 87, 27, 28, -1, 30,
1170 1, 28, -1, 4, 5, 6, 7, -1, -1, -1,
1171 41, 12, 13, 14, -1, 3, -1, -1, -1, -1,
1172 8, 9, -1, 11, -1, -1, 27, 28, 4, 30,
1173 6, 7, -1, 64, 65, -1, 12, 13, 14, -1,
1174 41, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1175 -1, 82, 28, -1, -1, 86, 87, 45, -1, -1,
1176 48, -1, -1, -1, -1, 53, 54, 55, -1, -1,
1177 -1, 59, 60, -1, -1, -1, 64, -1, -1, -1,
1178 -1, 82, 3, -1, -1, 86, 87, 8, 9, -1,
1179 11, -1, -1, -1, -1, -1, 84, 85, -1, -1,
1180 88, -1, -1, -1, -1, -1, -1, -1, 29, -1,
1181 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1182 3, -1, -1, -1, 45, 8, 9, 48, 11, -1,
1183 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1184 -1, -1, -1, 64, -1, -1, 29, -1, 31, -1,
1185 33, 34, 35, 50, 51, 52, 53, 54, 55, 56,
1186 57, -1, 45, 84, 85, 48, -1, 88, -1, -1,
1187 53, 54, 55, -1, -1, -1, 59, 60, 3, -1,
1188 -1, 64, -1, 8, 9, 42, 11, 44, 45, 46,
1189 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1190 57, 84, 85, -1, 29, 88, 31, -1, 33, 34,
1191 35, -1, -1, -1, -1, -1, 3, -1, -1, -1,
1192 45, 8, 9, 48, 11, -1, -1, -1, 53, 54,
1193 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1194 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1195 -1, -1, -1, -1, -1, -1, -1, -1, 45, 84,
1196 85, 48, -1, 88, -1, -1, 53, 54, 55, -1,
1197 -1, -1, 59, 60, 3, -1, -1, 64, -1, 8,
1198 9, -1, 11, 45, 46, 47, 48, 49, 50, 51,
1199 52, 53, 54, 55, 56, 57, -1, 84, 85, -1,
1200 29, 88, 31, -1, 33, 34, 35, -1, -1, -1,
1201 -1, -1, 3, -1, -1, -1, 45, 8, 9, 48,
1202 11, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1203 59, 60, -1, -1, -1, 64, -1, -1, 29, -1,
1204 31, -1, 33, 34, 35, 10, -1, -1, -1, -1,
1205 -1, -1, -1, -1, 45, 84, 85, 48, -1, 88,
1206 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1207 -1, -1, -1, 64, -1, 40, 41, 42, 43, 44,
1208 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1209 55, 56, 57, 84, 85, -1, -1, 88, 3, 4,
1210 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1211 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1212 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
1213 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1214 45, -1, -1, 48, -1, -1, 30, -1, 53, 54,
1215 55, -1, -1, -1, 59, 60, 40, 41, 42, 64,
1216 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1217 54, 55, 56, 57, -1, -1, -1, 82, -1, 84,
1218 85, -1, 87, 3, 4, -1, -1, -1, 8, 9,
1219 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1220 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1221 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1222 -1, 3, -1, -1, -1, 45, 8, 9, 48, 11,
1223 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1224 60, -1, -1, -1, 64, -1, -1, 29, -1, 31,
1225 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1226 -1, -1, 82, 45, 84, 85, 48, 87, -1, -1,
1227 -1, 53, 54, 55, -1, -1, -1, 59, 60, -1,
1228 -1, -1, 64, 3, 4, 5, 6, 7, 8, 9,
1229 -1, 11, 12, 13, 14, -1, -1, -1, -1, -1,
1230 -1, -1, 84, 85, -1, 87, -1, -1, 28, 29,
1231 30, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1232 -1, -1, -1, -1, -1, 45, -1, -1, 48, -1,
1233 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1234 60, -1, 3, 4, 64, 6, 7, 8, 9, -1,
1235 11, 12, 13, 14, 48, 49, 50, 51, 52, 53,
1236 54, 55, 56, 57, 84, 85, -1, 28, 29, -1,
1237 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1238 3, -1, -1, -1, 45, 8, 9, 48, 11, -1,
1239 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1240 -1, -1, -1, 64, -1, -1, 29, -1, 31, -1,
1241 33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
1242 -1, 3, 45, 84, 85, 48, 8, 9, -1, 11,
1243 53, 54, 55, -1, -1, -1, 59, 60, -1, -1,
1244 -1, 64, -1, -1, -1, -1, -1, 29, -1, 31,
1245 -1, 33, 34, 35, -1, -1, -1, -1, -1, 82,
1246 -1, 84, 85, 45, -1, -1, 48, -1, -1, -1,
1247 -1, 53, 54, 55, -1, -1, -1, 59, 60, 3,
1248 -1, -1, 64, -1, 8, 9, -1, 11, 46, 47,
1249 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1250 -1, -1, 84, 85, -1, 29, -1, 31, -1, 33,
1251 34, 35, -1, -1, -1, -1, -1, 3, -1, -1,
1252 -1, 45, 8, 9, 48, 11, -1, -1, -1, 53,
1253 54, 55, -1, -1, -1, 59, 60, -1, -1, -1,
1254 64, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1255 -1, -1, -1, -1, -1, -1, -1, -1, 3, 45,
1256 84, 85, 48, 8, 9, -1, 11, 53, 54, 55,
1257 -1, -1, -1, 59, 60, -1, -1, -1, 64, -1,
1258 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1259 35, -1, -1, -1, -1, -1, -1, -1, 84, 85,
1260 45, -1, -1, 48, -1, -1, -1, -1, 53, 54,
1261 55, -1, -1, -1, 59, 60, -1, -1, 1, 64,
1262 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1263 13, 14, -1, -1, -1, -1, -1, -1, -1, 84,
1264 85, -1, -1, -1, 27, 28, -1, 30, 31, 40,
1265 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
1266 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
1267 -1, -1, 55, -1, -1, -1, -1, -1, 40, 41,
1268 42, 64, 44, 45, 46, 47, 48, 49, 50, 51,
1269 52, 53, 54, 55, 56, 57, -1, 88, -1, 82,
1270 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1271 50, 51, 52, 53, 54, 55, 56, 57, -1, -1,
1272 -1, 40, 41, 42, 86, 44, 45, 46, 47, 48,
1273 49, 50, 51, 52, 53, 54, 55, 56, 57, 47,
1274 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
1276 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1277 #line 3 "/usr/lib/bison.simple"
1278 /* This file comes from bison-1.28. */
1280 /* Skeleton output parser for bison,
1281 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1283 This program is free software; you can redistribute it and/or modify
1284 it under the terms of the GNU General Public License as published by
1285 the Free Software Foundation; either version 2, or (at your option)
1288 This program is distributed in the hope that it will be useful,
1289 but WITHOUT ANY WARRANTY; without even the implied warranty of
1290 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1291 GNU General Public License for more details.
1293 You should have received a copy of the GNU General Public License
1294 along with this program; if not, write to the Free Software
1295 Foundation, Inc., 59 Temple Place - Suite 330,
1296 Boston, MA 02111-1307, USA. */
1298 /* As a special exception, when this file is copied by Bison into a
1299 Bison output file, you may use that output file without restriction.
1300 This special exception was added by the Free Software Foundation
1301 in version 1.24 of Bison. */
1303 /* This is the parser code that is written into each bison parser
1304 when the %semantic_parser declaration is not specified in the grammar.
1305 It was written by Richard Stallman by simplifying the hairy parser
1306 used when %semantic_parser is specified. */
1308 #ifndef YYSTACK_USE_ALLOCA
1310 #define YYSTACK_USE_ALLOCA
1311 #else /* alloca not defined */
1313 #define YYSTACK_USE_ALLOCA
1314 #define alloca __builtin_alloca
1315 #else /* not GNU C. */
1316 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1317 #define YYSTACK_USE_ALLOCA
1319 #else /* not sparc */
1320 /* We think this test detects Watcom and Microsoft C. */
1321 /* This used to test MSDOS, but that is a bad idea
1322 since that symbol is in the user namespace. */
1323 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1324 #if 0 /* No need for malloc.h, which pollutes the namespace;
1325 instead, just don't use alloca. */
1328 #else /* not MSDOS, or __TURBOC__ */
1330 /* I don't know what this was needed for, but it pollutes the namespace.
1331 So I turned it off. rms, 2 May 1997. */
1332 /* #include <malloc.h> */
1334 #define YYSTACK_USE_ALLOCA
1335 #else /* not MSDOS, or __TURBOC__, or _AIX */
1337 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1338 and on HPUX 10. Eventually we can turn this on. */
1339 #define YYSTACK_USE_ALLOCA
1340 #define alloca __builtin_alloca
1343 #endif /* not _AIX */
1344 #endif /* not MSDOS, or __TURBOC__ */
1345 #endif /* not sparc */
1346 #endif /* not GNU C */
1347 #endif /* alloca not defined */
1348 #endif /* YYSTACK_USE_ALLOCA not defined */
1350 #ifdef YYSTACK_USE_ALLOCA
1351 #define YYSTACK_ALLOC alloca
1353 #define YYSTACK_ALLOC malloc
1356 /* Note: there must be only one dollar sign in this file.
1357 It is replaced by the list of actions, each action
1358 as one case of the switch. */
1360 #define yyerrok (yyerrstatus = 0)
1361 #define yyclearin (yychar = YYEMPTY)
1364 #define YYACCEPT goto yyacceptlab
1365 #define YYABORT goto yyabortlab
1366 #define YYERROR goto yyerrlab1
1367 /* Like YYERROR except do call yyerror.
1368 This remains here temporarily to ease the
1369 transition to the new meaning of YYERROR, for GCC.
1370 Once GCC version 2 has supplanted version 1, this can go. */
1371 #define YYFAIL goto yyerrlab
1372 #define YYRECOVERING() (!!yyerrstatus)
1373 #define YYBACKUP(token, value) \
1375 if (yychar == YYEMPTY && yylen == 1) \
1376 { yychar = (token), yylval = (value); \
1377 yychar1 = YYTRANSLATE (yychar); \
1382 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1386 #define YYERRCODE 256
1389 #define YYLEX yylex()
1395 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1397 #define YYLEX yylex(&yylval, &yylloc)
1399 #else /* not YYLSP_NEEDED */
1401 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1403 #define YYLEX yylex(&yylval)
1405 #endif /* not YYLSP_NEEDED */
1408 /* If nonreentrant, generate the variables here */
1412 int yychar
; /* the lookahead symbol */
1413 YYSTYPE yylval
; /* the semantic value of the */
1414 /* lookahead symbol */
1417 YYLTYPE yylloc
; /* location data for the lookahead */
1421 int yynerrs
; /* number of parse errors so far */
1422 #endif /* not YYPURE */
1425 int yydebug
; /* nonzero means print parse trace */
1426 /* Since this is uninitialized, it does not stop multiple parsers
1430 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1433 #define YYINITDEPTH 200
1436 /* YYMAXDEPTH is the maximum size the stacks can grow to
1437 (effective only if the built-in stack extension method is used). */
1444 #define YYMAXDEPTH 10000
1447 /* Define __yy_memcpy. Note that the size argument
1448 should be passed with type unsigned int, because that is what the non-GCC
1449 definitions require. With GCC, __builtin_memcpy takes an arg
1450 of type size_t, but it can handle unsigned int. */
1452 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1453 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1454 #else /* not GNU C or C++ */
1457 /* This is the most reliable way to avoid incompatibilities
1458 in available built-in functions on various systems. */
1460 __yy_memcpy (to
, from
, count
)
1465 register char *f
= from
;
1466 register char *t
= to
;
1467 register int i
= count
;
1473 #else /* __cplusplus */
1475 /* This is the most reliable way to avoid incompatibilities
1476 in available built-in functions on various systems. */
1478 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1480 register char *t
= to
;
1481 register char *f
= from
;
1482 register int i
= count
;
1491 #line 217 "/usr/lib/bison.simple"
1493 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1494 into yyparse. The argument should have type void *.
1495 It should actually point to an object.
1496 Grammar actions can access the variable by casting it
1497 to the proper pointer type. */
1499 #ifdef YYPARSE_PARAM
1501 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1502 #define YYPARSE_PARAM_DECL
1503 #else /* not __cplusplus */
1504 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1505 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1506 #endif /* not __cplusplus */
1507 #else /* not YYPARSE_PARAM */
1508 #define YYPARSE_PARAM_ARG
1509 #define YYPARSE_PARAM_DECL
1510 #endif /* not YYPARSE_PARAM */
1512 /* Prevent warning if -Wstrict-prototypes. */
1514 #ifdef YYPARSE_PARAM
1515 int yyparse (void *);
1522 yyparse(YYPARSE_PARAM_ARG
)
1525 register int yystate
;
1527 register short *yyssp
;
1528 register YYSTYPE
*yyvsp
;
1529 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1530 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1532 short yyssa
[YYINITDEPTH
]; /* the state stack */
1533 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1535 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1536 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1539 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1540 YYLTYPE
*yyls
= yylsa
;
1543 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1545 #define YYPOPSTACK (yyvsp--, yyssp--)
1548 int yystacksize
= YYINITDEPTH
;
1549 int yyfree_stacks
= 0;
1560 YYSTYPE yyval
; /* the variable used to return */
1561 /* semantic values from the action */
1568 fprintf(stderr
, "Starting parse\n");
1574 yychar
= YYEMPTY
; /* Cause a token to be read. */
1576 /* Initialize stack pointers.
1577 Waste one element of value and location stack
1578 so that they stay on the same level as the state stack.
1579 The wasted elements are never initialized. */
1587 /* Push a new state, which is found in yystate . */
1588 /* In all cases, when you get here, the value and location stacks
1589 have just been pushed. so pushing a state here evens the stacks. */
1594 if (yyssp
>= yyss
+ yystacksize
- 1)
1596 /* Give user a chance to reallocate the stack */
1597 /* Use copies of these so that the &'s don't force the real ones into memory. */
1598 YYSTYPE
*yyvs1
= yyvs
;
1599 short *yyss1
= yyss
;
1601 YYLTYPE
*yyls1
= yyls
;
1604 /* Get the current used size of the three stacks, in elements. */
1605 int size
= yyssp
- yyss
+ 1;
1608 /* Each stack pointer address is followed by the size of
1609 the data in use in that stack, in bytes. */
1611 /* This used to be a conditional around just the two extra args,
1612 but that might be undefined if yyoverflow is a macro. */
1613 yyoverflow("parser stack overflow",
1614 &yyss1
, size
* sizeof (*yyssp
),
1615 &yyvs1
, size
* sizeof (*yyvsp
),
1616 &yyls1
, size
* sizeof (*yylsp
),
1619 yyoverflow("parser stack overflow",
1620 &yyss1
, size
* sizeof (*yyssp
),
1621 &yyvs1
, size
* sizeof (*yyvsp
),
1625 yyss
= yyss1
; yyvs
= yyvs1
;
1629 #else /* no yyoverflow */
1630 /* Extend the stack our own way. */
1631 if (yystacksize
>= YYMAXDEPTH
)
1633 yyerror("parser stack overflow");
1645 if (yystacksize
> YYMAXDEPTH
)
1646 yystacksize
= YYMAXDEPTH
;
1647 #ifndef YYSTACK_USE_ALLOCA
1650 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
1651 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
1652 size
* (unsigned int) sizeof (*yyssp
));
1653 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
1654 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
1655 size
* (unsigned int) sizeof (*yyvsp
));
1657 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
1658 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
1659 size
* (unsigned int) sizeof (*yylsp
));
1661 #endif /* no yyoverflow */
1663 yyssp
= yyss
+ size
- 1;
1664 yyvsp
= yyvs
+ size
- 1;
1666 yylsp
= yyls
+ size
- 1;
1671 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1674 if (yyssp
>= yyss
+ yystacksize
- 1)
1680 fprintf(stderr
, "Entering state %d\n", yystate
);
1686 /* Do appropriate processing given the current state. */
1687 /* Read a lookahead token if we need one and don't already have one. */
1690 /* First try to decide what to do without reference to lookahead token. */
1692 yyn
= yypact
[yystate
];
1696 /* Not known => get a lookahead token if don't already have one. */
1698 /* yychar is either YYEMPTY or YYEOF
1699 or a valid token in external form. */
1701 if (yychar
== YYEMPTY
)
1705 fprintf(stderr
, "Reading a token: ");
1710 /* Convert token to internal form (in yychar1) for indexing tables with */
1712 if (yychar
<= 0) /* This means end of input. */
1715 yychar
= YYEOF
; /* Don't call YYLEX any more */
1719 fprintf(stderr
, "Now at end of input.\n");
1724 yychar1
= YYTRANSLATE(yychar
);
1729 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1730 /* Give the individual parser a way to print the precise meaning
1731 of a token, for further debugging info. */
1733 YYPRINT (stderr
, yychar
, yylval
);
1735 fprintf (stderr
, ")\n");
1741 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1746 /* yyn is what to do for this token type in this state.
1747 Negative => reduce, -yyn is rule number.
1748 Positive => shift, yyn is new state.
1749 New state is final state => don't bother to shift,
1750 just return success.
1751 0, or most negative number => error. */
1766 /* Shift the lookahead token. */
1770 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1773 /* Discard the token being shifted unless it is eof. */
1774 if (yychar
!= YYEOF
)
1782 /* count tokens shifted since error; after three, turn off error status. */
1783 if (yyerrstatus
) yyerrstatus
--;
1788 /* Do the default action for the current state. */
1791 yyn
= yydefact
[yystate
];
1795 /* Do a reduction. yyn is the number of a rule to reduce with. */
1799 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1806 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1809 /* Print the symbols being reduced, and their result. */
1810 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1811 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1812 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1820 #line 237 "c-parse.y"
1822 pedwarn ("ANSI C forbids an empty source file");
1827 #line 242 "c-parse.y"
1829 /* In case there were missing closebraces,
1830 get us back to the global binding level. */
1831 while (! global_bindings_p ())
1837 #line 256 "c-parse.y"
1838 {yyval
.ttype
= NULL_TREE
; ;
1841 #line 257 "c-parse.y"
1842 {yyval
.ttype
= NULL_TREE
; ;
1845 #line 264 "c-parse.y"
1846 { STRIP_NOPS (yyvsp
[-2].ttype
);
1847 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
1848 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
1849 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
1850 assemble_asm (yyvsp
[-2].ttype
);
1852 error ("argument of `asm' is not a constant string"); ;
1855 #line 272 "c-parse.y"
1856 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
1859 #line 277 "c-parse.y"
1861 error ("ANSI C forbids data definition with no type or storage class");
1862 else if (!flag_traditional
)
1863 warning ("data definition has no type or storage class");
1865 current_declspecs
= TREE_VALUE (declspec_stack
);
1866 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1867 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1870 #line 286 "c-parse.y"
1871 { current_declspecs
= TREE_VALUE (declspec_stack
);
1872 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1873 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1876 #line 290 "c-parse.y"
1877 { current_declspecs
= TREE_VALUE (declspec_stack
);
1878 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1879 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1882 #line 294 "c-parse.y"
1883 { pedwarn ("empty declaration"); ;
1886 #line 296 "c-parse.y"
1887 { shadow_tag (yyvsp
[-1].ttype
); ;
1890 #line 300 "c-parse.y"
1892 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1895 #line 306 "c-parse.y"
1896 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1897 prefix_attributes
, NULL_TREE
))
1899 reinit_parse_for_function (); ;
1902 #line 311 "c-parse.y"
1903 { store_parm_decls (); ;
1906 #line 313 "c-parse.y"
1907 { finish_function (0);
1908 current_declspecs
= TREE_VALUE (declspec_stack
);
1909 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1910 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1913 #line 318 "c-parse.y"
1914 { current_declspecs
= TREE_VALUE (declspec_stack
);
1915 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1916 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1919 #line 322 "c-parse.y"
1920 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
1921 prefix_attributes
, NULL_TREE
))
1923 reinit_parse_for_function (); ;
1926 #line 327 "c-parse.y"
1927 { store_parm_decls (); ;
1930 #line 329 "c-parse.y"
1931 { finish_function (0);
1932 current_declspecs
= TREE_VALUE (declspec_stack
);
1933 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1934 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1937 #line 334 "c-parse.y"
1938 { current_declspecs
= TREE_VALUE (declspec_stack
);
1939 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1940 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1943 #line 338 "c-parse.y"
1944 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
1945 prefix_attributes
, NULL_TREE
))
1947 reinit_parse_for_function (); ;
1950 #line 343 "c-parse.y"
1951 { store_parm_decls (); ;
1954 #line 345 "c-parse.y"
1955 { finish_function (0);
1956 current_declspecs
= TREE_VALUE (declspec_stack
);
1957 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1958 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1961 #line 350 "c-parse.y"
1962 { current_declspecs
= TREE_VALUE (declspec_stack
);
1963 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
1964 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
1967 #line 361 "c-parse.y"
1968 { yyval
.code
= ADDR_EXPR
; ;
1971 #line 363 "c-parse.y"
1972 { yyval
.code
= NEGATE_EXPR
; ;
1975 #line 365 "c-parse.y"
1976 { yyval
.code
= CONVERT_EXPR
; ;
1979 #line 367 "c-parse.y"
1980 { yyval
.code
= PREINCREMENT_EXPR
; ;
1983 #line 369 "c-parse.y"
1984 { yyval
.code
= PREDECREMENT_EXPR
; ;
1987 #line 371 "c-parse.y"
1988 { yyval
.code
= BIT_NOT_EXPR
; ;
1991 #line 373 "c-parse.y"
1992 { yyval
.code
= TRUTH_NOT_EXPR
; ;
1995 #line 377 "c-parse.y"
1996 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
1999 #line 382 "c-parse.y"
2000 { yyval
.ttype
= NULL_TREE
; ;
2003 #line 388 "c-parse.y"
2004 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2007 #line 390 "c-parse.y"
2008 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2011 #line 396 "c-parse.y"
2012 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2015 #line 399 "c-parse.y"
2016 { yyval
.ttype
= yyvsp
[0].ttype
;
2017 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2020 #line 402 "c-parse.y"
2021 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2022 overflow_warning (yyval
.ttype
); ;
2025 #line 406 "c-parse.y"
2026 { tree label
= lookup_label (yyvsp
[0].ttype
);
2028 pedwarn ("ANSI C forbids `&&'");
2030 yyval
.ttype
= null_pointer_node
;
2033 TREE_USED (label
) = 1;
2034 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2035 TREE_CONSTANT (yyval
.ttype
) = 1;
2040 #line 434 "c-parse.y"
2041 { skip_evaluation
--;
2042 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2043 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2044 error ("`sizeof' applied to a bit-field");
2045 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2048 #line 440 "c-parse.y"
2049 { skip_evaluation
--;
2050 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2053 #line 443 "c-parse.y"
2054 { skip_evaluation
--;
2055 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2058 #line 446 "c-parse.y"
2059 { skip_evaluation
--;
2060 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2063 #line 449 "c-parse.y"
2064 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2067 #line 451 "c-parse.y"
2068 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2071 #line 453 "c-parse.y"
2072 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2075 #line 457 "c-parse.y"
2076 { skip_evaluation
++; ;
2079 #line 461 "c-parse.y"
2080 { skip_evaluation
++; ;
2083 #line 467 "c-parse.y"
2084 { tree type
= groktypename (yyvsp
[-2].ttype
);
2085 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2088 #line 470 "c-parse.y"
2089 { start_init (NULL_TREE
, NULL
, 0);
2090 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2091 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2094 #line 474 "c-parse.y"
2096 tree result
= pop_init_level (0);
2097 tree type
= yyvsp
[-5].ttype
;
2100 if (pedantic
&& ! flag_isoc99
)
2101 pedwarn ("ANSI C forbids constructor expressions");
2102 if (TYPE_NAME (type
) != 0)
2104 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2105 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2107 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2111 yyval
.ttype
= result
;
2112 if (TREE_CODE (type
) == ARRAY_TYPE
&& !COMPLETE_TYPE_P (type
))
2114 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2121 #line 503 "c-parse.y"
2122 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2125 #line 505 "c-parse.y"
2126 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2129 #line 507 "c-parse.y"
2130 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2133 #line 509 "c-parse.y"
2134 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2137 #line 511 "c-parse.y"
2138 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2141 #line 513 "c-parse.y"
2142 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2145 #line 515 "c-parse.y"
2146 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2149 #line 517 "c-parse.y"
2150 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2153 #line 519 "c-parse.y"
2154 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2157 #line 521 "c-parse.y"
2158 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2161 #line 523 "c-parse.y"
2162 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2165 #line 525 "c-parse.y"
2166 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2169 #line 527 "c-parse.y"
2170 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2171 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2174 #line 530 "c-parse.y"
2175 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2176 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2179 #line 533 "c-parse.y"
2180 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2181 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2184 #line 536 "c-parse.y"
2185 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2186 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2189 #line 539 "c-parse.y"
2190 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2191 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2194 #line 542 "c-parse.y"
2195 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2196 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2199 #line 545 "c-parse.y"
2200 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2201 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2204 #line 548 "c-parse.y"
2206 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2207 /* Make sure first operand is calculated only once. */
2208 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2209 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2210 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2213 #line 555 "c-parse.y"
2214 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2215 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2218 #line 558 "c-parse.y"
2220 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2221 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2222 if (class == 'e' || class == '1'
2223 || class == '2' || class == '<')
2224 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2228 #line 566 "c-parse.y"
2230 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2231 /* This inhibits warnings in truthvalue_conversion. */
2232 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2233 if (class == 'e' || class == '1'
2234 || class == '2' || class == '<')
2235 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2239 #line 578 "c-parse.y"
2241 yyval
.ttype
= lastiddecl
;
2242 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2244 if (yychar
== YYEMPTY
)
2249 /* Ordinary implicit function declaration. */
2250 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2251 assemble_external (yyval
.ttype
);
2252 TREE_USED (yyval
.ttype
) = 1;
2255 else if (current_function_decl
== 0)
2257 error ("`%s' undeclared here (not in a function)",
2258 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2259 yyval
.ttype
= error_mark_node
;
2264 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2265 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2267 error ("`%s' undeclared (first use in this function)",
2268 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2270 if (! undeclared_variable_notice
)
2272 error ("(Each undeclared identifier is reported only once");
2273 error ("for each function it appears in.)");
2274 undeclared_variable_notice
= 1;
2277 yyval
.ttype
= error_mark_node
;
2278 /* Prevent repeated error messages. */
2279 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2280 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2284 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2285 yyval
.ttype
= error_mark_node
;
2286 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2288 /* The first time we see a build-in function used,
2289 if it has not been declared. */
2290 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2291 if (yychar
== YYEMPTY
)
2295 /* Omit the implicit declaration we
2296 would ordinarily do, so we don't lose
2297 the actual built in type.
2298 But print a diagnostic for the mismatch. */
2299 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2300 error ("`%s' implicitly declared as function",
2301 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2302 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2303 != TYPE_MODE (integer_type_node
))
2304 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2306 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2307 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2308 /* If it really returns void, change that to int. */
2309 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2310 TREE_TYPE (yyval
.ttype
)
2311 = build_function_type (integer_type_node
,
2312 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2315 pedwarn ("built-in function `%s' used without declaration",
2316 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2318 /* Do what we would ordinarily do when a fn is used. */
2319 assemble_external (yyval
.ttype
);
2320 TREE_USED (yyval
.ttype
) = 1;
2324 assemble_external (yyval
.ttype
);
2325 TREE_USED (yyval
.ttype
) = 1;
2328 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2330 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2331 /* This is to prevent an enum whose value is 0
2332 from being considered a null pointer constant. */
2333 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2334 TREE_CONSTANT (yyval
.ttype
) = 1;
2339 #line 677 "c-parse.y"
2340 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2343 #line 679 "c-parse.y"
2344 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2345 if (class == 'e' || class == '1'
2346 || class == '2' || class == '<')
2347 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2348 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2351 #line 685 "c-parse.y"
2352 { yyval
.ttype
= error_mark_node
; ;
2355 #line 687 "c-parse.y"
2358 pedwarn ("ANSI C forbids braced-groups within expressions");
2359 pop_iterator_stack ();
2361 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2362 /* The statements have side effects, so the group does. */
2363 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2365 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2367 /* Make a BIND_EXPR for the BLOCK already made. */
2368 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2369 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2370 /* Remove the block from the tree at this point.
2371 It gets put back at the proper place
2372 when the BIND_EXPR is expanded. */
2373 delete_block (yyvsp
[-1].ttype
);
2376 yyval
.ttype
= yyvsp
[-1].ttype
;
2380 #line 710 "c-parse.y"
2382 /* Make sure we call expand_end_stmt_expr. Otherwise
2383 we are likely to lose sequences and crash later. */
2384 pop_iterator_stack ();
2386 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2387 yyval
.ttype
= error_mark_node
;
2391 #line 719 "c-parse.y"
2392 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2395 #line 721 "c-parse.y"
2396 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2399 #line 723 "c-parse.y"
2401 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2405 #line 727 "c-parse.y"
2407 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2409 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2413 #line 733 "c-parse.y"
2414 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2417 #line 735 "c-parse.y"
2418 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2421 #line 742 "c-parse.y"
2422 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2423 if (warn_traditional
&& !in_system_header
)
2424 warning ("Use of ANSI string concatenation");
2428 #line 754 "c-parse.y"
2429 { c_mark_varargs ();
2431 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2434 #line 764 "c-parse.y"
2438 #line 780 "c-parse.y"
2439 { current_declspecs
= TREE_VALUE (declspec_stack
);
2440 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2441 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2444 #line 784 "c-parse.y"
2445 { current_declspecs
= TREE_VALUE (declspec_stack
);
2446 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2447 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2450 #line 788 "c-parse.y"
2451 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
2452 pedwarn ("empty declaration"); ;
2455 #line 791 "c-parse.y"
2456 { pedwarn ("empty declaration"); ;
2459 #line 800 "c-parse.y"
2463 #line 815 "c-parse.y"
2464 { pending_xref_error ();
2465 declspec_stack
= tree_cons (prefix_attributes
,
2468 split_specs_attrs (yyvsp
[0].ttype
,
2469 ¤t_declspecs
, &prefix_attributes
); ;
2472 #line 825 "c-parse.y"
2473 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
2476 #line 830 "c-parse.y"
2477 { current_declspecs
= TREE_VALUE (declspec_stack
);
2478 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2479 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2482 #line 834 "c-parse.y"
2483 { current_declspecs
= TREE_VALUE (declspec_stack
);
2484 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2485 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2488 #line 838 "c-parse.y"
2489 { current_declspecs
= TREE_VALUE (declspec_stack
);
2490 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2491 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2494 #line 842 "c-parse.y"
2495 { current_declspecs
= TREE_VALUE (declspec_stack
);
2496 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2497 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2500 #line 846 "c-parse.y"
2501 { shadow_tag (yyvsp
[-1].ttype
); ;
2504 #line 848 "c-parse.y"
2505 { pedwarn ("empty declaration"); ;
2508 #line 850 "c-parse.y"
2509 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2512 #line 860 "c-parse.y"
2513 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2516 #line 862 "c-parse.y"
2517 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2520 #line 866 "c-parse.y"
2521 { yyval
.ttype
= NULL_TREE
; ;
2524 #line 868 "c-parse.y"
2525 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2528 #line 870 "c-parse.y"
2529 { if (extra_warnings
)
2530 warning ("`%s' is not at beginning of declaration",
2531 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2532 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2535 #line 875 "c-parse.y"
2536 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2539 #line 880 "c-parse.y"
2540 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2543 #line 882 "c-parse.y"
2544 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2547 #line 887 "c-parse.y"
2548 { yyval
.ttype
= NULL_TREE
; ;
2551 #line 889 "c-parse.y"
2552 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2555 #line 891 "c-parse.y"
2556 { if (extra_warnings
)
2557 warning ("`%s' is not at beginning of declaration",
2558 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2559 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2562 #line 904 "c-parse.y"
2563 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2566 #line 906 "c-parse.y"
2567 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
2570 #line 908 "c-parse.y"
2571 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2574 #line 910 "c-parse.y"
2575 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2578 #line 915 "c-parse.y"
2579 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
2580 TREE_STATIC (yyval
.ttype
) = 1; ;
2583 #line 918 "c-parse.y"
2584 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
2587 #line 920 "c-parse.y"
2588 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2589 TREE_STATIC (yyval
.ttype
) = 1; ;
2592 #line 923 "c-parse.y"
2593 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
2594 warning ("`%s' is not at beginning of declaration",
2595 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2596 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
2597 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
2600 #line 937 "c-parse.y"
2601 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2604 #line 939 "c-parse.y"
2605 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
2608 #line 943 "c-parse.y"
2609 { yyval
.ttype
= NULL_TREE
; ;
2612 #line 945 "c-parse.y"
2613 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
2616 #line 955 "c-parse.y"
2617 { /* For a typedef name, record the meaning, not the name.
2618 In case of `foo foo, bar;'. */
2619 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
2622 #line 959 "c-parse.y"
2623 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
2626 #line 961 "c-parse.y"
2627 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
2630 #line 983 "c-parse.y"
2631 { yyval
.ttype
= NULL_TREE
; ;
2634 #line 985 "c-parse.y"
2635 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
2636 yyval
.ttype
= yyvsp
[-1].ttype
;
2640 #line 992 "c-parse.y"
2641 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2642 yyvsp
[-1].ttype
, prefix_attributes
);
2643 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2646 #line 997 "c-parse.y"
2648 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2651 #line 1000 "c-parse.y"
2652 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2653 yyvsp
[0].ttype
, prefix_attributes
);
2654 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
2658 #line 1008 "c-parse.y"
2659 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
2660 yyvsp
[-1].ttype
, prefix_attributes
);
2661 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
2664 #line 1013 "c-parse.y"
2666 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
2667 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
2670 #line 1017 "c-parse.y"
2671 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
2672 yyvsp
[0].ttype
, prefix_attributes
);
2673 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
2676 #line 1025 "c-parse.y"
2677 { yyval
.ttype
= NULL_TREE
; ;
2680 #line 1027 "c-parse.y"
2681 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2684 #line 1032 "c-parse.y"
2685 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2688 #line 1034 "c-parse.y"
2689 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2692 #line 1039 "c-parse.y"
2693 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
2696 #line 1044 "c-parse.y"
2697 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2700 #line 1046 "c-parse.y"
2701 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2704 #line 1051 "c-parse.y"
2705 { yyval
.ttype
= NULL_TREE
; ;
2708 #line 1053 "c-parse.y"
2709 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
2712 #line 1055 "c-parse.y"
2713 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
2716 #line 1057 "c-parse.y"
2717 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
2720 #line 1059 "c-parse.y"
2721 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2724 #line 1077 "c-parse.y"
2725 { really_start_incremental_init (NULL_TREE
); ;
2728 #line 1079 "c-parse.y"
2729 { yyval
.ttype
= pop_init_level (0); ;
2732 #line 1081 "c-parse.y"
2733 { yyval
.ttype
= error_mark_node
; ;
2736 #line 1087 "c-parse.y"
2738 pedwarn ("ANSI C forbids empty initializer braces"); ;
2741 #line 1103 "c-parse.y"
2742 { set_init_label (yyvsp
[-1].ttype
); ;
2745 #line 1110 "c-parse.y"
2746 { push_init_level (0); ;
2749 #line 1112 "c-parse.y"
2750 { process_init_element (pop_init_level (0)); ;
2753 #line 1114 "c-parse.y"
2754 { process_init_element (yyvsp
[0].ttype
); ;
2757 #line 1125 "c-parse.y"
2758 { set_init_label (yyvsp
[0].ttype
); ;
2761 #line 1130 "c-parse.y"
2762 { set_init_index (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2765 #line 1132 "c-parse.y"
2766 { set_init_index (yyvsp
[-1].ttype
, NULL_TREE
); ;
2769 #line 1137 "c-parse.y"
2771 pedwarn ("ANSI C forbids nested functions");
2773 push_function_context ();
2774 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2775 prefix_attributes
, NULL_TREE
))
2777 pop_function_context ();
2780 reinit_parse_for_function (); ;
2783 #line 1149 "c-parse.y"
2784 { store_parm_decls (); ;
2787 #line 1157 "c-parse.y"
2788 { finish_function (1);
2789 pop_function_context (); ;
2792 #line 1163 "c-parse.y"
2794 pedwarn ("ANSI C forbids nested functions");
2796 push_function_context ();
2797 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2798 prefix_attributes
, NULL_TREE
))
2800 pop_function_context ();
2803 reinit_parse_for_function (); ;
2806 #line 1175 "c-parse.y"
2807 { store_parm_decls (); ;
2810 #line 1183 "c-parse.y"
2811 { finish_function (1);
2812 pop_function_context (); ;
2815 #line 1199 "c-parse.y"
2816 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2819 #line 1201 "c-parse.y"
2820 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2823 #line 1206 "c-parse.y"
2824 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2827 #line 1208 "c-parse.y"
2828 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2831 #line 1210 "c-parse.y"
2832 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2835 #line 1217 "c-parse.y"
2836 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2839 #line 1228 "c-parse.y"
2840 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2843 #line 1233 "c-parse.y"
2844 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2846 error ("`[*]' in parameter declaration only allowed in ISO C 99");
2850 #line 1238 "c-parse.y"
2851 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2854 #line 1240 "c-parse.y"
2855 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2858 #line 1242 "c-parse.y"
2859 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2862 #line 1249 "c-parse.y"
2863 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2866 #line 1258 "c-parse.y"
2867 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
2870 #line 1263 "c-parse.y"
2871 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
2874 #line 1265 "c-parse.y"
2875 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2878 #line 1267 "c-parse.y"
2879 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, NULL_TREE
);
2881 error ("`[*]' in parameter declaration only allowed in ISO C 99");
2885 #line 1272 "c-parse.y"
2886 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2889 #line 1274 "c-parse.y"
2890 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
2893 #line 1281 "c-parse.y"
2894 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2897 #line 1287 "c-parse.y"
2898 { yyval
.ttype
= NULL_TREE
; ;
2901 #line 1289 "c-parse.y"
2902 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2905 #line 1294 "c-parse.y"
2906 { yyval
.ttype
= NULL_TREE
; ;
2909 #line 1296 "c-parse.y"
2910 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2913 #line 1301 "c-parse.y"
2914 { yyval
.ttype
= NULL_TREE
; ;
2917 #line 1303 "c-parse.y"
2918 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2921 #line 1308 "c-parse.y"
2922 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
2923 /* Start scope of tag before parsing components. */
2927 #line 1312 "c-parse.y"
2928 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2931 #line 1314 "c-parse.y"
2932 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
2933 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2937 #line 1318 "c-parse.y"
2938 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
2941 #line 1320 "c-parse.y"
2942 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
2945 #line 1322 "c-parse.y"
2946 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2949 #line 1324 "c-parse.y"
2950 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
2951 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
2955 #line 1328 "c-parse.y"
2956 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
2959 #line 1330 "c-parse.y"
2960 { yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
2963 #line 1332 "c-parse.y"
2964 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
2965 chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
)); ;
2968 #line 1335 "c-parse.y"
2969 { yyval
.ttype
= start_enum (NULL_TREE
); ;
2972 #line 1337 "c-parse.y"
2973 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
2974 chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
2977 #line 1340 "c-parse.y"
2978 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
2981 #line 1351 "c-parse.y"
2982 { if (pedantic
&& ! flag_isoc99
)
2983 pedwarn ("comma at end of enumerator list"); ;
2986 #line 1357 "c-parse.y"
2987 { yyval
.ttype
= yyvsp
[0].ttype
; ;
2990 #line 1359 "c-parse.y"
2991 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
2992 pedwarn ("no semicolon at end of struct or union"); ;
2995 #line 1364 "c-parse.y"
2996 { yyval
.ttype
= NULL_TREE
; ;
2999 #line 1366 "c-parse.y"
3000 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3003 #line 1368 "c-parse.y"
3005 pedwarn ("extra semicolon in struct or union specified"); ;
3008 #line 1383 "c-parse.y"
3009 { yyval
.ttype
= yyvsp
[0].ttype
;
3010 current_declspecs
= TREE_VALUE (declspec_stack
);
3011 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3012 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3015 #line 1388 "c-parse.y"
3017 /* Support for unnamed structs or unions as members of
3018 structs or unions (which is [a] useful and [b] supports
3021 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3023 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
3024 current_declspecs
= TREE_VALUE (declspec_stack
);
3025 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3026 declspec_stack
= TREE_CHAIN (declspec_stack
);
3030 #line 1401 "c-parse.y"
3031 { yyval
.ttype
= yyvsp
[0].ttype
;
3032 current_declspecs
= TREE_VALUE (declspec_stack
);
3033 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3034 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3037 #line 1406 "c-parse.y"
3039 pedwarn ("ANSI C forbids member declarations with no members");
3040 shadow_tag(yyvsp
[0].ttype
);
3041 yyval
.ttype
= NULL_TREE
; ;
3044 #line 1411 "c-parse.y"
3045 { yyval
.ttype
= NULL_TREE
; ;
3048 #line 1413 "c-parse.y"
3049 { yyval
.ttype
= yyvsp
[0].ttype
;
3050 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3053 #line 1420 "c-parse.y"
3054 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3057 #line 1425 "c-parse.y"
3058 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3059 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3062 #line 1429 "c-parse.y"
3063 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3064 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3067 #line 1432 "c-parse.y"
3068 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3069 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3072 #line 1444 "c-parse.y"
3073 { if (yyvsp
[-2].ttype
== error_mark_node
)
3074 yyval
.ttype
= yyvsp
[-2].ttype
;
3076 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3079 #line 1449 "c-parse.y"
3080 { yyval
.ttype
= error_mark_node
; ;
3083 #line 1455 "c-parse.y"
3084 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3087 #line 1457 "c-parse.y"
3088 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3091 #line 1462 "c-parse.y"
3092 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3095 #line 1464 "c-parse.y"
3096 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3099 #line 1469 "c-parse.y"
3100 { yyval
.ttype
= NULL_TREE
; ;
3103 #line 1475 "c-parse.y"
3104 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3107 #line 1477 "c-parse.y"
3108 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3111 #line 1482 "c-parse.y"
3112 { yyval
.ttype
= NULL_TREE
; ;
3115 #line 1484 "c-parse.y"
3116 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3119 #line 1489 "c-parse.y"
3120 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3123 #line 1492 "c-parse.y"
3124 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3127 #line 1494 "c-parse.y"
3128 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3131 #line 1496 "c-parse.y"
3132 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3135 #line 1498 "c-parse.y"
3136 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3139 #line 1500 "c-parse.y"
3140 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3143 #line 1502 "c-parse.y"
3144 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3147 #line 1504 "c-parse.y"
3148 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3151 #line 1506 "c-parse.y"
3152 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3155 #line 1510 "c-parse.y"
3156 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3159 #line 1519 "c-parse.y"
3161 if (pedantic
&& yyvsp
[0].ends_in_label
)
3162 pedwarn ("ANSI C forbids label at end of compound statement");
3166 #line 1528 "c-parse.y"
3167 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3170 #line 1530 "c-parse.y"
3171 { yyval
.ends_in_label
= 0; ;
3174 #line 1542 "c-parse.y"
3175 { emit_line_note (input_filename
, lineno
);
3178 expand_start_bindings (0);
3182 #line 1554 "c-parse.y"
3184 pedwarn ("ANSI C forbids label declarations"); ;
3187 #line 1565 "c-parse.y"
3189 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3191 tree label
= shadow_label (TREE_VALUE (link
));
3192 C_DECLARED_LABEL_FLAG (label
) = 1;
3193 declare_nonlocal_label (label
);
3198 #line 1579 "c-parse.y"
3202 #line 1583 "c-parse.y"
3203 { compstmt_count
++; ;
3206 #line 1586 "c-parse.y"
3207 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3210 #line 1588 "c-parse.y"
3211 { emit_line_note (input_filename
, lineno
);
3212 expand_end_bindings (getdecls (), 1, 0);
3213 yyval
.ttype
= poplevel (1, 1, 0); ;
3216 #line 1592 "c-parse.y"
3217 { emit_line_note (input_filename
, lineno
);
3218 expand_end_bindings (getdecls (), kept_level_p (), 0);
3219 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3222 #line 1596 "c-parse.y"
3223 { emit_line_note (input_filename
, lineno
);
3224 expand_end_bindings (getdecls (), kept_level_p (), 0);
3225 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3228 #line 1603 "c-parse.y"
3229 { if (current_function_decl
== 0)
3231 error ("braced-group within expression allowed only inside a function");
3234 /* We must force a BLOCK for this level
3235 so that, if it is not expanded later,
3236 there is a way to turn off the entire subtree of blocks
3237 that are contained in it. */
3239 push_iterator_stack ();
3240 push_label_level ();
3241 yyval
.ttype
= expand_start_stmt_expr ();
3246 #line 1620 "c-parse.y"
3247 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3250 #line 1634 "c-parse.y"
3251 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3252 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3254 yyval
.itype
= stmt_count
;
3255 if_stmt_file
= yyvsp
[-5].filename
;
3256 if_stmt_line
= yyvsp
[-4].lineno
;
3257 position_after_white_space (); ;
3260 #line 1648 "c-parse.y"
3263 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3264 /* See comment in `while' alternative, above. */
3266 expand_start_loop_continue_elsewhere (1);
3267 position_after_white_space (); ;
3270 #line 1656 "c-parse.y"
3271 { expand_loop_continue_here (); ;
3274 #line 1660 "c-parse.y"
3275 { yyval
.filename
= input_filename
; ;
3278 #line 1664 "c-parse.y"
3279 { yyval
.lineno
= lineno
; ;
3282 #line 1669 "c-parse.y"
3286 #line 1674 "c-parse.y"
3290 #line 1679 "c-parse.y"
3291 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3294 #line 1684 "c-parse.y"
3295 { yyval
.ends_in_label
= 0; ;
3298 #line 1686 "c-parse.y"
3299 { yyval
.ends_in_label
= 1; ;
3302 #line 1692 "c-parse.y"
3306 #line 1695 "c-parse.y"
3308 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3309 /* It appears that this should not be done--that a non-lvalue array
3310 shouldn't get an error if the value isn't used.
3311 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3312 if it appears as a top-level expression,
3313 but says nothing about non-lvalue arrays. */
3315 /* Call default_conversion to get an error
3316 on referring to a register array if pedantic. */
3317 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3318 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3319 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3321 iterator_expand (yyvsp
[-1].ttype
); ;
3324 #line 1711 "c-parse.y"
3325 { c_expand_start_else ();
3326 yyvsp
[-1].itype
= stmt_count
;
3327 position_after_white_space (); ;
3330 #line 1715 "c-parse.y"
3331 { c_expand_end_cond ();
3332 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3333 warning ("empty body in an else-statement"); ;
3336 #line 1719 "c-parse.y"
3337 { c_expand_end_cond ();
3338 /* This warning is here instead of in simple_if, because we
3339 do not want a warning if an empty if is followed by an
3340 else statement. Increment stmt_count so we don't
3341 give a second error if this is a nested `if'. */
3342 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3343 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3344 "empty body in an if-statement"); ;
3347 #line 1731 "c-parse.y"
3348 { c_expand_end_cond (); ;
3351 #line 1733 "c-parse.y"
3353 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3354 /* The emit_nop used to come before emit_line_note,
3355 but that made the nop seem like part of the preceding line.
3356 And that was confusing when the preceding line was
3357 inside of an if statement and was not really executed.
3358 I think it ought to work to put the nop after the line number.
3359 We will see. --rms, July 15, 1991. */
3363 #line 1743 "c-parse.y"
3364 { /* Don't start the loop till we have succeeded
3365 in parsing the end test. This is to make sure
3366 that we end every loop we start. */
3367 expand_start_loop (1);
3368 emit_line_note (input_filename
, lineno
);
3369 expand_exit_loop_if_false (NULL_PTR
,
3370 truthvalue_conversion (yyvsp
[-1].ttype
));
3371 position_after_white_space (); ;
3374 #line 1752 "c-parse.y"
3375 { expand_end_loop (); ;
3378 #line 1755 "c-parse.y"
3379 { emit_line_note (input_filename
, lineno
);
3380 expand_exit_loop_if_false (NULL_PTR
,
3381 truthvalue_conversion (yyvsp
[-2].ttype
));
3382 expand_end_loop (); ;
3385 #line 1761 "c-parse.y"
3386 { expand_end_loop (); ;
3389 #line 1764 "c-parse.y"
3391 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3392 /* See comment in `while' alternative, above. */
3394 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3395 /* Next step is to call expand_start_loop_continue_elsewhere,
3396 but wait till after we parse the entire for (...).
3397 Otherwise, invalid input might cause us to call that
3398 fn without calling expand_end_loop. */
3402 #line 1776 "c-parse.y"
3403 { yyvsp
[0].lineno
= lineno
;
3404 yyval
.filename
= input_filename
; ;
3407 #line 1779 "c-parse.y"
3409 /* Start the loop. Doing this after parsing
3410 all the expressions ensures we will end the loop. */
3411 expand_start_loop_continue_elsewhere (1);
3412 /* Emit the end-test, with a line number. */
3413 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
3414 if (yyvsp
[-4].ttype
)
3415 expand_exit_loop_if_false (NULL_PTR
,
3416 truthvalue_conversion (yyvsp
[-4].ttype
));
3417 yyvsp
[-3].lineno
= lineno
;
3418 yyvsp
[-2].filename
= input_filename
;
3419 position_after_white_space (); ;
3422 #line 1792 "c-parse.y"
3423 { /* Emit the increment expression, with a line number. */
3424 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
3425 expand_loop_continue_here ();
3426 if (yyvsp
[-3].ttype
)
3427 c_expand_expr_stmt (yyvsp
[-3].ttype
);
3428 expand_end_loop (); ;
3431 #line 1799 "c-parse.y"
3433 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3434 c_expand_start_case (yyvsp
[-1].ttype
);
3435 position_after_white_space (); ;
3438 #line 1804 "c-parse.y"
3439 { expand_end_case (yyvsp
[-3].ttype
); ;
3442 #line 1806 "c-parse.y"
3444 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3445 if ( ! expand_exit_something ())
3446 error ("break statement not within loop or switch"); ;
3449 #line 1811 "c-parse.y"
3451 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3452 if (! expand_continue_loop (NULL_PTR
))
3453 error ("continue statement not within a loop"); ;
3456 #line 1816 "c-parse.y"
3458 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3459 c_expand_return (NULL_TREE
); ;
3462 #line 1820 "c-parse.y"
3464 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3465 c_expand_return (yyvsp
[-1].ttype
); ;
3468 #line 1824 "c-parse.y"
3470 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
3471 STRIP_NOPS (yyvsp
[-2].ttype
);
3472 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
3473 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
3474 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
3475 expand_asm (yyvsp
[-2].ttype
);
3477 error ("argument of `asm' is not a constant string"); ;
3480 #line 1835 "c-parse.y"
3482 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
3483 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
3484 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
3485 input_filename
, lineno
); ;
3488 #line 1842 "c-parse.y"
3490 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
3491 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
3492 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
3493 input_filename
, lineno
); ;
3496 #line 1850 "c-parse.y"
3498 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
3499 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
3500 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
3501 input_filename
, lineno
); ;
3504 #line 1856 "c-parse.y"
3507 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
3508 decl
= lookup_label (yyvsp
[-1].ttype
);
3511 TREE_USED (decl
) = 1;
3517 #line 1867 "c-parse.y"
3519 pedwarn ("ANSI C forbids `goto *expr;'");
3521 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3522 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
3525 #line 1882 "c-parse.y"
3527 /* The value returned by this action is */
3528 /* 1 if everything is OK */
3529 /* 0 in case of error or already bound iterator */
3532 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
3533 error ("invalid `for (ITERATOR)' syntax");
3534 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
3535 error ("`%s' is not an iterator",
3536 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3537 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
3538 error ("`for (%s)' inside expansion of same iterator",
3539 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
3543 iterator_for_loop_start (yyvsp
[-1].ttype
);
3548 #line 1903 "c-parse.y"
3550 if (yyvsp
[-1].itype
)
3551 iterator_for_loop_end (yyvsp
[-3].ttype
);
3555 #line 1934 "c-parse.y"
3556 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
3558 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3562 if (value
!= error_mark_node
)
3567 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
3568 pedwarn ("label must have integral type in ANSI C");
3570 success
= pushcase (value
, convert_and_check
,
3574 error ("case label not within a switch statement");
3575 else if (success
== 2)
3577 error ("duplicate case value");
3578 error_with_decl (duplicate
, "this is the first entry for that value");
3580 else if (success
== 3)
3581 warning ("case value out of range");
3582 else if (success
== 5)
3583 error ("case label within scope of cleanup or variable array");
3585 position_after_white_space (); ;
3588 #line 1965 "c-parse.y"
3589 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
3590 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
3592 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3595 pedwarn ("ANSI C forbids case ranges");
3598 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
3601 int success
= pushcase_range (value1
, value2
,
3602 convert_and_check
, label
,
3605 error ("case label not within a switch statement");
3606 else if (success
== 2)
3608 error ("duplicate case value");
3609 error_with_decl (duplicate
, "this is the first entry for that value");
3611 else if (success
== 3)
3612 warning ("case value out of range");
3613 else if (success
== 4)
3614 warning ("empty case range");
3615 else if (success
== 5)
3616 error ("case label within scope of cleanup or variable array");
3618 position_after_white_space (); ;
3621 #line 1996 "c-parse.y"
3625 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
3626 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
3629 error ("default label not within a switch statement");
3630 else if (success
== 2)
3632 error ("multiple default labels in one switch");
3633 error_with_decl (duplicate
, "this is the first default label");
3635 position_after_white_space (); ;
3638 #line 2011 "c-parse.y"
3639 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
3644 expand_label (label
);
3645 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
3647 position_after_white_space (); ;
3650 #line 2026 "c-parse.y"
3651 { emit_line_note (input_filename
, lineno
);
3652 yyval
.ttype
= NULL_TREE
; ;
3655 #line 2029 "c-parse.y"
3656 { emit_line_note (input_filename
, lineno
); ;
3659 #line 2034 "c-parse.y"
3660 { yyval
.ttype
= NULL_TREE
; ;
3663 #line 2041 "c-parse.y"
3664 { yyval
.ttype
= NULL_TREE
; ;
3667 #line 2048 "c-parse.y"
3668 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3671 #line 2053 "c-parse.y"
3672 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3675 #line 2058 "c-parse.y"
3676 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
3679 #line 2060 "c-parse.y"
3680 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
3683 #line 2066 "c-parse.y"
3685 clear_parm_order ();
3686 declare_parm_level (0); ;
3689 #line 2070 "c-parse.y"
3690 { yyval
.ttype
= yyvsp
[0].ttype
;
3691 parmlist_tags_warning ();
3692 poplevel (0, 0, 0); ;
3695 #line 2078 "c-parse.y"
3698 pedwarn ("ANSI C forbids forward parameter declarations");
3699 /* Mark the forward decls as such. */
3700 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
3701 TREE_ASM_WRITTEN (parm
) = 1;
3702 clear_parm_order (); ;
3705 #line 2086 "c-parse.y"
3706 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3709 #line 2088 "c-parse.y"
3710 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
3713 #line 2094 "c-parse.y"
3714 { yyval
.ttype
= get_parm_info (0); ;
3717 #line 2096 "c-parse.y"
3718 { yyval
.ttype
= get_parm_info (0);
3719 /* Gcc used to allow this as an extension. However, it does
3720 not work for all targets, and thus has been disabled.
3721 Also, since func (...) and func () are indistinguishable,
3722 it caused problems with the code in expand_builtin which
3723 tries to verify that BUILT_IN_NEXT_ARG is being used
3725 error ("ANSI C requires a named argument before `...'");
3729 #line 2106 "c-parse.y"
3730 { yyval
.ttype
= get_parm_info (1); ;
3733 #line 2108 "c-parse.y"
3734 { yyval
.ttype
= get_parm_info (0); ;
3737 #line 2113 "c-parse.y"
3738 { push_parm_decl (yyvsp
[0].ttype
); ;
3741 #line 2115 "c-parse.y"
3742 { push_parm_decl (yyvsp
[0].ttype
); ;
3745 #line 2122 "c-parse.y"
3746 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3748 build_tree_list (prefix_attributes
,
3750 current_declspecs
= TREE_VALUE (declspec_stack
);
3751 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3752 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3755 #line 2130 "c-parse.y"
3756 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3758 build_tree_list (prefix_attributes
,
3760 current_declspecs
= TREE_VALUE (declspec_stack
);
3761 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3762 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3765 #line 2138 "c-parse.y"
3766 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3768 build_tree_list (prefix_attributes
,
3770 current_declspecs
= TREE_VALUE (declspec_stack
);
3771 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3772 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3775 #line 2146 "c-parse.y"
3776 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3778 build_tree_list (prefix_attributes
,
3780 current_declspecs
= TREE_VALUE (declspec_stack
);
3781 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3782 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3785 #line 2155 "c-parse.y"
3786 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
3788 build_tree_list (prefix_attributes
,
3790 current_declspecs
= TREE_VALUE (declspec_stack
);
3791 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3792 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3795 #line 2168 "c-parse.y"
3797 clear_parm_order ();
3798 declare_parm_level (1); ;
3801 #line 2172 "c-parse.y"
3802 { yyval
.ttype
= yyvsp
[0].ttype
;
3803 parmlist_tags_warning ();
3804 poplevel (0, 0, 0); ;
3807 #line 2180 "c-parse.y"
3809 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
3810 if (TREE_VALUE (t
) == NULL_TREE
)
3811 error ("`...' in old-style identifier list");
3812 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3815 #line 2190 "c-parse.y"
3816 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3819 #line 2192 "c-parse.y"
3820 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3823 #line 2198 "c-parse.y"
3824 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
3827 #line 2200 "c-parse.y"
3828 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
3831 #line 2205 "c-parse.y"
3832 { yyval
.ttype
= SAVE_WARN_FLAGS();
3834 warn_pointer_arith
= 0; ;
3837 /* the action file gets copied in in place of this dollarsign */
3838 #line 543 "/usr/lib/bison.simple"
3849 short *ssp1
= yyss
- 1;
3850 fprintf (stderr
, "state stack now");
3851 while (ssp1
!= yyssp
)
3852 fprintf (stderr
, " %d", *++ssp1
);
3853 fprintf (stderr
, "\n");
3863 yylsp
->first_line
= yylloc
.first_line
;
3864 yylsp
->first_column
= yylloc
.first_column
;
3865 yylsp
->last_line
= (yylsp
-1)->last_line
;
3866 yylsp
->last_column
= (yylsp
-1)->last_column
;
3871 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3872 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3876 /* Now "shift" the result of the reduction.
3877 Determine what state that goes to,
3878 based on the state we popped back to
3879 and the rule number reduced by. */
3883 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3884 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3885 yystate
= yytable
[yystate
];
3887 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3891 yyerrlab
: /* here on detecting error */
3894 /* If not already recovering from an error, report this error. */
3898 #ifdef YYERROR_VERBOSE
3899 yyn
= yypact
[yystate
];
3901 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3908 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3909 for (x
= (yyn
< 0 ? -yyn
: 0);
3910 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3911 if (yycheck
[x
+ yyn
] == x
)
3912 size
+= strlen(yytname
[x
]) + 15, count
++;
3913 msg
= (char *) malloc(size
+ 15);
3916 strcpy(msg
, "parse error");
3921 for (x
= (yyn
< 0 ? -yyn
: 0);
3922 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3923 if (yycheck
[x
+ yyn
] == x
)
3925 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3926 strcat(msg
, yytname
[x
]);
3935 yyerror ("parse error; also virtual memory exceeded");
3938 #endif /* YYERROR_VERBOSE */
3939 yyerror("parse error");
3943 yyerrlab1
: /* here on error raised explicitly by an action */
3945 if (yyerrstatus
== 3)
3947 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3949 /* return failure if at end of input */
3950 if (yychar
== YYEOF
)
3955 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3961 /* Else will try to reuse lookahead token
3962 after shifting the error token. */
3964 yyerrstatus
= 3; /* Each real token shifted decrements this */
3968 yyerrdefault
: /* current state does not do anything special for the error token. */
3971 /* This is wrong; only states that explicitly want error tokens
3972 should shift them. */
3973 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3974 if (yyn
) goto yydefault
;
3977 yyerrpop
: /* pop the current state because it cannot handle the error token */
3979 if (yyssp
== yyss
) YYABORT
;
3989 short *ssp1
= yyss
- 1;
3990 fprintf (stderr
, "Error: state stack now");
3991 while (ssp1
!= yyssp
)
3992 fprintf (stderr
, " %d", *++ssp1
);
3993 fprintf (stderr
, "\n");
3999 yyn
= yypact
[yystate
];
4004 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
4023 fprintf(stderr
, "Shifting error token, ");
4035 /* YYACCEPT comes here. */
4047 /* YYABORT comes here. */
4058 #line 2210 "c-parse.y"