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