* java/lang/natSystem.cc (SystemClass): New define.
[official-gcc.git] / gcc / c-parse.c
bloba1d2d6d1c47224938673f9f5d561241634795bf5
2 /* A Bison parser, made from c-parse.y
3 by GNU Bison version 1.25
4 */
6 #define YYBISON 1 /* Identify Bison output. */
8 #define IDENTIFIER 258
9 #define TYPENAME 259
10 #define SCSPEC 260
11 #define TYPESPEC 261
12 #define TYPE_QUAL 262
13 #define CONSTANT 263
14 #define STRING 264
15 #define ELLIPSIS 265
16 #define SIZEOF 266
17 #define ENUM 267
18 #define STRUCT 268
19 #define UNION 269
20 #define IF 270
21 #define ELSE 271
22 #define WHILE 272
23 #define DO 273
24 #define FOR 274
25 #define SWITCH 275
26 #define CASE 276
27 #define DEFAULT 277
28 #define BREAK 278
29 #define CONTINUE 279
30 #define RETURN 280
31 #define GOTO 281
32 #define ASM_KEYWORD 282
33 #define TYPEOF 283
34 #define ALIGNOF 284
35 #define ATTRIBUTE 285
36 #define EXTENSION 286
37 #define LABEL 287
38 #define REALPART 288
39 #define IMAGPART 289
40 #define ASSIGN 290
41 #define OROR 291
42 #define ANDAND 292
43 #define EQCOMPARE 293
44 #define ARITHCOMPARE 294
45 #define LSHIFT 295
46 #define RSHIFT 296
47 #define UNARY 297
48 #define PLUSPLUS 298
49 #define MINUSMINUS 299
50 #define HYPERUNARY 300
51 #define POINTSAT 301
52 #define INTERFACE 302
53 #define IMPLEMENTATION 303
54 #define END 304
55 #define SELECTOR 305
56 #define DEFS 306
57 #define ENCODE 307
58 #define CLASSNAME 308
59 #define PUBLIC 309
60 #define PRIVATE 310
61 #define PROTECTED 311
62 #define PROTOCOL 312
63 #define OBJECTNAME 313
64 #define CLASS 314
65 #define ALIAS 315
66 #define OBJC_STRING 316
68 #line 56 "c-parse.y"
70 #include "config.h"
71 #include "system.h"
72 #include <setjmp.h>
74 #include "tree.h"
75 #include "input.h"
76 #include "c-lex.h"
77 #include "c-tree.h"
78 #include "flags.h"
79 #include "output.h"
80 #include "toplev.h"
82 #ifdef MULTIBYTE_CHARS
83 #include <locale.h>
84 #endif
87 /* Since parsers are distinct for each language, put the language string
88 definition here. */
89 char *language_string = "GNU C";
91 /* Like YYERROR but do call yyerror. */
92 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
94 /* Cause the `yydebug' variable to be defined. */
95 #define YYDEBUG 1
97 #line 87 "c-parse.y"
98 typedef union {long itype; tree ttype; enum tree_code code;
99 char *filename; int lineno; int ends_in_label; } YYSTYPE;
100 #line 204 "c-parse.y"
102 /* Number of statements (loosely speaking) and compound statements
103 seen so far. */
104 static int stmt_count;
105 static int compstmt_count;
107 /* Input file and line number of the end of the body of last simple_if;
108 used by the stmt-rule immediately after simple_if returns. */
109 static char *if_stmt_file;
110 static int if_stmt_line;
112 /* List of types and structure classes of the current declaration. */
113 static tree current_declspecs = NULL_TREE;
114 static tree prefix_attributes = NULL_TREE;
116 /* Stack of saved values of current_declspecs and prefix_attributes. */
117 static tree declspec_stack;
119 /* 1 if we explained undeclared var errors. */
120 static int undeclared_variable_notice;
123 /* Tell yyparse how to print a token's value, if yydebug is set. */
125 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
126 extern void yyprint PROTO ((FILE *, int, YYSTYPE));
127 #include <stdio.h>
129 #ifndef __cplusplus
130 #ifndef __STDC__
131 #define const
132 #endif
133 #endif
137 #define YYFINAL 689
138 #define YYFLAG -32768
139 #define YYNTBASE 84
141 #define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241)
143 static const char yytranslate[] = { 0,
144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147 2, 2, 80, 2, 2, 2, 52, 43, 2, 59,
148 76, 50, 48, 81, 49, 58, 51, 2, 2, 2,
149 2, 2, 2, 2, 2, 2, 2, 38, 77, 2,
150 36, 2, 37, 2, 2, 2, 2, 2, 2, 2,
151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153 60, 2, 83, 42, 2, 2, 2, 2, 2, 2,
154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156 2, 2, 82, 41, 78, 79, 2, 2, 2, 2,
157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
170 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
171 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
172 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
173 39, 40, 44, 45, 46, 47, 53, 54, 55, 56,
174 57, 61, 62, 63, 64, 65, 66, 67, 68, 69,
175 70, 71, 72, 73, 74, 75
178 #if YYDEBUG != 0
179 static const short yyprhs[] = { 0,
180 0, 1, 3, 4, 7, 8, 12, 14, 16, 22,
181 25, 29, 34, 39, 42, 45, 48, 51, 53, 54,
182 55, 63, 68, 69, 70, 78, 83, 84, 85, 92,
183 96, 98, 100, 102, 104, 106, 108, 110, 112, 114,
184 116, 117, 119, 121, 125, 127, 130, 133, 136, 139,
185 142, 147, 150, 155, 158, 161, 163, 165, 167, 172,
186 173, 181, 183, 187, 191, 195, 199, 203, 207, 211,
187 215, 219, 223, 227, 231, 232, 237, 238, 243, 244,
188 245, 253, 254, 260, 264, 268, 270, 272, 274, 278,
189 282, 283, 288, 293, 298, 302, 306, 309, 312, 314,
190 317, 318, 320, 323, 327, 329, 331, 334, 337, 342,
191 347, 350, 353, 357, 359, 361, 364, 367, 368, 369,
192 374, 379, 383, 387, 390, 393, 396, 399, 403, 404,
193 407, 410, 413, 416, 420, 421, 424, 427, 429, 431,
194 434, 437, 439, 441, 444, 447, 450, 454, 455, 458,
195 460, 462, 464, 469, 474, 476, 478, 480, 482, 486,
196 488, 492, 493, 498, 499, 506, 510, 511, 518, 522,
197 523, 525, 527, 530, 537, 539, 543, 544, 546, 551,
198 558, 563, 565, 567, 569, 571, 573, 574, 579, 581,
199 582, 585, 587, 591, 595, 598, 599, 604, 606, 607,
200 612, 614, 616, 618, 621, 624, 630, 634, 635, 636,
201 642, 643, 644, 650, 652, 654, 658, 662, 667, 671,
202 675, 679, 681, 685, 690, 695, 699, 703, 707, 709,
203 713, 717, 721, 726, 731, 735, 739, 741, 743, 746,
204 748, 751, 753, 756, 757, 765, 771, 774, 775, 783,
205 789, 792, 793, 802, 803, 811, 814, 815, 817, 818,
206 820, 822, 825, 826, 830, 833, 837, 839, 843, 845,
207 847, 850, 852, 856, 861, 868, 874, 876, 880, 882,
208 884, 888, 891, 894, 895, 897, 899, 902, 903, 906,
209 910, 914, 917, 921, 926, 930, 933, 937, 940, 942,
210 944, 947, 950, 951, 953, 956, 957, 958, 960, 962,
211 965, 969, 971, 974, 976, 979, 986, 992, 998, 1001,
212 1004, 1009, 1010, 1015, 1016, 1017, 1021, 1026, 1030, 1032,
213 1034, 1036, 1038, 1041, 1042, 1047, 1049, 1053, 1054, 1055,
214 1063, 1069, 1072, 1073, 1074, 1075, 1088, 1089, 1096, 1099,
215 1102, 1105, 1109, 1116, 1125, 1136, 1149, 1153, 1158, 1160,
216 1162, 1163, 1170, 1174, 1180, 1183, 1187, 1188, 1190, 1191,
217 1193, 1194, 1196, 1198, 1202, 1207, 1209, 1213, 1214, 1217,
218 1220, 1221, 1226, 1229, 1230, 1232, 1234, 1238, 1240, 1244,
219 1249, 1254, 1259, 1264, 1269, 1270, 1273, 1275, 1278, 1280,
220 1284, 1286, 1290
223 static const short yyrhs[] = { -1,
224 85, 0, 0, 86, 88, 0, 0, 85, 87, 88,
225 0, 90, 0, 89, 0, 27, 59, 99, 76, 77,
226 0, 240, 88, 0, 122, 136, 77, 0, 129, 122,
227 136, 77, 0, 125, 122, 135, 77, 0, 129, 77,
228 0, 125, 77, 0, 1, 77, 0, 1, 78, 0,
229 77, 0, 0, 0, 125, 122, 164, 91, 116, 92,
230 198, 0, 125, 122, 164, 1, 0, 0, 0, 129,
231 122, 167, 93, 116, 94, 198, 0, 129, 122, 167,
232 1, 0, 0, 0, 122, 167, 95, 116, 96, 198,
233 0, 122, 167, 1, 0, 3, 0, 4, 0, 43,
234 0, 49, 0, 48, 0, 54, 0, 55, 0, 79,
235 0, 80, 0, 101, 0, 0, 101, 0, 107, 0,
236 101, 81, 107, 0, 113, 0, 50, 105, 0, 240,
237 105, 0, 98, 105, 0, 40, 97, 0, 103, 102,
238 0, 103, 59, 185, 76, 0, 104, 102, 0, 104,
239 59, 185, 76, 0, 33, 105, 0, 34, 105, 0,
240 11, 0, 29, 0, 102, 0, 59, 185, 76, 105,
241 0, 0, 59, 185, 76, 82, 106, 150, 78, 0,
242 105, 0, 107, 48, 107, 0, 107, 49, 107, 0,
243 107, 50, 107, 0, 107, 51, 107, 0, 107, 52,
244 107, 0, 107, 46, 107, 0, 107, 47, 107, 0,
245 107, 45, 107, 0, 107, 44, 107, 0, 107, 43,
246 107, 0, 107, 41, 107, 0, 107, 42, 107, 0,
247 0, 107, 40, 108, 107, 0, 0, 107, 39, 109,
248 107, 0, 0, 0, 107, 37, 110, 99, 38, 111,
249 107, 0, 0, 107, 37, 112, 38, 107, 0, 107,
250 36, 107, 0, 107, 35, 107, 0, 3, 0, 8,
251 0, 115, 0, 59, 99, 76, 0, 59, 1, 76,
252 0, 0, 59, 114, 200, 76, 0, 113, 59, 100,
253 76, 0, 113, 60, 99, 83, 0, 113, 58, 97,
254 0, 113, 57, 97, 0, 113, 54, 0, 113, 55,
255 0, 9, 0, 115, 9, 0, 0, 118, 0, 118,
256 10, 0, 205, 206, 119, 0, 117, 0, 193, 0,
257 118, 117, 0, 117, 193, 0, 127, 122, 135, 77,
258 0, 130, 122, 136, 77, 0, 127, 77, 0, 130,
259 77, 0, 205, 206, 124, 0, 120, 0, 193, 0,
260 121, 120, 0, 120, 193, 0, 0, 0, 125, 122,
261 135, 77, 0, 129, 122, 136, 77, 0, 125, 122,
262 158, 0, 129, 122, 161, 0, 125, 77, 0, 129,
263 77, 0, 240, 124, 0, 133, 126, 0, 129, 133,
264 126, 0, 0, 126, 134, 0, 126, 5, 0, 126,
265 143, 0, 133, 128, 0, 130, 133, 128, 0, 0,
266 128, 134, 0, 128, 5, 0, 130, 0, 143, 0,
267 129, 130, 0, 129, 143, 0, 7, 0, 5, 0,
268 130, 7, 0, 130, 5, 0, 133, 132, 0, 187,
269 133, 132, 0, 0, 132, 134, 0, 6, 0, 171,
270 0, 4, 0, 28, 59, 99, 76, 0, 28, 59,
271 185, 76, 0, 6, 0, 7, 0, 171, 0, 138,
272 0, 135, 81, 138, 0, 140, 0, 136, 81, 138,
273 0, 0, 27, 59, 115, 76, 0, 0, 164, 137,
274 142, 36, 139, 148, 0, 164, 137, 142, 0, 0,
275 167, 137, 142, 36, 141, 148, 0, 167, 137, 142,
276 0, 0, 143, 0, 144, 0, 143, 144, 0, 30,
277 59, 59, 145, 76, 76, 0, 146, 0, 145, 81,
278 146, 0, 0, 147, 0, 147, 59, 3, 76, 0,
279 147, 59, 3, 81, 101, 76, 0, 147, 59, 100,
280 76, 0, 97, 0, 5, 0, 6, 0, 7, 0,
281 107, 0, 0, 82, 149, 150, 78, 0, 1, 0,
282 0, 151, 176, 0, 152, 0, 151, 81, 152, 0,
283 156, 36, 154, 0, 157, 154, 0, 0, 97, 38,
284 153, 154, 0, 154, 0, 0, 82, 155, 150, 78,
285 0, 107, 0, 1, 0, 157, 0, 156, 157, 0,
286 58, 97, 0, 60, 107, 10, 107, 83, 0, 60,
287 107, 83, 0, 0, 0, 164, 159, 116, 160, 200,
288 0, 0, 0, 167, 162, 116, 163, 200, 0, 165,
289 0, 167, 0, 59, 165, 76, 0, 165, 59, 235,
290 0, 165, 60, 99, 83, 0, 165, 60, 83, 0,
291 50, 188, 165, 0, 143, 123, 165, 0, 4, 0,
292 166, 59, 235, 0, 166, 60, 50, 83, 0, 166,
293 60, 99, 83, 0, 166, 60, 83, 0, 50, 188,
294 166, 0, 143, 123, 166, 0, 4, 0, 167, 59,
295 235, 0, 59, 167, 76, 0, 50, 188, 167, 0,
296 167, 60, 50, 83, 0, 167, 60, 99, 83, 0,
297 167, 60, 83, 0, 143, 123, 167, 0, 3, 0,
298 13, 0, 13, 143, 0, 14, 0, 14, 143, 0,
299 12, 0, 12, 143, 0, 0, 168, 97, 82, 172,
300 178, 78, 142, 0, 168, 82, 178, 78, 142, 0,
301 168, 97, 0, 0, 169, 97, 82, 173, 178, 78,
302 142, 0, 169, 82, 178, 78, 142, 0, 169, 97,
303 0, 0, 170, 97, 82, 174, 183, 177, 78, 142,
304 0, 0, 170, 82, 175, 183, 177, 78, 142, 0,
305 170, 97, 0, 0, 81, 0, 0, 81, 0, 179,
306 0, 179, 180, 0, 0, 179, 180, 77, 0, 179,
307 77, 0, 131, 122, 181, 0, 131, 0, 187, 122,
308 181, 0, 187, 0, 1, 0, 240, 180, 0, 182,
309 0, 181, 81, 182, 0, 205, 206, 164, 142, 0,
310 205, 206, 164, 38, 107, 142, 0, 205, 206, 38,
311 107, 142, 0, 184, 0, 183, 81, 184, 0, 1,
312 0, 97, 0, 97, 36, 107, 0, 131, 186, 0,
313 187, 186, 0, 0, 189, 0, 7, 0, 187, 7,
314 0, 0, 188, 7, 0, 59, 189, 76, 0, 50,
315 188, 189, 0, 50, 188, 0, 189, 59, 228, 0,
316 189, 60, 99, 83, 0, 189, 60, 83, 0, 59,
317 228, 0, 60, 99, 83, 0, 60, 83, 0, 191,
318 0, 208, 0, 191, 208, 0, 191, 193, 0, 0,
319 190, 0, 1, 77, 0, 0, 0, 196, 0, 197,
320 0, 196, 197, 0, 32, 239, 77, 0, 200, 0,
321 1, 200, 0, 82, 0, 199, 78, 0, 199, 194,
322 195, 121, 192, 78, 0, 199, 194, 195, 1, 78,
323 0, 199, 194, 195, 190, 78, 0, 202, 207, 0,
324 202, 1, 0, 15, 59, 99, 76, 0, 0, 18,
325 204, 207, 17, 0, 0, 0, 205, 206, 210, 0,
326 205, 206, 221, 207, 0, 205, 206, 209, 0, 210,
327 0, 221, 0, 200, 0, 218, 0, 99, 77, 0,
328 0, 201, 16, 211, 207, 0, 201, 0, 201, 16,
329 1, 0, 0, 0, 17, 212, 59, 99, 76, 213,
330 207, 0, 203, 59, 99, 76, 77, 0, 203, 1,
331 0, 0, 0, 0, 19, 59, 223, 77, 214, 223,
332 77, 215, 223, 76, 216, 207, 0, 0, 20, 59,
333 99, 76, 217, 207, 0, 23, 77, 0, 24, 77,
334 0, 25, 77, 0, 25, 99, 77, 0, 27, 222,
335 59, 99, 76, 77, 0, 27, 222, 59, 99, 38,
336 224, 76, 77, 0, 27, 222, 59, 99, 38, 224,
337 38, 224, 76, 77, 0, 27, 222, 59, 99, 38,
338 224, 38, 224, 38, 227, 76, 77, 0, 26, 97,
339 77, 0, 26, 50, 99, 77, 0, 77, 0, 219,
340 0, 0, 19, 59, 113, 76, 220, 207, 0, 21,
341 107, 38, 0, 21, 107, 10, 107, 38, 0, 22,
342 38, 0, 97, 38, 142, 0, 0, 7, 0, 0,
343 99, 0, 0, 225, 0, 226, 0, 225, 81, 226,
344 0, 9, 59, 99, 76, 0, 115, 0, 227, 81,
345 115, 0, 0, 229, 230, 0, 232, 76, 0, 0,
346 233, 77, 231, 230, 0, 1, 76, 0, 0, 10,
347 0, 233, 0, 233, 81, 10, 0, 234, 0, 233,
348 81, 234, 0, 125, 122, 166, 142, 0, 125, 122,
349 167, 142, 0, 125, 122, 186, 142, 0, 129, 122,
350 167, 142, 0, 129, 122, 186, 142, 0, 0, 236,
351 237, 0, 230, 0, 238, 76, 0, 3, 0, 238,
352 81, 3, 0, 97, 0, 239, 81, 97, 0, 31,
356 #endif
358 #if YYDEBUG != 0
359 static const short yyrline[] = { 0,
360 233, 238, 252, 254, 254, 255, 257, 259, 260, 268,
361 272, 283, 288, 293, 295, 297, 298, 299, 304, 311,
362 313, 318, 323, 329, 331, 336, 341, 347, 349, 354,
363 361, 363, 366, 368, 370, 372, 374, 376, 378, 382,
364 386, 389, 392, 395, 399, 401, 404, 407, 411, 439,
365 445, 448, 451, 454, 456, 460, 464, 468, 470, 473,
366 477, 504, 506, 508, 510, 512, 514, 516, 518, 520,
367 522, 524, 526, 528, 530, 534, 536, 540, 542, 545,
368 549, 551, 558, 561, 564, 570, 669, 670, 672, 678,
369 680, 694, 717, 719, 721, 725, 731, 733, 738, 740,
370 745, 747, 748, 758, 763, 765, 766, 767, 774, 780,
371 785, 788, 796, 801, 803, 804, 805, 812, 823, 827,
372 833, 838, 843, 848, 850, 852, 861, 864, 868, 870,
373 872, 877, 881, 884, 888, 891, 893, 905, 908, 910,
374 912, 916, 920, 922, 925, 938, 941, 945, 947, 955,
375 956, 957, 961, 963, 969, 970, 971, 974, 976, 979,
376 981, 984, 987, 993, 1000, 1002, 1009, 1016, 1019, 1026,
377 1029, 1033, 1036, 1040, 1045, 1048, 1052, 1055, 1057, 1059,
378 1061, 1068, 1070, 1071, 1072, 1077, 1079, 1084, 1092, 1097,
379 1101, 1104, 1106, 1111, 1113, 1114, 1117, 1117, 1120, 1123,
380 1125, 1127, 1130, 1132, 1135, 1141, 1143, 1147, 1158, 1166,
381 1170, 1181, 1189, 1196, 1198, 1203, 1206, 1211, 1213, 1215,
382 1222, 1224, 1232, 1238, 1243, 1245, 1247, 1254, 1256, 1262,
383 1268, 1270, 1272, 1277, 1279, 1286, 1288, 1291, 1294, 1298,
384 1301, 1305, 1308, 1312, 1317, 1319, 1323, 1325, 1327, 1329,
385 1333, 1335, 1338, 1341, 1344, 1347, 1351, 1353, 1356, 1358,
386 1363, 1366, 1371, 1373, 1375, 1389, 1396, 1401, 1407, 1412,
387 1414, 1419, 1421, 1425, 1429, 1433, 1443, 1445, 1450, 1455,
388 1458, 1462, 1465, 1469, 1472, 1475, 1478, 1482, 1485, 1489,
389 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1517, 1525,
390 1527, 1529, 1533, 1535, 1538, 1541, 1552, 1554, 1559, 1561,
391 1564, 1578, 1581, 1584, 1586, 1588, 1596, 1604, 1615, 1620,
392 1623, 1637, 1646, 1650, 1654, 1658, 1664, 1668, 1673, 1676,
393 1681, 1684, 1685, 1702, 1707, 1710, 1722, 1724, 1734, 1744,
394 1745, 1753, 1756, 1768, 1772, 1789, 1799, 1808, 1813, 1818,
395 1823, 1827, 1831, 1842, 1849, 1856, 1863, 1874, 1880, 1883,
396 1888, 1911, 1945, 1976, 2007, 2022, 2036, 2040, 2044, 2047,
397 2052, 2054, 2057, 2059, 2063, 2068, 2071, 2077, 2082, 2087,
398 2089, 2098, 2099, 2105, 2107, 2117, 2119, 2123, 2126, 2132,
399 2142, 2151, 2160, 2170, 2184, 2189, 2194, 2196, 2205, 2208,
400 2213, 2216, 2220
402 #endif
405 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
407 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
408 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
409 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
410 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
411 "EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
412 "ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
413 "'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
414 "'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
415 "CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
416 "OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
417 "@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
418 "unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
419 "cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
420 "string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
421 "decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
422 "typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
423 "declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
424 "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
425 "@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
426 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
427 "@19","initval","@20","designator_list","designator","nested_function","@21",
428 "@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
429 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
430 "structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
431 "component_decl_list2","component_decl","components","component_declarator",
432 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
433 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
434 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
435 "if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
436 "lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
437 "@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
438 "xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
439 "@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
440 "@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
442 #endif
444 static const short yyr1[] = { 0,
445 84, 84, 86, 85, 87, 85, 88, 88, 88, 88,
446 89, 89, 89, 89, 89, 89, 89, 89, 91, 92,
447 90, 90, 93, 94, 90, 90, 95, 96, 90, 90,
448 97, 97, 98, 98, 98, 98, 98, 98, 98, 99,
449 100, 100, 101, 101, 102, 102, 102, 102, 102, 102,
450 102, 102, 102, 102, 102, 103, 104, 105, 105, 106,
451 105, 107, 107, 107, 107, 107, 107, 107, 107, 107,
452 107, 107, 107, 107, 108, 107, 109, 107, 110, 111,
453 107, 112, 107, 107, 107, 113, 113, 113, 113, 113,
454 114, 113, 113, 113, 113, 113, 113, 113, 115, 115,
455 116, 116, 116, 117, 118, 118, 118, 118, 119, 119,
456 119, 119, 120, 121, 121, 121, 121, 122, 123, 124,
457 124, 124, 124, 124, 124, 124, 125, 125, 126, 126,
458 126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
459 129, 130, 130, 130, 130, 131, 131, 132, 132, 133,
460 133, 133, 133, 133, 134, 134, 134, 135, 135, 136,
461 136, 137, 137, 139, 138, 138, 141, 140, 140, 142,
462 142, 143, 143, 144, 145, 145, 146, 146, 146, 146,
463 146, 147, 147, 147, 147, 148, 149, 148, 148, 150,
464 150, 151, 151, 152, 152, 153, 152, 152, 155, 154,
465 154, 154, 156, 156, 157, 157, 157, 159, 160, 158,
466 162, 163, 161, 164, 164, 165, 165, 165, 165, 165,
467 165, 165, 166, 166, 166, 166, 166, 166, 166, 167,
468 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
469 169, 170, 170, 172, 171, 171, 171, 173, 171, 171,
470 171, 174, 171, 175, 171, 171, 176, 176, 177, 177,
471 178, 178, 179, 179, 179, 180, 180, 180, 180, 180,
472 180, 181, 181, 182, 182, 182, 183, 183, 183, 184,
473 184, 185, 185, 186, 186, 187, 187, 188, 188, 189,
474 189, 189, 189, 189, 189, 189, 189, 189, 190, 191,
475 191, 191, 192, 192, 193, 194, 195, 195, 196, 196,
476 197, 198, 198, 199, 200, 200, 200, 200, 201, 201,
477 202, 204, 203, 205, 206, 207, 207, 208, 209, 209,
478 210, 210, 210, 211, 210, 210, 210, 212, 213, 210,
479 210, 210, 214, 215, 216, 210, 217, 210, 210, 210,
480 210, 210, 210, 210, 210, 210, 210, 210, 210, 218,
481 220, 219, 221, 221, 221, 221, 222, 222, 223, 223,
482 224, 224, 225, 225, 226, 227, 227, 229, 228, 230,
483 231, 230, 230, 232, 232, 232, 232, 233, 233, 234,
484 234, 234, 234, 234, 236, 235, 237, 237, 238, 238,
485 239, 239, 240
488 static const short yyr2[] = { 0,
489 0, 1, 0, 2, 0, 3, 1, 1, 5, 2,
490 3, 4, 4, 2, 2, 2, 2, 1, 0, 0,
491 7, 4, 0, 0, 7, 4, 0, 0, 6, 3,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 0, 1, 1, 3, 1, 2, 2, 2, 2, 2,
494 4, 2, 4, 2, 2, 1, 1, 1, 4, 0,
495 7, 1, 3, 3, 3, 3, 3, 3, 3, 3,
496 3, 3, 3, 3, 0, 4, 0, 4, 0, 0,
497 7, 0, 5, 3, 3, 1, 1, 1, 3, 3,
498 0, 4, 4, 4, 3, 3, 2, 2, 1, 2,
499 0, 1, 2, 3, 1, 1, 2, 2, 4, 4,
500 2, 2, 3, 1, 1, 2, 2, 0, 0, 4,
501 4, 3, 3, 2, 2, 2, 2, 3, 0, 2,
502 2, 2, 2, 3, 0, 2, 2, 1, 1, 2,
503 2, 1, 1, 2, 2, 2, 3, 0, 2, 1,
504 1, 1, 4, 4, 1, 1, 1, 1, 3, 1,
505 3, 0, 4, 0, 6, 3, 0, 6, 3, 0,
506 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
507 4, 1, 1, 1, 1, 1, 0, 4, 1, 0,
508 2, 1, 3, 3, 2, 0, 4, 1, 0, 4,
509 1, 1, 1, 2, 2, 5, 3, 0, 0, 5,
510 0, 0, 5, 1, 1, 3, 3, 4, 3, 3,
511 3, 1, 3, 4, 4, 3, 3, 3, 1, 3,
512 3, 3, 4, 4, 3, 3, 1, 1, 2, 1,
513 2, 1, 2, 0, 7, 5, 2, 0, 7, 5,
514 2, 0, 8, 0, 7, 2, 0, 1, 0, 1,
515 1, 2, 0, 3, 2, 3, 1, 3, 1, 1,
516 2, 1, 3, 4, 6, 5, 1, 3, 1, 1,
517 3, 2, 2, 0, 1, 1, 2, 0, 2, 3,
518 3, 2, 3, 4, 3, 2, 3, 2, 1, 1,
519 2, 2, 0, 1, 2, 0, 0, 1, 1, 2,
520 3, 1, 2, 1, 2, 6, 5, 5, 2, 2,
521 4, 0, 4, 0, 0, 3, 4, 3, 1, 1,
522 1, 1, 2, 0, 4, 1, 3, 0, 0, 7,
523 5, 2, 0, 0, 0, 12, 0, 6, 2, 2,
524 2, 3, 6, 8, 10, 12, 3, 4, 1, 1,
525 0, 6, 3, 5, 2, 3, 0, 1, 0, 1,
526 0, 1, 1, 3, 4, 1, 3, 0, 2, 2,
527 0, 4, 2, 0, 1, 1, 3, 1, 3, 4,
528 4, 4, 4, 4, 0, 2, 1, 2, 1, 3,
529 1, 3, 1
532 static const short yydefact[] = { 3,
533 5, 0, 0, 0, 152, 143, 150, 142, 242, 238,
534 240, 0, 0, 0, 403, 18, 4, 8, 7, 0,
535 118, 118, 138, 129, 139, 172, 0, 0, 0, 151,
536 0, 6, 16, 17, 243, 239, 241, 0, 0, 0,
537 237, 288, 0, 0, 160, 119, 0, 15, 0, 14,
538 0, 140, 129, 141, 145, 144, 127, 173, 31, 32,
539 263, 247, 263, 251, 254, 256, 10, 86, 87, 99,
540 56, 57, 0, 0, 0, 33, 35, 34, 0, 36,
541 37, 0, 38, 39, 0, 0, 40, 58, 0, 0,
542 62, 43, 45, 88, 0, 286, 0, 284, 148, 0,
543 284, 177, 0, 0, 11, 0, 0, 30, 0, 395,
544 0, 0, 170, 222, 288, 0, 0, 158, 119, 0,
545 214, 215, 0, 0, 128, 131, 155, 156, 130, 132,
546 157, 0, 0, 244, 0, 248, 0, 252, 54, 55,
547 49, 46, 0, 0, 0, 0, 48, 0, 0, 0,
548 50, 0, 52, 0, 0, 79, 77, 75, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
550 97, 98, 0, 0, 41, 0, 100, 47, 153, 288,
551 378, 0, 282, 285, 146, 154, 287, 148, 283, 183,
552 184, 185, 182, 0, 175, 178, 289, 232, 231, 161,
553 162, 236, 0, 230, 0, 0, 235, 0, 0, 28,
554 0, 324, 106, 325, 169, 171, 0, 0, 13, 0,
555 0, 22, 0, 170, 395, 0, 12, 26, 0, 170,
556 270, 265, 118, 262, 118, 0, 263, 170, 263, 279,
557 280, 259, 277, 0, 90, 89, 314, 306, 0, 0,
558 9, 44, 0, 0, 85, 84, 0, 0, 0, 0,
559 73, 74, 72, 71, 70, 68, 69, 63, 64, 65,
560 66, 67, 96, 95, 0, 42, 0, 292, 0, 296,
561 0, 298, 0, 378, 0, 149, 147, 0, 177, 41,
562 0, 0, 399, 385, 118, 118, 397, 0, 386, 388,
563 396, 0, 233, 234, 305, 0, 108, 103, 107, 0,
564 167, 220, 216, 159, 221, 20, 166, 217, 219, 0,
565 24, 246, 324, 264, 324, 271, 0, 250, 0, 0,
566 260, 0, 259, 315, 307, 92, 60, 59, 51, 53,
567 0, 0, 78, 76, 93, 94, 291, 290, 379, 297,
568 293, 295, 0, 174, 176, 86, 0, 163, 383, 284,
569 284, 380, 381, 0, 398, 0, 0, 29, 312, 104,
570 118, 118, 135, 0, 0, 164, 218, 0, 266, 272,
571 325, 268, 170, 170, 281, 278, 170, 0, 0, 0,
572 308, 309, 0, 80, 83, 294, 179, 0, 181, 229,
573 288, 378, 119, 170, 170, 170, 288, 170, 170, 0,
574 387, 389, 400, 313, 111, 0, 112, 0, 135, 133,
575 189, 187, 186, 168, 21, 0, 25, 324, 0, 245,
576 249, 255, 170, 401, 0, 0, 0, 324, 0, 0,
577 115, 325, 300, 310, 202, 86, 0, 0, 199, 0,
578 201, 0, 257, 192, 198, 0, 0, 0, 0, 292,
579 0, 395, 0, 390, 391, 392, 292, 393, 394, 382,
580 0, 0, 162, 134, 137, 136, 0, 165, 273, 0,
581 170, 253, 311, 0, 317, 117, 116, 304, 0, 318,
582 302, 325, 301, 0, 205, 0, 0, 196, 61, 0,
583 191, 0, 204, 195, 81, 180, 227, 288, 228, 223,
584 0, 226, 0, 109, 110, 0, 170, 0, 274, 402,
585 316, 0, 152, 0, 338, 322, 0, 0, 0, 0,
586 0, 0, 0, 0, 367, 359, 0, 0, 113, 118,
587 118, 331, 336, 0, 0, 328, 329, 332, 360, 330,
588 0, 0, 207, 0, 0, 193, 194, 0, 224, 225,
589 188, 276, 170, 0, 0, 324, 369, 0, 0, 365,
590 349, 350, 351, 0, 0, 0, 368, 0, 170, 333,
591 124, 0, 125, 0, 0, 320, 325, 319, 342, 0,
592 126, 0, 200, 197, 275, 0, 0, 0, 370, 45,
593 0, 0, 0, 363, 352, 0, 357, 0, 366, 0,
594 122, 208, 0, 123, 211, 337, 324, 0, 0, 206,
595 321, 0, 323, 361, 343, 347, 0, 358, 0, 120,
596 0, 121, 0, 335, 326, 324, 0, 339, 324, 369,
597 324, 364, 371, 0, 209, 212, 327, 341, 324, 362,
598 0, 348, 0, 0, 372, 373, 353, 0, 0, 340,
599 344, 0, 371, 0, 0, 210, 213, 369, 0, 0,
600 354, 374, 0, 375, 0, 0, 345, 376, 0, 355,
601 324, 0, 0, 346, 356, 377, 0, 0, 0
604 static const short yydefgoto[] = { 687,
605 1, 2, 3, 17, 18, 19, 223, 375, 229, 378,
606 112, 306, 450, 85, 144, 275, 87, 88, 89, 90,
607 91, 393, 92, 260, 259, 257, 458, 258, 93, 145,
608 94, 210, 211, 212, 370, 437, 438, 20, 107, 539,
609 295, 57, 371, 420, 296, 23, 98, 185, 24, 129,
610 117, 44, 113, 118, 426, 45, 374, 215, 216, 26,
611 194, 195, 196, 424, 477, 452, 453, 454, 555, 455,
612 497, 456, 457, 611, 631, 658, 614, 633, 659, 201,
613 121, 507, 122, 27, 28, 29, 30, 237, 239, 244,
614 137, 501, 332, 132, 133, 234, 379, 380, 242, 243,
615 100, 183, 101, 103, 184, 439, 440, 489, 213, 335,
616 390, 391, 392, 368, 248, 369, 543, 544, 545, 566,
617 587, 310, 588, 443, 546, 547, 617, 565, 649, 640,
618 668, 681, 641, 548, 549, 639, 550, 578, 601, 654,
619 655, 656, 679, 280, 281, 297, 410, 298, 299, 300,
620 204, 205, 301, 302, 435, 95
623 static const short yypact[] = { 74,
624 97, 2227, 2227, 54,-32768,-32768,-32768,-32768, 17, 17,
625 17, 87, 94, 134,-32768,-32768,-32768,-32768,-32768, 369,
626 5, 476, 261,-32768, 17,-32768, 59, 61, 90,-32768,
627 2227,-32768,-32768,-32768, 17, 17, 17, 2089, 2023, 189,
628 -32768,-32768, 369, 129,-32768, 17, 320,-32768, 519,-32768,
629 369, 261,-32768, 17,-32768,-32768, 793,-32768,-32768,-32768,
630 -32768, 114,-32768, 181,-32768, 191,-32768,-32768,-32768,-32768,
631 -32768,-32768, 2089, 2089, 241,-32768,-32768,-32768, 2089,-32768,
632 -32768, 708,-32768,-32768, 2089, 40, 211,-32768, 2116, 2143,
633 -32768, 2293, 1062, 286, 2089,-32768, 247, 210,-32768, 254,
634 1674, 639, 272, 276,-32768, 519, 369,-32768, 238,-32768,
635 1451, 357, 17,-32768,-32768, 519, 137,-32768, 17, 1438,
636 378, 395, 232, 1376, 793,-32768,-32768,-32768,-32768, 17,
637 -32768, 259, 870,-32768, 282,-32768, 228,-32768,-32768,-32768,
638 -32768,-32768, 305, 307, 328, 337,-32768, 277, 2089, 708,
639 -32768, 708,-32768, 2089, 2089, 355,-32768,-32768, 2089, 2089,
640 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
641 -32768,-32768, 241, 241, 2089, 2089,-32768,-32768,-32768,-32768,
642 210, 1478,-32768, 398, 438,-32768,-32768,-32768,-32768,-32768,
643 -32768,-32768,-32768, 14,-32768, 361,-32768, 395,-32768,-32768,
644 400, 395, 426,-32768, 402, 1533,-32768, 363, 371,-32768,
645 767, 48,-32768,-32768, 430, 17, 461, 281,-32768, 519,
646 519,-32768, 357, 17,-32768, 1560,-32768,-32768, 357, 17,
647 -32768,-32768, 385, 392, 209, 1323,-32768, 17,-32768,-32768,
648 457, 393,-32768, 228,-32768,-32768,-32768, 416, 420, 1912,
649 -32768, 2293, 421, 423, 2293, 2293, 2089, 463, 2089, 2089,
650 1667, 1881, 2060, 936, 1098, 760, 760, 294, 294,-32768,
651 -32768,-32768,-32768,-32768, 432, 211, 419, 246, 315,-32768,
652 1052,-32768, 431,-32768, 1615,-32768, 438, 433, 639, 2170,
653 44, 437,-32768,-32768,-32768, 1542,-32768, 439, 239,-32768,
654 -32768, 66,-32768,-32768,-32768, 47,-32768,-32768,-32768, 1027,
655 -32768, 378,-32768,-32768, 378,-32768, 480,-32768,-32768, 436,
656 -32768,-32768,-32768,-32768,-32768,-32768, 443,-32768, 447, 2089,
657 241, 449, 393,-32768, 496,-32768,-32768,-32768,-32768,-32768,
658 493, 2089, 2328, 1586,-32768,-32768, 398,-32768,-32768,-32768,
659 -32768,-32768, 455,-32768,-32768, 99, 465,-32768,-32768, 221,
660 374,-32768,-32768, 1465,-32768, 543, 328,-32768,-32768,-32768,
661 471, 172,-32768, 1312, 47,-32768,-32768, 47, 469,-32768,
662 -32768, 469, 17, 17, 2293,-32768, 17, 477, 241, 813,
663 496,-32768, 1132,-32768, 2222,-32768,-32768, 2089,-32768,-32768,
664 -32768, 374, 17, 135, 258, 17,-32768, 258, 17, 1052,
665 -32768,-32768,-32768,-32768,-32768, 519,-32768, 369,-32768, 845,
666 -32768,-32768, 2293,-32768,-32768, 1312,-32768,-32768, 205,-32768,
667 -32768,-32768, 17,-32768, 278, 394, 646, 478, 483, 912,
668 -32768,-32768,-32768,-32768,-32768, 516, 241, 2089,-32768, 520,
669 2293, 485, 484,-32768,-32768, 123, 1252, 2089, 111, 167,
670 688,-32768, 1642,-32768,-32768,-32768, 269,-32768,-32768,-32768,
671 301, 311, 225, 845,-32768,-32768, 1132,-32768,-32768, 2089,
672 160,-32768,-32768, 241,-32768,-32768,-32768,-32768, 486,-32768,
673 -32768,-32768,-32768, 1778,-32768, 2266, 1132,-32768,-32768, 1192,
674 -32768, 1367,-32768,-32768, 2222,-32768, 417,-32768, 417,-32768,
675 1697,-32768, 489,-32768,-32768, 490, 1799, 2089,-32768,-32768,
676 -32768, 1858, 529, 514,-32768,-32768, 515, 534, 2089, 537,
677 502, 518, 2036, 52, 589,-32768, 559, 522,-32768, 523,
678 607,-32768, 585, 995, 45,-32768,-32768,-32768,-32768,-32768,
679 1969, 2089,-32768, 525, 1367,-32768,-32768, 950,-32768,-32768,
680 -32768,-32768, 1799, 2089, 545,-32768, 2089, 2089, 1722,-32768,
681 -32768,-32768,-32768, 528, 2089, 532,-32768, 557, 17,-32768,
682 -32768, 519,-32768, 369, 1075,-32768,-32768,-32768,-32768, 2089,
683 -32768, 2248,-32768,-32768,-32768, 541, 2089, 601,-32768, 849,
684 546, 549, 2089,-32768,-32768, 556,-32768, 2089,-32768, 317,
685 -32768, 359, 345,-32768, 672,-32768,-32768, 1858, 550,-32768,
686 -32768, 558,-32768,-32768,-32768,-32768, 2315,-32768, 23,-32768,
687 357,-32768, 357,-32768,-32768,-32768, 561,-32768,-32768, 2089,
688 -32768,-32768, 613, 563,-32768,-32768,-32768,-32768,-32768,-32768,
689 571,-32768, 577, 33, 581,-32768,-32768, 328, 328,-32768,
690 -32768, 2089, 613, 606, 613,-32768,-32768, 2089, 602, 34,
691 -32768,-32768, 609,-32768, 426, 610,-32768, 286, 157,-32768,
692 -32768, 611, 426,-32768,-32768, 286, 690, 693,-32768
695 static const short yypgoto[] = {-32768,
696 -32768,-32768,-32768, 81,-32768,-32768,-32768,-32768,-32768,-32768,
697 -32768,-32768, -24,-32768, -38, 407, -139, 193,-32768,-32768,
698 -4,-32768, 422,-32768,-32768,-32768,-32768,-32768, 131,-32768,
699 -196, -202, 491,-32768,-32768, 268,-32768, -5, -91, 156,
700 9, 657,-32768, 308, 11, -7, -88, 542, 4, -163,
701 -378, -45, -100, -65,-32768,-32768,-32768, 223, 57, 82,
702 -32768, 424,-32768, 303,-32768, -401,-32768, 233,-32768, -422,
703 -32768,-32768, 279,-32768,-32768,-32768,-32768,-32768,-32768, -39,
704 -59, -316, -18,-32768,-32768,-32768, -33,-32768,-32768,-32768,
705 -32768,-32768, 401, -32,-32768, 507, 425, 316, 501, 415,
706 39, -67, -79, -97, -152, 321,-32768,-32768, -179,-32768,
707 -32768,-32768, 364, -209,-32768, -126,-32768,-32768,-32768,-32768,
708 -89, -331, -514, 314,-32768, 142,-32768,-32768,-32768,-32768,
709 -32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, -553, 102,
710 -32768, 101,-32768, 492,-32768, -242,-32768,-32768,-32768, 405,
711 -195,-32768,-32768,-32768,-32768, 6
715 #define YYLAST 2380
718 static const short yytable[] = { 86,
719 97, 47, 62, 64, 66, 123, 291, 31, 31, 120,
720 21, 21, 22, 22, 52, 49, 51, 217, 249, 224,
721 316, 286, 214, 131, 104, 53, 321, 221, 279, 318,
722 135, 307, 124, 189, 504, 276, 31, 471, 349, 21,
723 200, 22, 99, 404, 233, 589, 14, 367, -102, 429,
724 141, 598, 177, 235, 59, 60, 218, 308, 25, 25,
725 643, 59, 60, 59, 60, 35, 36, 37, 139, 140,
726 663, 675, 208, -1, 142, 516, 46, 193, 54, 557,
727 147, 48, 278, 32, 198, 99, 651, 25, 202, 288,
728 178, 131, 59, 60, 289, 554, -2, 104, 644, 46,
729 224, 575, 634, 590, 188, 119, 58, 46, 664, 676,
730 494, 67, 241, 130, 673, 148, 58, 58, 58, 358,
731 146, 647, 214, 286, 650, 347, 652, 58, 247, -102,
732 33, 34, 594, 214, 660, 58, 99, 277, 236, 214,
733 61, 365, 63, 283, 509, 38, 366, 233, 273, 274,
734 276, 131, 39, 99, 314, 99, 235, 312, 502, 46,
735 522, 315, 119, 46, 14, 425, 684, 470, 427, 41,
736 400, 65, 119, 197, 397, 5, 55, 7, 56, 398,
737 447, 130, 448, 9, 10, 11, 506, 320, 253, 14,
738 254, 149, 40, 462, 463, 134, 14, 518, 198, 13,
739 58, 142, 202, 610, 327, 105, 329, 41, 114, 106,
740 441, 58, 5, 219, 7, 187, 401, 220, 341, 241,
741 9, 10, 11, 41, 400, 402, 182, 323, 240, 325,
742 59, 60, 682, 381, 14, 381, 13, 683, 188, 99,
743 414, 236, 480, 59, 60, 338, 353, 102, 417, 279,
744 14, 109, 197, 131, 115, 618, 476, 486, 459, 180,
745 491, 25, 136, 116, 193, 55, 510, 56, 181, 182,
746 401, 41, 138, 119, 41, 197, 119, 119, 197, 402,
747 182, 151, 153, 110, 111, -269, -269, 14, 52, 360,
748 361, 149, 406, 409, 177, 180, 203, 58, 14, 53,
749 442, 14, 372, 460, 181, 182, 241, 347, 227, 467,
750 476, 461, 106, 373, 347, 363, 110, 111, 407, 364,
751 108, 42, 179, -27, -27, -27, -27, 402, 182, 186,
752 43, -27, -27, -27, 110, 111, 230, 25, 381, 225,
753 226, 405, 408, 168, 169, 170, 109, -27, 442, -162,
754 492, 199, 54, 251, 483, -162, 313, 209, 484, 238,
755 -324, -324, -324, -324, 434, 416, 418, 542, -324, -324,
756 -324, 41, 472, 284, 285, 419, 41, 514, 110, 111,
757 245, 220, 246, 104, -324, 109, 131, 515, -162, 481,
758 348, 106, -82, 630, -162, 542, -162, 220, 14, 473,
759 -162, -27, 292, 14, 293, 5, 6, 7, 8, 247,
760 558, 294, 250, 9, 10, 11, 403, 46, 42, 290,
761 25, 632, 495, 407, 513, 106, 109, 43, 645, 13,
762 646, 14, 402, 182, 70, -162, 225, 226, -101, -162,
763 131, 198, 202, 127, 128, 304, 317, 305, 198, 9,
764 10, 11, 322, 110, 111, 538, 284, 285, 46, 520,
765 328, -267, -267, 41, 114, 311, 25, 197, 324, 537,
766 305, 485, 119, 331, 46, 462, 463, -384, 678, 5,
767 6, 7, 8, 538, 58, 119, 686, 9, 10, 11,
768 14, 542, 330, 334, 574, 336, 339, 537, 340, 551,
769 342, 346, 540, 13, 541, 14, 142, 345, 354, 576,
770 115, 224, 359, 350, 362, 376, 403, 403, 377, 116,
771 383, 41, 114, 46, 384, 596, 387, 389, 599, 602,
772 394, 666, 667, 52, 582, 584, 606, 396, 613, 198,
773 399, 214, 612, 214, 53, 413, 178, 415, 14, 428,
774 25, 619, 50, -31, 433, -303, 551, 498, 622, 540,
775 490, 541, 499, 521, 500, 615, -32, 561, 115, 629,
776 252, 560, 564, 567, 570, 255, 256, 116, 571, 538,
777 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
778 271, 272, 568, 537, 572, 577, 579, 54, 580, 581,
779 585, 599, 593, 597, 605, 430, 431, 25, 607, 432,
780 5, 6, 7, 8, 403, 608, 621, 623, 9, 10,
781 11, 653, 625, 669, 626, 637, 464, 465, 466, 599,
782 468, 469, 628, 638, 13, 662, 14, 648, 119, 657,
783 46, 59, 60, 190, 191, 192, 209, 661, -114, -114,
784 -114, -114, -114, -114, -114, 482, -114, -114, -114, -114,
785 -114, 665, -114, -114, -114, -114, -114, -114, -114, -114,
786 -114, -114, -114, -114, -114, -114, -114, 674, -114, -114,
787 343, 344, 671, 583, 677, -114, 680, 685, -114, 688,
788 41, 400, 689, -114, -114, -114, 357, 600, 109, -114,
789 -114, -162, 309, 519, -114, 487, 591, -162, 143, 125,
790 68, 5, 355, 7, 96, 69, 70, 14, 71, 9,
791 10, 11, -114, -114, -114, -114, 474, -114, 478, 287,
792 110, 111, 556, 388, 503, 13, 72, 508, 15, 562,
793 73, 74, 326, 479, 333, 386, 43, 75, -162, 382,
794 76, 385, -162, 493, 444, 77, 78, 79, 488, 635,
795 636, 80, 81, 395, 670, 672, 82, 209, 412, 0,
796 -105, -105, -105, -105, 0, 351, -105, 0, -105, -105,
797 -105, 0, 0, 0, 0, 595, 83, 84, 0, -91,
798 0, 0, 0, 0, -105, 423, 0, 126, 127, 128,
799 0, 609, 0, 0, 9, 10, 11, 166, 167, 168,
800 169, 170, 0, 436, 451, -324, -324, -324, -324, -324,
801 -324, -324, 14, -324, -324, -324, -324, -324, 0, -324,
802 -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
803 -324, -324, -324, -324, 0, -324, -324, 423, -105, 475,
804 127, 128, -324, 0, 0, -324, 9, 10, 11, 0,
805 -324, -324, -324, 0, 0, 0, -324, -324, 0, 496,
806 231, -324, 0, 5, 0, 7, 96, 0, 451, 505,
807 0, 9, 10, 11, 0, 0, 0, 0, 0, -324,
808 0, -324, -324, 0, -324, 0, 0, 13, 451, 0,
809 15, 517, 171, 172, 0, 173, 174, 175, 176, 0,
810 0, 0, 209, 0, -324, -324, 0, 0, 451, -324,
811 -324, 451, -324, 451, 624, 0, -324, 0, -324, -324,
812 -324, -324, -324, -324, -324, -324, -324, -324, -324, 563,
813 -324, 0, -324, 0, -324, -324, 232, -261, 0, 0,
814 569, -324, 41, 400, -324, 0, 197, 0, 0, -324,
815 -324, -324, 0, 0, 0, -324, -324, 0, 0, 0,
816 -324, 0, 0, 592, 0, 0, 451, 0, 0, 14,
817 163, 164, 165, 166, 167, 168, 169, 170, -324, -299,
818 -324, -324, 0, -324, 0, 586, 0, -324, -324, 508,
819 0, 0, -324, -324, 0, -324, 0, 0, 43, -324,
820 0, -324, -324, -324, -324, -324, -324, -324, -324, -324,
821 -324, -324, 0, -324, 627, -324, 0, -324, -324, 0,
822 5, 6, 7, 8, -324, 0, 0, -324, 9, 10,
823 11, 0, -324, -324, -324, 0, 0, 0, -324, -324,
824 0, 0, 292, -324, 13, 5, 6, 7, 8, 0,
825 0, 294, 0, 9, 10, 11, 0, 0, 0, 0,
826 0, -324, 0, -324, -324, 616, -324, -334, -334, 13,
827 0, 14, -334, -334, 0, -334, 0, 0, 0, -334,
828 0, -334, -334, -334, -334, -334, -334, -334, -334, -334,
829 -334, -334, 0, -334, 0, -334, 0, -334, -334, 0,
830 0, 0, 0, 0, -334, 171, 172, -334, 173, 174,
831 175, 176, -334, -334, -334, 0, 0, -384, -334, -334,
832 0, 0, 445, -334, 446, 60, 0, 0, 0, 69,
833 70, 0, 71, 164, 165, 166, 167, 168, 169, 170,
834 0, -334, 0, -334, -334, 0, -334, 0, 0, 0,
835 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
836 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
837 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
838 82, 448, 445, 0, 446, 60, 0, 0, 0, 69,
839 70, 0, 71, 0, 0, 0, 0, 0, 0, -190,
840 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
841 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
842 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
843 78, 79, 0, 0, 0, 80, 81, 0, 0, 447,
844 82, 448, 445, 0, 68, 0, 0, 0, 0, 69,
845 70, 0, 71, 0, 0, 0, 0, 0, 0, -258,
846 83, 84, 0, 449, 0, 0, 0, 0, 0, 0,
847 72, 0, 15, 0, 73, 74, 0, -203, 0, 0,
848 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
849 78, 79, 0, 0, 0, 80, 81, 0, 0, -203,
850 82, -203, 421, 0, 68, 0, 0, 0, 0, 69,
851 70, 0, 71, 231, 0, 0, 5, 0, 7, 96,
852 83, 84, 0, 449, 9, 10, 11, 0, 0, 0,
853 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
854 13, 75, 0, 15, 76, 0, 0, 0, 0, 77,
855 78, 79, 0, 0, 0, 80, 81, 445, 0, 68,
856 82, 0, 0, 0, 69, 70, 228, 71, 0, -23,
857 -23, -23, -23, 0, 0, 0, 0, -23, -23, -23,
858 83, 84, 0, 422, 0, 72, 0, 15, 0, 73,
859 74, 0, 109, -23, 0, -162, 75, 0, 0, 76,
860 0, -162, 0, 0, 77, 78, 79, 0, 0, 0,
861 80, 81, 0, 0, 0, 82, 0, 0, 0, 0,
862 0, 0, 0, 0, 110, 111, 0, 0, 222, 0,
863 0, -19, -19, -19, -19, 83, 84, 0, 449, -19,
864 -19, -19, -162, 68, 0, 0, -162, -23, 69, 70,
865 0, 71, 0, 0, 109, -19, 0, -162, 5, 6,
866 7, 8, 0, -162, 411, 0, 9, 10, 11, 72,
867 68, 15, 0, 73, 74, 69, 70, 0, 71, 0,
868 75, 0, 13, 76, 14, 0, 0, 0, 77, 78,
869 206, 0, 0, 0, 80, 81, 72, 0, 15, 82,
870 73, 74, 0, 0, -162, 0, 0, 75, -162, -19,
871 76, 0, 0, 0, 0, 77, 78, 79, 0, 83,
872 84, 80, 81, 207, 0, 68, 82, 0, 0, 0,
873 69, 70, 0, 71, 0, 5, 6, 7, 8, 0,
874 0, 0, 0, 9, 10, 11, 83, 84, 0, 0,
875 282, 72, 68, 15, 0, 73, 74, 69, 70, 13,
876 71, 14, 75, 0, 0, 76, 0, 0, 0, 0,
877 77, 78, 79, 0, 0, 0, 80, 81, 72, 0,
878 15, 82, 73, 74, 0, 0, 0, 0, 0, 75,
879 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
880 0, 83, 84, 80, 81, 303, 0, 68, 82, 0,
881 0, 0, 69, 70, 0, 71, 159, 160, 161, 162,
882 163, 164, 165, 166, 167, 168, 169, 170, 83, 84,
883 0, 0, 319, 72, 68, 15, 0, 73, 74, 69,
884 70, 0, 71, 0, 75, 0, 0, 76, 0, 0,
885 0, 0, 77, 78, 79, 0, 0, 0, 80, 81,
886 72, 0, 15, 82, 73, 74, 0, 5, 0, 7,
887 187, 75, 0, 0, 76, 9, 10, 11, 0, 77,
888 78, 511, 0, 83, 84, 80, 81, 352, 0, 68,
889 82, 13, 0, 0, 69, 70, 0, 71, 160, 161,
890 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
891 83, 84, 0, 180, 512, 72, 0, 15, 0, 73,
892 74, 603, 181, 182, 0, 0, 75, 0, 0, 76,
893 0, 0, 0, 0, 77, 78, 79, 0, 0, 0,
894 80, 81, 0, 0, 0, 82, 154, 155, 156, 604,
895 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
896 167, 168, 169, 170, 0, 83, 84, 0, 0, 559,
897 446, 523, 6, 7, 8, 69, 70, 0, 71, 9,
898 10, 11, 524, 0, 525, 526, 527, 528, 529, 530,
899 531, 532, 533, 534, 535, 13, 72, 14, 15, 0,
900 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
901 76, 0, 0, 0, 0, 77, 78, 79, 14, 0,
902 0, 80, 81, 154, 155, 156, 82, 157, 158, 159,
903 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
904 170, 0, 0, 0, 536, 0, 83, 84, 0, 247,
905 446, 60, 0, 0, 0, 69, 70, 0, 71, 0,
906 0, 0, 524, 0, 525, 526, 527, 528, 529, 530,
907 531, 532, 533, 534, 535, 0, 72, 0, 15, 0,
908 73, 74, 0, 0, 0, 0, 0, 75, 0, 0,
909 76, 0, 0, 0, 0, 77, 78, 79, 0, 0,
910 0, 80, 81, 0, 68, 0, 82, 0, 0, 69,
911 70, 0, 71, 161, 162, 163, 164, 165, 166, 167,
912 168, 169, 170, 0, 536, 0, 83, 84, 0, 247,
913 72, 0, 15, 0, 73, 74, 0, 0, 0, 0,
914 0, 75, 0, 0, 76, 0, 0, 0, 0, 77,
915 78, 79, 0, 0, 0, 80, 81, 0, 0, 0,
916 82, 68, 5, 6, 7, 8, 69, 70, 0, 71,
917 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
918 83, 84, 0, 337, 0, 0, 13, 72, 14, 15,
919 0, 73, 74, 0, 0, 0, 0, 0, 75, 0,
920 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
921 0, 0, 80, 81, 0, 68, 5, 82, 7, 96,
922 69, 70, 0, 71, 9, 10, 11, 0, 68, 0,
923 0, 0, 0, 69, 70, 0, 71, 83, 84, 0,
924 13, 72, 0, 15, 0, 73, 74, 0, 0, 0,
925 0, 0, 75, 0, 72, 76, 15, 0, 73, 74,
926 77, 78, 79, 0, 0, 75, 80, 81, 76, 0,
927 0, 82, 0, 77, 78, 79, 0, 0, 0, 80,
928 81, 68, 0, 0, 82, 0, 69, 70, 0, 71,
929 0, 83, 84, 162, 163, 164, 165, 166, 167, 168,
930 169, 170, 573, 0, 83, 84, 0, 72, 68, 15,
931 0, 73, 74, 69, 70, 0, 71, 0, 75, 0,
932 0, 76, 0, 0, 0, 0, 77, 78, 79, 0,
933 0, 0, 80, 81, 72, 68, 15, 82, 73, 74,
934 69, 70, 0, 71, 0, 75, 0, 0, 76, 0,
935 0, 0, 0, 77, 78, 79, 0, 83, 84, 80,
936 81, 72, 356, 15, 150, 73, 74, 69, 70, 0,
937 71, 0, 75, 0, 0, 76, 0, 0, 0, 0,
938 77, 78, 79, 0, 83, 84, 80, 81, 72, 0,
939 15, 152, 73, 74, 0, 0, 0, 0, 0, 75,
940 0, 0, 76, 0, 0, 0, 0, 77, 78, 79,
941 0, 83, 84, 80, 81, 0, 0, 4, 82, -118,
942 5, 6, 7, 8, 0, 0, 0, 0, 9, 10,
943 11, 0, 0, 0, 0, 0, 0, 0, 83, 84,
944 0, 0, 0, 12, 13, 0, 14, 15, 156, 0,
945 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
946 167, 168, 169, 170, 0, 552, -118, 0, 0, 0,
947 0, 0, 154, 155, 156, -118, 157, 158, 159, 160,
948 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
949 154, 155, 156, 16, 157, 158, 159, 160, 161, 162,
950 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 154, 155, 156,
952 620, 157, 158, 159, 160, 161, 162, 163, 164, 165,
953 166, 167, 168, 169, 170, 0, 0, 0, 553, 154,
954 155, 156, 642, 157, 158, 159, 160, 161, 162, 163,
955 164, 165, 166, 167, 168, 169, 170, 158, 159, 160,
956 161, 162, 163, 164, 165, 166, 167, 168, 169, 170
959 static const short yycheck[] = { 38,
960 39, 20, 27, 28, 29, 51, 203, 2, 3, 49,
961 2, 3, 2, 3, 22, 21, 22, 115, 145, 120,
962 223, 185, 112, 57, 43, 22, 229, 119, 181, 225,
963 63, 211, 51, 101, 457, 175, 31, 416, 281, 31,
964 106, 31, 39, 360, 133, 1, 30, 1, 1, 381,
965 75, 566, 9, 133, 3, 4, 116, 10, 2, 3,
966 38, 3, 4, 3, 4, 9, 10, 11, 73, 74,
967 38, 38, 111, 0, 79, 477, 20, 102, 22, 502,
968 85, 77, 180, 3, 103, 82, 640, 31, 107, 76,
969 95, 125, 3, 4, 81, 497, 0, 116, 76, 43,
970 201, 50, 617, 59, 101, 49, 25, 51, 76, 76,
971 442, 31, 137, 57, 668, 76, 35, 36, 37, 76,
972 82, 636, 212, 287, 639, 278, 641, 46, 82, 82,
973 77, 78, 555, 223, 649, 54, 133, 176, 133, 229,
974 82, 76, 82, 182, 461, 59, 81, 236, 173, 174,
975 290, 185, 59, 150, 220, 152, 236, 217, 36, 103,
976 492, 221, 106, 107, 30, 375, 681, 410, 378, 3,
977 4, 82, 116, 7, 76, 4, 5, 6, 7, 81,
978 58, 125, 60, 12, 13, 14, 76, 226, 150, 30,
979 152, 81, 59, 59, 60, 82, 30, 38, 217, 28,
980 119, 206, 221, 582, 237, 77, 239, 3, 4, 81,
981 390, 130, 4, 77, 6, 7, 50, 81, 257, 244,
982 12, 13, 14, 3, 4, 59, 60, 233, 1, 235,
983 3, 4, 76, 323, 30, 325, 28, 81, 235, 236,
984 367, 236, 38, 3, 4, 250, 285, 59, 77, 402,
985 30, 27, 7, 287, 50, 587, 420, 437, 398, 50,
986 440, 205, 82, 59, 289, 5, 462, 7, 59, 60,
987 50, 3, 82, 217, 3, 7, 220, 221, 7, 59,
988 60, 89, 90, 59, 60, 77, 78, 30, 296, 295,
989 296, 81, 360, 361, 9, 50, 59, 216, 30, 296,
990 390, 30, 310, 401, 59, 60, 331, 460, 77, 407,
991 474, 403, 81, 310, 467, 77, 59, 60, 50, 81,
992 1, 50, 76, 4, 5, 6, 7, 59, 60, 76,
993 59, 12, 13, 14, 59, 60, 78, 281, 428, 59,
994 60, 360, 361, 50, 51, 52, 27, 28, 438, 30,
995 440, 76, 296, 77, 77, 36, 76, 1, 81, 78,
996 4, 5, 6, 7, 389, 371, 372, 494, 12, 13,
997 14, 3, 418, 59, 60, 372, 3, 77, 59, 60,
998 76, 81, 76, 402, 28, 27, 420, 77, 30, 429,
999 76, 81, 38, 77, 36, 522, 77, 81, 30, 418,
1000 81, 82, 1, 30, 3, 4, 5, 6, 7, 82,
1001 508, 10, 76, 12, 13, 14, 360, 361, 50, 59,
1002 364, 77, 447, 50, 463, 81, 27, 59, 631, 28,
1003 633, 30, 59, 60, 9, 77, 59, 60, 82, 81,
1004 474, 460, 461, 6, 7, 83, 224, 77, 467, 12,
1005 13, 14, 230, 59, 60, 494, 59, 60, 402, 484,
1006 238, 77, 78, 3, 4, 36, 410, 7, 77, 494,
1007 77, 78, 416, 81, 418, 59, 60, 76, 675, 4,
1008 5, 6, 7, 522, 403, 429, 683, 12, 13, 14,
1009 30, 618, 36, 78, 533, 76, 76, 522, 76, 494,
1010 38, 83, 494, 28, 494, 30, 511, 76, 76, 534,
1011 50, 612, 76, 83, 76, 36, 460, 461, 83, 59,
1012 78, 3, 4, 467, 78, 564, 78, 32, 567, 568,
1013 38, 658, 659, 541, 540, 541, 575, 83, 584, 558,
1014 76, 631, 582, 633, 541, 3, 551, 77, 30, 81,
1015 494, 590, 77, 38, 78, 78, 551, 38, 597, 551,
1016 78, 551, 78, 78, 81, 584, 38, 78, 50, 608,
1017 149, 83, 59, 59, 38, 154, 155, 59, 77, 618,
1018 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1019 169, 170, 59, 618, 77, 7, 38, 541, 77, 77,
1020 16, 640, 78, 59, 77, 383, 384, 551, 77, 387,
1021 4, 5, 6, 7, 558, 59, 76, 17, 12, 13,
1022 14, 9, 77, 662, 76, 76, 404, 405, 406, 668,
1023 408, 409, 77, 76, 28, 59, 30, 77, 582, 77,
1024 584, 3, 4, 5, 6, 7, 1, 77, 3, 4,
1025 5, 6, 7, 8, 9, 433, 11, 12, 13, 14,
1026 15, 81, 17, 18, 19, 20, 21, 22, 23, 24,
1027 25, 26, 27, 28, 29, 30, 31, 76, 33, 34,
1028 259, 260, 77, 77, 76, 40, 77, 77, 43, 0,
1029 3, 4, 0, 48, 49, 50, 290, 567, 27, 54,
1030 55, 30, 212, 481, 59, 438, 551, 36, 1, 53,
1031 3, 4, 289, 6, 7, 8, 9, 30, 11, 12,
1032 13, 14, 77, 78, 79, 80, 419, 82, 426, 188,
1033 59, 60, 500, 333, 456, 28, 29, 50, 31, 517,
1034 33, 34, 236, 428, 244, 331, 59, 40, 77, 325,
1035 43, 330, 81, 440, 391, 48, 49, 50, 438, 618,
1036 618, 54, 55, 342, 663, 665, 59, 1, 364, -1,
1037 4, 5, 6, 7, -1, 284, 10, -1, 12, 13,
1038 14, -1, -1, -1, -1, 563, 79, 80, -1, 82,
1039 -1, -1, -1, -1, 28, 374, -1, 5, 6, 7,
1040 -1, 579, -1, -1, 12, 13, 14, 48, 49, 50,
1041 51, 52, -1, 1, 393, 3, 4, 5, 6, 7,
1042 8, 9, 30, 11, 12, 13, 14, 15, -1, 17,
1043 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1044 28, 29, 30, 31, -1, 33, 34, 426, 82, 5,
1045 6, 7, 40, -1, -1, 43, 12, 13, 14, -1,
1046 48, 49, 50, -1, -1, -1, 54, 55, -1, 448,
1047 1, 59, -1, 4, -1, 6, 7, -1, 457, 458,
1048 -1, 12, 13, 14, -1, -1, -1, -1, -1, 77,
1049 -1, 79, 80, -1, 82, -1, -1, 28, 477, -1,
1050 31, 480, 54, 55, -1, 57, 58, 59, 60, -1,
1051 -1, -1, 1, -1, 3, 4, -1, -1, 497, 8,
1052 9, 500, 11, 502, 76, -1, 15, -1, 17, 18,
1053 19, 20, 21, 22, 23, 24, 25, 26, 27, 518,
1054 29, -1, 31, -1, 33, 34, 77, 78, -1, -1,
1055 529, 40, 3, 4, 43, -1, 7, -1, -1, 48,
1056 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1057 59, -1, -1, 552, -1, -1, 555, -1, -1, 30,
1058 45, 46, 47, 48, 49, 50, 51, 52, 77, 78,
1059 79, 80, -1, 82, -1, 1, -1, 3, 4, 50,
1060 -1, -1, 8, 9, -1, 11, -1, -1, 59, 15,
1061 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1062 26, 27, -1, 29, 603, 31, -1, 33, 34, -1,
1063 4, 5, 6, 7, 40, -1, -1, 43, 12, 13,
1064 14, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1065 -1, -1, 1, 59, 28, 4, 5, 6, 7, -1,
1066 -1, 10, -1, 12, 13, 14, -1, -1, -1, -1,
1067 -1, 77, -1, 79, 80, 1, 82, 3, 4, 28,
1068 -1, 30, 8, 9, -1, 11, -1, -1, -1, 15,
1069 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1070 26, 27, -1, 29, -1, 31, -1, 33, 34, -1,
1071 -1, -1, -1, -1, 40, 54, 55, 43, 57, 58,
1072 59, 60, 48, 49, 50, -1, -1, 76, 54, 55,
1073 -1, -1, 1, 59, 3, 4, -1, -1, -1, 8,
1074 9, -1, 11, 46, 47, 48, 49, 50, 51, 52,
1075 -1, 77, -1, 79, 80, -1, 82, -1, -1, -1,
1076 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1077 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1078 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1079 59, 60, 1, -1, 3, 4, -1, -1, -1, 8,
1080 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1081 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1082 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1083 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1084 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1085 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1086 9, -1, 11, -1, -1, -1, -1, -1, -1, 78,
1087 79, 80, -1, 82, -1, -1, -1, -1, -1, -1,
1088 29, -1, 31, -1, 33, 34, -1, 36, -1, -1,
1089 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1090 49, 50, -1, -1, -1, 54, 55, -1, -1, 58,
1091 59, 60, 1, -1, 3, -1, -1, -1, -1, 8,
1092 9, -1, 11, 1, -1, -1, 4, -1, 6, 7,
1093 79, 80, -1, 82, 12, 13, 14, -1, -1, -1,
1094 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1095 28, 40, -1, 31, 43, -1, -1, -1, -1, 48,
1096 49, 50, -1, -1, -1, 54, 55, 1, -1, 3,
1097 59, -1, -1, -1, 8, 9, 1, 11, -1, 4,
1098 5, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1099 79, 80, -1, 82, -1, 29, -1, 31, -1, 33,
1100 34, -1, 27, 28, -1, 30, 40, -1, -1, 43,
1101 -1, 36, -1, -1, 48, 49, 50, -1, -1, -1,
1102 54, 55, -1, -1, -1, 59, -1, -1, -1, -1,
1103 -1, -1, -1, -1, 59, 60, -1, -1, 1, -1,
1104 -1, 4, 5, 6, 7, 79, 80, -1, 82, 12,
1105 13, 14, 77, 3, -1, -1, 81, 82, 8, 9,
1106 -1, 11, -1, -1, 27, 28, -1, 30, 4, 5,
1107 6, 7, -1, 36, 10, -1, 12, 13, 14, 29,
1108 3, 31, -1, 33, 34, 8, 9, -1, 11, -1,
1109 40, -1, 28, 43, 30, -1, -1, -1, 48, 49,
1110 50, -1, -1, -1, 54, 55, 29, -1, 31, 59,
1111 33, 34, -1, -1, 77, -1, -1, 40, 81, 82,
1112 43, -1, -1, -1, -1, 48, 49, 50, -1, 79,
1113 80, 54, 55, 83, -1, 3, 59, -1, -1, -1,
1114 8, 9, -1, 11, -1, 4, 5, 6, 7, -1,
1115 -1, -1, -1, 12, 13, 14, 79, 80, -1, -1,
1116 83, 29, 3, 31, -1, 33, 34, 8, 9, 28,
1117 11, 30, 40, -1, -1, 43, -1, -1, -1, -1,
1118 48, 49, 50, -1, -1, -1, 54, 55, 29, -1,
1119 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1120 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1121 -1, 79, 80, 54, 55, 83, -1, 3, 59, -1,
1122 -1, -1, 8, 9, -1, 11, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 79, 80,
1124 -1, -1, 83, 29, 3, 31, -1, 33, 34, 8,
1125 9, -1, 11, -1, 40, -1, -1, 43, -1, -1,
1126 -1, -1, 48, 49, 50, -1, -1, -1, 54, 55,
1127 29, -1, 31, 59, 33, 34, -1, 4, -1, 6,
1128 7, 40, -1, -1, 43, 12, 13, 14, -1, 48,
1129 49, 50, -1, 79, 80, 54, 55, 83, -1, 3,
1130 59, 28, -1, -1, 8, 9, -1, 11, 42, 43,
1131 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
1132 79, 80, -1, 50, 83, 29, -1, 31, -1, 33,
1133 34, 10, 59, 60, -1, -1, 40, -1, -1, 43,
1134 -1, -1, -1, -1, 48, 49, 50, -1, -1, -1,
1135 54, 55, -1, -1, -1, 59, 35, 36, 37, 38,
1136 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1137 49, 50, 51, 52, -1, 79, 80, -1, -1, 83,
1138 3, 4, 5, 6, 7, 8, 9, -1, 11, 12,
1139 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
1140 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
1141 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1142 43, -1, -1, -1, -1, 48, 49, 50, 30, -1,
1143 -1, 54, 55, 35, 36, 37, 59, 39, 40, 41,
1144 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1145 52, -1, -1, -1, 77, -1, 79, 80, -1, 82,
1146 3, 4, -1, -1, -1, 8, 9, -1, 11, -1,
1147 -1, -1, 15, -1, 17, 18, 19, 20, 21, 22,
1148 23, 24, 25, 26, 27, -1, 29, -1, 31, -1,
1149 33, 34, -1, -1, -1, -1, -1, 40, -1, -1,
1150 43, -1, -1, -1, -1, 48, 49, 50, -1, -1,
1151 -1, 54, 55, -1, 3, -1, 59, -1, -1, 8,
1152 9, -1, 11, 43, 44, 45, 46, 47, 48, 49,
1153 50, 51, 52, -1, 77, -1, 79, 80, -1, 82,
1154 29, -1, 31, -1, 33, 34, -1, -1, -1, -1,
1155 -1, 40, -1, -1, 43, -1, -1, -1, -1, 48,
1156 49, 50, -1, -1, -1, 54, 55, -1, -1, -1,
1157 59, 3, 4, 5, 6, 7, 8, 9, -1, 11,
1158 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1159 79, 80, -1, 82, -1, -1, 28, 29, 30, 31,
1160 -1, 33, 34, -1, -1, -1, -1, -1, 40, -1,
1161 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1162 -1, -1, 54, 55, -1, 3, 4, 59, 6, 7,
1163 8, 9, -1, 11, 12, 13, 14, -1, 3, -1,
1164 -1, -1, -1, 8, 9, -1, 11, 79, 80, -1,
1165 28, 29, -1, 31, -1, 33, 34, -1, -1, -1,
1166 -1, -1, 40, -1, 29, 43, 31, -1, 33, 34,
1167 48, 49, 50, -1, -1, 40, 54, 55, 43, -1,
1168 -1, 59, -1, 48, 49, 50, -1, -1, -1, 54,
1169 55, 3, -1, -1, 59, -1, 8, 9, -1, 11,
1170 -1, 79, 80, 44, 45, 46, 47, 48, 49, 50,
1171 51, 52, 77, -1, 79, 80, -1, 29, 3, 31,
1172 -1, 33, 34, 8, 9, -1, 11, -1, 40, -1,
1173 -1, 43, -1, -1, -1, -1, 48, 49, 50, -1,
1174 -1, -1, 54, 55, 29, 3, 31, 59, 33, 34,
1175 8, 9, -1, 11, -1, 40, -1, -1, 43, -1,
1176 -1, -1, -1, 48, 49, 50, -1, 79, 80, 54,
1177 55, 29, 3, 31, 59, 33, 34, 8, 9, -1,
1178 11, -1, 40, -1, -1, 43, -1, -1, -1, -1,
1179 48, 49, 50, -1, 79, 80, 54, 55, 29, -1,
1180 31, 59, 33, 34, -1, -1, -1, -1, -1, 40,
1181 -1, -1, 43, -1, -1, -1, -1, 48, 49, 50,
1182 -1, 79, 80, 54, 55, -1, -1, 1, 59, 3,
1183 4, 5, 6, 7, -1, -1, -1, -1, 12, 13,
1184 14, -1, -1, -1, -1, -1, -1, -1, 79, 80,
1185 -1, -1, -1, 27, 28, -1, 30, 31, 37, -1,
1186 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1187 49, 50, 51, 52, -1, 10, 50, -1, -1, -1,
1188 -1, -1, 35, 36, 37, 59, 39, 40, 41, 42,
1189 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1190 35, 36, 37, 77, 39, 40, 41, 42, 43, 44,
1191 45, 46, 47, 48, 49, 50, 51, 52, -1, -1,
1192 -1, -1, -1, -1, -1, -1, -1, 35, 36, 37,
1193 83, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1194 48, 49, 50, 51, 52, -1, -1, -1, 83, 35,
1195 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1196 46, 47, 48, 49, 50, 51, 52, 40, 41, 42,
1197 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
1199 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1200 #line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1202 /* Skeleton output parser for bison,
1203 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1205 This program is free software; you can redistribute it and/or modify
1206 it under the terms of the GNU General Public License as published by
1207 the Free Software Foundation; either version 2, or (at your option)
1208 any later version.
1210 This program is distributed in the hope that it will be useful,
1211 but WITHOUT ANY WARRANTY; without even the implied warranty of
1212 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1213 GNU General Public License for more details.
1215 You should have received a copy of the GNU General Public License
1216 along with this program; if not, write to the Free Software
1217 Foundation, 59 Temple Place - Suite 330,
1218 Boston, MA 02111-1307, USA. */
1220 /* As a special exception, when this file is copied by Bison into a
1221 Bison output file, you may use that output file without restriction.
1222 This special exception was added by the Free Software Foundation
1223 in version 1.24 of Bison. */
1225 #ifndef alloca
1226 #ifdef __GNUC__
1227 #define alloca __builtin_alloca
1228 #else /* not GNU C. */
1229 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1230 #include <alloca.h>
1231 #else /* not sparc */
1232 #if defined (MSDOS) && !defined (__TURBOC__)
1233 #include <malloc.h>
1234 #else /* not MSDOS, or __TURBOC__ */
1235 #if defined(_AIX)
1236 #include <malloc.h>
1237 #pragma alloca
1238 #else /* not MSDOS, __TURBOC__, or _AIX */
1239 #ifdef __hpux
1240 #ifdef __cplusplus
1241 extern "C" {
1242 void *alloca (unsigned int);
1244 #else /* not __cplusplus */
1245 void *alloca ();
1246 #endif /* not __cplusplus */
1247 #endif /* __hpux */
1248 #endif /* not _AIX */
1249 #endif /* not MSDOS, or __TURBOC__ */
1250 #endif /* not sparc. */
1251 #endif /* not GNU C. */
1252 #endif /* alloca not defined. */
1254 /* This is the parser code that is written into each bison parser
1255 when the %semantic_parser declaration is not specified in the grammar.
1256 It was written by Richard Stallman by simplifying the hairy parser
1257 used when %semantic_parser is specified. */
1259 /* Note: there must be only one dollar sign in this file.
1260 It is replaced by the list of actions, each action
1261 as one case of the switch. */
1263 #define yyerrok (yyerrstatus = 0)
1264 #define yyclearin (yychar = YYEMPTY)
1265 #define YYEMPTY -2
1266 #define YYEOF 0
1267 #define YYACCEPT return(0)
1268 #define YYABORT return(1)
1269 #define YYERROR goto yyerrlab1
1270 /* Like YYERROR except do call yyerror.
1271 This remains here temporarily to ease the
1272 transition to the new meaning of YYERROR, for GCC.
1273 Once GCC version 2 has supplanted version 1, this can go. */
1274 #define YYFAIL goto yyerrlab
1275 #define YYRECOVERING() (!!yyerrstatus)
1276 #define YYBACKUP(token, value) \
1277 do \
1278 if (yychar == YYEMPTY && yylen == 1) \
1279 { yychar = (token), yylval = (value); \
1280 yychar1 = YYTRANSLATE (yychar); \
1281 YYPOPSTACK; \
1282 goto yybackup; \
1284 else \
1285 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1286 while (0)
1288 #define YYTERROR 1
1289 #define YYERRCODE 256
1291 #ifndef YYPURE
1292 #define YYLEX yylex()
1293 #endif
1295 #ifdef YYPURE
1296 #ifdef YYLSP_NEEDED
1297 #ifdef YYLEX_PARAM
1298 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1299 #else
1300 #define YYLEX yylex(&yylval, &yylloc)
1301 #endif
1302 #else /* not YYLSP_NEEDED */
1303 #ifdef YYLEX_PARAM
1304 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1305 #else
1306 #define YYLEX yylex(&yylval)
1307 #endif
1308 #endif /* not YYLSP_NEEDED */
1309 #endif
1311 /* If nonreentrant, generate the variables here */
1313 #ifndef YYPURE
1315 int yychar; /* the lookahead symbol */
1316 YYSTYPE yylval; /* the semantic value of the */
1317 /* lookahead symbol */
1319 #ifdef YYLSP_NEEDED
1320 YYLTYPE yylloc; /* location data for the lookahead */
1321 /* symbol */
1322 #endif
1324 int yynerrs; /* number of parse errors so far */
1325 #endif /* not YYPURE */
1327 #if YYDEBUG != 0
1328 int yydebug; /* nonzero means print parse trace */
1329 /* Since this is uninitialized, it does not stop multiple parsers
1330 from coexisting. */
1331 #endif
1333 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1335 #ifndef YYINITDEPTH
1336 #define YYINITDEPTH 200
1337 #endif
1339 /* YYMAXDEPTH is the maximum size the stacks can grow to
1340 (effective only if the built-in stack extension method is used). */
1342 #if YYMAXDEPTH == 0
1343 #undef YYMAXDEPTH
1344 #endif
1346 #ifndef YYMAXDEPTH
1347 #define YYMAXDEPTH 10000
1348 #endif
1350 /* Prevent warning if -Wstrict-prototypes. */
1351 #ifdef __GNUC__
1352 int yyparse (void);
1353 #endif
1355 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1356 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1357 #else /* not GNU C or C++ */
1358 #ifndef __cplusplus
1360 /* This is the most reliable way to avoid incompatibilities
1361 in available built-in functions on various systems. */
1362 static void
1363 __yy_memcpy (to, from, count)
1364 char *to;
1365 char *from;
1366 int count;
1368 register char *f = from;
1369 register char *t = to;
1370 register int i = count;
1372 while (i-- > 0)
1373 *t++ = *f++;
1376 #else /* __cplusplus */
1378 /* This is the most reliable way to avoid incompatibilities
1379 in available built-in functions on various systems. */
1380 static void
1381 __yy_memcpy (char *to, char *from, int count)
1383 register char *f = from;
1384 register char *t = to;
1385 register int i = count;
1387 while (i-- > 0)
1388 *t++ = *f++;
1391 #endif
1392 #endif
1394 #line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1396 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1397 into yyparse. The argument should have type void *.
1398 It should actually point to an object.
1399 Grammar actions can access the variable by casting it
1400 to the proper pointer type. */
1402 #ifdef YYPARSE_PARAM
1403 #ifdef __cplusplus
1404 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1405 #define YYPARSE_PARAM_DECL
1406 #else /* not __cplusplus */
1407 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1408 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1409 #endif /* not __cplusplus */
1410 #else /* not YYPARSE_PARAM */
1411 #define YYPARSE_PARAM_ARG
1412 #define YYPARSE_PARAM_DECL
1413 #endif /* not YYPARSE_PARAM */
1416 yyparse(YYPARSE_PARAM_ARG)
1417 YYPARSE_PARAM_DECL
1419 register int yystate;
1420 register int yyn;
1421 register short *yyssp;
1422 register YYSTYPE *yyvsp;
1423 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1424 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1426 short yyssa[YYINITDEPTH]; /* the state stack */
1427 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1429 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1430 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1432 #ifdef YYLSP_NEEDED
1433 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1434 YYLTYPE *yyls = yylsa;
1435 YYLTYPE *yylsp;
1437 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1438 #else
1439 #define YYPOPSTACK (yyvsp--, yyssp--)
1440 #endif
1442 int yystacksize = YYINITDEPTH;
1444 #ifdef YYPURE
1445 int yychar;
1446 YYSTYPE yylval;
1447 int yynerrs;
1448 #ifdef YYLSP_NEEDED
1449 YYLTYPE yylloc;
1450 #endif
1451 #endif
1453 YYSTYPE yyval; /* the variable used to return */
1454 /* semantic values from the action */
1455 /* routines */
1457 int yylen;
1459 #if YYDEBUG != 0
1460 if (yydebug)
1461 fprintf(stderr, "Starting parse\n");
1462 #endif
1464 yystate = 0;
1465 yyerrstatus = 0;
1466 yynerrs = 0;
1467 yychar = YYEMPTY; /* Cause a token to be read. */
1469 /* Initialize stack pointers.
1470 Waste one element of value and location stack
1471 so that they stay on the same level as the state stack.
1472 The wasted elements are never initialized. */
1474 yyssp = yyss - 1;
1475 yyvsp = yyvs;
1476 #ifdef YYLSP_NEEDED
1477 yylsp = yyls;
1478 #endif
1480 /* Push a new state, which is found in yystate . */
1481 /* In all cases, when you get here, the value and location stacks
1482 have just been pushed. so pushing a state here evens the stacks. */
1483 yynewstate:
1485 *++yyssp = yystate;
1487 if (yyssp >= yyss + yystacksize - 1)
1489 /* Give user a chance to reallocate the stack */
1490 /* Use copies of these so that the &'s don't force the real ones into memory. */
1491 YYSTYPE *yyvs1 = yyvs;
1492 short *yyss1 = yyss;
1493 #ifdef YYLSP_NEEDED
1494 YYLTYPE *yyls1 = yyls;
1495 #endif
1497 /* Get the current used size of the three stacks, in elements. */
1498 int size = yyssp - yyss + 1;
1500 #ifdef yyoverflow
1501 /* Each stack pointer address is followed by the size of
1502 the data in use in that stack, in bytes. */
1503 #ifdef YYLSP_NEEDED
1504 /* This used to be a conditional around just the two extra args,
1505 but that might be undefined if yyoverflow is a macro. */
1506 yyoverflow("parser stack overflow",
1507 &yyss1, size * sizeof (*yyssp),
1508 &yyvs1, size * sizeof (*yyvsp),
1509 &yyls1, size * sizeof (*yylsp),
1510 &yystacksize);
1511 #else
1512 yyoverflow("parser stack overflow",
1513 &yyss1, size * sizeof (*yyssp),
1514 &yyvs1, size * sizeof (*yyvsp),
1515 &yystacksize);
1516 #endif
1518 yyss = yyss1; yyvs = yyvs1;
1519 #ifdef YYLSP_NEEDED
1520 yyls = yyls1;
1521 #endif
1522 #else /* no yyoverflow */
1523 /* Extend the stack our own way. */
1524 if (yystacksize >= YYMAXDEPTH)
1526 yyerror("parser stack overflow");
1527 return 2;
1529 yystacksize *= 2;
1530 if (yystacksize > YYMAXDEPTH)
1531 yystacksize = YYMAXDEPTH;
1532 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1533 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1534 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1535 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1536 #ifdef YYLSP_NEEDED
1537 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1538 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1539 #endif
1540 #endif /* no yyoverflow */
1542 yyssp = yyss + size - 1;
1543 yyvsp = yyvs + size - 1;
1544 #ifdef YYLSP_NEEDED
1545 yylsp = yyls + size - 1;
1546 #endif
1548 #if YYDEBUG != 0
1549 if (yydebug)
1550 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1551 #endif
1553 if (yyssp >= yyss + yystacksize - 1)
1554 YYABORT;
1557 #if YYDEBUG != 0
1558 if (yydebug)
1559 fprintf(stderr, "Entering state %d\n", yystate);
1560 #endif
1562 goto yybackup;
1563 yybackup:
1565 /* Do appropriate processing given the current state. */
1566 /* Read a lookahead token if we need one and don't already have one. */
1567 /* yyresume: */
1569 /* First try to decide what to do without reference to lookahead token. */
1571 yyn = yypact[yystate];
1572 if (yyn == YYFLAG)
1573 goto yydefault;
1575 /* Not known => get a lookahead token if don't already have one. */
1577 /* yychar is either YYEMPTY or YYEOF
1578 or a valid token in external form. */
1580 if (yychar == YYEMPTY)
1582 #if YYDEBUG != 0
1583 if (yydebug)
1584 fprintf(stderr, "Reading a token: ");
1585 #endif
1586 yychar = YYLEX;
1589 /* Convert token to internal form (in yychar1) for indexing tables with */
1591 if (yychar <= 0) /* This means end of input. */
1593 yychar1 = 0;
1594 yychar = YYEOF; /* Don't call YYLEX any more */
1596 #if YYDEBUG != 0
1597 if (yydebug)
1598 fprintf(stderr, "Now at end of input.\n");
1599 #endif
1601 else
1603 yychar1 = YYTRANSLATE(yychar);
1605 #if YYDEBUG != 0
1606 if (yydebug)
1608 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1609 /* Give the individual parser a way to print the precise meaning
1610 of a token, for further debugging info. */
1611 #ifdef YYPRINT
1612 YYPRINT (stderr, yychar, yylval);
1613 #endif
1614 fprintf (stderr, ")\n");
1616 #endif
1619 yyn += yychar1;
1620 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1621 goto yydefault;
1623 yyn = yytable[yyn];
1625 /* yyn is what to do for this token type in this state.
1626 Negative => reduce, -yyn is rule number.
1627 Positive => shift, yyn is new state.
1628 New state is final state => don't bother to shift,
1629 just return success.
1630 0, or most negative number => error. */
1632 if (yyn < 0)
1634 if (yyn == YYFLAG)
1635 goto yyerrlab;
1636 yyn = -yyn;
1637 goto yyreduce;
1639 else if (yyn == 0)
1640 goto yyerrlab;
1642 if (yyn == YYFINAL)
1643 YYACCEPT;
1645 /* Shift the lookahead token. */
1647 #if YYDEBUG != 0
1648 if (yydebug)
1649 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1650 #endif
1652 /* Discard the token being shifted unless it is eof. */
1653 if (yychar != YYEOF)
1654 yychar = YYEMPTY;
1656 *++yyvsp = yylval;
1657 #ifdef YYLSP_NEEDED
1658 *++yylsp = yylloc;
1659 #endif
1661 /* count tokens shifted since error; after three, turn off error status. */
1662 if (yyerrstatus) yyerrstatus--;
1664 yystate = yyn;
1665 goto yynewstate;
1667 /* Do the default action for the current state. */
1668 yydefault:
1670 yyn = yydefact[yystate];
1671 if (yyn == 0)
1672 goto yyerrlab;
1674 /* Do a reduction. yyn is the number of a rule to reduce with. */
1675 yyreduce:
1676 yylen = yyr2[yyn];
1677 if (yylen > 0)
1678 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1680 #if YYDEBUG != 0
1681 if (yydebug)
1683 int i;
1685 fprintf (stderr, "Reducing via rule %d (line %d), ",
1686 yyn, yyrline[yyn]);
1688 /* Print the symbols being reduced, and their result. */
1689 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1690 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1691 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1693 #endif
1696 switch (yyn) {
1698 case 1:
1699 #line 234 "c-parse.y"
1700 { if (pedantic)
1701 pedwarn ("ANSI C forbids an empty source file");
1702 finish_file ();
1704 break;}
1705 case 2:
1706 #line 239 "c-parse.y"
1708 /* In case there were missing closebraces,
1709 get us back to the global binding level. */
1710 while (! global_bindings_p ())
1711 poplevel (0, 0, 0);
1712 finish_file ();
1714 break;}
1715 case 3:
1716 #line 253 "c-parse.y"
1717 {yyval.ttype = NULL_TREE; ;
1718 break;}
1719 case 5:
1720 #line 254 "c-parse.y"
1721 {yyval.ttype = NULL_TREE; ;
1722 break;}
1723 case 9:
1724 #line 261 "c-parse.y"
1725 { STRIP_NOPS (yyvsp[-2].ttype);
1726 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1727 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1728 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1729 assemble_asm (yyvsp[-2].ttype);
1730 else
1731 error ("argument of `asm' is not a constant string"); ;
1732 break;}
1733 case 10:
1734 #line 269 "c-parse.y"
1735 { pedantic = yyvsp[-1].itype; ;
1736 break;}
1737 case 11:
1738 #line 274 "c-parse.y"
1739 { if (pedantic)
1740 error ("ANSI C forbids data definition with no type or storage class");
1741 else if (!flag_traditional)
1742 warning ("data definition has no type or storage class");
1744 current_declspecs = TREE_VALUE (declspec_stack);
1745 prefix_attributes = TREE_PURPOSE (declspec_stack);
1746 declspec_stack = TREE_CHAIN (declspec_stack);
1747 resume_momentary (yyvsp[-2].itype); ;
1748 break;}
1749 case 12:
1750 #line 284 "c-parse.y"
1751 { current_declspecs = TREE_VALUE (declspec_stack);
1752 prefix_attributes = TREE_PURPOSE (declspec_stack);
1753 declspec_stack = TREE_CHAIN (declspec_stack);
1754 resume_momentary (yyvsp[-2].itype); ;
1755 break;}
1756 case 13:
1757 #line 289 "c-parse.y"
1758 { current_declspecs = TREE_VALUE (declspec_stack);
1759 prefix_attributes = TREE_PURPOSE (declspec_stack);
1760 declspec_stack = TREE_CHAIN (declspec_stack);
1761 resume_momentary (yyvsp[-2].itype); ;
1762 break;}
1763 case 14:
1764 #line 294 "c-parse.y"
1765 { pedwarn ("empty declaration"); ;
1766 break;}
1767 case 15:
1768 #line 296 "c-parse.y"
1769 { shadow_tag (yyvsp[-1].ttype); ;
1770 break;}
1771 case 18:
1772 #line 300 "c-parse.y"
1773 { if (pedantic)
1774 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1775 break;}
1776 case 19:
1777 #line 306 "c-parse.y"
1778 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1779 prefix_attributes, NULL_TREE, 0))
1780 YYERROR1;
1781 reinit_parse_for_function (); ;
1782 break;}
1783 case 20:
1784 #line 311 "c-parse.y"
1785 { store_parm_decls (); ;
1786 break;}
1787 case 21:
1788 #line 313 "c-parse.y"
1789 { finish_function (0);
1790 current_declspecs = TREE_VALUE (declspec_stack);
1791 prefix_attributes = TREE_PURPOSE (declspec_stack);
1792 declspec_stack = TREE_CHAIN (declspec_stack);
1793 resume_momentary (yyvsp[-5].itype); ;
1794 break;}
1795 case 22:
1796 #line 319 "c-parse.y"
1797 { current_declspecs = TREE_VALUE (declspec_stack);
1798 prefix_attributes = TREE_PURPOSE (declspec_stack);
1799 declspec_stack = TREE_CHAIN (declspec_stack);
1800 resume_momentary (yyvsp[-2].itype); ;
1801 break;}
1802 case 23:
1803 #line 324 "c-parse.y"
1804 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1805 prefix_attributes, NULL_TREE, 0))
1806 YYERROR1;
1807 reinit_parse_for_function (); ;
1808 break;}
1809 case 24:
1810 #line 329 "c-parse.y"
1811 { store_parm_decls (); ;
1812 break;}
1813 case 25:
1814 #line 331 "c-parse.y"
1815 { finish_function (0);
1816 current_declspecs = TREE_VALUE (declspec_stack);
1817 prefix_attributes = TREE_PURPOSE (declspec_stack);
1818 declspec_stack = TREE_CHAIN (declspec_stack);
1819 resume_momentary (yyvsp[-5].itype); ;
1820 break;}
1821 case 26:
1822 #line 337 "c-parse.y"
1823 { current_declspecs = TREE_VALUE (declspec_stack);
1824 prefix_attributes = TREE_PURPOSE (declspec_stack);
1825 declspec_stack = TREE_CHAIN (declspec_stack);
1826 resume_momentary (yyvsp[-2].itype); ;
1827 break;}
1828 case 27:
1829 #line 342 "c-parse.y"
1830 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1831 prefix_attributes, NULL_TREE, 0))
1832 YYERROR1;
1833 reinit_parse_for_function (); ;
1834 break;}
1835 case 28:
1836 #line 347 "c-parse.y"
1837 { store_parm_decls (); ;
1838 break;}
1839 case 29:
1840 #line 349 "c-parse.y"
1841 { finish_function (0);
1842 current_declspecs = TREE_VALUE (declspec_stack);
1843 prefix_attributes = TREE_PURPOSE (declspec_stack);
1844 declspec_stack = TREE_CHAIN (declspec_stack);
1845 resume_momentary (yyvsp[-5].itype); ;
1846 break;}
1847 case 30:
1848 #line 355 "c-parse.y"
1849 { current_declspecs = TREE_VALUE (declspec_stack);
1850 prefix_attributes = TREE_PURPOSE (declspec_stack);
1851 declspec_stack = TREE_CHAIN (declspec_stack);
1852 resume_momentary (yyvsp[-2].itype); ;
1853 break;}
1854 case 33:
1855 #line 367 "c-parse.y"
1856 { yyval.code = ADDR_EXPR; ;
1857 break;}
1858 case 34:
1859 #line 369 "c-parse.y"
1860 { yyval.code = NEGATE_EXPR; ;
1861 break;}
1862 case 35:
1863 #line 371 "c-parse.y"
1864 { yyval.code = CONVERT_EXPR; ;
1865 break;}
1866 case 36:
1867 #line 373 "c-parse.y"
1868 { yyval.code = PREINCREMENT_EXPR; ;
1869 break;}
1870 case 37:
1871 #line 375 "c-parse.y"
1872 { yyval.code = PREDECREMENT_EXPR; ;
1873 break;}
1874 case 38:
1875 #line 377 "c-parse.y"
1876 { yyval.code = BIT_NOT_EXPR; ;
1877 break;}
1878 case 39:
1879 #line 379 "c-parse.y"
1880 { yyval.code = TRUTH_NOT_EXPR; ;
1881 break;}
1882 case 40:
1883 #line 383 "c-parse.y"
1884 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1885 break;}
1886 case 41:
1887 #line 388 "c-parse.y"
1888 { yyval.ttype = NULL_TREE; ;
1889 break;}
1890 case 43:
1891 #line 394 "c-parse.y"
1892 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1893 break;}
1894 case 44:
1895 #line 396 "c-parse.y"
1896 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1897 break;}
1898 case 46:
1899 #line 402 "c-parse.y"
1900 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1901 break;}
1902 case 47:
1903 #line 405 "c-parse.y"
1904 { yyval.ttype = yyvsp[0].ttype;
1905 pedantic = yyvsp[-1].itype; ;
1906 break;}
1907 case 48:
1908 #line 408 "c-parse.y"
1909 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1910 overflow_warning (yyval.ttype); ;
1911 break;}
1912 case 49:
1913 #line 412 "c-parse.y"
1914 { tree label = lookup_label (yyvsp[0].ttype);
1915 if (pedantic)
1916 pedwarn ("ANSI C forbids `&&'");
1917 if (label == 0)
1918 yyval.ttype = null_pointer_node;
1919 else
1921 TREE_USED (label) = 1;
1922 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1923 TREE_CONSTANT (yyval.ttype) = 1;
1926 break;}
1927 case 50:
1928 #line 440 "c-parse.y"
1929 { skip_evaluation--;
1930 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1931 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1932 error ("`sizeof' applied to a bit-field");
1933 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1934 break;}
1935 case 51:
1936 #line 446 "c-parse.y"
1937 { skip_evaluation--;
1938 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1939 break;}
1940 case 52:
1941 #line 449 "c-parse.y"
1942 { skip_evaluation--;
1943 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1944 break;}
1945 case 53:
1946 #line 452 "c-parse.y"
1947 { skip_evaluation--;
1948 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1949 break;}
1950 case 54:
1951 #line 455 "c-parse.y"
1952 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1953 break;}
1954 case 55:
1955 #line 457 "c-parse.y"
1956 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1957 break;}
1958 case 56:
1959 #line 461 "c-parse.y"
1960 { skip_evaluation++; ;
1961 break;}
1962 case 57:
1963 #line 465 "c-parse.y"
1964 { skip_evaluation++; ;
1965 break;}
1966 case 59:
1967 #line 471 "c-parse.y"
1968 { tree type = groktypename (yyvsp[-2].ttype);
1969 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1970 break;}
1971 case 60:
1972 #line 474 "c-parse.y"
1973 { start_init (NULL_TREE, NULL, 0);
1974 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1975 really_start_incremental_init (yyvsp[-2].ttype); ;
1976 break;}
1977 case 61:
1978 #line 478 "c-parse.y"
1979 { char *name;
1980 tree result = pop_init_level (0);
1981 tree type = yyvsp[-5].ttype;
1982 finish_init ();
1984 if (pedantic && ! flag_isoc9x)
1985 pedwarn ("ANSI C forbids constructor expressions");
1986 if (TYPE_NAME (type) != 0)
1988 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1989 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1990 else
1991 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1993 else
1994 name = "";
1995 yyval.ttype = result;
1996 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1998 int failure = complete_array_type (type, yyval.ttype, 1);
1999 if (failure)
2000 abort ();
2003 break;}
2004 case 63:
2005 #line 507 "c-parse.y"
2006 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2007 break;}
2008 case 64:
2009 #line 509 "c-parse.y"
2010 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2011 break;}
2012 case 65:
2013 #line 511 "c-parse.y"
2014 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2015 break;}
2016 case 66:
2017 #line 513 "c-parse.y"
2018 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2019 break;}
2020 case 67:
2021 #line 515 "c-parse.y"
2022 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2023 break;}
2024 case 68:
2025 #line 517 "c-parse.y"
2026 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2027 break;}
2028 case 69:
2029 #line 519 "c-parse.y"
2030 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2031 break;}
2032 case 70:
2033 #line 521 "c-parse.y"
2034 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2035 break;}
2036 case 71:
2037 #line 523 "c-parse.y"
2038 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2039 break;}
2040 case 72:
2041 #line 525 "c-parse.y"
2042 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2043 break;}
2044 case 73:
2045 #line 527 "c-parse.y"
2046 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2047 break;}
2048 case 74:
2049 #line 529 "c-parse.y"
2050 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2051 break;}
2052 case 75:
2053 #line 531 "c-parse.y"
2054 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2055 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2056 break;}
2057 case 76:
2058 #line 534 "c-parse.y"
2059 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2060 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2061 break;}
2062 case 77:
2063 #line 537 "c-parse.y"
2064 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2065 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2066 break;}
2067 case 78:
2068 #line 540 "c-parse.y"
2069 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2070 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2071 break;}
2072 case 79:
2073 #line 543 "c-parse.y"
2074 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2075 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2076 break;}
2077 case 80:
2078 #line 546 "c-parse.y"
2079 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2080 - (yyvsp[-4].ttype == boolean_false_node)); ;
2081 break;}
2082 case 81:
2083 #line 549 "c-parse.y"
2084 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2085 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2086 break;}
2087 case 82:
2088 #line 552 "c-parse.y"
2089 { if (pedantic)
2090 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2091 /* Make sure first operand is calculated only once. */
2092 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2093 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2094 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2095 break;}
2096 case 83:
2097 #line 559 "c-parse.y"
2098 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2099 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2100 break;}
2101 case 84:
2102 #line 562 "c-parse.y"
2103 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2104 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2105 break;}
2106 case 85:
2107 #line 565 "c-parse.y"
2108 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2109 /* This inhibits warnings in truthvalue_conversion. */
2110 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2111 break;}
2112 case 86:
2113 #line 572 "c-parse.y"
2115 yyval.ttype = lastiddecl;
2116 if (!yyval.ttype || yyval.ttype == error_mark_node)
2118 if (yychar == YYEMPTY)
2119 yychar = YYLEX;
2120 if (yychar == '(')
2123 /* Ordinary implicit function declaration. */
2124 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2125 assemble_external (yyval.ttype);
2126 TREE_USED (yyval.ttype) = 1;
2129 else if (current_function_decl == 0)
2131 error ("`%s' undeclared here (not in a function)",
2132 IDENTIFIER_POINTER (yyvsp[0].ttype));
2133 yyval.ttype = error_mark_node;
2135 else
2138 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2139 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2141 error ("`%s' undeclared (first use in this function)",
2142 IDENTIFIER_POINTER (yyvsp[0].ttype));
2144 if (! undeclared_variable_notice)
2146 error ("(Each undeclared identifier is reported only once");
2147 error ("for each function it appears in.)");
2148 undeclared_variable_notice = 1;
2151 yyval.ttype = error_mark_node;
2152 /* Prevent repeated error messages. */
2153 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2154 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2158 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2159 yyval.ttype = error_mark_node;
2160 else if (C_DECL_ANTICIPATED (yyval.ttype))
2162 /* The first time we see a build-in function used,
2163 if it has not been declared. */
2164 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2165 if (yychar == YYEMPTY)
2166 yychar = YYLEX;
2167 if (yychar == '(')
2169 /* Omit the implicit declaration we
2170 would ordinarily do, so we don't lose
2171 the actual built in type.
2172 But print a diagnostic for the mismatch. */
2173 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2174 error ("`%s' implicitly declared as function",
2175 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2176 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2177 != TYPE_MODE (integer_type_node))
2178 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2179 != void_type_node))
2180 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2181 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2182 /* If it really returns void, change that to int. */
2183 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2184 TREE_TYPE (yyval.ttype)
2185 = build_function_type (integer_type_node,
2186 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2188 else
2189 pedwarn ("built-in function `%s' used without declaration",
2190 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2192 /* Do what we would ordinarily do when a fn is used. */
2193 assemble_external (yyval.ttype);
2194 TREE_USED (yyval.ttype) = 1;
2196 else
2198 assemble_external (yyval.ttype);
2199 TREE_USED (yyval.ttype) = 1;
2202 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2204 yyval.ttype = DECL_INITIAL (yyval.ttype);
2205 /* This is to prevent an enum whose value is 0
2206 from being considered a null pointer constant. */
2207 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2208 TREE_CONSTANT (yyval.ttype) = 1;
2211 break;}
2212 case 88:
2213 #line 671 "c-parse.y"
2214 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2215 break;}
2216 case 89:
2217 #line 673 "c-parse.y"
2218 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2219 if (class == 'e' || class == '1'
2220 || class == '2' || class == '<')
2221 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2222 yyval.ttype = yyvsp[-1].ttype; ;
2223 break;}
2224 case 90:
2225 #line 679 "c-parse.y"
2226 { yyval.ttype = error_mark_node; ;
2227 break;}
2228 case 91:
2229 #line 681 "c-parse.y"
2230 { if (current_function_decl == 0)
2232 error ("braced-group within expression allowed only inside a function");
2233 YYERROR;
2235 /* We must force a BLOCK for this level
2236 so that, if it is not expanded later,
2237 there is a way to turn off the entire subtree of blocks
2238 that are contained in it. */
2239 keep_next_level ();
2240 push_iterator_stack ();
2241 push_label_level ();
2242 yyval.ttype = expand_start_stmt_expr (); ;
2243 break;}
2244 case 92:
2245 #line 695 "c-parse.y"
2246 { tree rtl_exp;
2247 if (pedantic)
2248 pedwarn ("ANSI C forbids braced-groups within expressions");
2249 pop_iterator_stack ();
2250 pop_label_level ();
2251 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2252 /* The statements have side effects, so the group does. */
2253 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2255 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2257 /* Make a BIND_EXPR for the BLOCK already made. */
2258 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2259 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2260 /* Remove the block from the tree at this point.
2261 It gets put back at the proper place
2262 when the BIND_EXPR is expanded. */
2263 delete_block (yyvsp[-1].ttype);
2265 else
2266 yyval.ttype = yyvsp[-1].ttype;
2268 break;}
2269 case 93:
2270 #line 718 "c-parse.y"
2271 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2272 break;}
2273 case 94:
2274 #line 720 "c-parse.y"
2275 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2276 break;}
2277 case 95:
2278 #line 722 "c-parse.y"
2280 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2282 break;}
2283 case 96:
2284 #line 726 "c-parse.y"
2286 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2288 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2290 break;}
2291 case 97:
2292 #line 732 "c-parse.y"
2293 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2294 break;}
2295 case 98:
2296 #line 734 "c-parse.y"
2297 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2298 break;}
2299 case 100:
2300 #line 741 "c-parse.y"
2301 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2302 break;}
2303 case 103:
2304 #line 750 "c-parse.y"
2305 { c_mark_varargs ();
2306 if (pedantic)
2307 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2308 break;}
2309 case 104:
2310 #line 760 "c-parse.y"
2312 break;}
2313 case 109:
2314 #line 776 "c-parse.y"
2315 { current_declspecs = TREE_VALUE (declspec_stack);
2316 prefix_attributes = TREE_PURPOSE (declspec_stack);
2317 declspec_stack = TREE_CHAIN (declspec_stack);
2318 resume_momentary (yyvsp[-2].itype); ;
2319 break;}
2320 case 110:
2321 #line 781 "c-parse.y"
2322 { current_declspecs = TREE_VALUE (declspec_stack);
2323 prefix_attributes = TREE_PURPOSE (declspec_stack);
2324 declspec_stack = TREE_CHAIN (declspec_stack);
2325 resume_momentary (yyvsp[-2].itype); ;
2326 break;}
2327 case 111:
2328 #line 786 "c-parse.y"
2329 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2330 pedwarn ("empty declaration"); ;
2331 break;}
2332 case 112:
2333 #line 789 "c-parse.y"
2334 { pedwarn ("empty declaration"); ;
2335 break;}
2336 case 113:
2337 #line 798 "c-parse.y"
2339 break;}
2340 case 118:
2341 #line 813 "c-parse.y"
2342 { yyval.itype = suspend_momentary ();
2343 pending_xref_error ();
2344 declspec_stack = tree_cons (prefix_attributes,
2345 current_declspecs,
2346 declspec_stack);
2347 split_specs_attrs (yyvsp[0].ttype,
2348 &current_declspecs, &prefix_attributes); ;
2349 break;}
2350 case 119:
2351 #line 824 "c-parse.y"
2352 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2353 break;}
2354 case 120:
2355 #line 829 "c-parse.y"
2356 { current_declspecs = TREE_VALUE (declspec_stack);
2357 prefix_attributes = TREE_PURPOSE (declspec_stack);
2358 declspec_stack = TREE_CHAIN (declspec_stack);
2359 resume_momentary (yyvsp[-2].itype); ;
2360 break;}
2361 case 121:
2362 #line 834 "c-parse.y"
2363 { current_declspecs = TREE_VALUE (declspec_stack);
2364 prefix_attributes = TREE_PURPOSE (declspec_stack);
2365 declspec_stack = TREE_CHAIN (declspec_stack);
2366 resume_momentary (yyvsp[-2].itype); ;
2367 break;}
2368 case 122:
2369 #line 839 "c-parse.y"
2370 { current_declspecs = TREE_VALUE (declspec_stack);
2371 prefix_attributes = TREE_PURPOSE (declspec_stack);
2372 declspec_stack = TREE_CHAIN (declspec_stack);
2373 resume_momentary (yyvsp[-1].itype); ;
2374 break;}
2375 case 123:
2376 #line 844 "c-parse.y"
2377 { current_declspecs = TREE_VALUE (declspec_stack);
2378 prefix_attributes = TREE_PURPOSE (declspec_stack);
2379 declspec_stack = TREE_CHAIN (declspec_stack);
2380 resume_momentary (yyvsp[-1].itype); ;
2381 break;}
2382 case 124:
2383 #line 849 "c-parse.y"
2384 { shadow_tag (yyvsp[-1].ttype); ;
2385 break;}
2386 case 125:
2387 #line 851 "c-parse.y"
2388 { pedwarn ("empty declaration"); ;
2389 break;}
2390 case 126:
2391 #line 853 "c-parse.y"
2392 { pedantic = yyvsp[-1].itype; ;
2393 break;}
2394 case 127:
2395 #line 863 "c-parse.y"
2396 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2397 break;}
2398 case 128:
2399 #line 865 "c-parse.y"
2400 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2401 break;}
2402 case 129:
2403 #line 869 "c-parse.y"
2404 { yyval.ttype = NULL_TREE; ;
2405 break;}
2406 case 130:
2407 #line 871 "c-parse.y"
2408 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2409 break;}
2410 case 131:
2411 #line 873 "c-parse.y"
2412 { if (extra_warnings)
2413 warning ("`%s' is not at beginning of declaration",
2414 IDENTIFIER_POINTER (yyvsp[0].ttype));
2415 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2416 break;}
2417 case 132:
2418 #line 878 "c-parse.y"
2419 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2420 break;}
2421 case 133:
2422 #line 883 "c-parse.y"
2423 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2424 break;}
2425 case 134:
2426 #line 885 "c-parse.y"
2427 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2428 break;}
2429 case 135:
2430 #line 890 "c-parse.y"
2431 { yyval.ttype = NULL_TREE; ;
2432 break;}
2433 case 136:
2434 #line 892 "c-parse.y"
2435 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2436 break;}
2437 case 137:
2438 #line 894 "c-parse.y"
2439 { if (extra_warnings)
2440 warning ("`%s' is not at beginning of declaration",
2441 IDENTIFIER_POINTER (yyvsp[0].ttype));
2442 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2443 break;}
2444 case 138:
2445 #line 907 "c-parse.y"
2446 { yyval.ttype = yyvsp[0].ttype; ;
2447 break;}
2448 case 139:
2449 #line 909 "c-parse.y"
2450 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2451 break;}
2452 case 140:
2453 #line 911 "c-parse.y"
2454 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2455 break;}
2456 case 141:
2457 #line 913 "c-parse.y"
2458 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2459 break;}
2460 case 142:
2461 #line 918 "c-parse.y"
2462 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2463 TREE_STATIC (yyval.ttype) = 1; ;
2464 break;}
2465 case 143:
2466 #line 921 "c-parse.y"
2467 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2468 break;}
2469 case 144:
2470 #line 923 "c-parse.y"
2471 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2472 TREE_STATIC (yyval.ttype) = 1; ;
2473 break;}
2474 case 145:
2475 #line 926 "c-parse.y"
2476 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2477 warning ("`%s' is not at beginning of declaration",
2478 IDENTIFIER_POINTER (yyvsp[0].ttype));
2479 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2480 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2481 break;}
2482 case 146:
2483 #line 940 "c-parse.y"
2484 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2485 break;}
2486 case 147:
2487 #line 942 "c-parse.y"
2488 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2489 break;}
2490 case 148:
2491 #line 946 "c-parse.y"
2492 { yyval.ttype = NULL_TREE; ;
2493 break;}
2494 case 149:
2495 #line 948 "c-parse.y"
2496 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2497 break;}
2498 case 152:
2499 #line 958 "c-parse.y"
2500 { /* For a typedef name, record the meaning, not the name.
2501 In case of `foo foo, bar;'. */
2502 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2503 break;}
2504 case 153:
2505 #line 962 "c-parse.y"
2506 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2507 break;}
2508 case 154:
2509 #line 964 "c-parse.y"
2510 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2511 break;}
2512 case 162:
2513 #line 986 "c-parse.y"
2514 { yyval.ttype = NULL_TREE; ;
2515 break;}
2516 case 163:
2517 #line 988 "c-parse.y"
2518 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2519 yyval.ttype = yyvsp[-1].ttype;
2521 break;}
2522 case 164:
2523 #line 995 "c-parse.y"
2524 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2525 yyvsp[-1].ttype, prefix_attributes);
2526 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2527 break;}
2528 case 165:
2529 #line 1000 "c-parse.y"
2530 { finish_init ();
2531 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2532 break;}
2533 case 166:
2534 #line 1003 "c-parse.y"
2535 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2536 yyvsp[0].ttype, prefix_attributes);
2537 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2539 break;}
2540 case 167:
2541 #line 1011 "c-parse.y"
2542 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2543 yyvsp[-1].ttype, prefix_attributes);
2544 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2545 break;}
2546 case 168:
2547 #line 1016 "c-parse.y"
2548 { finish_init ();
2549 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2550 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2551 break;}
2552 case 169:
2553 #line 1020 "c-parse.y"
2554 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2555 yyvsp[0].ttype, prefix_attributes);
2556 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2557 break;}
2558 case 170:
2559 #line 1028 "c-parse.y"
2560 { yyval.ttype = NULL_TREE; ;
2561 break;}
2562 case 171:
2563 #line 1030 "c-parse.y"
2564 { yyval.ttype = yyvsp[0].ttype; ;
2565 break;}
2566 case 172:
2567 #line 1035 "c-parse.y"
2568 { yyval.ttype = yyvsp[0].ttype; ;
2569 break;}
2570 case 173:
2571 #line 1037 "c-parse.y"
2572 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2573 break;}
2574 case 174:
2575 #line 1042 "c-parse.y"
2576 { yyval.ttype = yyvsp[-2].ttype; ;
2577 break;}
2578 case 175:
2579 #line 1047 "c-parse.y"
2580 { yyval.ttype = yyvsp[0].ttype; ;
2581 break;}
2582 case 176:
2583 #line 1049 "c-parse.y"
2584 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2585 break;}
2586 case 177:
2587 #line 1054 "c-parse.y"
2588 { yyval.ttype = NULL_TREE; ;
2589 break;}
2590 case 178:
2591 #line 1056 "c-parse.y"
2592 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2593 break;}
2594 case 179:
2595 #line 1058 "c-parse.y"
2596 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2597 break;}
2598 case 180:
2599 #line 1060 "c-parse.y"
2600 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2601 break;}
2602 case 181:
2603 #line 1062 "c-parse.y"
2604 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2605 break;}
2606 case 187:
2607 #line 1080 "c-parse.y"
2608 { really_start_incremental_init (NULL_TREE);
2609 /* Note that the call to clear_momentary
2610 is in process_init_element. */
2611 push_momentary (); ;
2612 break;}
2613 case 188:
2614 #line 1085 "c-parse.y"
2615 { yyval.ttype = pop_init_level (0);
2616 if (yyval.ttype == error_mark_node
2617 && ! (yychar == STRING || yychar == CONSTANT))
2618 pop_momentary ();
2619 else
2620 pop_momentary_nofree (); ;
2621 break;}
2622 case 189:
2623 #line 1093 "c-parse.y"
2624 { yyval.ttype = error_mark_node; ;
2625 break;}
2626 case 190:
2627 #line 1099 "c-parse.y"
2628 { if (pedantic)
2629 pedwarn ("ANSI C forbids empty initializer braces"); ;
2630 break;}
2631 case 196:
2632 #line 1115 "c-parse.y"
2633 { set_init_label (yyvsp[-1].ttype); ;
2634 break;}
2635 case 199:
2636 #line 1122 "c-parse.y"
2637 { push_init_level (0); ;
2638 break;}
2639 case 200:
2640 #line 1124 "c-parse.y"
2641 { process_init_element (pop_init_level (0)); ;
2642 break;}
2643 case 201:
2644 #line 1126 "c-parse.y"
2645 { process_init_element (yyvsp[0].ttype); ;
2646 break;}
2647 case 205:
2648 #line 1137 "c-parse.y"
2649 { set_init_label (yyvsp[0].ttype); ;
2650 break;}
2651 case 206:
2652 #line 1142 "c-parse.y"
2653 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2654 break;}
2655 case 207:
2656 #line 1144 "c-parse.y"
2657 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2658 break;}
2659 case 208:
2660 #line 1149 "c-parse.y"
2661 { push_c_function_context ();
2662 if (! start_function (current_declspecs, yyvsp[0].ttype,
2663 prefix_attributes, NULL_TREE, 1))
2665 pop_c_function_context ();
2666 YYERROR1;
2668 reinit_parse_for_function (); ;
2669 break;}
2670 case 209:
2671 #line 1158 "c-parse.y"
2672 { store_parm_decls (); ;
2673 break;}
2674 case 210:
2675 #line 1166 "c-parse.y"
2676 { finish_function (1);
2677 pop_c_function_context (); ;
2678 break;}
2679 case 211:
2680 #line 1172 "c-parse.y"
2681 { push_c_function_context ();
2682 if (! start_function (current_declspecs, yyvsp[0].ttype,
2683 prefix_attributes, NULL_TREE, 1))
2685 pop_c_function_context ();
2686 YYERROR1;
2688 reinit_parse_for_function (); ;
2689 break;}
2690 case 212:
2691 #line 1181 "c-parse.y"
2692 { store_parm_decls (); ;
2693 break;}
2694 case 213:
2695 #line 1189 "c-parse.y"
2696 { finish_function (1);
2697 pop_c_function_context (); ;
2698 break;}
2699 case 216:
2700 #line 1205 "c-parse.y"
2701 { yyval.ttype = yyvsp[-1].ttype; ;
2702 break;}
2703 case 217:
2704 #line 1207 "c-parse.y"
2705 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2706 break;}
2707 case 218:
2708 #line 1212 "c-parse.y"
2709 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2710 break;}
2711 case 219:
2712 #line 1214 "c-parse.y"
2713 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2714 break;}
2715 case 220:
2716 #line 1216 "c-parse.y"
2717 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2718 break;}
2719 case 221:
2720 #line 1223 "c-parse.y"
2721 { yyval.ttype = yyvsp[0].ttype; ;
2722 break;}
2723 case 223:
2724 #line 1234 "c-parse.y"
2725 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2726 break;}
2727 case 224:
2728 #line 1239 "c-parse.y"
2729 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2730 if (! flag_isoc9x)
2731 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2733 break;}
2734 case 225:
2735 #line 1244 "c-parse.y"
2736 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2737 break;}
2738 case 226:
2739 #line 1246 "c-parse.y"
2740 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2741 break;}
2742 case 227:
2743 #line 1248 "c-parse.y"
2744 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2745 break;}
2746 case 228:
2747 #line 1255 "c-parse.y"
2748 { yyval.ttype = yyvsp[0].ttype; ;
2749 break;}
2750 case 230:
2751 #line 1264 "c-parse.y"
2752 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2753 break;}
2754 case 231:
2755 #line 1269 "c-parse.y"
2756 { yyval.ttype = yyvsp[-1].ttype; ;
2757 break;}
2758 case 232:
2759 #line 1271 "c-parse.y"
2760 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2761 break;}
2762 case 233:
2763 #line 1273 "c-parse.y"
2764 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2765 if (! flag_isoc9x)
2766 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2768 break;}
2769 case 234:
2770 #line 1278 "c-parse.y"
2771 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2772 break;}
2773 case 235:
2774 #line 1280 "c-parse.y"
2775 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2776 break;}
2777 case 236:
2778 #line 1287 "c-parse.y"
2779 { yyval.ttype = yyvsp[0].ttype; ;
2780 break;}
2781 case 238:
2782 #line 1293 "c-parse.y"
2783 { yyval.ttype = NULL_TREE; ;
2784 break;}
2785 case 239:
2786 #line 1295 "c-parse.y"
2787 { yyval.ttype = yyvsp[0].ttype; ;
2788 break;}
2789 case 240:
2790 #line 1300 "c-parse.y"
2791 { yyval.ttype = NULL_TREE; ;
2792 break;}
2793 case 241:
2794 #line 1302 "c-parse.y"
2795 { yyval.ttype = yyvsp[0].ttype; ;
2796 break;}
2797 case 242:
2798 #line 1307 "c-parse.y"
2799 { yyval.ttype = NULL_TREE; ;
2800 break;}
2801 case 243:
2802 #line 1309 "c-parse.y"
2803 { yyval.ttype = yyvsp[0].ttype; ;
2804 break;}
2805 case 244:
2806 #line 1314 "c-parse.y"
2807 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2808 /* Start scope of tag before parsing components. */
2810 break;}
2811 case 245:
2812 #line 1318 "c-parse.y"
2813 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2814 break;}
2815 case 246:
2816 #line 1320 "c-parse.y"
2817 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2818 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2820 break;}
2821 case 247:
2822 #line 1324 "c-parse.y"
2823 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2824 break;}
2825 case 248:
2826 #line 1326 "c-parse.y"
2827 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2828 break;}
2829 case 249:
2830 #line 1328 "c-parse.y"
2831 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2832 break;}
2833 case 250:
2834 #line 1330 "c-parse.y"
2835 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2836 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2838 break;}
2839 case 251:
2840 #line 1334 "c-parse.y"
2841 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2842 break;}
2843 case 252:
2844 #line 1336 "c-parse.y"
2845 { yyvsp[0].itype = suspend_momentary ();
2846 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2847 break;}
2848 case 253:
2849 #line 1339 "c-parse.y"
2850 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
2851 resume_momentary (yyvsp[-5].itype); ;
2852 break;}
2853 case 254:
2854 #line 1342 "c-parse.y"
2855 { yyvsp[0].itype = suspend_momentary ();
2856 yyval.ttype = start_enum (NULL_TREE); ;
2857 break;}
2858 case 255:
2859 #line 1345 "c-parse.y"
2860 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
2861 resume_momentary (yyvsp[-5].itype); ;
2862 break;}
2863 case 256:
2864 #line 1348 "c-parse.y"
2865 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2866 break;}
2867 case 260:
2868 #line 1359 "c-parse.y"
2869 { if (pedantic && ! flag_isoc9x)
2870 pedwarn ("comma at end of enumerator list"); ;
2871 break;}
2872 case 261:
2873 #line 1365 "c-parse.y"
2874 { yyval.ttype = yyvsp[0].ttype; ;
2875 break;}
2876 case 262:
2877 #line 1367 "c-parse.y"
2878 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2879 pedwarn ("no semicolon at end of struct or union"); ;
2880 break;}
2881 case 263:
2882 #line 1372 "c-parse.y"
2883 { yyval.ttype = NULL_TREE; ;
2884 break;}
2885 case 264:
2886 #line 1374 "c-parse.y"
2887 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2888 break;}
2889 case 265:
2890 #line 1376 "c-parse.y"
2891 { if (pedantic)
2892 pedwarn ("extra semicolon in struct or union specified"); ;
2893 break;}
2894 case 266:
2895 #line 1391 "c-parse.y"
2896 { yyval.ttype = yyvsp[0].ttype;
2897 current_declspecs = TREE_VALUE (declspec_stack);
2898 prefix_attributes = TREE_PURPOSE (declspec_stack);
2899 declspec_stack = TREE_CHAIN (declspec_stack);
2900 resume_momentary (yyvsp[-1].itype); ;
2901 break;}
2902 case 267:
2903 #line 1397 "c-parse.y"
2904 { if (pedantic)
2905 pedwarn ("ANSI C forbids member declarations with no members");
2906 shadow_tag(yyvsp[0].ttype);
2907 yyval.ttype = NULL_TREE; ;
2908 break;}
2909 case 268:
2910 #line 1402 "c-parse.y"
2911 { yyval.ttype = yyvsp[0].ttype;
2912 current_declspecs = TREE_VALUE (declspec_stack);
2913 prefix_attributes = TREE_PURPOSE (declspec_stack);
2914 declspec_stack = TREE_CHAIN (declspec_stack);
2915 resume_momentary (yyvsp[-1].itype); ;
2916 break;}
2917 case 269:
2918 #line 1408 "c-parse.y"
2919 { if (pedantic)
2920 pedwarn ("ANSI C forbids member declarations with no members");
2921 shadow_tag(yyvsp[0].ttype);
2922 yyval.ttype = NULL_TREE; ;
2923 break;}
2924 case 270:
2925 #line 1413 "c-parse.y"
2926 { yyval.ttype = NULL_TREE; ;
2927 break;}
2928 case 271:
2929 #line 1415 "c-parse.y"
2930 { yyval.ttype = yyvsp[0].ttype;
2931 pedantic = yyvsp[-1].itype; ;
2932 break;}
2933 case 273:
2934 #line 1422 "c-parse.y"
2935 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2936 break;}
2937 case 274:
2938 #line 1427 "c-parse.y"
2939 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2940 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2941 break;}
2942 case 275:
2943 #line 1431 "c-parse.y"
2944 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2945 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2946 break;}
2947 case 276:
2948 #line 1434 "c-parse.y"
2949 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2950 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2951 break;}
2952 case 278:
2953 #line 1446 "c-parse.y"
2954 { if (yyvsp[-2].ttype == error_mark_node)
2955 yyval.ttype = yyvsp[-2].ttype;
2956 else
2957 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2958 break;}
2959 case 279:
2960 #line 1451 "c-parse.y"
2961 { yyval.ttype = error_mark_node; ;
2962 break;}
2963 case 280:
2964 #line 1457 "c-parse.y"
2965 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2966 break;}
2967 case 281:
2968 #line 1459 "c-parse.y"
2969 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2970 break;}
2971 case 282:
2972 #line 1464 "c-parse.y"
2973 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2974 break;}
2975 case 283:
2976 #line 1466 "c-parse.y"
2977 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2978 break;}
2979 case 284:
2980 #line 1471 "c-parse.y"
2981 { yyval.ttype = NULL_TREE; ;
2982 break;}
2983 case 286:
2984 #line 1477 "c-parse.y"
2985 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2986 break;}
2987 case 287:
2988 #line 1479 "c-parse.y"
2989 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2990 break;}
2991 case 288:
2992 #line 1484 "c-parse.y"
2993 { yyval.ttype = NULL_TREE; ;
2994 break;}
2995 case 289:
2996 #line 1486 "c-parse.y"
2997 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2998 break;}
2999 case 290:
3000 #line 1491 "c-parse.y"
3001 { yyval.ttype = yyvsp[-1].ttype; ;
3002 break;}
3003 case 291:
3004 #line 1494 "c-parse.y"
3005 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3006 break;}
3007 case 292:
3008 #line 1496 "c-parse.y"
3009 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3010 break;}
3011 case 293:
3012 #line 1498 "c-parse.y"
3013 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3014 break;}
3015 case 294:
3016 #line 1500 "c-parse.y"
3017 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3018 break;}
3019 case 295:
3020 #line 1502 "c-parse.y"
3021 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3022 break;}
3023 case 296:
3024 #line 1504 "c-parse.y"
3025 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3026 break;}
3027 case 297:
3028 #line 1506 "c-parse.y"
3029 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3030 break;}
3031 case 298:
3032 #line 1508 "c-parse.y"
3033 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3034 break;}
3035 case 299:
3036 #line 1519 "c-parse.y"
3038 if (pedantic && yyvsp[0].ends_in_label)
3039 pedwarn ("ANSI C forbids label at end of compound statement");
3041 break;}
3042 case 301:
3043 #line 1528 "c-parse.y"
3044 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3045 break;}
3046 case 302:
3047 #line 1530 "c-parse.y"
3048 { yyval.ends_in_label = 0; ;
3049 break;}
3050 case 306:
3051 #line 1542 "c-parse.y"
3052 { emit_line_note (input_filename, lineno);
3053 pushlevel (0);
3054 clear_last_expr ();
3055 push_momentary ();
3056 expand_start_bindings (0);
3058 break;}
3059 case 308:
3060 #line 1555 "c-parse.y"
3061 { if (pedantic)
3062 pedwarn ("ANSI C forbids label declarations"); ;
3063 break;}
3064 case 311:
3065 #line 1566 "c-parse.y"
3066 { tree link;
3067 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3069 tree label = shadow_label (TREE_VALUE (link));
3070 C_DECLARED_LABEL_FLAG (label) = 1;
3071 declare_nonlocal_label (label);
3074 break;}
3075 case 312:
3076 #line 1580 "c-parse.y"
3078 break;}
3079 case 314:
3080 #line 1584 "c-parse.y"
3081 { compstmt_count++; ;
3082 break;}
3083 case 315:
3084 #line 1587 "c-parse.y"
3085 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3086 break;}
3087 case 316:
3088 #line 1589 "c-parse.y"
3089 { emit_line_note (input_filename, lineno);
3090 expand_end_bindings (getdecls (), 1, 0);
3091 yyval.ttype = poplevel (1, 1, 0);
3092 if (yychar == CONSTANT || yychar == STRING)
3093 pop_momentary_nofree ();
3094 else
3095 pop_momentary (); ;
3096 break;}
3097 case 317:
3098 #line 1597 "c-parse.y"
3099 { emit_line_note (input_filename, lineno);
3100 expand_end_bindings (getdecls (), kept_level_p (), 0);
3101 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3102 if (yychar == CONSTANT || yychar == STRING)
3103 pop_momentary_nofree ();
3104 else
3105 pop_momentary (); ;
3106 break;}
3107 case 318:
3108 #line 1605 "c-parse.y"
3109 { emit_line_note (input_filename, lineno);
3110 expand_end_bindings (getdecls (), kept_level_p (), 0);
3111 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3112 if (yychar == CONSTANT || yychar == STRING)
3113 pop_momentary_nofree ();
3114 else
3115 pop_momentary (); ;
3116 break;}
3117 case 321:
3118 #line 1625 "c-parse.y"
3119 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3120 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3121 compstmt_count);
3122 yyval.itype = stmt_count;
3123 if_stmt_file = yyvsp[-5].filename;
3124 if_stmt_line = yyvsp[-4].lineno;
3125 position_after_white_space (); ;
3126 break;}
3127 case 322:
3128 #line 1639 "c-parse.y"
3129 { stmt_count++;
3130 compstmt_count++;
3131 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3132 /* See comment in `while' alternative, above. */
3133 emit_nop ();
3134 expand_start_loop_continue_elsewhere (1);
3135 position_after_white_space (); ;
3136 break;}
3137 case 323:
3138 #line 1647 "c-parse.y"
3139 { expand_loop_continue_here (); ;
3140 break;}
3141 case 324:
3142 #line 1651 "c-parse.y"
3143 { yyval.filename = input_filename; ;
3144 break;}
3145 case 325:
3146 #line 1655 "c-parse.y"
3147 { yyval.lineno = lineno; ;
3148 break;}
3149 case 326:
3150 #line 1660 "c-parse.y"
3152 break;}
3153 case 327:
3154 #line 1665 "c-parse.y"
3156 break;}
3157 case 328:
3158 #line 1670 "c-parse.y"
3159 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3160 break;}
3161 case 329:
3162 #line 1675 "c-parse.y"
3163 { yyval.ends_in_label = 0; ;
3164 break;}
3165 case 330:
3166 #line 1677 "c-parse.y"
3167 { yyval.ends_in_label = 1; ;
3168 break;}
3169 case 331:
3170 #line 1683 "c-parse.y"
3171 { stmt_count++; ;
3172 break;}
3173 case 333:
3174 #line 1686 "c-parse.y"
3175 { stmt_count++;
3176 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3177 /* It appears that this should not be done--that a non-lvalue array
3178 shouldn't get an error if the value isn't used.
3179 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3180 if it appears as a top-level expression,
3181 but says nothing about non-lvalue arrays. */
3182 #if 0
3183 /* Call default_conversion to get an error
3184 on referring to a register array if pedantic. */
3185 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3186 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3187 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3188 #endif
3189 iterator_expand (yyvsp[-1].ttype);
3190 clear_momentary (); ;
3191 break;}
3192 case 334:
3193 #line 1703 "c-parse.y"
3194 { c_expand_start_else ();
3195 yyvsp[-1].itype = stmt_count;
3196 position_after_white_space (); ;
3197 break;}
3198 case 335:
3199 #line 1707 "c-parse.y"
3200 { c_expand_end_cond ();
3201 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3202 warning ("empty body in an else-statement"); ;
3203 break;}
3204 case 336:
3205 #line 1711 "c-parse.y"
3206 { c_expand_end_cond ();
3207 /* This warning is here instead of in simple_if, because we
3208 do not want a warning if an empty if is followed by an
3209 else statement. Increment stmt_count so we don't
3210 give a second error if this is a nested `if'. */
3211 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3212 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3213 "empty body in an if-statement"); ;
3214 break;}
3215 case 337:
3216 #line 1723 "c-parse.y"
3217 { c_expand_end_cond (); ;
3218 break;}
3219 case 338:
3220 #line 1725 "c-parse.y"
3221 { stmt_count++;
3222 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3223 /* The emit_nop used to come before emit_line_note,
3224 but that made the nop seem like part of the preceding line.
3225 And that was confusing when the preceding line was
3226 inside of an if statement and was not really executed.
3227 I think it ought to work to put the nop after the line number.
3228 We will see. --rms, July 15, 1991. */
3229 emit_nop (); ;
3230 break;}
3231 case 339:
3232 #line 1735 "c-parse.y"
3233 { /* Don't start the loop till we have succeeded
3234 in parsing the end test. This is to make sure
3235 that we end every loop we start. */
3236 expand_start_loop (1);
3237 emit_line_note (input_filename, lineno);
3238 expand_exit_loop_if_false (NULL_PTR,
3239 truthvalue_conversion (yyvsp[-1].ttype));
3240 position_after_white_space (); ;
3241 break;}
3242 case 340:
3243 #line 1744 "c-parse.y"
3244 { expand_end_loop (); ;
3245 break;}
3246 case 341:
3247 #line 1747 "c-parse.y"
3248 { emit_line_note (input_filename, lineno);
3249 expand_exit_loop_if_false (NULL_PTR,
3250 truthvalue_conversion (yyvsp[-2].ttype));
3251 expand_end_loop ();
3252 clear_momentary (); ;
3253 break;}
3254 case 342:
3255 #line 1754 "c-parse.y"
3256 { expand_end_loop ();
3257 clear_momentary (); ;
3258 break;}
3259 case 343:
3260 #line 1758 "c-parse.y"
3261 { stmt_count++;
3262 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3263 /* See comment in `while' alternative, above. */
3264 emit_nop ();
3265 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3266 /* Next step is to call expand_start_loop_continue_elsewhere,
3267 but wait till after we parse the entire for (...).
3268 Otherwise, invalid input might cause us to call that
3269 fn without calling expand_end_loop. */
3271 break;}
3272 case 344:
3273 #line 1770 "c-parse.y"
3274 { yyvsp[0].lineno = lineno;
3275 yyval.filename = input_filename; ;
3276 break;}
3277 case 345:
3278 #line 1773 "c-parse.y"
3280 /* Start the loop. Doing this after parsing
3281 all the expressions ensures we will end the loop. */
3282 expand_start_loop_continue_elsewhere (1);
3283 /* Emit the end-test, with a line number. */
3284 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3285 if (yyvsp[-4].ttype)
3286 expand_exit_loop_if_false (NULL_PTR,
3287 truthvalue_conversion (yyvsp[-4].ttype));
3288 /* Don't let the tree nodes for $9 be discarded by
3289 clear_momentary during the parsing of the next stmt. */
3290 push_momentary ();
3291 yyvsp[-3].lineno = lineno;
3292 yyvsp[-2].filename = input_filename;
3293 position_after_white_space (); ;
3294 break;}
3295 case 346:
3296 #line 1789 "c-parse.y"
3297 { /* Emit the increment expression, with a line number. */
3298 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3299 expand_loop_continue_here ();
3300 if (yyvsp[-3].ttype)
3301 c_expand_expr_stmt (yyvsp[-3].ttype);
3302 if (yychar == CONSTANT || yychar == STRING)
3303 pop_momentary_nofree ();
3304 else
3305 pop_momentary ();
3306 expand_end_loop (); ;
3307 break;}
3308 case 347:
3309 #line 1800 "c-parse.y"
3310 { stmt_count++;
3311 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3312 c_expand_start_case (yyvsp[-1].ttype);
3313 /* Don't let the tree nodes for $3 be discarded by
3314 clear_momentary during the parsing of the next stmt. */
3315 push_momentary ();
3316 position_after_white_space (); ;
3317 break;}
3318 case 348:
3319 #line 1808 "c-parse.y"
3320 { expand_end_case (yyvsp[-3].ttype);
3321 if (yychar == CONSTANT || yychar == STRING)
3322 pop_momentary_nofree ();
3323 else
3324 pop_momentary (); ;
3325 break;}
3326 case 349:
3327 #line 1814 "c-parse.y"
3328 { stmt_count++;
3329 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3330 if ( ! expand_exit_something ())
3331 error ("break statement not within loop or switch"); ;
3332 break;}
3333 case 350:
3334 #line 1819 "c-parse.y"
3335 { stmt_count++;
3336 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3337 if (! expand_continue_loop (NULL_PTR))
3338 error ("continue statement not within a loop"); ;
3339 break;}
3340 case 351:
3341 #line 1824 "c-parse.y"
3342 { stmt_count++;
3343 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3344 c_expand_return (NULL_TREE); ;
3345 break;}
3346 case 352:
3347 #line 1828 "c-parse.y"
3348 { stmt_count++;
3349 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3350 c_expand_return (yyvsp[-1].ttype); ;
3351 break;}
3352 case 353:
3353 #line 1832 "c-parse.y"
3354 { stmt_count++;
3355 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3356 STRIP_NOPS (yyvsp[-2].ttype);
3357 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3358 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3359 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3360 expand_asm (yyvsp[-2].ttype);
3361 else
3362 error ("argument of `asm' is not a constant string"); ;
3363 break;}
3364 case 354:
3365 #line 1843 "c-parse.y"
3366 { stmt_count++;
3367 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3368 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3369 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3370 input_filename, lineno); ;
3371 break;}
3372 case 355:
3373 #line 1850 "c-parse.y"
3374 { stmt_count++;
3375 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3376 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3377 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3378 input_filename, lineno); ;
3379 break;}
3380 case 356:
3381 #line 1858 "c-parse.y"
3382 { stmt_count++;
3383 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3384 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3385 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3386 input_filename, lineno); ;
3387 break;}
3388 case 357:
3389 #line 1864 "c-parse.y"
3390 { tree decl;
3391 stmt_count++;
3392 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3393 decl = lookup_label (yyvsp[-1].ttype);
3394 if (decl != 0)
3396 TREE_USED (decl) = 1;
3397 expand_goto (decl);
3400 break;}
3401 case 358:
3402 #line 1875 "c-parse.y"
3403 { if (pedantic)
3404 pedwarn ("ANSI C forbids `goto *expr;'");
3405 stmt_count++;
3406 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3407 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3408 break;}
3409 case 361:
3410 #line 1890 "c-parse.y"
3412 /* The value returned by this action is */
3413 /* 1 if everything is OK */
3414 /* 0 in case of error or already bound iterator */
3416 yyval.itype = 0;
3417 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3418 error ("invalid `for (ITERATOR)' syntax");
3419 else if (! ITERATOR_P (yyvsp[-1].ttype))
3420 error ("`%s' is not an iterator",
3421 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3422 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3423 error ("`for (%s)' inside expansion of same iterator",
3424 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3425 else
3427 yyval.itype = 1;
3428 iterator_for_loop_start (yyvsp[-1].ttype);
3431 break;}
3432 case 362:
3433 #line 1911 "c-parse.y"
3435 if (yyvsp[-1].itype)
3436 iterator_for_loop_end (yyvsp[-3].ttype);
3438 break;}
3439 case 363:
3440 #line 1946 "c-parse.y"
3441 { register tree value = check_case_value (yyvsp[-1].ttype);
3442 register tree label
3443 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3445 stmt_count++;
3447 if (value != error_mark_node)
3449 tree duplicate;
3450 int success;
3452 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3453 pedwarn ("label must have integral type in ANSI C");
3455 success = pushcase (value, convert_and_check,
3456 label, &duplicate);
3458 if (success == 1)
3459 error ("case label not within a switch statement");
3460 else if (success == 2)
3462 error ("duplicate case value");
3463 error_with_decl (duplicate, "this is the first entry for that value");
3465 else if (success == 3)
3466 warning ("case value out of range");
3467 else if (success == 5)
3468 error ("case label within scope of cleanup or variable array");
3470 position_after_white_space (); ;
3471 break;}
3472 case 364:
3473 #line 1977 "c-parse.y"
3474 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3475 register tree value2 = check_case_value (yyvsp[-1].ttype);
3476 register tree label
3477 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3479 if (pedantic)
3480 pedwarn ("ANSI C forbids case ranges");
3481 stmt_count++;
3483 if (value1 != error_mark_node && value2 != error_mark_node)
3485 tree duplicate;
3486 int success = pushcase_range (value1, value2,
3487 convert_and_check, label,
3488 &duplicate);
3489 if (success == 1)
3490 error ("case label not within a switch statement");
3491 else if (success == 2)
3493 error ("duplicate case value");
3494 error_with_decl (duplicate, "this is the first entry for that value");
3496 else if (success == 3)
3497 warning ("case value out of range");
3498 else if (success == 4)
3499 warning ("empty case range");
3500 else if (success == 5)
3501 error ("case label within scope of cleanup or variable array");
3503 position_after_white_space (); ;
3504 break;}
3505 case 365:
3506 #line 2008 "c-parse.y"
3508 tree duplicate;
3509 register tree label
3510 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3511 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3512 stmt_count++;
3513 if (success == 1)
3514 error ("default label not within a switch statement");
3515 else if (success == 2)
3517 error ("multiple default labels in one switch");
3518 error_with_decl (duplicate, "this is the first default label");
3520 position_after_white_space (); ;
3521 break;}
3522 case 366:
3523 #line 2023 "c-parse.y"
3524 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
3525 stmt_count++;
3526 emit_nop ();
3527 if (label)
3529 expand_label (label);
3530 decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
3532 position_after_white_space (); ;
3533 break;}
3534 case 367:
3535 #line 2038 "c-parse.y"
3536 { emit_line_note (input_filename, lineno);
3537 yyval.ttype = NULL_TREE; ;
3538 break;}
3539 case 368:
3540 #line 2041 "c-parse.y"
3541 { emit_line_note (input_filename, lineno); ;
3542 break;}
3543 case 369:
3544 #line 2046 "c-parse.y"
3545 { yyval.ttype = NULL_TREE; ;
3546 break;}
3547 case 371:
3548 #line 2053 "c-parse.y"
3549 { yyval.ttype = NULL_TREE; ;
3550 break;}
3551 case 374:
3552 #line 2060 "c-parse.y"
3553 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3554 break;}
3555 case 375:
3556 #line 2065 "c-parse.y"
3557 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3558 break;}
3559 case 376:
3560 #line 2070 "c-parse.y"
3561 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3562 break;}
3563 case 377:
3564 #line 2072 "c-parse.y"
3565 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3566 break;}
3567 case 378:
3568 #line 2078 "c-parse.y"
3569 { pushlevel (0);
3570 clear_parm_order ();
3571 declare_parm_level (0); ;
3572 break;}
3573 case 379:
3574 #line 2082 "c-parse.y"
3575 { yyval.ttype = yyvsp[0].ttype;
3576 parmlist_tags_warning ();
3577 poplevel (0, 0, 0); ;
3578 break;}
3579 case 381:
3580 #line 2090 "c-parse.y"
3581 { tree parm;
3582 if (pedantic)
3583 pedwarn ("ANSI C forbids forward parameter declarations");
3584 /* Mark the forward decls as such. */
3585 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3586 TREE_ASM_WRITTEN (parm) = 1;
3587 clear_parm_order (); ;
3588 break;}
3589 case 382:
3590 #line 2098 "c-parse.y"
3591 { yyval.ttype = yyvsp[0].ttype; ;
3592 break;}
3593 case 383:
3594 #line 2100 "c-parse.y"
3595 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3596 break;}
3597 case 384:
3598 #line 2106 "c-parse.y"
3599 { yyval.ttype = get_parm_info (0); ;
3600 break;}
3601 case 385:
3602 #line 2108 "c-parse.y"
3603 { yyval.ttype = get_parm_info (0);
3604 /* Gcc used to allow this as an extension. However, it does
3605 not work for all targets, and thus has been disabled.
3606 Also, since func (...) and func () are indistinguishable,
3607 it caused problems with the code in expand_builtin which
3608 tries to verify that BUILT_IN_NEXT_ARG is being used
3609 correctly. */
3610 error ("ANSI C requires a named argument before `...'");
3612 break;}
3613 case 386:
3614 #line 2118 "c-parse.y"
3615 { yyval.ttype = get_parm_info (1); ;
3616 break;}
3617 case 387:
3618 #line 2120 "c-parse.y"
3619 { yyval.ttype = get_parm_info (0); ;
3620 break;}
3621 case 388:
3622 #line 2125 "c-parse.y"
3623 { push_parm_decl (yyvsp[0].ttype); ;
3624 break;}
3625 case 389:
3626 #line 2127 "c-parse.y"
3627 { push_parm_decl (yyvsp[0].ttype); ;
3628 break;}
3629 case 390:
3630 #line 2134 "c-parse.y"
3631 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3632 yyvsp[-1].ttype),
3633 build_tree_list (prefix_attributes,
3634 yyvsp[0].ttype));
3635 current_declspecs = TREE_VALUE (declspec_stack);
3636 prefix_attributes = TREE_PURPOSE (declspec_stack);
3637 declspec_stack = TREE_CHAIN (declspec_stack);
3638 resume_momentary (yyvsp[-2].itype); ;
3639 break;}
3640 case 391:
3641 #line 2143 "c-parse.y"
3642 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3643 yyvsp[-1].ttype),
3644 build_tree_list (prefix_attributes,
3645 yyvsp[0].ttype));
3646 current_declspecs = TREE_VALUE (declspec_stack);
3647 prefix_attributes = TREE_PURPOSE (declspec_stack);
3648 declspec_stack = TREE_CHAIN (declspec_stack);
3649 resume_momentary (yyvsp[-2].itype); ;
3650 break;}
3651 case 392:
3652 #line 2152 "c-parse.y"
3653 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3654 yyvsp[-1].ttype),
3655 build_tree_list (prefix_attributes,
3656 yyvsp[0].ttype));
3657 current_declspecs = TREE_VALUE (declspec_stack);
3658 prefix_attributes = TREE_PURPOSE (declspec_stack);
3659 declspec_stack = TREE_CHAIN (declspec_stack);
3660 resume_momentary (yyvsp[-2].itype); ;
3661 break;}
3662 case 393:
3663 #line 2161 "c-parse.y"
3664 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3665 yyvsp[-1].ttype),
3666 build_tree_list (prefix_attributes,
3667 yyvsp[0].ttype));
3668 current_declspecs = TREE_VALUE (declspec_stack);
3669 prefix_attributes = TREE_PURPOSE (declspec_stack);
3670 declspec_stack = TREE_CHAIN (declspec_stack);
3671 resume_momentary (yyvsp[-2].itype); ;
3672 break;}
3673 case 394:
3674 #line 2171 "c-parse.y"
3675 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3676 yyvsp[-1].ttype),
3677 build_tree_list (prefix_attributes,
3678 yyvsp[0].ttype));
3679 current_declspecs = TREE_VALUE (declspec_stack);
3680 prefix_attributes = TREE_PURPOSE (declspec_stack);
3681 declspec_stack = TREE_CHAIN (declspec_stack);
3682 resume_momentary (yyvsp[-2].itype); ;
3683 break;}
3684 case 395:
3685 #line 2185 "c-parse.y"
3686 { pushlevel (0);
3687 clear_parm_order ();
3688 declare_parm_level (1); ;
3689 break;}
3690 case 396:
3691 #line 2189 "c-parse.y"
3692 { yyval.ttype = yyvsp[0].ttype;
3693 parmlist_tags_warning ();
3694 poplevel (0, 0, 0); ;
3695 break;}
3696 case 398:
3697 #line 2197 "c-parse.y"
3698 { tree t;
3699 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3700 if (TREE_VALUE (t) == NULL_TREE)
3701 error ("`...' in old-style identifier list");
3702 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3703 break;}
3704 case 399:
3705 #line 2207 "c-parse.y"
3706 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3707 break;}
3708 case 400:
3709 #line 2209 "c-parse.y"
3710 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3711 break;}
3712 case 401:
3713 #line 2215 "c-parse.y"
3714 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3715 break;}
3716 case 402:
3717 #line 2217 "c-parse.y"
3718 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3719 break;}
3720 case 403:
3721 #line 2222 "c-parse.y"
3722 { yyval.itype = pedantic;
3723 pedantic = 0; ;
3724 break;}
3726 /* the action file gets copied in in place of this dollarsign */
3727 #line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
3729 yyvsp -= yylen;
3730 yyssp -= yylen;
3731 #ifdef YYLSP_NEEDED
3732 yylsp -= yylen;
3733 #endif
3735 #if YYDEBUG != 0
3736 if (yydebug)
3738 short *ssp1 = yyss - 1;
3739 fprintf (stderr, "state stack now");
3740 while (ssp1 != yyssp)
3741 fprintf (stderr, " %d", *++ssp1);
3742 fprintf (stderr, "\n");
3744 #endif
3746 *++yyvsp = yyval;
3748 #ifdef YYLSP_NEEDED
3749 yylsp++;
3750 if (yylen == 0)
3752 yylsp->first_line = yylloc.first_line;
3753 yylsp->first_column = yylloc.first_column;
3754 yylsp->last_line = (yylsp-1)->last_line;
3755 yylsp->last_column = (yylsp-1)->last_column;
3756 yylsp->text = 0;
3758 else
3760 yylsp->last_line = (yylsp+yylen-1)->last_line;
3761 yylsp->last_column = (yylsp+yylen-1)->last_column;
3763 #endif
3765 /* Now "shift" the result of the reduction.
3766 Determine what state that goes to,
3767 based on the state we popped back to
3768 and the rule number reduced by. */
3770 yyn = yyr1[yyn];
3772 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3773 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3774 yystate = yytable[yystate];
3775 else
3776 yystate = yydefgoto[yyn - YYNTBASE];
3778 goto yynewstate;
3780 yyerrlab: /* here on detecting error */
3782 if (! yyerrstatus)
3783 /* If not already recovering from an error, report this error. */
3785 ++yynerrs;
3787 #ifdef YYERROR_VERBOSE
3788 yyn = yypact[yystate];
3790 if (yyn > YYFLAG && yyn < YYLAST)
3792 int size = 0;
3793 char *msg;
3794 int x, count;
3796 count = 0;
3797 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3798 for (x = (yyn < 0 ? -yyn : 0);
3799 x < (sizeof(yytname) / sizeof(char *)); x++)
3800 if (yycheck[x + yyn] == x)
3801 size += strlen(yytname[x]) + 15, count++;
3802 msg = (char *) malloc(size + 15);
3803 if (msg != 0)
3805 strcpy(msg, "parse error");
3807 if (count < 5)
3809 count = 0;
3810 for (x = (yyn < 0 ? -yyn : 0);
3811 x < (sizeof(yytname) / sizeof(char *)); x++)
3812 if (yycheck[x + yyn] == x)
3814 strcat(msg, count == 0 ? ", expecting `" : " or `");
3815 strcat(msg, yytname[x]);
3816 strcat(msg, "'");
3817 count++;
3820 yyerror(msg);
3821 free(msg);
3823 else
3824 yyerror ("parse error; also virtual memory exceeded");
3826 else
3827 #endif /* YYERROR_VERBOSE */
3828 yyerror("parse error");
3831 goto yyerrlab1;
3832 yyerrlab1: /* here on error raised explicitly by an action */
3834 if (yyerrstatus == 3)
3836 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3838 /* return failure if at end of input */
3839 if (yychar == YYEOF)
3840 YYABORT;
3842 #if YYDEBUG != 0
3843 if (yydebug)
3844 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3845 #endif
3847 yychar = YYEMPTY;
3850 /* Else will try to reuse lookahead token
3851 after shifting the error token. */
3853 yyerrstatus = 3; /* Each real token shifted decrements this */
3855 goto yyerrhandle;
3857 yyerrdefault: /* current state does not do anything special for the error token. */
3859 #if 0
3860 /* This is wrong; only states that explicitly want error tokens
3861 should shift them. */
3862 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3863 if (yyn) goto yydefault;
3864 #endif
3866 yyerrpop: /* pop the current state because it cannot handle the error token */
3868 if (yyssp == yyss) YYABORT;
3869 yyvsp--;
3870 yystate = *--yyssp;
3871 #ifdef YYLSP_NEEDED
3872 yylsp--;
3873 #endif
3875 #if YYDEBUG != 0
3876 if (yydebug)
3878 short *ssp1 = yyss - 1;
3879 fprintf (stderr, "Error: state stack now");
3880 while (ssp1 != yyssp)
3881 fprintf (stderr, " %d", *++ssp1);
3882 fprintf (stderr, "\n");
3884 #endif
3886 yyerrhandle:
3888 yyn = yypact[yystate];
3889 if (yyn == YYFLAG)
3890 goto yyerrdefault;
3892 yyn += YYTERROR;
3893 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3894 goto yyerrdefault;
3896 yyn = yytable[yyn];
3897 if (yyn < 0)
3899 if (yyn == YYFLAG)
3900 goto yyerrpop;
3901 yyn = -yyn;
3902 goto yyreduce;
3904 else if (yyn == 0)
3905 goto yyerrpop;
3907 if (yyn == YYFINAL)
3908 YYACCEPT;
3910 #if YYDEBUG != 0
3911 if (yydebug)
3912 fprintf(stderr, "Shifting error token, ");
3913 #endif
3915 *++yyvsp = yylval;
3916 #ifdef YYLSP_NEEDED
3917 *++yylsp = yylloc;
3918 #endif
3920 yystate = yyn;
3921 goto yynewstate;
3923 #line 2226 "c-parse.y"