* natCollator.cc: New file.
[official-gcc.git] / gcc / c-parse.c
blobc12dc182bb85ea48e928b2ec96abed8eab4334e2
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, 569, 580, 679, 680, 682, 688,
369 690, 704, 727, 729, 731, 735, 741, 743, 748, 750,
370 755, 757, 758, 768, 773, 775, 776, 777, 784, 790,
371 795, 798, 806, 811, 813, 814, 815, 822, 833, 837,
372 843, 848, 853, 858, 860, 862, 871, 874, 878, 880,
373 882, 887, 891, 894, 898, 901, 903, 915, 918, 920,
374 922, 926, 930, 932, 935, 948, 951, 955, 957, 965,
375 966, 967, 971, 973, 979, 980, 981, 984, 986, 989,
376 991, 994, 997, 1003, 1010, 1012, 1019, 1026, 1029, 1036,
377 1039, 1043, 1046, 1050, 1055, 1058, 1062, 1065, 1067, 1069,
378 1071, 1078, 1080, 1081, 1082, 1087, 1089, 1094, 1102, 1107,
379 1111, 1114, 1116, 1121, 1123, 1124, 1127, 1127, 1130, 1133,
380 1135, 1137, 1140, 1142, 1145, 1151, 1153, 1157, 1168, 1176,
381 1180, 1191, 1199, 1206, 1208, 1213, 1216, 1221, 1223, 1225,
382 1232, 1234, 1242, 1248, 1253, 1255, 1257, 1264, 1266, 1272,
383 1278, 1280, 1282, 1287, 1289, 1296, 1298, 1301, 1304, 1308,
384 1311, 1315, 1318, 1322, 1327, 1329, 1333, 1335, 1337, 1339,
385 1343, 1345, 1348, 1351, 1354, 1357, 1361, 1363, 1366, 1368,
386 1373, 1376, 1381, 1383, 1385, 1399, 1406, 1411, 1417, 1422,
387 1424, 1429, 1431, 1435, 1439, 1443, 1453, 1455, 1460, 1465,
388 1468, 1472, 1475, 1479, 1482, 1485, 1488, 1492, 1495, 1499,
389 1503, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1527, 1535,
390 1537, 1539, 1543, 1545, 1548, 1551, 1562, 1564, 1569, 1571,
391 1574, 1588, 1591, 1594, 1596, 1598, 1606, 1614, 1625, 1630,
392 1633, 1647, 1656, 1660, 1664, 1668, 1674, 1678, 1683, 1686,
393 1691, 1694, 1695, 1712, 1717, 1720, 1732, 1734, 1744, 1754,
394 1755, 1763, 1766, 1778, 1782, 1799, 1809, 1818, 1823, 1828,
395 1833, 1837, 1841, 1852, 1859, 1866, 1873, 1884, 1890, 1893,
396 1898, 1921, 1955, 1986, 2017, 2032, 2046, 2050, 2054, 2057,
397 2062, 2064, 2067, 2069, 2073, 2078, 2081, 2087, 2092, 2097,
398 2099, 2108, 2109, 2115, 2117, 2127, 2129, 2133, 2136, 2142,
399 2152, 2161, 2170, 2180, 2194, 2199, 2204, 2206, 2215, 2218,
400 2223, 2226, 2230
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/lib/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, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
1219 /* As a special exception, when this file is copied by Bison into a
1220 Bison output file, you may use that output file without restriction.
1221 This special exception was added by the Free Software Foundation
1222 in version 1.24 of Bison. */
1224 #ifndef alloca
1225 #ifdef __GNUC__
1226 #define alloca __builtin_alloca
1227 #else /* not GNU C. */
1228 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1229 #include <alloca.h>
1230 #else /* not sparc */
1231 #if defined (MSDOS) && !defined (__TURBOC__)
1232 #include <malloc.h>
1233 #else /* not MSDOS, or __TURBOC__ */
1234 #if defined(_AIX)
1235 #include <malloc.h>
1236 #pragma alloca
1237 #else /* not MSDOS, __TURBOC__, or _AIX */
1238 #ifdef __hpux
1239 #ifdef __cplusplus
1240 extern "C" {
1241 void *alloca (unsigned int);
1243 #else /* not __cplusplus */
1244 void *alloca ();
1245 #endif /* not __cplusplus */
1246 #endif /* __hpux */
1247 #endif /* not _AIX */
1248 #endif /* not MSDOS, or __TURBOC__ */
1249 #endif /* not sparc. */
1250 #endif /* not GNU C. */
1251 #endif /* alloca not defined. */
1253 /* This is the parser code that is written into each bison parser
1254 when the %semantic_parser declaration is not specified in the grammar.
1255 It was written by Richard Stallman by simplifying the hairy parser
1256 used when %semantic_parser is specified. */
1258 /* Note: there must be only one dollar sign in this file.
1259 It is replaced by the list of actions, each action
1260 as one case of the switch. */
1262 #define yyerrok (yyerrstatus = 0)
1263 #define yyclearin (yychar = YYEMPTY)
1264 #define YYEMPTY -2
1265 #define YYEOF 0
1266 #define YYACCEPT return(0)
1267 #define YYABORT return(1)
1268 #define YYERROR goto yyerrlab1
1269 /* Like YYERROR except do call yyerror.
1270 This remains here temporarily to ease the
1271 transition to the new meaning of YYERROR, for GCC.
1272 Once GCC version 2 has supplanted version 1, this can go. */
1273 #define YYFAIL goto yyerrlab
1274 #define YYRECOVERING() (!!yyerrstatus)
1275 #define YYBACKUP(token, value) \
1276 do \
1277 if (yychar == YYEMPTY && yylen == 1) \
1278 { yychar = (token), yylval = (value); \
1279 yychar1 = YYTRANSLATE (yychar); \
1280 YYPOPSTACK; \
1281 goto yybackup; \
1283 else \
1284 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1285 while (0)
1287 #define YYTERROR 1
1288 #define YYERRCODE 256
1290 #ifndef YYPURE
1291 #define YYLEX yylex()
1292 #endif
1294 #ifdef YYPURE
1295 #ifdef YYLSP_NEEDED
1296 #ifdef YYLEX_PARAM
1297 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1298 #else
1299 #define YYLEX yylex(&yylval, &yylloc)
1300 #endif
1301 #else /* not YYLSP_NEEDED */
1302 #ifdef YYLEX_PARAM
1303 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1304 #else
1305 #define YYLEX yylex(&yylval)
1306 #endif
1307 #endif /* not YYLSP_NEEDED */
1308 #endif
1310 /* If nonreentrant, generate the variables here */
1312 #ifndef YYPURE
1314 int yychar; /* the lookahead symbol */
1315 YYSTYPE yylval; /* the semantic value of the */
1316 /* lookahead symbol */
1318 #ifdef YYLSP_NEEDED
1319 YYLTYPE yylloc; /* location data for the lookahead */
1320 /* symbol */
1321 #endif
1323 int yynerrs; /* number of parse errors so far */
1324 #endif /* not YYPURE */
1326 #if YYDEBUG != 0
1327 int yydebug; /* nonzero means print parse trace */
1328 /* Since this is uninitialized, it does not stop multiple parsers
1329 from coexisting. */
1330 #endif
1332 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1334 #ifndef YYINITDEPTH
1335 #define YYINITDEPTH 200
1336 #endif
1338 /* YYMAXDEPTH is the maximum size the stacks can grow to
1339 (effective only if the built-in stack extension method is used). */
1341 #if YYMAXDEPTH == 0
1342 #undef YYMAXDEPTH
1343 #endif
1345 #ifndef YYMAXDEPTH
1346 #define YYMAXDEPTH 10000
1347 #endif
1349 /* Prevent warning if -Wstrict-prototypes. */
1350 #ifdef __GNUC__
1351 int yyparse (void);
1352 #endif
1354 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1355 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1356 #else /* not GNU C or C++ */
1357 #ifndef __cplusplus
1359 /* This is the most reliable way to avoid incompatibilities
1360 in available built-in functions on various systems. */
1361 static void
1362 __yy_memcpy (to, from, count)
1363 char *to;
1364 char *from;
1365 int count;
1367 register char *f = from;
1368 register char *t = to;
1369 register int i = count;
1371 while (i-- > 0)
1372 *t++ = *f++;
1375 #else /* __cplusplus */
1377 /* This is the most reliable way to avoid incompatibilities
1378 in available built-in functions on various systems. */
1379 static void
1380 __yy_memcpy (char *to, char *from, int count)
1382 register char *f = from;
1383 register char *t = to;
1384 register int i = count;
1386 while (i-- > 0)
1387 *t++ = *f++;
1390 #endif
1391 #endif
1393 #line 196 "/usr/lib/bison.simple"
1395 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1396 into yyparse. The argument should have type void *.
1397 It should actually point to an object.
1398 Grammar actions can access the variable by casting it
1399 to the proper pointer type. */
1401 #ifdef YYPARSE_PARAM
1402 #ifdef __cplusplus
1403 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1404 #define YYPARSE_PARAM_DECL
1405 #else /* not __cplusplus */
1406 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1407 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1408 #endif /* not __cplusplus */
1409 #else /* not YYPARSE_PARAM */
1410 #define YYPARSE_PARAM_ARG
1411 #define YYPARSE_PARAM_DECL
1412 #endif /* not YYPARSE_PARAM */
1415 yyparse(YYPARSE_PARAM_ARG)
1416 YYPARSE_PARAM_DECL
1418 register int yystate;
1419 register int yyn;
1420 register short *yyssp;
1421 register YYSTYPE *yyvsp;
1422 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1423 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1425 short yyssa[YYINITDEPTH]; /* the state stack */
1426 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1428 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1429 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1431 #ifdef YYLSP_NEEDED
1432 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1433 YYLTYPE *yyls = yylsa;
1434 YYLTYPE *yylsp;
1436 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1437 #else
1438 #define YYPOPSTACK (yyvsp--, yyssp--)
1439 #endif
1441 int yystacksize = YYINITDEPTH;
1443 #ifdef YYPURE
1444 int yychar;
1445 YYSTYPE yylval;
1446 int yynerrs;
1447 #ifdef YYLSP_NEEDED
1448 YYLTYPE yylloc;
1449 #endif
1450 #endif
1452 YYSTYPE yyval; /* the variable used to return */
1453 /* semantic values from the action */
1454 /* routines */
1456 int yylen;
1458 #if YYDEBUG != 0
1459 if (yydebug)
1460 fprintf(stderr, "Starting parse\n");
1461 #endif
1463 yystate = 0;
1464 yyerrstatus = 0;
1465 yynerrs = 0;
1466 yychar = YYEMPTY; /* Cause a token to be read. */
1468 /* Initialize stack pointers.
1469 Waste one element of value and location stack
1470 so that they stay on the same level as the state stack.
1471 The wasted elements are never initialized. */
1473 yyssp = yyss - 1;
1474 yyvsp = yyvs;
1475 #ifdef YYLSP_NEEDED
1476 yylsp = yyls;
1477 #endif
1479 /* Push a new state, which is found in yystate . */
1480 /* In all cases, when you get here, the value and location stacks
1481 have just been pushed. so pushing a state here evens the stacks. */
1482 yynewstate:
1484 *++yyssp = yystate;
1486 if (yyssp >= yyss + yystacksize - 1)
1488 /* Give user a chance to reallocate the stack */
1489 /* Use copies of these so that the &'s don't force the real ones into memory. */
1490 YYSTYPE *yyvs1 = yyvs;
1491 short *yyss1 = yyss;
1492 #ifdef YYLSP_NEEDED
1493 YYLTYPE *yyls1 = yyls;
1494 #endif
1496 /* Get the current used size of the three stacks, in elements. */
1497 int size = yyssp - yyss + 1;
1499 #ifdef yyoverflow
1500 /* Each stack pointer address is followed by the size of
1501 the data in use in that stack, in bytes. */
1502 #ifdef YYLSP_NEEDED
1503 /* This used to be a conditional around just the two extra args,
1504 but that might be undefined if yyoverflow is a macro. */
1505 yyoverflow("parser stack overflow",
1506 &yyss1, size * sizeof (*yyssp),
1507 &yyvs1, size * sizeof (*yyvsp),
1508 &yyls1, size * sizeof (*yylsp),
1509 &yystacksize);
1510 #else
1511 yyoverflow("parser stack overflow",
1512 &yyss1, size * sizeof (*yyssp),
1513 &yyvs1, size * sizeof (*yyvsp),
1514 &yystacksize);
1515 #endif
1517 yyss = yyss1; yyvs = yyvs1;
1518 #ifdef YYLSP_NEEDED
1519 yyls = yyls1;
1520 #endif
1521 #else /* no yyoverflow */
1522 /* Extend the stack our own way. */
1523 if (yystacksize >= YYMAXDEPTH)
1525 yyerror("parser stack overflow");
1526 return 2;
1528 yystacksize *= 2;
1529 if (yystacksize > YYMAXDEPTH)
1530 yystacksize = YYMAXDEPTH;
1531 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1532 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1533 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1534 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1535 #ifdef YYLSP_NEEDED
1536 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1537 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1538 #endif
1539 #endif /* no yyoverflow */
1541 yyssp = yyss + size - 1;
1542 yyvsp = yyvs + size - 1;
1543 #ifdef YYLSP_NEEDED
1544 yylsp = yyls + size - 1;
1545 #endif
1547 #if YYDEBUG != 0
1548 if (yydebug)
1549 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1550 #endif
1552 if (yyssp >= yyss + yystacksize - 1)
1553 YYABORT;
1556 #if YYDEBUG != 0
1557 if (yydebug)
1558 fprintf(stderr, "Entering state %d\n", yystate);
1559 #endif
1561 goto yybackup;
1562 yybackup:
1564 /* Do appropriate processing given the current state. */
1565 /* Read a lookahead token if we need one and don't already have one. */
1566 /* yyresume: */
1568 /* First try to decide what to do without reference to lookahead token. */
1570 yyn = yypact[yystate];
1571 if (yyn == YYFLAG)
1572 goto yydefault;
1574 /* Not known => get a lookahead token if don't already have one. */
1576 /* yychar is either YYEMPTY or YYEOF
1577 or a valid token in external form. */
1579 if (yychar == YYEMPTY)
1581 #if YYDEBUG != 0
1582 if (yydebug)
1583 fprintf(stderr, "Reading a token: ");
1584 #endif
1585 yychar = YYLEX;
1588 /* Convert token to internal form (in yychar1) for indexing tables with */
1590 if (yychar <= 0) /* This means end of input. */
1592 yychar1 = 0;
1593 yychar = YYEOF; /* Don't call YYLEX any more */
1595 #if YYDEBUG != 0
1596 if (yydebug)
1597 fprintf(stderr, "Now at end of input.\n");
1598 #endif
1600 else
1602 yychar1 = YYTRANSLATE(yychar);
1604 #if YYDEBUG != 0
1605 if (yydebug)
1607 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1608 /* Give the individual parser a way to print the precise meaning
1609 of a token, for further debugging info. */
1610 #ifdef YYPRINT
1611 YYPRINT (stderr, yychar, yylval);
1612 #endif
1613 fprintf (stderr, ")\n");
1615 #endif
1618 yyn += yychar1;
1619 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1620 goto yydefault;
1622 yyn = yytable[yyn];
1624 /* yyn is what to do for this token type in this state.
1625 Negative => reduce, -yyn is rule number.
1626 Positive => shift, yyn is new state.
1627 New state is final state => don't bother to shift,
1628 just return success.
1629 0, or most negative number => error. */
1631 if (yyn < 0)
1633 if (yyn == YYFLAG)
1634 goto yyerrlab;
1635 yyn = -yyn;
1636 goto yyreduce;
1638 else if (yyn == 0)
1639 goto yyerrlab;
1641 if (yyn == YYFINAL)
1642 YYACCEPT;
1644 /* Shift the lookahead token. */
1646 #if YYDEBUG != 0
1647 if (yydebug)
1648 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1649 #endif
1651 /* Discard the token being shifted unless it is eof. */
1652 if (yychar != YYEOF)
1653 yychar = YYEMPTY;
1655 *++yyvsp = yylval;
1656 #ifdef YYLSP_NEEDED
1657 *++yylsp = yylloc;
1658 #endif
1660 /* count tokens shifted since error; after three, turn off error status. */
1661 if (yyerrstatus) yyerrstatus--;
1663 yystate = yyn;
1664 goto yynewstate;
1666 /* Do the default action for the current state. */
1667 yydefault:
1669 yyn = yydefact[yystate];
1670 if (yyn == 0)
1671 goto yyerrlab;
1673 /* Do a reduction. yyn is the number of a rule to reduce with. */
1674 yyreduce:
1675 yylen = yyr2[yyn];
1676 if (yylen > 0)
1677 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1679 #if YYDEBUG != 0
1680 if (yydebug)
1682 int i;
1684 fprintf (stderr, "Reducing via rule %d (line %d), ",
1685 yyn, yyrline[yyn]);
1687 /* Print the symbols being reduced, and their result. */
1688 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1689 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1690 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1692 #endif
1695 switch (yyn) {
1697 case 1:
1698 #line 234 "c-parse.y"
1699 { if (pedantic)
1700 pedwarn ("ANSI C forbids an empty source file");
1701 finish_file ();
1703 break;}
1704 case 2:
1705 #line 239 "c-parse.y"
1707 /* In case there were missing closebraces,
1708 get us back to the global binding level. */
1709 while (! global_bindings_p ())
1710 poplevel (0, 0, 0);
1711 finish_file ();
1713 break;}
1714 case 3:
1715 #line 253 "c-parse.y"
1716 {yyval.ttype = NULL_TREE; ;
1717 break;}
1718 case 5:
1719 #line 254 "c-parse.y"
1720 {yyval.ttype = NULL_TREE; ;
1721 break;}
1722 case 9:
1723 #line 261 "c-parse.y"
1724 { STRIP_NOPS (yyvsp[-2].ttype);
1725 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1726 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1727 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1728 assemble_asm (yyvsp[-2].ttype);
1729 else
1730 error ("argument of `asm' is not a constant string"); ;
1731 break;}
1732 case 10:
1733 #line 269 "c-parse.y"
1734 { pedantic = yyvsp[-1].itype; ;
1735 break;}
1736 case 11:
1737 #line 274 "c-parse.y"
1738 { if (pedantic)
1739 error ("ANSI C forbids data definition with no type or storage class");
1740 else if (!flag_traditional)
1741 warning ("data definition has no type or storage class");
1743 current_declspecs = TREE_VALUE (declspec_stack);
1744 prefix_attributes = TREE_PURPOSE (declspec_stack);
1745 declspec_stack = TREE_CHAIN (declspec_stack);
1746 resume_momentary (yyvsp[-2].itype); ;
1747 break;}
1748 case 12:
1749 #line 284 "c-parse.y"
1750 { current_declspecs = TREE_VALUE (declspec_stack);
1751 prefix_attributes = TREE_PURPOSE (declspec_stack);
1752 declspec_stack = TREE_CHAIN (declspec_stack);
1753 resume_momentary (yyvsp[-2].itype); ;
1754 break;}
1755 case 13:
1756 #line 289 "c-parse.y"
1757 { current_declspecs = TREE_VALUE (declspec_stack);
1758 prefix_attributes = TREE_PURPOSE (declspec_stack);
1759 declspec_stack = TREE_CHAIN (declspec_stack);
1760 resume_momentary (yyvsp[-2].itype); ;
1761 break;}
1762 case 14:
1763 #line 294 "c-parse.y"
1764 { pedwarn ("empty declaration"); ;
1765 break;}
1766 case 15:
1767 #line 296 "c-parse.y"
1768 { shadow_tag (yyvsp[-1].ttype); ;
1769 break;}
1770 case 18:
1771 #line 300 "c-parse.y"
1772 { if (pedantic)
1773 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1774 break;}
1775 case 19:
1776 #line 306 "c-parse.y"
1777 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1778 prefix_attributes, NULL_TREE, 0))
1779 YYERROR1;
1780 reinit_parse_for_function (); ;
1781 break;}
1782 case 20:
1783 #line 311 "c-parse.y"
1784 { store_parm_decls (); ;
1785 break;}
1786 case 21:
1787 #line 313 "c-parse.y"
1788 { finish_function (0);
1789 current_declspecs = TREE_VALUE (declspec_stack);
1790 prefix_attributes = TREE_PURPOSE (declspec_stack);
1791 declspec_stack = TREE_CHAIN (declspec_stack);
1792 resume_momentary (yyvsp[-5].itype); ;
1793 break;}
1794 case 22:
1795 #line 319 "c-parse.y"
1796 { current_declspecs = TREE_VALUE (declspec_stack);
1797 prefix_attributes = TREE_PURPOSE (declspec_stack);
1798 declspec_stack = TREE_CHAIN (declspec_stack);
1799 resume_momentary (yyvsp[-2].itype); ;
1800 break;}
1801 case 23:
1802 #line 324 "c-parse.y"
1803 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1804 prefix_attributes, NULL_TREE, 0))
1805 YYERROR1;
1806 reinit_parse_for_function (); ;
1807 break;}
1808 case 24:
1809 #line 329 "c-parse.y"
1810 { store_parm_decls (); ;
1811 break;}
1812 case 25:
1813 #line 331 "c-parse.y"
1814 { finish_function (0);
1815 current_declspecs = TREE_VALUE (declspec_stack);
1816 prefix_attributes = TREE_PURPOSE (declspec_stack);
1817 declspec_stack = TREE_CHAIN (declspec_stack);
1818 resume_momentary (yyvsp[-5].itype); ;
1819 break;}
1820 case 26:
1821 #line 337 "c-parse.y"
1822 { current_declspecs = TREE_VALUE (declspec_stack);
1823 prefix_attributes = TREE_PURPOSE (declspec_stack);
1824 declspec_stack = TREE_CHAIN (declspec_stack);
1825 resume_momentary (yyvsp[-2].itype); ;
1826 break;}
1827 case 27:
1828 #line 342 "c-parse.y"
1829 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1830 prefix_attributes, NULL_TREE, 0))
1831 YYERROR1;
1832 reinit_parse_for_function (); ;
1833 break;}
1834 case 28:
1835 #line 347 "c-parse.y"
1836 { store_parm_decls (); ;
1837 break;}
1838 case 29:
1839 #line 349 "c-parse.y"
1840 { finish_function (0);
1841 current_declspecs = TREE_VALUE (declspec_stack);
1842 prefix_attributes = TREE_PURPOSE (declspec_stack);
1843 declspec_stack = TREE_CHAIN (declspec_stack);
1844 resume_momentary (yyvsp[-5].itype); ;
1845 break;}
1846 case 30:
1847 #line 355 "c-parse.y"
1848 { current_declspecs = TREE_VALUE (declspec_stack);
1849 prefix_attributes = TREE_PURPOSE (declspec_stack);
1850 declspec_stack = TREE_CHAIN (declspec_stack);
1851 resume_momentary (yyvsp[-2].itype); ;
1852 break;}
1853 case 33:
1854 #line 367 "c-parse.y"
1855 { yyval.code = ADDR_EXPR; ;
1856 break;}
1857 case 34:
1858 #line 369 "c-parse.y"
1859 { yyval.code = NEGATE_EXPR; ;
1860 break;}
1861 case 35:
1862 #line 371 "c-parse.y"
1863 { yyval.code = CONVERT_EXPR; ;
1864 break;}
1865 case 36:
1866 #line 373 "c-parse.y"
1867 { yyval.code = PREINCREMENT_EXPR; ;
1868 break;}
1869 case 37:
1870 #line 375 "c-parse.y"
1871 { yyval.code = PREDECREMENT_EXPR; ;
1872 break;}
1873 case 38:
1874 #line 377 "c-parse.y"
1875 { yyval.code = BIT_NOT_EXPR; ;
1876 break;}
1877 case 39:
1878 #line 379 "c-parse.y"
1879 { yyval.code = TRUTH_NOT_EXPR; ;
1880 break;}
1881 case 40:
1882 #line 383 "c-parse.y"
1883 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1884 break;}
1885 case 41:
1886 #line 388 "c-parse.y"
1887 { yyval.ttype = NULL_TREE; ;
1888 break;}
1889 case 43:
1890 #line 394 "c-parse.y"
1891 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1892 break;}
1893 case 44:
1894 #line 396 "c-parse.y"
1895 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1896 break;}
1897 case 46:
1898 #line 402 "c-parse.y"
1899 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1900 break;}
1901 case 47:
1902 #line 405 "c-parse.y"
1903 { yyval.ttype = yyvsp[0].ttype;
1904 pedantic = yyvsp[-1].itype; ;
1905 break;}
1906 case 48:
1907 #line 408 "c-parse.y"
1908 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1909 overflow_warning (yyval.ttype); ;
1910 break;}
1911 case 49:
1912 #line 412 "c-parse.y"
1913 { tree label = lookup_label (yyvsp[0].ttype);
1914 if (pedantic)
1915 pedwarn ("ANSI C forbids `&&'");
1916 if (label == 0)
1917 yyval.ttype = null_pointer_node;
1918 else
1920 TREE_USED (label) = 1;
1921 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1922 TREE_CONSTANT (yyval.ttype) = 1;
1925 break;}
1926 case 50:
1927 #line 440 "c-parse.y"
1928 { skip_evaluation--;
1929 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1930 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1931 error ("`sizeof' applied to a bit-field");
1932 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1933 break;}
1934 case 51:
1935 #line 446 "c-parse.y"
1936 { skip_evaluation--;
1937 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1938 break;}
1939 case 52:
1940 #line 449 "c-parse.y"
1941 { skip_evaluation--;
1942 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1943 break;}
1944 case 53:
1945 #line 452 "c-parse.y"
1946 { skip_evaluation--;
1947 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1948 break;}
1949 case 54:
1950 #line 455 "c-parse.y"
1951 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1952 break;}
1953 case 55:
1954 #line 457 "c-parse.y"
1955 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1956 break;}
1957 case 56:
1958 #line 461 "c-parse.y"
1959 { skip_evaluation++; ;
1960 break;}
1961 case 57:
1962 #line 465 "c-parse.y"
1963 { skip_evaluation++; ;
1964 break;}
1965 case 59:
1966 #line 471 "c-parse.y"
1967 { tree type = groktypename (yyvsp[-2].ttype);
1968 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1969 break;}
1970 case 60:
1971 #line 474 "c-parse.y"
1972 { start_init (NULL_TREE, NULL, 0);
1973 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1974 really_start_incremental_init (yyvsp[-2].ttype); ;
1975 break;}
1976 case 61:
1977 #line 478 "c-parse.y"
1978 { char *name;
1979 tree result = pop_init_level (0);
1980 tree type = yyvsp[-5].ttype;
1981 finish_init ();
1983 if (pedantic && ! flag_isoc9x)
1984 pedwarn ("ANSI C forbids constructor expressions");
1985 if (TYPE_NAME (type) != 0)
1987 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1988 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1989 else
1990 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1992 else
1993 name = "";
1994 yyval.ttype = result;
1995 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1997 int failure = complete_array_type (type, yyval.ttype, 1);
1998 if (failure)
1999 abort ();
2002 break;}
2003 case 63:
2004 #line 507 "c-parse.y"
2005 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2006 break;}
2007 case 64:
2008 #line 509 "c-parse.y"
2009 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2010 break;}
2011 case 65:
2012 #line 511 "c-parse.y"
2013 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2014 break;}
2015 case 66:
2016 #line 513 "c-parse.y"
2017 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2018 break;}
2019 case 67:
2020 #line 515 "c-parse.y"
2021 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2022 break;}
2023 case 68:
2024 #line 517 "c-parse.y"
2025 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2026 break;}
2027 case 69:
2028 #line 519 "c-parse.y"
2029 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2030 break;}
2031 case 70:
2032 #line 521 "c-parse.y"
2033 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2034 break;}
2035 case 71:
2036 #line 523 "c-parse.y"
2037 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2038 break;}
2039 case 72:
2040 #line 525 "c-parse.y"
2041 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2042 break;}
2043 case 73:
2044 #line 527 "c-parse.y"
2045 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2046 break;}
2047 case 74:
2048 #line 529 "c-parse.y"
2049 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2050 break;}
2051 case 75:
2052 #line 531 "c-parse.y"
2053 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2054 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2055 break;}
2056 case 76:
2057 #line 534 "c-parse.y"
2058 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2059 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2060 break;}
2061 case 77:
2062 #line 537 "c-parse.y"
2063 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2064 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2065 break;}
2066 case 78:
2067 #line 540 "c-parse.y"
2068 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2069 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2070 break;}
2071 case 79:
2072 #line 543 "c-parse.y"
2073 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2074 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2075 break;}
2076 case 80:
2077 #line 546 "c-parse.y"
2078 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2079 - (yyvsp[-4].ttype == boolean_false_node)); ;
2080 break;}
2081 case 81:
2082 #line 549 "c-parse.y"
2083 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2084 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2085 break;}
2086 case 82:
2087 #line 552 "c-parse.y"
2088 { if (pedantic)
2089 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2090 /* Make sure first operand is calculated only once. */
2091 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2092 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2093 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2094 break;}
2095 case 83:
2096 #line 559 "c-parse.y"
2097 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2098 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2099 break;}
2100 case 84:
2101 #line 562 "c-parse.y"
2102 { char class;
2103 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2104 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2105 if (class == 'e' || class == '1'
2106 || class == '2' || class == '<')
2107 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
2109 break;}
2110 case 85:
2111 #line 570 "c-parse.y"
2112 { char class;
2113 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2114 /* This inhibits warnings in truthvalue_conversion. */
2115 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2116 if (class == 'e' || class == '1'
2117 || class == '2' || class == '<')
2118 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
2120 break;}
2121 case 86:
2122 #line 582 "c-parse.y"
2124 yyval.ttype = lastiddecl;
2125 if (!yyval.ttype || yyval.ttype == error_mark_node)
2127 if (yychar == YYEMPTY)
2128 yychar = YYLEX;
2129 if (yychar == '(')
2132 /* Ordinary implicit function declaration. */
2133 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2134 assemble_external (yyval.ttype);
2135 TREE_USED (yyval.ttype) = 1;
2138 else if (current_function_decl == 0)
2140 error ("`%s' undeclared here (not in a function)",
2141 IDENTIFIER_POINTER (yyvsp[0].ttype));
2142 yyval.ttype = error_mark_node;
2144 else
2147 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2148 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2150 error ("`%s' undeclared (first use in this function)",
2151 IDENTIFIER_POINTER (yyvsp[0].ttype));
2153 if (! undeclared_variable_notice)
2155 error ("(Each undeclared identifier is reported only once");
2156 error ("for each function it appears in.)");
2157 undeclared_variable_notice = 1;
2160 yyval.ttype = error_mark_node;
2161 /* Prevent repeated error messages. */
2162 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2163 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2167 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2168 yyval.ttype = error_mark_node;
2169 else if (C_DECL_ANTICIPATED (yyval.ttype))
2171 /* The first time we see a build-in function used,
2172 if it has not been declared. */
2173 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2174 if (yychar == YYEMPTY)
2175 yychar = YYLEX;
2176 if (yychar == '(')
2178 /* Omit the implicit declaration we
2179 would ordinarily do, so we don't lose
2180 the actual built in type.
2181 But print a diagnostic for the mismatch. */
2182 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2183 error ("`%s' implicitly declared as function",
2184 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2185 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2186 != TYPE_MODE (integer_type_node))
2187 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2188 != void_type_node))
2189 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2190 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2191 /* If it really returns void, change that to int. */
2192 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2193 TREE_TYPE (yyval.ttype)
2194 = build_function_type (integer_type_node,
2195 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2197 else
2198 pedwarn ("built-in function `%s' used without declaration",
2199 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2201 /* Do what we would ordinarily do when a fn is used. */
2202 assemble_external (yyval.ttype);
2203 TREE_USED (yyval.ttype) = 1;
2205 else
2207 assemble_external (yyval.ttype);
2208 TREE_USED (yyval.ttype) = 1;
2211 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2213 yyval.ttype = DECL_INITIAL (yyval.ttype);
2214 /* This is to prevent an enum whose value is 0
2215 from being considered a null pointer constant. */
2216 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2217 TREE_CONSTANT (yyval.ttype) = 1;
2220 break;}
2221 case 88:
2222 #line 681 "c-parse.y"
2223 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2224 break;}
2225 case 89:
2226 #line 683 "c-parse.y"
2227 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2228 if (class == 'e' || class == '1'
2229 || class == '2' || class == '<')
2230 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2231 yyval.ttype = yyvsp[-1].ttype; ;
2232 break;}
2233 case 90:
2234 #line 689 "c-parse.y"
2235 { yyval.ttype = error_mark_node; ;
2236 break;}
2237 case 91:
2238 #line 691 "c-parse.y"
2239 { if (current_function_decl == 0)
2241 error ("braced-group within expression allowed only inside a function");
2242 YYERROR;
2244 /* We must force a BLOCK for this level
2245 so that, if it is not expanded later,
2246 there is a way to turn off the entire subtree of blocks
2247 that are contained in it. */
2248 keep_next_level ();
2249 push_iterator_stack ();
2250 push_label_level ();
2251 yyval.ttype = expand_start_stmt_expr (); ;
2252 break;}
2253 case 92:
2254 #line 705 "c-parse.y"
2255 { tree rtl_exp;
2256 if (pedantic)
2257 pedwarn ("ANSI C forbids braced-groups within expressions");
2258 pop_iterator_stack ();
2259 pop_label_level ();
2260 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2261 /* The statements have side effects, so the group does. */
2262 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2264 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2266 /* Make a BIND_EXPR for the BLOCK already made. */
2267 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2268 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2269 /* Remove the block from the tree at this point.
2270 It gets put back at the proper place
2271 when the BIND_EXPR is expanded. */
2272 delete_block (yyvsp[-1].ttype);
2274 else
2275 yyval.ttype = yyvsp[-1].ttype;
2277 break;}
2278 case 93:
2279 #line 728 "c-parse.y"
2280 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2281 break;}
2282 case 94:
2283 #line 730 "c-parse.y"
2284 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2285 break;}
2286 case 95:
2287 #line 732 "c-parse.y"
2289 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2291 break;}
2292 case 96:
2293 #line 736 "c-parse.y"
2295 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2297 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2299 break;}
2300 case 97:
2301 #line 742 "c-parse.y"
2302 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2303 break;}
2304 case 98:
2305 #line 744 "c-parse.y"
2306 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2307 break;}
2308 case 100:
2309 #line 751 "c-parse.y"
2310 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2311 break;}
2312 case 103:
2313 #line 760 "c-parse.y"
2314 { c_mark_varargs ();
2315 if (pedantic)
2316 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2317 break;}
2318 case 104:
2319 #line 770 "c-parse.y"
2321 break;}
2322 case 109:
2323 #line 786 "c-parse.y"
2324 { current_declspecs = TREE_VALUE (declspec_stack);
2325 prefix_attributes = TREE_PURPOSE (declspec_stack);
2326 declspec_stack = TREE_CHAIN (declspec_stack);
2327 resume_momentary (yyvsp[-2].itype); ;
2328 break;}
2329 case 110:
2330 #line 791 "c-parse.y"
2331 { current_declspecs = TREE_VALUE (declspec_stack);
2332 prefix_attributes = TREE_PURPOSE (declspec_stack);
2333 declspec_stack = TREE_CHAIN (declspec_stack);
2334 resume_momentary (yyvsp[-2].itype); ;
2335 break;}
2336 case 111:
2337 #line 796 "c-parse.y"
2338 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2339 pedwarn ("empty declaration"); ;
2340 break;}
2341 case 112:
2342 #line 799 "c-parse.y"
2343 { pedwarn ("empty declaration"); ;
2344 break;}
2345 case 113:
2346 #line 808 "c-parse.y"
2348 break;}
2349 case 118:
2350 #line 823 "c-parse.y"
2351 { yyval.itype = suspend_momentary ();
2352 pending_xref_error ();
2353 declspec_stack = tree_cons (prefix_attributes,
2354 current_declspecs,
2355 declspec_stack);
2356 split_specs_attrs (yyvsp[0].ttype,
2357 &current_declspecs, &prefix_attributes); ;
2358 break;}
2359 case 119:
2360 #line 834 "c-parse.y"
2361 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2362 break;}
2363 case 120:
2364 #line 839 "c-parse.y"
2365 { current_declspecs = TREE_VALUE (declspec_stack);
2366 prefix_attributes = TREE_PURPOSE (declspec_stack);
2367 declspec_stack = TREE_CHAIN (declspec_stack);
2368 resume_momentary (yyvsp[-2].itype); ;
2369 break;}
2370 case 121:
2371 #line 844 "c-parse.y"
2372 { current_declspecs = TREE_VALUE (declspec_stack);
2373 prefix_attributes = TREE_PURPOSE (declspec_stack);
2374 declspec_stack = TREE_CHAIN (declspec_stack);
2375 resume_momentary (yyvsp[-2].itype); ;
2376 break;}
2377 case 122:
2378 #line 849 "c-parse.y"
2379 { current_declspecs = TREE_VALUE (declspec_stack);
2380 prefix_attributes = TREE_PURPOSE (declspec_stack);
2381 declspec_stack = TREE_CHAIN (declspec_stack);
2382 resume_momentary (yyvsp[-1].itype); ;
2383 break;}
2384 case 123:
2385 #line 854 "c-parse.y"
2386 { current_declspecs = TREE_VALUE (declspec_stack);
2387 prefix_attributes = TREE_PURPOSE (declspec_stack);
2388 declspec_stack = TREE_CHAIN (declspec_stack);
2389 resume_momentary (yyvsp[-1].itype); ;
2390 break;}
2391 case 124:
2392 #line 859 "c-parse.y"
2393 { shadow_tag (yyvsp[-1].ttype); ;
2394 break;}
2395 case 125:
2396 #line 861 "c-parse.y"
2397 { pedwarn ("empty declaration"); ;
2398 break;}
2399 case 126:
2400 #line 863 "c-parse.y"
2401 { pedantic = yyvsp[-1].itype; ;
2402 break;}
2403 case 127:
2404 #line 873 "c-parse.y"
2405 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2406 break;}
2407 case 128:
2408 #line 875 "c-parse.y"
2409 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2410 break;}
2411 case 129:
2412 #line 879 "c-parse.y"
2413 { yyval.ttype = NULL_TREE; ;
2414 break;}
2415 case 130:
2416 #line 881 "c-parse.y"
2417 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2418 break;}
2419 case 131:
2420 #line 883 "c-parse.y"
2421 { if (extra_warnings)
2422 warning ("`%s' is not at beginning of declaration",
2423 IDENTIFIER_POINTER (yyvsp[0].ttype));
2424 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2425 break;}
2426 case 132:
2427 #line 888 "c-parse.y"
2428 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2429 break;}
2430 case 133:
2431 #line 893 "c-parse.y"
2432 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2433 break;}
2434 case 134:
2435 #line 895 "c-parse.y"
2436 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2437 break;}
2438 case 135:
2439 #line 900 "c-parse.y"
2440 { yyval.ttype = NULL_TREE; ;
2441 break;}
2442 case 136:
2443 #line 902 "c-parse.y"
2444 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2445 break;}
2446 case 137:
2447 #line 904 "c-parse.y"
2448 { if (extra_warnings)
2449 warning ("`%s' is not at beginning of declaration",
2450 IDENTIFIER_POINTER (yyvsp[0].ttype));
2451 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2452 break;}
2453 case 138:
2454 #line 917 "c-parse.y"
2455 { yyval.ttype = yyvsp[0].ttype; ;
2456 break;}
2457 case 139:
2458 #line 919 "c-parse.y"
2459 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2460 break;}
2461 case 140:
2462 #line 921 "c-parse.y"
2463 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2464 break;}
2465 case 141:
2466 #line 923 "c-parse.y"
2467 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2468 break;}
2469 case 142:
2470 #line 928 "c-parse.y"
2471 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2472 TREE_STATIC (yyval.ttype) = 1; ;
2473 break;}
2474 case 143:
2475 #line 931 "c-parse.y"
2476 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2477 break;}
2478 case 144:
2479 #line 933 "c-parse.y"
2480 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2481 TREE_STATIC (yyval.ttype) = 1; ;
2482 break;}
2483 case 145:
2484 #line 936 "c-parse.y"
2485 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2486 warning ("`%s' is not at beginning of declaration",
2487 IDENTIFIER_POINTER (yyvsp[0].ttype));
2488 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2489 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2490 break;}
2491 case 146:
2492 #line 950 "c-parse.y"
2493 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2494 break;}
2495 case 147:
2496 #line 952 "c-parse.y"
2497 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2498 break;}
2499 case 148:
2500 #line 956 "c-parse.y"
2501 { yyval.ttype = NULL_TREE; ;
2502 break;}
2503 case 149:
2504 #line 958 "c-parse.y"
2505 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2506 break;}
2507 case 152:
2508 #line 968 "c-parse.y"
2509 { /* For a typedef name, record the meaning, not the name.
2510 In case of `foo foo, bar;'. */
2511 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2512 break;}
2513 case 153:
2514 #line 972 "c-parse.y"
2515 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2516 break;}
2517 case 154:
2518 #line 974 "c-parse.y"
2519 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2520 break;}
2521 case 162:
2522 #line 996 "c-parse.y"
2523 { yyval.ttype = NULL_TREE; ;
2524 break;}
2525 case 163:
2526 #line 998 "c-parse.y"
2527 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2528 yyval.ttype = yyvsp[-1].ttype;
2530 break;}
2531 case 164:
2532 #line 1005 "c-parse.y"
2533 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2534 yyvsp[-1].ttype, prefix_attributes);
2535 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2536 break;}
2537 case 165:
2538 #line 1010 "c-parse.y"
2539 { finish_init ();
2540 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2541 break;}
2542 case 166:
2543 #line 1013 "c-parse.y"
2544 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2545 yyvsp[0].ttype, prefix_attributes);
2546 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2548 break;}
2549 case 167:
2550 #line 1021 "c-parse.y"
2551 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2552 yyvsp[-1].ttype, prefix_attributes);
2553 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2554 break;}
2555 case 168:
2556 #line 1026 "c-parse.y"
2557 { finish_init ();
2558 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2559 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2560 break;}
2561 case 169:
2562 #line 1030 "c-parse.y"
2563 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2564 yyvsp[0].ttype, prefix_attributes);
2565 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2566 break;}
2567 case 170:
2568 #line 1038 "c-parse.y"
2569 { yyval.ttype = NULL_TREE; ;
2570 break;}
2571 case 171:
2572 #line 1040 "c-parse.y"
2573 { yyval.ttype = yyvsp[0].ttype; ;
2574 break;}
2575 case 172:
2576 #line 1045 "c-parse.y"
2577 { yyval.ttype = yyvsp[0].ttype; ;
2578 break;}
2579 case 173:
2580 #line 1047 "c-parse.y"
2581 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2582 break;}
2583 case 174:
2584 #line 1052 "c-parse.y"
2585 { yyval.ttype = yyvsp[-2].ttype; ;
2586 break;}
2587 case 175:
2588 #line 1057 "c-parse.y"
2589 { yyval.ttype = yyvsp[0].ttype; ;
2590 break;}
2591 case 176:
2592 #line 1059 "c-parse.y"
2593 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2594 break;}
2595 case 177:
2596 #line 1064 "c-parse.y"
2597 { yyval.ttype = NULL_TREE; ;
2598 break;}
2599 case 178:
2600 #line 1066 "c-parse.y"
2601 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2602 break;}
2603 case 179:
2604 #line 1068 "c-parse.y"
2605 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2606 break;}
2607 case 180:
2608 #line 1070 "c-parse.y"
2609 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2610 break;}
2611 case 181:
2612 #line 1072 "c-parse.y"
2613 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2614 break;}
2615 case 187:
2616 #line 1090 "c-parse.y"
2617 { really_start_incremental_init (NULL_TREE);
2618 /* Note that the call to clear_momentary
2619 is in process_init_element. */
2620 push_momentary (); ;
2621 break;}
2622 case 188:
2623 #line 1095 "c-parse.y"
2624 { yyval.ttype = pop_init_level (0);
2625 if (yyval.ttype == error_mark_node
2626 && ! (yychar == STRING || yychar == CONSTANT))
2627 pop_momentary ();
2628 else
2629 pop_momentary_nofree (); ;
2630 break;}
2631 case 189:
2632 #line 1103 "c-parse.y"
2633 { yyval.ttype = error_mark_node; ;
2634 break;}
2635 case 190:
2636 #line 1109 "c-parse.y"
2637 { if (pedantic)
2638 pedwarn ("ANSI C forbids empty initializer braces"); ;
2639 break;}
2640 case 196:
2641 #line 1125 "c-parse.y"
2642 { set_init_label (yyvsp[-1].ttype); ;
2643 break;}
2644 case 199:
2645 #line 1132 "c-parse.y"
2646 { push_init_level (0); ;
2647 break;}
2648 case 200:
2649 #line 1134 "c-parse.y"
2650 { process_init_element (pop_init_level (0)); ;
2651 break;}
2652 case 201:
2653 #line 1136 "c-parse.y"
2654 { process_init_element (yyvsp[0].ttype); ;
2655 break;}
2656 case 205:
2657 #line 1147 "c-parse.y"
2658 { set_init_label (yyvsp[0].ttype); ;
2659 break;}
2660 case 206:
2661 #line 1152 "c-parse.y"
2662 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2663 break;}
2664 case 207:
2665 #line 1154 "c-parse.y"
2666 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2667 break;}
2668 case 208:
2669 #line 1159 "c-parse.y"
2670 { push_c_function_context ();
2671 if (! start_function (current_declspecs, yyvsp[0].ttype,
2672 prefix_attributes, NULL_TREE, 1))
2674 pop_c_function_context ();
2675 YYERROR1;
2677 reinit_parse_for_function (); ;
2678 break;}
2679 case 209:
2680 #line 1168 "c-parse.y"
2681 { store_parm_decls (); ;
2682 break;}
2683 case 210:
2684 #line 1176 "c-parse.y"
2685 { finish_function (1);
2686 pop_c_function_context (); ;
2687 break;}
2688 case 211:
2689 #line 1182 "c-parse.y"
2690 { push_c_function_context ();
2691 if (! start_function (current_declspecs, yyvsp[0].ttype,
2692 prefix_attributes, NULL_TREE, 1))
2694 pop_c_function_context ();
2695 YYERROR1;
2697 reinit_parse_for_function (); ;
2698 break;}
2699 case 212:
2700 #line 1191 "c-parse.y"
2701 { store_parm_decls (); ;
2702 break;}
2703 case 213:
2704 #line 1199 "c-parse.y"
2705 { finish_function (1);
2706 pop_c_function_context (); ;
2707 break;}
2708 case 216:
2709 #line 1215 "c-parse.y"
2710 { yyval.ttype = yyvsp[-1].ttype; ;
2711 break;}
2712 case 217:
2713 #line 1217 "c-parse.y"
2714 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2715 break;}
2716 case 218:
2717 #line 1222 "c-parse.y"
2718 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2719 break;}
2720 case 219:
2721 #line 1224 "c-parse.y"
2722 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2723 break;}
2724 case 220:
2725 #line 1226 "c-parse.y"
2726 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2727 break;}
2728 case 221:
2729 #line 1233 "c-parse.y"
2730 { yyval.ttype = yyvsp[0].ttype; ;
2731 break;}
2732 case 223:
2733 #line 1244 "c-parse.y"
2734 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2735 break;}
2736 case 224:
2737 #line 1249 "c-parse.y"
2738 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2739 if (! flag_isoc9x)
2740 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2742 break;}
2743 case 225:
2744 #line 1254 "c-parse.y"
2745 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2746 break;}
2747 case 226:
2748 #line 1256 "c-parse.y"
2749 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2750 break;}
2751 case 227:
2752 #line 1258 "c-parse.y"
2753 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2754 break;}
2755 case 228:
2756 #line 1265 "c-parse.y"
2757 { yyval.ttype = yyvsp[0].ttype; ;
2758 break;}
2759 case 230:
2760 #line 1274 "c-parse.y"
2761 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2762 break;}
2763 case 231:
2764 #line 1279 "c-parse.y"
2765 { yyval.ttype = yyvsp[-1].ttype; ;
2766 break;}
2767 case 232:
2768 #line 1281 "c-parse.y"
2769 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2770 break;}
2771 case 233:
2772 #line 1283 "c-parse.y"
2773 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
2774 if (! flag_isoc9x)
2775 error ("`[*]' in parameter declaration only allowed in ISO C 9x");
2777 break;}
2778 case 234:
2779 #line 1288 "c-parse.y"
2780 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2781 break;}
2782 case 235:
2783 #line 1290 "c-parse.y"
2784 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2785 break;}
2786 case 236:
2787 #line 1297 "c-parse.y"
2788 { yyval.ttype = yyvsp[0].ttype; ;
2789 break;}
2790 case 238:
2791 #line 1303 "c-parse.y"
2792 { yyval.ttype = NULL_TREE; ;
2793 break;}
2794 case 239:
2795 #line 1305 "c-parse.y"
2796 { yyval.ttype = yyvsp[0].ttype; ;
2797 break;}
2798 case 240:
2799 #line 1310 "c-parse.y"
2800 { yyval.ttype = NULL_TREE; ;
2801 break;}
2802 case 241:
2803 #line 1312 "c-parse.y"
2804 { yyval.ttype = yyvsp[0].ttype; ;
2805 break;}
2806 case 242:
2807 #line 1317 "c-parse.y"
2808 { yyval.ttype = NULL_TREE; ;
2809 break;}
2810 case 243:
2811 #line 1319 "c-parse.y"
2812 { yyval.ttype = yyvsp[0].ttype; ;
2813 break;}
2814 case 244:
2815 #line 1324 "c-parse.y"
2816 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2817 /* Start scope of tag before parsing components. */
2819 break;}
2820 case 245:
2821 #line 1328 "c-parse.y"
2822 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2823 break;}
2824 case 246:
2825 #line 1330 "c-parse.y"
2826 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2827 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2829 break;}
2830 case 247:
2831 #line 1334 "c-parse.y"
2832 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2833 break;}
2834 case 248:
2835 #line 1336 "c-parse.y"
2836 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2837 break;}
2838 case 249:
2839 #line 1338 "c-parse.y"
2840 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
2841 break;}
2842 case 250:
2843 #line 1340 "c-parse.y"
2844 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2845 yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
2847 break;}
2848 case 251:
2849 #line 1344 "c-parse.y"
2850 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2851 break;}
2852 case 252:
2853 #line 1346 "c-parse.y"
2854 { yyvsp[0].itype = suspend_momentary ();
2855 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2856 break;}
2857 case 253:
2858 #line 1349 "c-parse.y"
2859 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
2860 resume_momentary (yyvsp[-5].itype); ;
2861 break;}
2862 case 254:
2863 #line 1352 "c-parse.y"
2864 { yyvsp[0].itype = suspend_momentary ();
2865 yyval.ttype = start_enum (NULL_TREE); ;
2866 break;}
2867 case 255:
2868 #line 1355 "c-parse.y"
2869 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
2870 resume_momentary (yyvsp[-5].itype); ;
2871 break;}
2872 case 256:
2873 #line 1358 "c-parse.y"
2874 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2875 break;}
2876 case 260:
2877 #line 1369 "c-parse.y"
2878 { if (pedantic && ! flag_isoc9x)
2879 pedwarn ("comma at end of enumerator list"); ;
2880 break;}
2881 case 261:
2882 #line 1375 "c-parse.y"
2883 { yyval.ttype = yyvsp[0].ttype; ;
2884 break;}
2885 case 262:
2886 #line 1377 "c-parse.y"
2887 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2888 pedwarn ("no semicolon at end of struct or union"); ;
2889 break;}
2890 case 263:
2891 #line 1382 "c-parse.y"
2892 { yyval.ttype = NULL_TREE; ;
2893 break;}
2894 case 264:
2895 #line 1384 "c-parse.y"
2896 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2897 break;}
2898 case 265:
2899 #line 1386 "c-parse.y"
2900 { if (pedantic)
2901 pedwarn ("extra semicolon in struct or union specified"); ;
2902 break;}
2903 case 266:
2904 #line 1401 "c-parse.y"
2905 { yyval.ttype = yyvsp[0].ttype;
2906 current_declspecs = TREE_VALUE (declspec_stack);
2907 prefix_attributes = TREE_PURPOSE (declspec_stack);
2908 declspec_stack = TREE_CHAIN (declspec_stack);
2909 resume_momentary (yyvsp[-1].itype); ;
2910 break;}
2911 case 267:
2912 #line 1407 "c-parse.y"
2913 { if (pedantic)
2914 pedwarn ("ANSI C forbids member declarations with no members");
2915 shadow_tag(yyvsp[0].ttype);
2916 yyval.ttype = NULL_TREE; ;
2917 break;}
2918 case 268:
2919 #line 1412 "c-parse.y"
2920 { yyval.ttype = yyvsp[0].ttype;
2921 current_declspecs = TREE_VALUE (declspec_stack);
2922 prefix_attributes = TREE_PURPOSE (declspec_stack);
2923 declspec_stack = TREE_CHAIN (declspec_stack);
2924 resume_momentary (yyvsp[-1].itype); ;
2925 break;}
2926 case 269:
2927 #line 1418 "c-parse.y"
2928 { if (pedantic)
2929 pedwarn ("ANSI C forbids member declarations with no members");
2930 shadow_tag(yyvsp[0].ttype);
2931 yyval.ttype = NULL_TREE; ;
2932 break;}
2933 case 270:
2934 #line 1423 "c-parse.y"
2935 { yyval.ttype = NULL_TREE; ;
2936 break;}
2937 case 271:
2938 #line 1425 "c-parse.y"
2939 { yyval.ttype = yyvsp[0].ttype;
2940 pedantic = yyvsp[-1].itype; ;
2941 break;}
2942 case 273:
2943 #line 1432 "c-parse.y"
2944 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2945 break;}
2946 case 274:
2947 #line 1437 "c-parse.y"
2948 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2949 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2950 break;}
2951 case 275:
2952 #line 1441 "c-parse.y"
2953 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2954 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2955 break;}
2956 case 276:
2957 #line 1444 "c-parse.y"
2958 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2959 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2960 break;}
2961 case 278:
2962 #line 1456 "c-parse.y"
2963 { if (yyvsp[-2].ttype == error_mark_node)
2964 yyval.ttype = yyvsp[-2].ttype;
2965 else
2966 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2967 break;}
2968 case 279:
2969 #line 1461 "c-parse.y"
2970 { yyval.ttype = error_mark_node; ;
2971 break;}
2972 case 280:
2973 #line 1467 "c-parse.y"
2974 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2975 break;}
2976 case 281:
2977 #line 1469 "c-parse.y"
2978 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2979 break;}
2980 case 282:
2981 #line 1474 "c-parse.y"
2982 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2983 break;}
2984 case 283:
2985 #line 1476 "c-parse.y"
2986 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2987 break;}
2988 case 284:
2989 #line 1481 "c-parse.y"
2990 { yyval.ttype = NULL_TREE; ;
2991 break;}
2992 case 286:
2993 #line 1487 "c-parse.y"
2994 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2995 break;}
2996 case 287:
2997 #line 1489 "c-parse.y"
2998 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2999 break;}
3000 case 288:
3001 #line 1494 "c-parse.y"
3002 { yyval.ttype = NULL_TREE; ;
3003 break;}
3004 case 289:
3005 #line 1496 "c-parse.y"
3006 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3007 break;}
3008 case 290:
3009 #line 1501 "c-parse.y"
3010 { yyval.ttype = yyvsp[-1].ttype; ;
3011 break;}
3012 case 291:
3013 #line 1504 "c-parse.y"
3014 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3015 break;}
3016 case 292:
3017 #line 1506 "c-parse.y"
3018 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3019 break;}
3020 case 293:
3021 #line 1508 "c-parse.y"
3022 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3023 break;}
3024 case 294:
3025 #line 1510 "c-parse.y"
3026 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3027 break;}
3028 case 295:
3029 #line 1512 "c-parse.y"
3030 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3031 break;}
3032 case 296:
3033 #line 1514 "c-parse.y"
3034 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3035 break;}
3036 case 297:
3037 #line 1516 "c-parse.y"
3038 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3039 break;}
3040 case 298:
3041 #line 1518 "c-parse.y"
3042 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3043 break;}
3044 case 299:
3045 #line 1529 "c-parse.y"
3047 if (pedantic && yyvsp[0].ends_in_label)
3048 pedwarn ("ANSI C forbids label at end of compound statement");
3050 break;}
3051 case 301:
3052 #line 1538 "c-parse.y"
3053 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3054 break;}
3055 case 302:
3056 #line 1540 "c-parse.y"
3057 { yyval.ends_in_label = 0; ;
3058 break;}
3059 case 306:
3060 #line 1552 "c-parse.y"
3061 { emit_line_note (input_filename, lineno);
3062 pushlevel (0);
3063 clear_last_expr ();
3064 push_momentary ();
3065 expand_start_bindings (0);
3067 break;}
3068 case 308:
3069 #line 1565 "c-parse.y"
3070 { if (pedantic)
3071 pedwarn ("ANSI C forbids label declarations"); ;
3072 break;}
3073 case 311:
3074 #line 1576 "c-parse.y"
3075 { tree link;
3076 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3078 tree label = shadow_label (TREE_VALUE (link));
3079 C_DECLARED_LABEL_FLAG (label) = 1;
3080 declare_nonlocal_label (label);
3083 break;}
3084 case 312:
3085 #line 1590 "c-parse.y"
3087 break;}
3088 case 314:
3089 #line 1594 "c-parse.y"
3090 { compstmt_count++; ;
3091 break;}
3092 case 315:
3093 #line 1597 "c-parse.y"
3094 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3095 break;}
3096 case 316:
3097 #line 1599 "c-parse.y"
3098 { emit_line_note (input_filename, lineno);
3099 expand_end_bindings (getdecls (), 1, 0);
3100 yyval.ttype = poplevel (1, 1, 0);
3101 if (yychar == CONSTANT || yychar == STRING)
3102 pop_momentary_nofree ();
3103 else
3104 pop_momentary (); ;
3105 break;}
3106 case 317:
3107 #line 1607 "c-parse.y"
3108 { emit_line_note (input_filename, lineno);
3109 expand_end_bindings (getdecls (), kept_level_p (), 0);
3110 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3111 if (yychar == CONSTANT || yychar == STRING)
3112 pop_momentary_nofree ();
3113 else
3114 pop_momentary (); ;
3115 break;}
3116 case 318:
3117 #line 1615 "c-parse.y"
3118 { emit_line_note (input_filename, lineno);
3119 expand_end_bindings (getdecls (), kept_level_p (), 0);
3120 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3121 if (yychar == CONSTANT || yychar == STRING)
3122 pop_momentary_nofree ();
3123 else
3124 pop_momentary (); ;
3125 break;}
3126 case 321:
3127 #line 1635 "c-parse.y"
3128 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3129 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3130 compstmt_count);
3131 yyval.itype = stmt_count;
3132 if_stmt_file = yyvsp[-5].filename;
3133 if_stmt_line = yyvsp[-4].lineno;
3134 position_after_white_space (); ;
3135 break;}
3136 case 322:
3137 #line 1649 "c-parse.y"
3138 { stmt_count++;
3139 compstmt_count++;
3140 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3141 /* See comment in `while' alternative, above. */
3142 emit_nop ();
3143 expand_start_loop_continue_elsewhere (1);
3144 position_after_white_space (); ;
3145 break;}
3146 case 323:
3147 #line 1657 "c-parse.y"
3148 { expand_loop_continue_here (); ;
3149 break;}
3150 case 324:
3151 #line 1661 "c-parse.y"
3152 { yyval.filename = input_filename; ;
3153 break;}
3154 case 325:
3155 #line 1665 "c-parse.y"
3156 { yyval.lineno = lineno; ;
3157 break;}
3158 case 326:
3159 #line 1670 "c-parse.y"
3161 break;}
3162 case 327:
3163 #line 1675 "c-parse.y"
3165 break;}
3166 case 328:
3167 #line 1680 "c-parse.y"
3168 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3169 break;}
3170 case 329:
3171 #line 1685 "c-parse.y"
3172 { yyval.ends_in_label = 0; ;
3173 break;}
3174 case 330:
3175 #line 1687 "c-parse.y"
3176 { yyval.ends_in_label = 1; ;
3177 break;}
3178 case 331:
3179 #line 1693 "c-parse.y"
3180 { stmt_count++; ;
3181 break;}
3182 case 333:
3183 #line 1696 "c-parse.y"
3184 { stmt_count++;
3185 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3186 /* It appears that this should not be done--that a non-lvalue array
3187 shouldn't get an error if the value isn't used.
3188 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3189 if it appears as a top-level expression,
3190 but says nothing about non-lvalue arrays. */
3191 #if 0
3192 /* Call default_conversion to get an error
3193 on referring to a register array if pedantic. */
3194 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3195 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3196 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3197 #endif
3198 iterator_expand (yyvsp[-1].ttype);
3199 clear_momentary (); ;
3200 break;}
3201 case 334:
3202 #line 1713 "c-parse.y"
3203 { c_expand_start_else ();
3204 yyvsp[-1].itype = stmt_count;
3205 position_after_white_space (); ;
3206 break;}
3207 case 335:
3208 #line 1717 "c-parse.y"
3209 { c_expand_end_cond ();
3210 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3211 warning ("empty body in an else-statement"); ;
3212 break;}
3213 case 336:
3214 #line 1721 "c-parse.y"
3215 { c_expand_end_cond ();
3216 /* This warning is here instead of in simple_if, because we
3217 do not want a warning if an empty if is followed by an
3218 else statement. Increment stmt_count so we don't
3219 give a second error if this is a nested `if'. */
3220 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3221 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3222 "empty body in an if-statement"); ;
3223 break;}
3224 case 337:
3225 #line 1733 "c-parse.y"
3226 { c_expand_end_cond (); ;
3227 break;}
3228 case 338:
3229 #line 1735 "c-parse.y"
3230 { stmt_count++;
3231 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3232 /* The emit_nop used to come before emit_line_note,
3233 but that made the nop seem like part of the preceding line.
3234 And that was confusing when the preceding line was
3235 inside of an if statement and was not really executed.
3236 I think it ought to work to put the nop after the line number.
3237 We will see. --rms, July 15, 1991. */
3238 emit_nop (); ;
3239 break;}
3240 case 339:
3241 #line 1745 "c-parse.y"
3242 { /* Don't start the loop till we have succeeded
3243 in parsing the end test. This is to make sure
3244 that we end every loop we start. */
3245 expand_start_loop (1);
3246 emit_line_note (input_filename, lineno);
3247 expand_exit_loop_if_false (NULL_PTR,
3248 truthvalue_conversion (yyvsp[-1].ttype));
3249 position_after_white_space (); ;
3250 break;}
3251 case 340:
3252 #line 1754 "c-parse.y"
3253 { expand_end_loop (); ;
3254 break;}
3255 case 341:
3256 #line 1757 "c-parse.y"
3257 { emit_line_note (input_filename, lineno);
3258 expand_exit_loop_if_false (NULL_PTR,
3259 truthvalue_conversion (yyvsp[-2].ttype));
3260 expand_end_loop ();
3261 clear_momentary (); ;
3262 break;}
3263 case 342:
3264 #line 1764 "c-parse.y"
3265 { expand_end_loop ();
3266 clear_momentary (); ;
3267 break;}
3268 case 343:
3269 #line 1768 "c-parse.y"
3270 { stmt_count++;
3271 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3272 /* See comment in `while' alternative, above. */
3273 emit_nop ();
3274 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3275 /* Next step is to call expand_start_loop_continue_elsewhere,
3276 but wait till after we parse the entire for (...).
3277 Otherwise, invalid input might cause us to call that
3278 fn without calling expand_end_loop. */
3280 break;}
3281 case 344:
3282 #line 1780 "c-parse.y"
3283 { yyvsp[0].lineno = lineno;
3284 yyval.filename = input_filename; ;
3285 break;}
3286 case 345:
3287 #line 1783 "c-parse.y"
3289 /* Start the loop. Doing this after parsing
3290 all the expressions ensures we will end the loop. */
3291 expand_start_loop_continue_elsewhere (1);
3292 /* Emit the end-test, with a line number. */
3293 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3294 if (yyvsp[-4].ttype)
3295 expand_exit_loop_if_false (NULL_PTR,
3296 truthvalue_conversion (yyvsp[-4].ttype));
3297 /* Don't let the tree nodes for $9 be discarded by
3298 clear_momentary during the parsing of the next stmt. */
3299 push_momentary ();
3300 yyvsp[-3].lineno = lineno;
3301 yyvsp[-2].filename = input_filename;
3302 position_after_white_space (); ;
3303 break;}
3304 case 346:
3305 #line 1799 "c-parse.y"
3306 { /* Emit the increment expression, with a line number. */
3307 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3308 expand_loop_continue_here ();
3309 if (yyvsp[-3].ttype)
3310 c_expand_expr_stmt (yyvsp[-3].ttype);
3311 if (yychar == CONSTANT || yychar == STRING)
3312 pop_momentary_nofree ();
3313 else
3314 pop_momentary ();
3315 expand_end_loop (); ;
3316 break;}
3317 case 347:
3318 #line 1810 "c-parse.y"
3319 { stmt_count++;
3320 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3321 c_expand_start_case (yyvsp[-1].ttype);
3322 /* Don't let the tree nodes for $3 be discarded by
3323 clear_momentary during the parsing of the next stmt. */
3324 push_momentary ();
3325 position_after_white_space (); ;
3326 break;}
3327 case 348:
3328 #line 1818 "c-parse.y"
3329 { expand_end_case (yyvsp[-3].ttype);
3330 if (yychar == CONSTANT || yychar == STRING)
3331 pop_momentary_nofree ();
3332 else
3333 pop_momentary (); ;
3334 break;}
3335 case 349:
3336 #line 1824 "c-parse.y"
3337 { stmt_count++;
3338 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3339 if ( ! expand_exit_something ())
3340 error ("break statement not within loop or switch"); ;
3341 break;}
3342 case 350:
3343 #line 1829 "c-parse.y"
3344 { stmt_count++;
3345 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3346 if (! expand_continue_loop (NULL_PTR))
3347 error ("continue statement not within a loop"); ;
3348 break;}
3349 case 351:
3350 #line 1834 "c-parse.y"
3351 { stmt_count++;
3352 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3353 c_expand_return (NULL_TREE); ;
3354 break;}
3355 case 352:
3356 #line 1838 "c-parse.y"
3357 { stmt_count++;
3358 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3359 c_expand_return (yyvsp[-1].ttype); ;
3360 break;}
3361 case 353:
3362 #line 1842 "c-parse.y"
3363 { stmt_count++;
3364 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3365 STRIP_NOPS (yyvsp[-2].ttype);
3366 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3367 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3368 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3369 expand_asm (yyvsp[-2].ttype);
3370 else
3371 error ("argument of `asm' is not a constant string"); ;
3372 break;}
3373 case 354:
3374 #line 1853 "c-parse.y"
3375 { stmt_count++;
3376 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3377 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3378 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3379 input_filename, lineno); ;
3380 break;}
3381 case 355:
3382 #line 1860 "c-parse.y"
3383 { stmt_count++;
3384 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3385 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3386 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3387 input_filename, lineno); ;
3388 break;}
3389 case 356:
3390 #line 1868 "c-parse.y"
3391 { stmt_count++;
3392 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3393 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3394 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3395 input_filename, lineno); ;
3396 break;}
3397 case 357:
3398 #line 1874 "c-parse.y"
3399 { tree decl;
3400 stmt_count++;
3401 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3402 decl = lookup_label (yyvsp[-1].ttype);
3403 if (decl != 0)
3405 TREE_USED (decl) = 1;
3406 expand_goto (decl);
3409 break;}
3410 case 358:
3411 #line 1885 "c-parse.y"
3412 { if (pedantic)
3413 pedwarn ("ANSI C forbids `goto *expr;'");
3414 stmt_count++;
3415 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3416 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3417 break;}
3418 case 361:
3419 #line 1900 "c-parse.y"
3421 /* The value returned by this action is */
3422 /* 1 if everything is OK */
3423 /* 0 in case of error or already bound iterator */
3425 yyval.itype = 0;
3426 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3427 error ("invalid `for (ITERATOR)' syntax");
3428 else if (! ITERATOR_P (yyvsp[-1].ttype))
3429 error ("`%s' is not an iterator",
3430 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3431 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3432 error ("`for (%s)' inside expansion of same iterator",
3433 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3434 else
3436 yyval.itype = 1;
3437 iterator_for_loop_start (yyvsp[-1].ttype);
3440 break;}
3441 case 362:
3442 #line 1921 "c-parse.y"
3444 if (yyvsp[-1].itype)
3445 iterator_for_loop_end (yyvsp[-3].ttype);
3447 break;}
3448 case 363:
3449 #line 1956 "c-parse.y"
3450 { register tree value = check_case_value (yyvsp[-1].ttype);
3451 register tree label
3452 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3454 stmt_count++;
3456 if (value != error_mark_node)
3458 tree duplicate;
3459 int success;
3461 if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
3462 pedwarn ("label must have integral type in ANSI C");
3464 success = pushcase (value, convert_and_check,
3465 label, &duplicate);
3467 if (success == 1)
3468 error ("case label not within a switch statement");
3469 else if (success == 2)
3471 error ("duplicate case value");
3472 error_with_decl (duplicate, "this is the first entry for that value");
3474 else if (success == 3)
3475 warning ("case value out of range");
3476 else if (success == 5)
3477 error ("case label within scope of cleanup or variable array");
3479 position_after_white_space (); ;
3480 break;}
3481 case 364:
3482 #line 1987 "c-parse.y"
3483 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3484 register tree value2 = check_case_value (yyvsp[-1].ttype);
3485 register tree label
3486 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3488 if (pedantic)
3489 pedwarn ("ANSI C forbids case ranges");
3490 stmt_count++;
3492 if (value1 != error_mark_node && value2 != error_mark_node)
3494 tree duplicate;
3495 int success = pushcase_range (value1, value2,
3496 convert_and_check, label,
3497 &duplicate);
3498 if (success == 1)
3499 error ("case label not within a switch statement");
3500 else if (success == 2)
3502 error ("duplicate case value");
3503 error_with_decl (duplicate, "this is the first entry for that value");
3505 else if (success == 3)
3506 warning ("case value out of range");
3507 else if (success == 4)
3508 warning ("empty case range");
3509 else if (success == 5)
3510 error ("case label within scope of cleanup or variable array");
3512 position_after_white_space (); ;
3513 break;}
3514 case 365:
3515 #line 2018 "c-parse.y"
3517 tree duplicate;
3518 register tree label
3519 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3520 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3521 stmt_count++;
3522 if (success == 1)
3523 error ("default label not within a switch statement");
3524 else if (success == 2)
3526 error ("multiple default labels in one switch");
3527 error_with_decl (duplicate, "this is the first default label");
3529 position_after_white_space (); ;
3530 break;}
3531 case 366:
3532 #line 2033 "c-parse.y"
3533 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
3534 stmt_count++;
3535 emit_nop ();
3536 if (label)
3538 expand_label (label);
3539 decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
3541 position_after_white_space (); ;
3542 break;}
3543 case 367:
3544 #line 2048 "c-parse.y"
3545 { emit_line_note (input_filename, lineno);
3546 yyval.ttype = NULL_TREE; ;
3547 break;}
3548 case 368:
3549 #line 2051 "c-parse.y"
3550 { emit_line_note (input_filename, lineno); ;
3551 break;}
3552 case 369:
3553 #line 2056 "c-parse.y"
3554 { yyval.ttype = NULL_TREE; ;
3555 break;}
3556 case 371:
3557 #line 2063 "c-parse.y"
3558 { yyval.ttype = NULL_TREE; ;
3559 break;}
3560 case 374:
3561 #line 2070 "c-parse.y"
3562 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3563 break;}
3564 case 375:
3565 #line 2075 "c-parse.y"
3566 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3567 break;}
3568 case 376:
3569 #line 2080 "c-parse.y"
3570 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3571 break;}
3572 case 377:
3573 #line 2082 "c-parse.y"
3574 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3575 break;}
3576 case 378:
3577 #line 2088 "c-parse.y"
3578 { pushlevel (0);
3579 clear_parm_order ();
3580 declare_parm_level (0); ;
3581 break;}
3582 case 379:
3583 #line 2092 "c-parse.y"
3584 { yyval.ttype = yyvsp[0].ttype;
3585 parmlist_tags_warning ();
3586 poplevel (0, 0, 0); ;
3587 break;}
3588 case 381:
3589 #line 2100 "c-parse.y"
3590 { tree parm;
3591 if (pedantic)
3592 pedwarn ("ANSI C forbids forward parameter declarations");
3593 /* Mark the forward decls as such. */
3594 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3595 TREE_ASM_WRITTEN (parm) = 1;
3596 clear_parm_order (); ;
3597 break;}
3598 case 382:
3599 #line 2108 "c-parse.y"
3600 { yyval.ttype = yyvsp[0].ttype; ;
3601 break;}
3602 case 383:
3603 #line 2110 "c-parse.y"
3604 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3605 break;}
3606 case 384:
3607 #line 2116 "c-parse.y"
3608 { yyval.ttype = get_parm_info (0); ;
3609 break;}
3610 case 385:
3611 #line 2118 "c-parse.y"
3612 { yyval.ttype = get_parm_info (0);
3613 /* Gcc used to allow this as an extension. However, it does
3614 not work for all targets, and thus has been disabled.
3615 Also, since func (...) and func () are indistinguishable,
3616 it caused problems with the code in expand_builtin which
3617 tries to verify that BUILT_IN_NEXT_ARG is being used
3618 correctly. */
3619 error ("ANSI C requires a named argument before `...'");
3621 break;}
3622 case 386:
3623 #line 2128 "c-parse.y"
3624 { yyval.ttype = get_parm_info (1); ;
3625 break;}
3626 case 387:
3627 #line 2130 "c-parse.y"
3628 { yyval.ttype = get_parm_info (0); ;
3629 break;}
3630 case 388:
3631 #line 2135 "c-parse.y"
3632 { push_parm_decl (yyvsp[0].ttype); ;
3633 break;}
3634 case 389:
3635 #line 2137 "c-parse.y"
3636 { push_parm_decl (yyvsp[0].ttype); ;
3637 break;}
3638 case 390:
3639 #line 2144 "c-parse.y"
3640 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3641 yyvsp[-1].ttype),
3642 build_tree_list (prefix_attributes,
3643 yyvsp[0].ttype));
3644 current_declspecs = TREE_VALUE (declspec_stack);
3645 prefix_attributes = TREE_PURPOSE (declspec_stack);
3646 declspec_stack = TREE_CHAIN (declspec_stack);
3647 resume_momentary (yyvsp[-2].itype); ;
3648 break;}
3649 case 391:
3650 #line 2153 "c-parse.y"
3651 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3652 yyvsp[-1].ttype),
3653 build_tree_list (prefix_attributes,
3654 yyvsp[0].ttype));
3655 current_declspecs = TREE_VALUE (declspec_stack);
3656 prefix_attributes = TREE_PURPOSE (declspec_stack);
3657 declspec_stack = TREE_CHAIN (declspec_stack);
3658 resume_momentary (yyvsp[-2].itype); ;
3659 break;}
3660 case 392:
3661 #line 2162 "c-parse.y"
3662 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3663 yyvsp[-1].ttype),
3664 build_tree_list (prefix_attributes,
3665 yyvsp[0].ttype));
3666 current_declspecs = TREE_VALUE (declspec_stack);
3667 prefix_attributes = TREE_PURPOSE (declspec_stack);
3668 declspec_stack = TREE_CHAIN (declspec_stack);
3669 resume_momentary (yyvsp[-2].itype); ;
3670 break;}
3671 case 393:
3672 #line 2171 "c-parse.y"
3673 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3674 yyvsp[-1].ttype),
3675 build_tree_list (prefix_attributes,
3676 yyvsp[0].ttype));
3677 current_declspecs = TREE_VALUE (declspec_stack);
3678 prefix_attributes = TREE_PURPOSE (declspec_stack);
3679 declspec_stack = TREE_CHAIN (declspec_stack);
3680 resume_momentary (yyvsp[-2].itype); ;
3681 break;}
3682 case 394:
3683 #line 2181 "c-parse.y"
3684 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3685 yyvsp[-1].ttype),
3686 build_tree_list (prefix_attributes,
3687 yyvsp[0].ttype));
3688 current_declspecs = TREE_VALUE (declspec_stack);
3689 prefix_attributes = TREE_PURPOSE (declspec_stack);
3690 declspec_stack = TREE_CHAIN (declspec_stack);
3691 resume_momentary (yyvsp[-2].itype); ;
3692 break;}
3693 case 395:
3694 #line 2195 "c-parse.y"
3695 { pushlevel (0);
3696 clear_parm_order ();
3697 declare_parm_level (1); ;
3698 break;}
3699 case 396:
3700 #line 2199 "c-parse.y"
3701 { yyval.ttype = yyvsp[0].ttype;
3702 parmlist_tags_warning ();
3703 poplevel (0, 0, 0); ;
3704 break;}
3705 case 398:
3706 #line 2207 "c-parse.y"
3707 { tree t;
3708 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3709 if (TREE_VALUE (t) == NULL_TREE)
3710 error ("`...' in old-style identifier list");
3711 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3712 break;}
3713 case 399:
3714 #line 2217 "c-parse.y"
3715 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3716 break;}
3717 case 400:
3718 #line 2219 "c-parse.y"
3719 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3720 break;}
3721 case 401:
3722 #line 2225 "c-parse.y"
3723 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3724 break;}
3725 case 402:
3726 #line 2227 "c-parse.y"
3727 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3728 break;}
3729 case 403:
3730 #line 2232 "c-parse.y"
3731 { yyval.itype = pedantic;
3732 pedantic = 0; ;
3733 break;}
3735 /* the action file gets copied in in place of this dollarsign */
3736 #line 498 "/usr/lib/bison.simple"
3738 yyvsp -= yylen;
3739 yyssp -= yylen;
3740 #ifdef YYLSP_NEEDED
3741 yylsp -= yylen;
3742 #endif
3744 #if YYDEBUG != 0
3745 if (yydebug)
3747 short *ssp1 = yyss - 1;
3748 fprintf (stderr, "state stack now");
3749 while (ssp1 != yyssp)
3750 fprintf (stderr, " %d", *++ssp1);
3751 fprintf (stderr, "\n");
3753 #endif
3755 *++yyvsp = yyval;
3757 #ifdef YYLSP_NEEDED
3758 yylsp++;
3759 if (yylen == 0)
3761 yylsp->first_line = yylloc.first_line;
3762 yylsp->first_column = yylloc.first_column;
3763 yylsp->last_line = (yylsp-1)->last_line;
3764 yylsp->last_column = (yylsp-1)->last_column;
3765 yylsp->text = 0;
3767 else
3769 yylsp->last_line = (yylsp+yylen-1)->last_line;
3770 yylsp->last_column = (yylsp+yylen-1)->last_column;
3772 #endif
3774 /* Now "shift" the result of the reduction.
3775 Determine what state that goes to,
3776 based on the state we popped back to
3777 and the rule number reduced by. */
3779 yyn = yyr1[yyn];
3781 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3782 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3783 yystate = yytable[yystate];
3784 else
3785 yystate = yydefgoto[yyn - YYNTBASE];
3787 goto yynewstate;
3789 yyerrlab: /* here on detecting error */
3791 if (! yyerrstatus)
3792 /* If not already recovering from an error, report this error. */
3794 ++yynerrs;
3796 #ifdef YYERROR_VERBOSE
3797 yyn = yypact[yystate];
3799 if (yyn > YYFLAG && yyn < YYLAST)
3801 int size = 0;
3802 char *msg;
3803 int x, count;
3805 count = 0;
3806 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3807 for (x = (yyn < 0 ? -yyn : 0);
3808 x < (sizeof(yytname) / sizeof(char *)); x++)
3809 if (yycheck[x + yyn] == x)
3810 size += strlen(yytname[x]) + 15, count++;
3811 msg = (char *) malloc(size + 15);
3812 if (msg != 0)
3814 strcpy(msg, "parse error");
3816 if (count < 5)
3818 count = 0;
3819 for (x = (yyn < 0 ? -yyn : 0);
3820 x < (sizeof(yytname) / sizeof(char *)); x++)
3821 if (yycheck[x + yyn] == x)
3823 strcat(msg, count == 0 ? ", expecting `" : " or `");
3824 strcat(msg, yytname[x]);
3825 strcat(msg, "'");
3826 count++;
3829 yyerror(msg);
3830 free(msg);
3832 else
3833 yyerror ("parse error; also virtual memory exceeded");
3835 else
3836 #endif /* YYERROR_VERBOSE */
3837 yyerror("parse error");
3840 goto yyerrlab1;
3841 yyerrlab1: /* here on error raised explicitly by an action */
3843 if (yyerrstatus == 3)
3845 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3847 /* return failure if at end of input */
3848 if (yychar == YYEOF)
3849 YYABORT;
3851 #if YYDEBUG != 0
3852 if (yydebug)
3853 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3854 #endif
3856 yychar = YYEMPTY;
3859 /* Else will try to reuse lookahead token
3860 after shifting the error token. */
3862 yyerrstatus = 3; /* Each real token shifted decrements this */
3864 goto yyerrhandle;
3866 yyerrdefault: /* current state does not do anything special for the error token. */
3868 #if 0
3869 /* This is wrong; only states that explicitly want error tokens
3870 should shift them. */
3871 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3872 if (yyn) goto yydefault;
3873 #endif
3875 yyerrpop: /* pop the current state because it cannot handle the error token */
3877 if (yyssp == yyss) YYABORT;
3878 yyvsp--;
3879 yystate = *--yyssp;
3880 #ifdef YYLSP_NEEDED
3881 yylsp--;
3882 #endif
3884 #if YYDEBUG != 0
3885 if (yydebug)
3887 short *ssp1 = yyss - 1;
3888 fprintf (stderr, "Error: state stack now");
3889 while (ssp1 != yyssp)
3890 fprintf (stderr, " %d", *++ssp1);
3891 fprintf (stderr, "\n");
3893 #endif
3895 yyerrhandle:
3897 yyn = yypact[yystate];
3898 if (yyn == YYFLAG)
3899 goto yyerrdefault;
3901 yyn += YYTERROR;
3902 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3903 goto yyerrdefault;
3905 yyn = yytable[yyn];
3906 if (yyn < 0)
3908 if (yyn == YYFLAG)
3909 goto yyerrpop;
3910 yyn = -yyn;
3911 goto yyreduce;
3913 else if (yyn == 0)
3914 goto yyerrpop;
3916 if (yyn == YYFINAL)
3917 YYACCEPT;
3919 #if YYDEBUG != 0
3920 if (yydebug)
3921 fprintf(stderr, "Shifting error token, ");
3922 #endif
3924 *++yyvsp = yylval;
3925 #ifdef YYLSP_NEEDED
3926 *++yylsp = yylloc;
3927 #endif
3929 yystate = yyn;
3930 goto yynewstate;
3932 #line 2236 "c-parse.y"