Import gcc-2.8.1.tar.bz2
[official-gcc.git] / gcc / c-parse.c
blob28c8cb0af77cf4c931f4324766f98bc8e426cb7a
2 /* A Bison parser, made from c-parse.y
3 by Bison version A2.5 (Andrew Consortium)
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
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/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., 675 Mass Ave, Cambridge, MA 02139, 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(FROM,TO,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 (from, to, count)
1336 char *from;
1337 char *to;
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 *from, char *to, 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 192 "/usr/share/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 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1376 #else
1377 #define YYPARSE_PARAM
1378 #define YYPARSE_PARAM_DECL
1379 #endif
1382 yyparse(YYPARSE_PARAM)
1383 YYPARSE_PARAM_DECL
1385 register int yystate;
1386 register int yyn;
1387 register short *yyssp;
1388 register YYSTYPE *yyvsp;
1389 int yyerrstatus; /* number of tokens to shift before error messages enabled */
1390 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
1392 short yyssa[YYINITDEPTH]; /* the state stack */
1393 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
1395 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
1396 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
1398 #ifdef YYLSP_NEEDED
1399 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1400 YYLTYPE *yyls = yylsa;
1401 YYLTYPE *yylsp;
1403 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1404 #else
1405 #define YYPOPSTACK (yyvsp--, yyssp--)
1406 #endif
1408 int yystacksize = YYINITDEPTH;
1410 #ifdef YYPURE
1411 int yychar;
1412 YYSTYPE yylval;
1413 int yynerrs;
1414 #ifdef YYLSP_NEEDED
1415 YYLTYPE yylloc;
1416 #endif
1417 #endif
1419 YYSTYPE yyval; /* the variable used to return */
1420 /* semantic values from the action */
1421 /* routines */
1423 int yylen;
1425 #if YYDEBUG != 0
1426 if (yydebug)
1427 fprintf(stderr, "Starting parse\n");
1428 #endif
1430 yystate = 0;
1431 yyerrstatus = 0;
1432 yynerrs = 0;
1433 yychar = YYEMPTY; /* Cause a token to be read. */
1435 /* Initialize stack pointers.
1436 Waste one element of value and location stack
1437 so that they stay on the same level as the state stack.
1438 The wasted elements are never initialized. */
1440 yyssp = yyss - 1;
1441 yyvsp = yyvs;
1442 #ifdef YYLSP_NEEDED
1443 yylsp = yyls;
1444 #endif
1446 /* Push a new state, which is found in yystate . */
1447 /* In all cases, when you get here, the value and location stacks
1448 have just been pushed. so pushing a state here evens the stacks. */
1449 yynewstate:
1451 *++yyssp = yystate;
1453 if (yyssp >= yyss + yystacksize - 1)
1455 /* Give user a chance to reallocate the stack */
1456 /* Use copies of these so that the &'s don't force the real ones into memory. */
1457 YYSTYPE *yyvs1 = yyvs;
1458 short *yyss1 = yyss;
1459 #ifdef YYLSP_NEEDED
1460 YYLTYPE *yyls1 = yyls;
1461 #endif
1463 /* Get the current used size of the three stacks, in elements. */
1464 int size = yyssp - yyss + 1;
1466 #ifdef yyoverflow
1467 /* Each stack pointer address is followed by the size of
1468 the data in use in that stack, in bytes. */
1469 #ifdef YYLSP_NEEDED
1470 /* This used to be a conditional around just the two extra args,
1471 but that might be undefined if yyoverflow is a macro. */
1472 yyoverflow("parser stack overflow",
1473 &yyss1, size * sizeof (*yyssp),
1474 &yyvs1, size * sizeof (*yyvsp),
1475 &yyls1, size * sizeof (*yylsp),
1476 &yystacksize);
1477 #else
1478 yyoverflow("parser stack overflow",
1479 &yyss1, size * sizeof (*yyssp),
1480 &yyvs1, size * sizeof (*yyvsp),
1481 &yystacksize);
1482 #endif
1484 yyss = yyss1; yyvs = yyvs1;
1485 #ifdef YYLSP_NEEDED
1486 yyls = yyls1;
1487 #endif
1488 #else /* no yyoverflow */
1489 /* Extend the stack our own way. */
1490 if (yystacksize >= YYMAXDEPTH)
1492 yyerror("parser stack overflow");
1493 return 2;
1495 yystacksize *= 2;
1496 if (yystacksize > YYMAXDEPTH)
1497 yystacksize = YYMAXDEPTH;
1498 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1499 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1500 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1501 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1502 #ifdef YYLSP_NEEDED
1503 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1504 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1505 #endif
1506 #endif /* no yyoverflow */
1508 yyssp = yyss + size - 1;
1509 yyvsp = yyvs + size - 1;
1510 #ifdef YYLSP_NEEDED
1511 yylsp = yyls + size - 1;
1512 #endif
1514 #if YYDEBUG != 0
1515 if (yydebug)
1516 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1517 #endif
1519 if (yyssp >= yyss + yystacksize - 1)
1520 YYABORT;
1523 #if YYDEBUG != 0
1524 if (yydebug)
1525 fprintf(stderr, "Entering state %d\n", yystate);
1526 #endif
1528 goto yybackup;
1529 yybackup:
1531 /* Do appropriate processing given the current state. */
1532 /* Read a lookahead token if we need one and don't already have one. */
1533 /* yyresume: */
1535 /* First try to decide what to do without reference to lookahead token. */
1537 yyn = yypact[yystate];
1538 if (yyn == YYFLAG)
1539 goto yydefault;
1541 /* Not known => get a lookahead token if don't already have one. */
1543 /* yychar is either YYEMPTY or YYEOF
1544 or a valid token in external form. */
1546 if (yychar == YYEMPTY)
1548 #if YYDEBUG != 0
1549 if (yydebug)
1550 fprintf(stderr, "Reading a token: ");
1551 #endif
1552 yychar = YYLEX;
1555 /* Convert token to internal form (in yychar1) for indexing tables with */
1557 if (yychar <= 0) /* This means end of input. */
1559 yychar1 = 0;
1560 yychar = YYEOF; /* Don't call YYLEX any more */
1562 #if YYDEBUG != 0
1563 if (yydebug)
1564 fprintf(stderr, "Now at end of input.\n");
1565 #endif
1567 else
1569 yychar1 = YYTRANSLATE(yychar);
1571 #if YYDEBUG != 0
1572 if (yydebug)
1574 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1575 /* Give the individual parser a way to print the precise meaning
1576 of a token, for further debugging info. */
1577 #ifdef YYPRINT
1578 YYPRINT (stderr, yychar, yylval);
1579 #endif
1580 fprintf (stderr, ")\n");
1582 #endif
1585 yyn += yychar1;
1586 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1587 goto yydefault;
1589 yyn = yytable[yyn];
1591 /* yyn is what to do for this token type in this state.
1592 Negative => reduce, -yyn is rule number.
1593 Positive => shift, yyn is new state.
1594 New state is final state => don't bother to shift,
1595 just return success.
1596 0, or most negative number => error. */
1598 if (yyn < 0)
1600 if (yyn == YYFLAG)
1601 goto yyerrlab;
1602 yyn = -yyn;
1603 goto yyreduce;
1605 else if (yyn == 0)
1606 goto yyerrlab;
1608 if (yyn == YYFINAL)
1609 YYACCEPT;
1611 /* Shift the lookahead token. */
1613 #if YYDEBUG != 0
1614 if (yydebug)
1615 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1616 #endif
1618 /* Discard the token being shifted unless it is eof. */
1619 if (yychar != YYEOF)
1620 yychar = YYEMPTY;
1622 *++yyvsp = yylval;
1623 #ifdef YYLSP_NEEDED
1624 *++yylsp = yylloc;
1625 #endif
1627 /* count tokens shifted since error; after three, turn off error status. */
1628 if (yyerrstatus) yyerrstatus--;
1630 yystate = yyn;
1631 goto yynewstate;
1633 /* Do the default action for the current state. */
1634 yydefault:
1636 yyn = yydefact[yystate];
1637 if (yyn == 0)
1638 goto yyerrlab;
1640 /* Do a reduction. yyn is the number of a rule to reduce with. */
1641 yyreduce:
1642 yylen = yyr2[yyn];
1643 if (yylen > 0)
1644 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1646 #if YYDEBUG != 0
1647 if (yydebug)
1649 int i;
1651 fprintf (stderr, "Reducing via rule %d (line %d), ",
1652 yyn, yyrline[yyn]);
1654 /* Print the symbols being reduced, and their result. */
1655 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1656 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1657 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1659 #endif
1662 switch (yyn) {
1664 case 1:
1665 #line 240 "c-parse.y"
1666 { if (pedantic)
1667 pedwarn ("ANSI C forbids an empty source file");
1668 finish_file ();
1670 break;}
1671 case 2:
1672 #line 245 "c-parse.y"
1674 /* In case there were missing closebraces,
1675 get us back to the global binding level. */
1676 while (! global_bindings_p ())
1677 poplevel (0, 0, 0);
1678 finish_file ();
1680 break;}
1681 case 3:
1682 #line 259 "c-parse.y"
1683 {yyval.ttype = NULL_TREE; ;
1684 break;}
1685 case 5:
1686 #line 260 "c-parse.y"
1687 {yyval.ttype = NULL_TREE; ;
1688 break;}
1689 case 9:
1690 #line 267 "c-parse.y"
1691 { STRIP_NOPS (yyvsp[-2].ttype);
1692 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1693 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1694 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1695 assemble_asm (yyvsp[-2].ttype);
1696 else
1697 error ("argument of `asm' is not a constant string"); ;
1698 break;}
1699 case 10:
1700 #line 275 "c-parse.y"
1701 { pedantic = yyvsp[-1].itype; ;
1702 break;}
1703 case 11:
1704 #line 280 "c-parse.y"
1705 { if (pedantic)
1706 error ("ANSI C forbids data definition with no type or storage class");
1707 else if (!flag_traditional)
1708 warning ("data definition has no type or storage class");
1710 current_declspecs = TREE_VALUE (declspec_stack);
1711 prefix_attributes = TREE_PURPOSE (declspec_stack);
1712 declspec_stack = TREE_CHAIN (declspec_stack);
1713 resume_momentary (yyvsp[-2].itype); ;
1714 break;}
1715 case 12:
1716 #line 290 "c-parse.y"
1717 { current_declspecs = TREE_VALUE (declspec_stack);
1718 prefix_attributes = TREE_PURPOSE (declspec_stack);
1719 declspec_stack = TREE_CHAIN (declspec_stack);
1720 resume_momentary (yyvsp[-2].itype); ;
1721 break;}
1722 case 13:
1723 #line 295 "c-parse.y"
1724 { current_declspecs = TREE_VALUE (declspec_stack);
1725 prefix_attributes = TREE_PURPOSE (declspec_stack);
1726 declspec_stack = TREE_CHAIN (declspec_stack);
1727 resume_momentary (yyvsp[-2].itype); ;
1728 break;}
1729 case 14:
1730 #line 300 "c-parse.y"
1731 { pedwarn ("empty declaration"); ;
1732 break;}
1733 case 15:
1734 #line 302 "c-parse.y"
1735 { shadow_tag (yyvsp[-1].ttype); ;
1736 break;}
1737 case 18:
1738 #line 306 "c-parse.y"
1739 { if (pedantic)
1740 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1741 break;}
1742 case 19:
1743 #line 312 "c-parse.y"
1744 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1745 prefix_attributes, NULL_TREE, 0))
1746 YYERROR1;
1747 reinit_parse_for_function (); ;
1748 break;}
1749 case 20:
1750 #line 317 "c-parse.y"
1751 { store_parm_decls (); ;
1752 break;}
1753 case 21:
1754 #line 319 "c-parse.y"
1755 { finish_function (0);
1756 current_declspecs = TREE_VALUE (declspec_stack);
1757 prefix_attributes = TREE_PURPOSE (declspec_stack);
1758 declspec_stack = TREE_CHAIN (declspec_stack);
1759 resume_momentary (yyvsp[-5].itype); ;
1760 break;}
1761 case 22:
1762 #line 325 "c-parse.y"
1763 { current_declspecs = TREE_VALUE (declspec_stack);
1764 prefix_attributes = TREE_PURPOSE (declspec_stack);
1765 declspec_stack = TREE_CHAIN (declspec_stack);
1766 resume_momentary (yyvsp[-2].itype); ;
1767 break;}
1768 case 23:
1769 #line 330 "c-parse.y"
1770 { if (! start_function (current_declspecs, yyvsp[0].ttype,
1771 prefix_attributes, NULL_TREE, 0))
1772 YYERROR1;
1773 reinit_parse_for_function (); ;
1774 break;}
1775 case 24:
1776 #line 335 "c-parse.y"
1777 { store_parm_decls (); ;
1778 break;}
1779 case 25:
1780 #line 337 "c-parse.y"
1781 { finish_function (0);
1782 current_declspecs = TREE_VALUE (declspec_stack);
1783 prefix_attributes = TREE_PURPOSE (declspec_stack);
1784 declspec_stack = TREE_CHAIN (declspec_stack);
1785 resume_momentary (yyvsp[-5].itype); ;
1786 break;}
1787 case 26:
1788 #line 343 "c-parse.y"
1789 { current_declspecs = TREE_VALUE (declspec_stack);
1790 prefix_attributes = TREE_PURPOSE (declspec_stack);
1791 declspec_stack = TREE_CHAIN (declspec_stack);
1792 resume_momentary (yyvsp[-2].itype); ;
1793 break;}
1794 case 27:
1795 #line 348 "c-parse.y"
1796 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
1797 prefix_attributes, NULL_TREE, 0))
1798 YYERROR1;
1799 reinit_parse_for_function (); ;
1800 break;}
1801 case 28:
1802 #line 353 "c-parse.y"
1803 { store_parm_decls (); ;
1804 break;}
1805 case 29:
1806 #line 355 "c-parse.y"
1807 { finish_function (0);
1808 current_declspecs = TREE_VALUE (declspec_stack);
1809 prefix_attributes = TREE_PURPOSE (declspec_stack);
1810 declspec_stack = TREE_CHAIN (declspec_stack);
1811 resume_momentary (yyvsp[-5].itype); ;
1812 break;}
1813 case 30:
1814 #line 361 "c-parse.y"
1815 { current_declspecs = TREE_VALUE (declspec_stack);
1816 prefix_attributes = TREE_PURPOSE (declspec_stack);
1817 declspec_stack = TREE_CHAIN (declspec_stack);
1818 resume_momentary (yyvsp[-2].itype); ;
1819 break;}
1820 case 33:
1821 #line 373 "c-parse.y"
1822 { yyval.code = ADDR_EXPR; ;
1823 break;}
1824 case 34:
1825 #line 375 "c-parse.y"
1826 { yyval.code = NEGATE_EXPR; ;
1827 break;}
1828 case 35:
1829 #line 377 "c-parse.y"
1830 { yyval.code = CONVERT_EXPR; ;
1831 break;}
1832 case 36:
1833 #line 379 "c-parse.y"
1834 { yyval.code = PREINCREMENT_EXPR; ;
1835 break;}
1836 case 37:
1837 #line 381 "c-parse.y"
1838 { yyval.code = PREDECREMENT_EXPR; ;
1839 break;}
1840 case 38:
1841 #line 383 "c-parse.y"
1842 { yyval.code = BIT_NOT_EXPR; ;
1843 break;}
1844 case 39:
1845 #line 385 "c-parse.y"
1846 { yyval.code = TRUTH_NOT_EXPR; ;
1847 break;}
1848 case 40:
1849 #line 389 "c-parse.y"
1850 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1851 break;}
1852 case 41:
1853 #line 394 "c-parse.y"
1854 { yyval.ttype = NULL_TREE; ;
1855 break;}
1856 case 43:
1857 #line 400 "c-parse.y"
1858 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1859 break;}
1860 case 44:
1861 #line 402 "c-parse.y"
1862 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1863 break;}
1864 case 46:
1865 #line 408 "c-parse.y"
1866 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1867 break;}
1868 case 47:
1869 #line 411 "c-parse.y"
1870 { yyval.ttype = yyvsp[0].ttype;
1871 pedantic = yyvsp[-1].itype; ;
1872 break;}
1873 case 48:
1874 #line 414 "c-parse.y"
1875 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1876 overflow_warning (yyval.ttype); ;
1877 break;}
1878 case 49:
1879 #line 418 "c-parse.y"
1880 { tree label = lookup_label (yyvsp[0].ttype);
1881 if (pedantic)
1882 pedwarn ("ANSI C forbids `&&'");
1883 if (label == 0)
1884 yyval.ttype = null_pointer_node;
1885 else
1887 TREE_USED (label) = 1;
1888 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1889 TREE_CONSTANT (yyval.ttype) = 1;
1892 break;}
1893 case 50:
1894 #line 446 "c-parse.y"
1895 { skip_evaluation--;
1896 if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1897 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1898 error ("`sizeof' applied to a bit-field");
1899 yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1900 break;}
1901 case 51:
1902 #line 452 "c-parse.y"
1903 { skip_evaluation--;
1904 yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1905 break;}
1906 case 52:
1907 #line 455 "c-parse.y"
1908 { skip_evaluation--;
1909 yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1910 break;}
1911 case 53:
1912 #line 458 "c-parse.y"
1913 { skip_evaluation--;
1914 yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1915 break;}
1916 case 54:
1917 #line 461 "c-parse.y"
1918 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1919 break;}
1920 case 55:
1921 #line 463 "c-parse.y"
1922 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1923 break;}
1924 case 56:
1925 #line 467 "c-parse.y"
1926 { skip_evaluation++; ;
1927 break;}
1928 case 57:
1929 #line 471 "c-parse.y"
1930 { skip_evaluation++; ;
1931 break;}
1932 case 59:
1933 #line 477 "c-parse.y"
1934 { tree type = groktypename (yyvsp[-2].ttype);
1935 yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1936 break;}
1937 case 60:
1938 #line 480 "c-parse.y"
1939 { start_init (NULL_TREE, NULL, 0);
1940 yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1941 really_start_incremental_init (yyvsp[-2].ttype); ;
1942 break;}
1943 case 61:
1944 #line 484 "c-parse.y"
1945 { char *name;
1946 tree result = pop_init_level (0);
1947 tree type = yyvsp[-5].ttype;
1948 finish_init ();
1950 if (pedantic)
1951 pedwarn ("ANSI C forbids constructor expressions");
1952 if (TYPE_NAME (type) != 0)
1954 if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1955 name = IDENTIFIER_POINTER (TYPE_NAME (type));
1956 else
1957 name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1959 else
1960 name = "";
1961 yyval.ttype = result;
1962 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1964 int failure = complete_array_type (type, yyval.ttype, 1);
1965 if (failure)
1966 abort ();
1969 break;}
1970 case 63:
1971 #line 513 "c-parse.y"
1972 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1973 break;}
1974 case 64:
1975 #line 515 "c-parse.y"
1976 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1977 break;}
1978 case 65:
1979 #line 517 "c-parse.y"
1980 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1981 break;}
1982 case 66:
1983 #line 519 "c-parse.y"
1984 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1985 break;}
1986 case 67:
1987 #line 521 "c-parse.y"
1988 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1989 break;}
1990 case 68:
1991 #line 523 "c-parse.y"
1992 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1993 break;}
1994 case 69:
1995 #line 525 "c-parse.y"
1996 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1997 break;}
1998 case 70:
1999 #line 527 "c-parse.y"
2000 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2001 break;}
2002 case 71:
2003 #line 529 "c-parse.y"
2004 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2005 break;}
2006 case 72:
2007 #line 531 "c-parse.y"
2008 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2009 break;}
2010 case 73:
2011 #line 533 "c-parse.y"
2012 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2013 break;}
2014 case 74:
2015 #line 535 "c-parse.y"
2016 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2017 break;}
2018 case 75:
2019 #line 537 "c-parse.y"
2020 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2021 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2022 break;}
2023 case 76:
2024 #line 540 "c-parse.y"
2025 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2026 yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2027 break;}
2028 case 77:
2029 #line 543 "c-parse.y"
2030 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2031 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2032 break;}
2033 case 78:
2034 #line 546 "c-parse.y"
2035 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2036 yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2037 break;}
2038 case 79:
2039 #line 549 "c-parse.y"
2040 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2041 skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2042 break;}
2043 case 80:
2044 #line 552 "c-parse.y"
2045 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2046 - (yyvsp[-4].ttype == boolean_false_node)); ;
2047 break;}
2048 case 81:
2049 #line 555 "c-parse.y"
2050 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2051 yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2052 break;}
2053 case 82:
2054 #line 558 "c-parse.y"
2055 { if (pedantic)
2056 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2057 /* Make sure first operand is calculated only once. */
2058 yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2059 yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2060 skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2061 break;}
2062 case 83:
2063 #line 565 "c-parse.y"
2064 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2065 yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2066 break;}
2067 case 84:
2068 #line 568 "c-parse.y"
2069 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2070 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
2071 break;}
2072 case 85:
2073 #line 571 "c-parse.y"
2074 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2075 /* This inhibits warnings in truthvalue_conversion. */
2076 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
2077 break;}
2078 case 86:
2079 #line 578 "c-parse.y"
2081 yyval.ttype = lastiddecl;
2082 if (!yyval.ttype || yyval.ttype == error_mark_node)
2084 if (yychar == YYEMPTY)
2085 yychar = YYLEX;
2086 if (yychar == '(')
2089 /* Ordinary implicit function declaration. */
2090 yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2091 assemble_external (yyval.ttype);
2092 TREE_USED (yyval.ttype) = 1;
2095 else if (current_function_decl == 0)
2097 error ("`%s' undeclared here (not in a function)",
2098 IDENTIFIER_POINTER (yyvsp[0].ttype));
2099 yyval.ttype = error_mark_node;
2101 else
2104 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2105 || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2107 error ("`%s' undeclared (first use in this function)",
2108 IDENTIFIER_POINTER (yyvsp[0].ttype));
2110 if (! undeclared_variable_notice)
2112 error ("(Each undeclared identifier is reported only once");
2113 error ("for each function it appears in.)");
2114 undeclared_variable_notice = 1;
2117 yyval.ttype = error_mark_node;
2118 /* Prevent repeated error messages. */
2119 IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2120 IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2124 else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2125 yyval.ttype = error_mark_node;
2126 else if (C_DECL_ANTICIPATED (yyval.ttype))
2128 /* The first time we see a build-in function used,
2129 if it has not been declared. */
2130 C_DECL_ANTICIPATED (yyval.ttype) = 0;
2131 if (yychar == YYEMPTY)
2132 yychar = YYLEX;
2133 if (yychar == '(')
2135 /* Omit the implicit declaration we
2136 would ordinarily do, so we don't lose
2137 the actual built in type.
2138 But print a diagnostic for the mismatch. */
2139 if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2140 error ("`%s' implicitly declared as function",
2141 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2142 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2143 != TYPE_MODE (integer_type_node))
2144 && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2145 != void_type_node))
2146 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2147 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2148 /* If it really returns void, change that to int. */
2149 if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2150 TREE_TYPE (yyval.ttype)
2151 = build_function_type (integer_type_node,
2152 TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2154 else
2155 pedwarn ("built-in function `%s' used without declaration",
2156 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2158 /* Do what we would ordinarily do when a fn is used. */
2159 assemble_external (yyval.ttype);
2160 TREE_USED (yyval.ttype) = 1;
2162 else
2164 assemble_external (yyval.ttype);
2165 TREE_USED (yyval.ttype) = 1;
2168 if (TREE_CODE (yyval.ttype) == CONST_DECL)
2170 yyval.ttype = DECL_INITIAL (yyval.ttype);
2171 /* This is to prevent an enum whose value is 0
2172 from being considered a null pointer constant. */
2173 yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2174 TREE_CONSTANT (yyval.ttype) = 1;
2177 break;}
2178 case 88:
2179 #line 677 "c-parse.y"
2180 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2181 break;}
2182 case 89:
2183 #line 679 "c-parse.y"
2184 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2185 if (class == 'e' || class == '1'
2186 || class == '2' || class == '<')
2187 C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2188 yyval.ttype = yyvsp[-1].ttype; ;
2189 break;}
2190 case 90:
2191 #line 685 "c-parse.y"
2192 { yyval.ttype = error_mark_node; ;
2193 break;}
2194 case 91:
2195 #line 687 "c-parse.y"
2196 { if (current_function_decl == 0)
2198 error ("braced-group within expression allowed only inside a function");
2199 YYERROR;
2201 /* We must force a BLOCK for this level
2202 so that, if it is not expanded later,
2203 there is a way to turn off the entire subtree of blocks
2204 that are contained in it. */
2205 keep_next_level ();
2206 push_iterator_stack ();
2207 push_label_level ();
2208 yyval.ttype = expand_start_stmt_expr (); ;
2209 break;}
2210 case 92:
2211 #line 701 "c-parse.y"
2212 { tree rtl_exp;
2213 if (pedantic)
2214 pedwarn ("ANSI C forbids braced-groups within expressions");
2215 pop_iterator_stack ();
2216 pop_label_level ();
2217 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2218 /* The statements have side effects, so the group does. */
2219 TREE_SIDE_EFFECTS (rtl_exp) = 1;
2221 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2223 /* Make a BIND_EXPR for the BLOCK already made. */
2224 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2225 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2226 /* Remove the block from the tree at this point.
2227 It gets put back at the proper place
2228 when the BIND_EXPR is expanded. */
2229 delete_block (yyvsp[-1].ttype);
2231 else
2232 yyval.ttype = yyvsp[-1].ttype;
2234 break;}
2235 case 93:
2236 #line 724 "c-parse.y"
2237 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2238 break;}
2239 case 94:
2240 #line 726 "c-parse.y"
2241 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2242 break;}
2243 case 95:
2244 #line 728 "c-parse.y"
2246 yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2248 break;}
2249 case 96:
2250 #line 732 "c-parse.y"
2252 tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2254 yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2256 break;}
2257 case 97:
2258 #line 738 "c-parse.y"
2259 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2260 break;}
2261 case 98:
2262 #line 740 "c-parse.y"
2263 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2264 break;}
2265 case 100:
2266 #line 747 "c-parse.y"
2267 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2268 break;}
2269 case 103:
2270 #line 756 "c-parse.y"
2271 { c_mark_varargs ();
2272 if (pedantic)
2273 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2274 break;}
2275 case 104:
2276 #line 766 "c-parse.y"
2278 break;}
2279 case 109:
2280 #line 782 "c-parse.y"
2281 { current_declspecs = TREE_VALUE (declspec_stack);
2282 prefix_attributes = TREE_PURPOSE (declspec_stack);
2283 declspec_stack = TREE_CHAIN (declspec_stack);
2284 resume_momentary (yyvsp[-2].itype); ;
2285 break;}
2286 case 110:
2287 #line 787 "c-parse.y"
2288 { current_declspecs = TREE_VALUE (declspec_stack);
2289 prefix_attributes = TREE_PURPOSE (declspec_stack);
2290 declspec_stack = TREE_CHAIN (declspec_stack);
2291 resume_momentary (yyvsp[-2].itype); ;
2292 break;}
2293 case 111:
2294 #line 792 "c-parse.y"
2295 { shadow_tag_warned (yyvsp[-1].ttype, 1);
2296 pedwarn ("empty declaration"); ;
2297 break;}
2298 case 112:
2299 #line 795 "c-parse.y"
2300 { pedwarn ("empty declaration"); ;
2301 break;}
2302 case 113:
2303 #line 804 "c-parse.y"
2305 break;}
2306 case 118:
2307 #line 819 "c-parse.y"
2308 { yyval.itype = suspend_momentary ();
2309 pending_xref_error ();
2310 declspec_stack = tree_cons (prefix_attributes,
2311 current_declspecs,
2312 declspec_stack);
2313 split_specs_attrs (yyvsp[0].ttype,
2314 &current_declspecs, &prefix_attributes); ;
2315 break;}
2316 case 119:
2317 #line 830 "c-parse.y"
2318 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2319 break;}
2320 case 120:
2321 #line 835 "c-parse.y"
2322 { current_declspecs = TREE_VALUE (declspec_stack);
2323 prefix_attributes = TREE_PURPOSE (declspec_stack);
2324 declspec_stack = TREE_CHAIN (declspec_stack);
2325 resume_momentary (yyvsp[-2].itype); ;
2326 break;}
2327 case 121:
2328 #line 840 "c-parse.y"
2329 { current_declspecs = TREE_VALUE (declspec_stack);
2330 prefix_attributes = TREE_PURPOSE (declspec_stack);
2331 declspec_stack = TREE_CHAIN (declspec_stack);
2332 resume_momentary (yyvsp[-2].itype); ;
2333 break;}
2334 case 122:
2335 #line 845 "c-parse.y"
2336 { current_declspecs = TREE_VALUE (declspec_stack);
2337 prefix_attributes = TREE_PURPOSE (declspec_stack);
2338 declspec_stack = TREE_CHAIN (declspec_stack);
2339 resume_momentary (yyvsp[-1].itype); ;
2340 break;}
2341 case 123:
2342 #line 850 "c-parse.y"
2343 { current_declspecs = TREE_VALUE (declspec_stack);
2344 prefix_attributes = TREE_PURPOSE (declspec_stack);
2345 declspec_stack = TREE_CHAIN (declspec_stack);
2346 resume_momentary (yyvsp[-1].itype); ;
2347 break;}
2348 case 124:
2349 #line 855 "c-parse.y"
2350 { shadow_tag (yyvsp[-1].ttype); ;
2351 break;}
2352 case 125:
2353 #line 857 "c-parse.y"
2354 { pedwarn ("empty declaration"); ;
2355 break;}
2356 case 126:
2357 #line 859 "c-parse.y"
2358 { pedantic = yyvsp[-1].itype; ;
2359 break;}
2360 case 127:
2361 #line 869 "c-parse.y"
2362 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2363 break;}
2364 case 128:
2365 #line 871 "c-parse.y"
2366 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2367 break;}
2368 case 129:
2369 #line 875 "c-parse.y"
2370 { yyval.ttype = NULL_TREE; ;
2371 break;}
2372 case 130:
2373 #line 877 "c-parse.y"
2374 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2375 break;}
2376 case 131:
2377 #line 879 "c-parse.y"
2378 { if (extra_warnings)
2379 warning ("`%s' is not at beginning of declaration",
2380 IDENTIFIER_POINTER (yyvsp[0].ttype));
2381 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2382 break;}
2383 case 132:
2384 #line 884 "c-parse.y"
2385 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2386 break;}
2387 case 133:
2388 #line 889 "c-parse.y"
2389 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2390 break;}
2391 case 134:
2392 #line 891 "c-parse.y"
2393 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2394 break;}
2395 case 135:
2396 #line 896 "c-parse.y"
2397 { yyval.ttype = NULL_TREE; ;
2398 break;}
2399 case 136:
2400 #line 898 "c-parse.y"
2401 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2402 break;}
2403 case 137:
2404 #line 900 "c-parse.y"
2405 { if (extra_warnings)
2406 warning ("`%s' is not at beginning of declaration",
2407 IDENTIFIER_POINTER (yyvsp[0].ttype));
2408 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2409 break;}
2410 case 138:
2411 #line 913 "c-parse.y"
2412 { yyval.ttype = yyvsp[0].ttype; ;
2413 break;}
2414 case 139:
2415 #line 915 "c-parse.y"
2416 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
2417 break;}
2418 case 140:
2419 #line 917 "c-parse.y"
2420 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
2421 break;}
2422 case 141:
2423 #line 919 "c-parse.y"
2424 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
2425 break;}
2426 case 142:
2427 #line 924 "c-parse.y"
2428 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2429 TREE_STATIC (yyval.ttype) = 1; ;
2430 break;}
2431 case 143:
2432 #line 927 "c-parse.y"
2433 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2434 break;}
2435 case 144:
2436 #line 929 "c-parse.y"
2437 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2438 TREE_STATIC (yyval.ttype) = 1; ;
2439 break;}
2440 case 145:
2441 #line 932 "c-parse.y"
2442 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2443 warning ("`%s' is not at beginning of declaration",
2444 IDENTIFIER_POINTER (yyvsp[0].ttype));
2445 yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2446 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2447 break;}
2448 case 146:
2449 #line 946 "c-parse.y"
2450 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2451 break;}
2452 case 147:
2453 #line 948 "c-parse.y"
2454 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2455 break;}
2456 case 148:
2457 #line 952 "c-parse.y"
2458 { yyval.ttype = NULL_TREE; ;
2459 break;}
2460 case 149:
2461 #line 954 "c-parse.y"
2462 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2463 break;}
2464 case 152:
2465 #line 964 "c-parse.y"
2466 { /* For a typedef name, record the meaning, not the name.
2467 In case of `foo foo, bar;'. */
2468 yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2469 break;}
2470 case 153:
2471 #line 968 "c-parse.y"
2472 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2473 break;}
2474 case 154:
2475 #line 970 "c-parse.y"
2476 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2477 break;}
2478 case 162:
2479 #line 992 "c-parse.y"
2480 { yyval.ttype = NULL_TREE; ;
2481 break;}
2482 case 163:
2483 #line 994 "c-parse.y"
2484 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2485 yyval.ttype = yyvsp[-1].ttype;
2487 break;}
2488 case 164:
2489 #line 1001 "c-parse.y"
2490 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2491 yyvsp[-1].ttype, prefix_attributes);
2492 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2493 break;}
2494 case 165:
2495 #line 1006 "c-parse.y"
2496 { finish_init ();
2497 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2498 break;}
2499 case 166:
2500 #line 1009 "c-parse.y"
2501 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2502 yyvsp[0].ttype, prefix_attributes);
2503 finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2505 break;}
2506 case 167:
2507 #line 1017 "c-parse.y"
2508 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2509 yyvsp[-1].ttype, prefix_attributes);
2510 start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2511 break;}
2512 case 168:
2513 #line 1022 "c-parse.y"
2514 { finish_init ();
2515 decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2516 finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2517 break;}
2518 case 169:
2519 #line 1026 "c-parse.y"
2520 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2521 yyvsp[0].ttype, prefix_attributes);
2522 finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2523 break;}
2524 case 170:
2525 #line 1034 "c-parse.y"
2526 { yyval.ttype = NULL_TREE; ;
2527 break;}
2528 case 171:
2529 #line 1036 "c-parse.y"
2530 { yyval.ttype = yyvsp[0].ttype; ;
2531 break;}
2532 case 172:
2533 #line 1041 "c-parse.y"
2534 { yyval.ttype = yyvsp[0].ttype; ;
2535 break;}
2536 case 173:
2537 #line 1043 "c-parse.y"
2538 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2539 break;}
2540 case 174:
2541 #line 1048 "c-parse.y"
2542 { yyval.ttype = yyvsp[-2].ttype; ;
2543 break;}
2544 case 175:
2545 #line 1053 "c-parse.y"
2546 { yyval.ttype = yyvsp[0].ttype; ;
2547 break;}
2548 case 176:
2549 #line 1055 "c-parse.y"
2550 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2551 break;}
2552 case 177:
2553 #line 1060 "c-parse.y"
2554 { yyval.ttype = NULL_TREE; ;
2555 break;}
2556 case 178:
2557 #line 1062 "c-parse.y"
2558 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2559 break;}
2560 case 179:
2561 #line 1064 "c-parse.y"
2562 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2563 break;}
2564 case 180:
2565 #line 1066 "c-parse.y"
2566 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2567 break;}
2568 case 181:
2569 #line 1068 "c-parse.y"
2570 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2571 break;}
2572 case 187:
2573 #line 1086 "c-parse.y"
2574 { really_start_incremental_init (NULL_TREE);
2575 /* Note that the call to clear_momentary
2576 is in process_init_element. */
2577 push_momentary (); ;
2578 break;}
2579 case 188:
2580 #line 1091 "c-parse.y"
2581 { yyval.ttype = pop_init_level (0);
2582 if (yyval.ttype == error_mark_node
2583 && ! (yychar == STRING || yychar == CONSTANT))
2584 pop_momentary ();
2585 else
2586 pop_momentary_nofree (); ;
2587 break;}
2588 case 189:
2589 #line 1099 "c-parse.y"
2590 { yyval.ttype = error_mark_node; ;
2591 break;}
2592 case 190:
2593 #line 1105 "c-parse.y"
2594 { if (pedantic)
2595 pedwarn ("ANSI C forbids empty initializer braces"); ;
2596 break;}
2597 case 194:
2598 #line 1119 "c-parse.y"
2599 { process_init_element (yyvsp[0].ttype); ;
2600 break;}
2601 case 195:
2602 #line 1121 "c-parse.y"
2603 { push_init_level (0); ;
2604 break;}
2605 case 196:
2606 #line 1123 "c-parse.y"
2607 { process_init_element (pop_init_level (0)); ;
2608 break;}
2609 case 198:
2610 #line 1129 "c-parse.y"
2611 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
2612 break;}
2613 case 200:
2614 #line 1132 "c-parse.y"
2615 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
2616 break;}
2617 case 202:
2618 #line 1135 "c-parse.y"
2619 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2620 break;}
2621 case 204:
2622 #line 1138 "c-parse.y"
2623 { set_init_label (yyvsp[-1].ttype); ;
2624 break;}
2625 case 206:
2626 #line 1141 "c-parse.y"
2627 { set_init_label (yyvsp[-1].ttype); ;
2628 break;}
2629 case 208:
2630 #line 1147 "c-parse.y"
2631 { push_c_function_context ();
2632 if (! start_function (current_declspecs, yyvsp[0].ttype,
2633 prefix_attributes, NULL_TREE, 1))
2635 pop_c_function_context ();
2636 YYERROR1;
2638 reinit_parse_for_function (); ;
2639 break;}
2640 case 209:
2641 #line 1156 "c-parse.y"
2642 { store_parm_decls (); ;
2643 break;}
2644 case 210:
2645 #line 1164 "c-parse.y"
2646 { finish_function (1);
2647 pop_c_function_context (); ;
2648 break;}
2649 case 211:
2650 #line 1170 "c-parse.y"
2651 { push_c_function_context ();
2652 if (! start_function (current_declspecs, yyvsp[0].ttype,
2653 prefix_attributes, NULL_TREE, 1))
2655 pop_c_function_context ();
2656 YYERROR1;
2658 reinit_parse_for_function (); ;
2659 break;}
2660 case 212:
2661 #line 1179 "c-parse.y"
2662 { store_parm_decls (); ;
2663 break;}
2664 case 213:
2665 #line 1187 "c-parse.y"
2666 { finish_function (1);
2667 pop_c_function_context (); ;
2668 break;}
2669 case 216:
2670 #line 1203 "c-parse.y"
2671 { yyval.ttype = yyvsp[-1].ttype; ;
2672 break;}
2673 case 217:
2674 #line 1205 "c-parse.y"
2675 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2676 break;}
2677 case 218:
2678 #line 1210 "c-parse.y"
2679 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2680 break;}
2681 case 219:
2682 #line 1212 "c-parse.y"
2683 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2684 break;}
2685 case 220:
2686 #line 1214 "c-parse.y"
2687 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2688 break;}
2689 case 221:
2690 #line 1221 "c-parse.y"
2691 { yyval.ttype = yyvsp[0].ttype; ;
2692 break;}
2693 case 223:
2694 #line 1232 "c-parse.y"
2695 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2696 break;}
2697 case 224:
2698 #line 1237 "c-parse.y"
2699 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2700 break;}
2701 case 225:
2702 #line 1239 "c-parse.y"
2703 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2704 break;}
2705 case 226:
2706 #line 1241 "c-parse.y"
2707 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2708 break;}
2709 case 227:
2710 #line 1248 "c-parse.y"
2711 { yyval.ttype = yyvsp[0].ttype; ;
2712 break;}
2713 case 229:
2714 #line 1257 "c-parse.y"
2715 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2716 break;}
2717 case 230:
2718 #line 1262 "c-parse.y"
2719 { yyval.ttype = yyvsp[-1].ttype; ;
2720 break;}
2721 case 231:
2722 #line 1264 "c-parse.y"
2723 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2724 break;}
2725 case 232:
2726 #line 1266 "c-parse.y"
2727 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2728 break;}
2729 case 233:
2730 #line 1268 "c-parse.y"
2731 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2732 break;}
2733 case 234:
2734 #line 1275 "c-parse.y"
2735 { yyval.ttype = yyvsp[0].ttype; ;
2736 break;}
2737 case 236:
2738 #line 1281 "c-parse.y"
2739 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2740 /* Start scope of tag before parsing components. */
2742 break;}
2743 case 237:
2744 #line 1285 "c-parse.y"
2745 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2746 break;}
2747 case 238:
2748 #line 1287 "c-parse.y"
2749 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2750 yyvsp[-2].ttype, yyvsp[0].ttype);
2752 break;}
2753 case 239:
2754 #line 1291 "c-parse.y"
2755 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2756 break;}
2757 case 240:
2758 #line 1293 "c-parse.y"
2759 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2760 break;}
2761 case 241:
2762 #line 1295 "c-parse.y"
2763 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2764 break;}
2765 case 242:
2766 #line 1297 "c-parse.y"
2767 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2768 yyvsp[-2].ttype, yyvsp[0].ttype);
2770 break;}
2771 case 243:
2772 #line 1301 "c-parse.y"
2773 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2774 break;}
2775 case 244:
2776 #line 1303 "c-parse.y"
2777 { yyvsp[0].itype = suspend_momentary ();
2778 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2779 break;}
2780 case 245:
2781 #line 1306 "c-parse.y"
2782 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2783 resume_momentary (yyvsp[-5].itype); ;
2784 break;}
2785 case 246:
2786 #line 1309 "c-parse.y"
2787 { yyvsp[0].itype = suspend_momentary ();
2788 yyval.ttype = start_enum (NULL_TREE); ;
2789 break;}
2790 case 247:
2791 #line 1312 "c-parse.y"
2792 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2793 resume_momentary (yyvsp[-5].itype); ;
2794 break;}
2795 case 248:
2796 #line 1315 "c-parse.y"
2797 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2798 break;}
2799 case 252:
2800 #line 1326 "c-parse.y"
2801 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2802 break;}
2803 case 253:
2804 #line 1331 "c-parse.y"
2805 { yyval.ttype = yyvsp[0].ttype; ;
2806 break;}
2807 case 254:
2808 #line 1333 "c-parse.y"
2809 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2810 pedwarn ("no semicolon at end of struct or union"); ;
2811 break;}
2812 case 255:
2813 #line 1338 "c-parse.y"
2814 { yyval.ttype = NULL_TREE; ;
2815 break;}
2816 case 256:
2817 #line 1340 "c-parse.y"
2818 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2819 break;}
2820 case 257:
2821 #line 1342 "c-parse.y"
2822 { if (pedantic)
2823 pedwarn ("extra semicolon in struct or union specified"); ;
2824 break;}
2825 case 258:
2826 #line 1357 "c-parse.y"
2827 { yyval.ttype = yyvsp[0].ttype;
2828 current_declspecs = TREE_VALUE (declspec_stack);
2829 prefix_attributes = TREE_PURPOSE (declspec_stack);
2830 declspec_stack = TREE_CHAIN (declspec_stack);
2831 resume_momentary (yyvsp[-1].itype); ;
2832 break;}
2833 case 259:
2834 #line 1363 "c-parse.y"
2835 { if (pedantic)
2836 pedwarn ("ANSI C forbids member declarations with no members");
2837 shadow_tag(yyvsp[0].ttype);
2838 yyval.ttype = NULL_TREE; ;
2839 break;}
2840 case 260:
2841 #line 1368 "c-parse.y"
2842 { yyval.ttype = yyvsp[0].ttype;
2843 current_declspecs = TREE_VALUE (declspec_stack);
2844 prefix_attributes = TREE_PURPOSE (declspec_stack);
2845 declspec_stack = TREE_CHAIN (declspec_stack);
2846 resume_momentary (yyvsp[-1].itype); ;
2847 break;}
2848 case 261:
2849 #line 1374 "c-parse.y"
2850 { if (pedantic)
2851 pedwarn ("ANSI C forbids member declarations with no members");
2852 shadow_tag(yyvsp[0].ttype);
2853 yyval.ttype = NULL_TREE; ;
2854 break;}
2855 case 262:
2856 #line 1379 "c-parse.y"
2857 { yyval.ttype = NULL_TREE; ;
2858 break;}
2859 case 263:
2860 #line 1381 "c-parse.y"
2861 { yyval.ttype = yyvsp[0].ttype;
2862 pedantic = yyvsp[-1].itype; ;
2863 break;}
2864 case 265:
2865 #line 1388 "c-parse.y"
2866 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2867 break;}
2868 case 266:
2869 #line 1393 "c-parse.y"
2870 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2871 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2872 break;}
2873 case 267:
2874 #line 1397 "c-parse.y"
2875 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2876 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2877 break;}
2878 case 268:
2879 #line 1400 "c-parse.y"
2880 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2881 decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2882 break;}
2883 case 270:
2884 #line 1412 "c-parse.y"
2885 { if (yyvsp[-2].ttype == error_mark_node)
2886 yyval.ttype = yyvsp[-2].ttype;
2887 else
2888 yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2889 break;}
2890 case 271:
2891 #line 1417 "c-parse.y"
2892 { yyval.ttype = error_mark_node; ;
2893 break;}
2894 case 272:
2895 #line 1423 "c-parse.y"
2896 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2897 break;}
2898 case 273:
2899 #line 1425 "c-parse.y"
2900 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2901 break;}
2902 case 274:
2903 #line 1430 "c-parse.y"
2904 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2905 break;}
2906 case 275:
2907 #line 1432 "c-parse.y"
2908 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2909 break;}
2910 case 276:
2911 #line 1437 "c-parse.y"
2912 { yyval.ttype = NULL_TREE; ;
2913 break;}
2914 case 278:
2915 #line 1443 "c-parse.y"
2916 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2917 break;}
2918 case 279:
2919 #line 1445 "c-parse.y"
2920 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2921 break;}
2922 case 280:
2923 #line 1450 "c-parse.y"
2924 { yyval.ttype = NULL_TREE; ;
2925 break;}
2926 case 281:
2927 #line 1452 "c-parse.y"
2928 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2929 break;}
2930 case 282:
2931 #line 1457 "c-parse.y"
2932 { yyval.ttype = yyvsp[-1].ttype; ;
2933 break;}
2934 case 283:
2935 #line 1460 "c-parse.y"
2936 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2937 break;}
2938 case 284:
2939 #line 1462 "c-parse.y"
2940 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2941 break;}
2942 case 285:
2943 #line 1464 "c-parse.y"
2944 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2945 break;}
2946 case 286:
2947 #line 1466 "c-parse.y"
2948 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2949 break;}
2950 case 287:
2951 #line 1468 "c-parse.y"
2952 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2953 break;}
2954 case 288:
2955 #line 1470 "c-parse.y"
2956 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2957 break;}
2958 case 289:
2959 #line 1472 "c-parse.y"
2960 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2961 break;}
2962 case 290:
2963 #line 1474 "c-parse.y"
2964 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2965 break;}
2966 case 291:
2967 #line 1485 "c-parse.y"
2969 if (pedantic && yyvsp[0].ends_in_label)
2970 pedwarn ("ANSI C forbids label at end of compound statement");
2972 break;}
2973 case 293:
2974 #line 1494 "c-parse.y"
2975 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
2976 break;}
2977 case 294:
2978 #line 1496 "c-parse.y"
2979 { yyval.ends_in_label = 0; ;
2980 break;}
2981 case 298:
2982 #line 1508 "c-parse.y"
2983 { emit_line_note (input_filename, lineno);
2984 pushlevel (0);
2985 clear_last_expr ();
2986 push_momentary ();
2987 expand_start_bindings (0);
2989 break;}
2990 case 300:
2991 #line 1521 "c-parse.y"
2992 { if (pedantic)
2993 pedwarn ("ANSI C forbids label declarations"); ;
2994 break;}
2995 case 303:
2996 #line 1532 "c-parse.y"
2997 { tree link;
2998 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3000 tree label = shadow_label (TREE_VALUE (link));
3001 C_DECLARED_LABEL_FLAG (label) = 1;
3002 declare_nonlocal_label (label);
3005 break;}
3006 case 304:
3007 #line 1546 "c-parse.y"
3009 break;}
3010 case 306:
3011 #line 1550 "c-parse.y"
3012 { compstmt_count++; ;
3013 break;}
3014 case 307:
3015 #line 1553 "c-parse.y"
3016 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3017 break;}
3018 case 308:
3019 #line 1555 "c-parse.y"
3020 { emit_line_note (input_filename, lineno);
3021 expand_end_bindings (getdecls (), 1, 0);
3022 yyval.ttype = poplevel (1, 1, 0);
3023 if (yychar == CONSTANT || yychar == STRING)
3024 pop_momentary_nofree ();
3025 else
3026 pop_momentary (); ;
3027 break;}
3028 case 309:
3029 #line 1563 "c-parse.y"
3030 { emit_line_note (input_filename, lineno);
3031 expand_end_bindings (getdecls (), kept_level_p (), 0);
3032 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3033 if (yychar == CONSTANT || yychar == STRING)
3034 pop_momentary_nofree ();
3035 else
3036 pop_momentary (); ;
3037 break;}
3038 case 310:
3039 #line 1571 "c-parse.y"
3040 { emit_line_note (input_filename, lineno);
3041 expand_end_bindings (getdecls (), kept_level_p (), 0);
3042 yyval.ttype = poplevel (kept_level_p (), 0, 0);
3043 if (yychar == CONSTANT || yychar == STRING)
3044 pop_momentary_nofree ();
3045 else
3046 pop_momentary (); ;
3047 break;}
3048 case 313:
3049 #line 1591 "c-parse.y"
3050 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3051 c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0,
3052 compstmt_count);
3053 yyval.itype = stmt_count;
3054 if_stmt_file = yyvsp[-5].filename;
3055 if_stmt_line = yyvsp[-4].lineno;
3056 position_after_white_space (); ;
3057 break;}
3058 case 314:
3059 #line 1605 "c-parse.y"
3060 { stmt_count++;
3061 compstmt_count++;
3062 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3063 /* See comment in `while' alternative, above. */
3064 emit_nop ();
3065 expand_start_loop_continue_elsewhere (1);
3066 position_after_white_space (); ;
3067 break;}
3068 case 315:
3069 #line 1613 "c-parse.y"
3070 { expand_loop_continue_here (); ;
3071 break;}
3072 case 316:
3073 #line 1617 "c-parse.y"
3074 { yyval.filename = input_filename; ;
3075 break;}
3076 case 317:
3077 #line 1621 "c-parse.y"
3078 { yyval.lineno = lineno; ;
3079 break;}
3080 case 318:
3081 #line 1626 "c-parse.y"
3083 break;}
3084 case 319:
3085 #line 1631 "c-parse.y"
3087 break;}
3088 case 320:
3089 #line 1636 "c-parse.y"
3090 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3091 break;}
3092 case 321:
3093 #line 1641 "c-parse.y"
3094 { yyval.ends_in_label = 0; ;
3095 break;}
3096 case 322:
3097 #line 1643 "c-parse.y"
3098 { yyval.ends_in_label = 1; ;
3099 break;}
3100 case 323:
3101 #line 1649 "c-parse.y"
3102 { stmt_count++; ;
3103 break;}
3104 case 325:
3105 #line 1652 "c-parse.y"
3106 { stmt_count++;
3107 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3108 /* It appears that this should not be done--that a non-lvalue array
3109 shouldn't get an error if the value isn't used.
3110 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3111 if it appears as a top-level expression,
3112 but says nothing about non-lvalue arrays. */
3113 #if 0
3114 /* Call default_conversion to get an error
3115 on referring to a register array if pedantic. */
3116 if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3117 || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3118 yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3119 #endif
3120 iterator_expand (yyvsp[-1].ttype);
3121 clear_momentary (); ;
3122 break;}
3123 case 326:
3124 #line 1669 "c-parse.y"
3125 { c_expand_start_else ();
3126 yyvsp[-1].itype = stmt_count;
3127 position_after_white_space (); ;
3128 break;}
3129 case 327:
3130 #line 1673 "c-parse.y"
3131 { c_expand_end_cond ();
3132 if (extra_warnings && stmt_count == yyvsp[-3].itype)
3133 warning ("empty body in an else-statement"); ;
3134 break;}
3135 case 328:
3136 #line 1677 "c-parse.y"
3137 { c_expand_end_cond ();
3138 /* This warning is here instead of in simple_if, because we
3139 do not want a warning if an empty if is followed by an
3140 else statement. Increment stmt_count so we don't
3141 give a second error if this is a nested `if'. */
3142 if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3143 warning_with_file_and_line (if_stmt_file, if_stmt_line,
3144 "empty body in an if-statement"); ;
3145 break;}
3146 case 329:
3147 #line 1689 "c-parse.y"
3148 { c_expand_end_cond (); ;
3149 break;}
3150 case 330:
3151 #line 1691 "c-parse.y"
3152 { stmt_count++;
3153 emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3154 /* The emit_nop used to come before emit_line_note,
3155 but that made the nop seem like part of the preceding line.
3156 And that was confusing when the preceding line was
3157 inside of an if statement and was not really executed.
3158 I think it ought to work to put the nop after the line number.
3159 We will see. --rms, July 15, 1991. */
3160 emit_nop (); ;
3161 break;}
3162 case 331:
3163 #line 1701 "c-parse.y"
3164 { /* Don't start the loop till we have succeeded
3165 in parsing the end test. This is to make sure
3166 that we end every loop we start. */
3167 expand_start_loop (1);
3168 emit_line_note (input_filename, lineno);
3169 expand_exit_loop_if_false (NULL_PTR,
3170 truthvalue_conversion (yyvsp[-1].ttype));
3171 position_after_white_space (); ;
3172 break;}
3173 case 332:
3174 #line 1710 "c-parse.y"
3175 { expand_end_loop (); ;
3176 break;}
3177 case 333:
3178 #line 1713 "c-parse.y"
3179 { emit_line_note (input_filename, lineno);
3180 expand_exit_loop_if_false (NULL_PTR,
3181 truthvalue_conversion (yyvsp[-2].ttype));
3182 expand_end_loop ();
3183 clear_momentary (); ;
3184 break;}
3185 case 334:
3186 #line 1720 "c-parse.y"
3187 { expand_end_loop ();
3188 clear_momentary (); ;
3189 break;}
3190 case 335:
3191 #line 1724 "c-parse.y"
3192 { stmt_count++;
3193 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3194 /* See comment in `while' alternative, above. */
3195 emit_nop ();
3196 if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3197 /* Next step is to call expand_start_loop_continue_elsewhere,
3198 but wait till after we parse the entire for (...).
3199 Otherwise, invalid input might cause us to call that
3200 fn without calling expand_end_loop. */
3202 break;}
3203 case 336:
3204 #line 1736 "c-parse.y"
3205 { yyvsp[0].lineno = lineno;
3206 yyval.filename = input_filename; ;
3207 break;}
3208 case 337:
3209 #line 1739 "c-parse.y"
3211 /* Start the loop. Doing this after parsing
3212 all the expressions ensures we will end the loop. */
3213 expand_start_loop_continue_elsewhere (1);
3214 /* Emit the end-test, with a line number. */
3215 emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3216 if (yyvsp[-4].ttype)
3217 expand_exit_loop_if_false (NULL_PTR,
3218 truthvalue_conversion (yyvsp[-4].ttype));
3219 /* Don't let the tree nodes for $9 be discarded by
3220 clear_momentary during the parsing of the next stmt. */
3221 push_momentary ();
3222 yyvsp[-3].lineno = lineno;
3223 yyvsp[-2].filename = input_filename;
3224 position_after_white_space (); ;
3225 break;}
3226 case 338:
3227 #line 1755 "c-parse.y"
3228 { /* Emit the increment expression, with a line number. */
3229 emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3230 expand_loop_continue_here ();
3231 if (yyvsp[-3].ttype)
3232 c_expand_expr_stmt (yyvsp[-3].ttype);
3233 if (yychar == CONSTANT || yychar == STRING)
3234 pop_momentary_nofree ();
3235 else
3236 pop_momentary ();
3237 expand_end_loop (); ;
3238 break;}
3239 case 339:
3240 #line 1766 "c-parse.y"
3241 { stmt_count++;
3242 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3243 c_expand_start_case (yyvsp[-1].ttype);
3244 /* Don't let the tree nodes for $3 be discarded by
3245 clear_momentary during the parsing of the next stmt. */
3246 push_momentary ();
3247 position_after_white_space (); ;
3248 break;}
3249 case 340:
3250 #line 1774 "c-parse.y"
3251 { expand_end_case (yyvsp[-3].ttype);
3252 if (yychar == CONSTANT || yychar == STRING)
3253 pop_momentary_nofree ();
3254 else
3255 pop_momentary (); ;
3256 break;}
3257 case 341:
3258 #line 1780 "c-parse.y"
3259 { stmt_count++;
3260 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3261 if ( ! expand_exit_something ())
3262 error ("break statement not within loop or switch"); ;
3263 break;}
3264 case 342:
3265 #line 1785 "c-parse.y"
3266 { stmt_count++;
3267 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3268 if (! expand_continue_loop (NULL_PTR))
3269 error ("continue statement not within a loop"); ;
3270 break;}
3271 case 343:
3272 #line 1790 "c-parse.y"
3273 { stmt_count++;
3274 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3275 c_expand_return (NULL_TREE); ;
3276 break;}
3277 case 344:
3278 #line 1794 "c-parse.y"
3279 { stmt_count++;
3280 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3281 c_expand_return (yyvsp[-1].ttype); ;
3282 break;}
3283 case 345:
3284 #line 1798 "c-parse.y"
3285 { stmt_count++;
3286 emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3287 STRIP_NOPS (yyvsp[-2].ttype);
3288 if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3289 && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3290 || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3291 expand_asm (yyvsp[-2].ttype);
3292 else
3293 error ("argument of `asm' is not a constant string"); ;
3294 break;}
3295 case 346:
3296 #line 1809 "c-parse.y"
3297 { stmt_count++;
3298 emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3299 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3300 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3301 input_filename, lineno); ;
3302 break;}
3303 case 347:
3304 #line 1816 "c-parse.y"
3305 { stmt_count++;
3306 emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3307 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3308 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3309 input_filename, lineno); ;
3310 break;}
3311 case 348:
3312 #line 1824 "c-parse.y"
3313 { stmt_count++;
3314 emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3315 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3316 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3317 input_filename, lineno); ;
3318 break;}
3319 case 349:
3320 #line 1830 "c-parse.y"
3321 { tree decl;
3322 stmt_count++;
3323 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3324 decl = lookup_label (yyvsp[-1].ttype);
3325 if (decl != 0)
3327 TREE_USED (decl) = 1;
3328 expand_goto (decl);
3331 break;}
3332 case 350:
3333 #line 1841 "c-parse.y"
3334 { if (pedantic)
3335 pedwarn ("ANSI C forbids `goto *expr;'");
3336 stmt_count++;
3337 emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3338 expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3339 break;}
3340 case 353:
3341 #line 1856 "c-parse.y"
3343 /* The value returned by this action is */
3344 /* 1 if everything is OK */
3345 /* 0 in case of error or already bound iterator */
3347 yyval.itype = 0;
3348 if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3349 error ("invalid `for (ITERATOR)' syntax");
3350 else if (! ITERATOR_P (yyvsp[-1].ttype))
3351 error ("`%s' is not an iterator",
3352 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3353 else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3354 error ("`for (%s)' inside expansion of same iterator",
3355 IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3356 else
3358 yyval.itype = 1;
3359 iterator_for_loop_start (yyvsp[-1].ttype);
3362 break;}
3363 case 354:
3364 #line 1877 "c-parse.y"
3366 if (yyvsp[-1].itype)
3367 iterator_for_loop_end (yyvsp[-3].ttype);
3369 break;}
3370 case 355:
3371 #line 1912 "c-parse.y"
3372 { register tree value = check_case_value (yyvsp[-1].ttype);
3373 register tree label
3374 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3376 stmt_count++;
3378 if (value != error_mark_node)
3380 tree duplicate;
3381 int success = pushcase (value, convert_and_check,
3382 label, &duplicate);
3383 if (success == 1)
3384 error ("case label not within a switch statement");
3385 else if (success == 2)
3387 error ("duplicate case value");
3388 error_with_decl (duplicate, "this is the first entry for that value");
3390 else if (success == 3)
3391 warning ("case value out of range");
3392 else if (success == 5)
3393 error ("case label within scope of cleanup or variable array");
3395 position_after_white_space (); ;
3396 break;}
3397 case 356:
3398 #line 1937 "c-parse.y"
3399 { register tree value1 = check_case_value (yyvsp[-3].ttype);
3400 register tree value2 = check_case_value (yyvsp[-1].ttype);
3401 register tree label
3402 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3404 if (pedantic)
3405 pedwarn ("ANSI C forbids case ranges");
3406 stmt_count++;
3408 if (value1 != error_mark_node && value2 != error_mark_node)
3410 tree duplicate;
3411 int success = pushcase_range (value1, value2,
3412 convert_and_check, label,
3413 &duplicate);
3414 if (success == 1)
3415 error ("case label not within a switch statement");
3416 else if (success == 2)
3418 error ("duplicate case value");
3419 error_with_decl (duplicate, "this is the first entry for that value");
3421 else if (success == 3)
3422 warning ("case value out of range");
3423 else if (success == 4)
3424 warning ("empty case range");
3425 else if (success == 5)
3426 error ("case label within scope of cleanup or variable array");
3428 position_after_white_space (); ;
3429 break;}
3430 case 357:
3431 #line 1968 "c-parse.y"
3433 tree duplicate;
3434 register tree label
3435 = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3436 int success = pushcase (NULL_TREE, 0, label, &duplicate);
3437 stmt_count++;
3438 if (success == 1)
3439 error ("default label not within a switch statement");
3440 else if (success == 2)
3442 error ("multiple default labels in one switch");
3443 error_with_decl (duplicate, "this is the first default label");
3445 position_after_white_space (); ;
3446 break;}
3447 case 358:
3448 #line 1983 "c-parse.y"
3449 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3450 stmt_count++;
3451 emit_nop ();
3452 if (label)
3453 expand_label (label);
3454 position_after_white_space (); ;
3455 break;}
3456 case 359:
3457 #line 1995 "c-parse.y"
3458 { emit_line_note (input_filename, lineno);
3459 yyval.ttype = NULL_TREE; ;
3460 break;}
3461 case 360:
3462 #line 1998 "c-parse.y"
3463 { emit_line_note (input_filename, lineno); ;
3464 break;}
3465 case 361:
3466 #line 2003 "c-parse.y"
3467 { yyval.ttype = NULL_TREE; ;
3468 break;}
3469 case 363:
3470 #line 2010 "c-parse.y"
3471 { yyval.ttype = NULL_TREE; ;
3472 break;}
3473 case 366:
3474 #line 2017 "c-parse.y"
3475 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3476 break;}
3477 case 367:
3478 #line 2022 "c-parse.y"
3479 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3480 break;}
3481 case 368:
3482 #line 2027 "c-parse.y"
3483 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3484 break;}
3485 case 369:
3486 #line 2029 "c-parse.y"
3487 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3488 break;}
3489 case 370:
3490 #line 2035 "c-parse.y"
3491 { pushlevel (0);
3492 clear_parm_order ();
3493 declare_parm_level (0); ;
3494 break;}
3495 case 371:
3496 #line 2039 "c-parse.y"
3497 { yyval.ttype = yyvsp[0].ttype;
3498 parmlist_tags_warning ();
3499 poplevel (0, 0, 0); ;
3500 break;}
3501 case 373:
3502 #line 2047 "c-parse.y"
3503 { tree parm;
3504 if (pedantic)
3505 pedwarn ("ANSI C forbids forward parameter declarations");
3506 /* Mark the forward decls as such. */
3507 for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3508 TREE_ASM_WRITTEN (parm) = 1;
3509 clear_parm_order (); ;
3510 break;}
3511 case 374:
3512 #line 2055 "c-parse.y"
3513 { yyval.ttype = yyvsp[0].ttype; ;
3514 break;}
3515 case 375:
3516 #line 2057 "c-parse.y"
3517 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3518 break;}
3519 case 376:
3520 #line 2063 "c-parse.y"
3521 { yyval.ttype = get_parm_info (0); ;
3522 break;}
3523 case 377:
3524 #line 2065 "c-parse.y"
3525 { yyval.ttype = get_parm_info (0);
3526 /* Gcc used to allow this as an extension. However, it does
3527 not work for all targets, and thus has been disabled.
3528 Also, since func (...) and func () are indistinguishable,
3529 it caused problems with the code in expand_builtin which
3530 tries to verify that BUILT_IN_NEXT_ARG is being used
3531 correctly. */
3532 error ("ANSI C requires a named argument before `...'");
3534 break;}
3535 case 378:
3536 #line 2075 "c-parse.y"
3537 { yyval.ttype = get_parm_info (1); ;
3538 break;}
3539 case 379:
3540 #line 2077 "c-parse.y"
3541 { yyval.ttype = get_parm_info (0); ;
3542 break;}
3543 case 380:
3544 #line 2082 "c-parse.y"
3545 { push_parm_decl (yyvsp[0].ttype); ;
3546 break;}
3547 case 381:
3548 #line 2084 "c-parse.y"
3549 { push_parm_decl (yyvsp[0].ttype); ;
3550 break;}
3551 case 382:
3552 #line 2091 "c-parse.y"
3553 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3554 yyvsp[-1].ttype),
3555 build_tree_list (prefix_attributes,
3556 yyvsp[0].ttype));
3557 current_declspecs = TREE_VALUE (declspec_stack);
3558 prefix_attributes = TREE_PURPOSE (declspec_stack);
3559 declspec_stack = TREE_CHAIN (declspec_stack);
3560 resume_momentary (yyvsp[-2].itype); ;
3561 break;}
3562 case 383:
3563 #line 2100 "c-parse.y"
3564 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3565 yyvsp[-1].ttype),
3566 build_tree_list (prefix_attributes,
3567 yyvsp[0].ttype));
3568 current_declspecs = TREE_VALUE (declspec_stack);
3569 prefix_attributes = TREE_PURPOSE (declspec_stack);
3570 declspec_stack = TREE_CHAIN (declspec_stack);
3571 resume_momentary (yyvsp[-2].itype); ;
3572 break;}
3573 case 384:
3574 #line 2109 "c-parse.y"
3575 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3576 yyvsp[-1].ttype),
3577 build_tree_list (prefix_attributes,
3578 yyvsp[0].ttype));
3579 current_declspecs = TREE_VALUE (declspec_stack);
3580 prefix_attributes = TREE_PURPOSE (declspec_stack);
3581 declspec_stack = TREE_CHAIN (declspec_stack);
3582 resume_momentary (yyvsp[-2].itype); ;
3583 break;}
3584 case 385:
3585 #line 2118 "c-parse.y"
3586 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3587 yyvsp[-1].ttype),
3588 build_tree_list (prefix_attributes,
3589 yyvsp[0].ttype));
3590 current_declspecs = TREE_VALUE (declspec_stack);
3591 prefix_attributes = TREE_PURPOSE (declspec_stack);
3592 declspec_stack = TREE_CHAIN (declspec_stack);
3593 resume_momentary (yyvsp[-2].itype); ;
3594 break;}
3595 case 386:
3596 #line 2128 "c-parse.y"
3597 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3598 yyvsp[-1].ttype),
3599 build_tree_list (prefix_attributes,
3600 yyvsp[0].ttype));
3601 current_declspecs = TREE_VALUE (declspec_stack);
3602 prefix_attributes = TREE_PURPOSE (declspec_stack);
3603 declspec_stack = TREE_CHAIN (declspec_stack);
3604 resume_momentary (yyvsp[-2].itype); ;
3605 break;}
3606 case 387:
3607 #line 2142 "c-parse.y"
3608 { pushlevel (0);
3609 clear_parm_order ();
3610 declare_parm_level (1); ;
3611 break;}
3612 case 388:
3613 #line 2146 "c-parse.y"
3614 { yyval.ttype = yyvsp[0].ttype;
3615 parmlist_tags_warning ();
3616 poplevel (0, 0, 0); ;
3617 break;}
3618 case 390:
3619 #line 2154 "c-parse.y"
3620 { tree t;
3621 for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3622 if (TREE_VALUE (t) == NULL_TREE)
3623 error ("`...' in old-style identifier list");
3624 yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3625 break;}
3626 case 391:
3627 #line 2164 "c-parse.y"
3628 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3629 break;}
3630 case 392:
3631 #line 2166 "c-parse.y"
3632 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3633 break;}
3634 case 393:
3635 #line 2172 "c-parse.y"
3636 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3637 break;}
3638 case 394:
3639 #line 2174 "c-parse.y"
3640 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3641 break;}
3642 case 395:
3643 #line 2179 "c-parse.y"
3644 { yyval.itype = pedantic;
3645 pedantic = 0; ;
3646 break;}
3648 /* the action file gets copied in in place of this dollarsign */
3649 #line 487 "/usr/share/bison.simple"
3651 yyvsp -= yylen;
3652 yyssp -= yylen;
3653 #ifdef YYLSP_NEEDED
3654 yylsp -= yylen;
3655 #endif
3657 #if YYDEBUG != 0
3658 if (yydebug)
3660 short *ssp1 = yyss - 1;
3661 fprintf (stderr, "state stack now");
3662 while (ssp1 != yyssp)
3663 fprintf (stderr, " %d", *++ssp1);
3664 fprintf (stderr, "\n");
3666 #endif
3668 *++yyvsp = yyval;
3670 #ifdef YYLSP_NEEDED
3671 yylsp++;
3672 if (yylen == 0)
3674 yylsp->first_line = yylloc.first_line;
3675 yylsp->first_column = yylloc.first_column;
3676 yylsp->last_line = (yylsp-1)->last_line;
3677 yylsp->last_column = (yylsp-1)->last_column;
3678 yylsp->text = 0;
3680 else
3682 yylsp->last_line = (yylsp+yylen-1)->last_line;
3683 yylsp->last_column = (yylsp+yylen-1)->last_column;
3685 #endif
3687 /* Now "shift" the result of the reduction.
3688 Determine what state that goes to,
3689 based on the state we popped back to
3690 and the rule number reduced by. */
3692 yyn = yyr1[yyn];
3694 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3695 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3696 yystate = yytable[yystate];
3697 else
3698 yystate = yydefgoto[yyn - YYNTBASE];
3700 goto yynewstate;
3702 yyerrlab: /* here on detecting error */
3704 if (! yyerrstatus)
3705 /* If not already recovering from an error, report this error. */
3707 ++yynerrs;
3709 #ifdef YYERROR_VERBOSE
3710 yyn = yypact[yystate];
3712 if (yyn > YYFLAG && yyn < YYLAST)
3714 int size = 0;
3715 char *msg;
3716 int x, count;
3718 count = 0;
3719 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3720 for (x = (yyn < 0 ? -yyn : 0);
3721 x < (sizeof(yytname) / sizeof(char *)); x++)
3722 if (yycheck[x + yyn] == x)
3723 size += strlen(yytname[x]) + 15, count++;
3724 msg = (char *) malloc(size + 15);
3725 if (msg != 0)
3727 strcpy(msg, "parse error");
3729 if (count < 5)
3731 count = 0;
3732 for (x = (yyn < 0 ? -yyn : 0);
3733 x < (sizeof(yytname) / sizeof(char *)); x++)
3734 if (yycheck[x + yyn] == x)
3736 strcat(msg, count == 0 ? ", expecting `" : " or `");
3737 strcat(msg, yytname[x]);
3738 strcat(msg, "'");
3739 count++;
3742 yyerror(msg);
3743 free(msg);
3745 else
3746 yyerror ("parse error; also virtual memory exceeded");
3748 else
3749 #endif /* YYERROR_VERBOSE */
3750 yyerror("parse error");
3753 goto yyerrlab1;
3754 yyerrlab1: /* here on error raised explicitly by an action */
3756 if (yyerrstatus == 3)
3758 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3760 /* return failure if at end of input */
3761 if (yychar == YYEOF)
3762 YYABORT;
3764 #if YYDEBUG != 0
3765 if (yydebug)
3766 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3767 #endif
3769 yychar = YYEMPTY;
3772 /* Else will try to reuse lookahead token
3773 after shifting the error token. */
3775 yyerrstatus = 3; /* Each real token shifted decrements this */
3777 goto yyerrhandle;
3779 yyerrdefault: /* current state does not do anything special for the error token. */
3781 #if 0
3782 /* This is wrong; only states that explicitly want error tokens
3783 should shift them. */
3784 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3785 if (yyn) goto yydefault;
3786 #endif
3788 yyerrpop: /* pop the current state because it cannot handle the error token */
3790 if (yyssp == yyss) YYABORT;
3791 yyvsp--;
3792 yystate = *--yyssp;
3793 #ifdef YYLSP_NEEDED
3794 yylsp--;
3795 #endif
3797 #if YYDEBUG != 0
3798 if (yydebug)
3800 short *ssp1 = yyss - 1;
3801 fprintf (stderr, "Error: state stack now");
3802 while (ssp1 != yyssp)
3803 fprintf (stderr, " %d", *++ssp1);
3804 fprintf (stderr, "\n");
3806 #endif
3808 yyerrhandle:
3810 yyn = yypact[yystate];
3811 if (yyn == YYFLAG)
3812 goto yyerrdefault;
3814 yyn += YYTERROR;
3815 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3816 goto yyerrdefault;
3818 yyn = yytable[yyn];
3819 if (yyn < 0)
3821 if (yyn == YYFLAG)
3822 goto yyerrpop;
3823 yyn = -yyn;
3824 goto yyreduce;
3826 else if (yyn == 0)
3827 goto yyerrpop;
3829 if (yyn == YYFINAL)
3830 YYACCEPT;
3832 #if YYDEBUG != 0
3833 if (yydebug)
3834 fprintf(stderr, "Shifting error token, ");
3835 #endif
3837 *++yyvsp = yylval;
3838 #ifdef YYLSP_NEEDED
3839 *++yylsp = yylloc;
3840 #endif
3842 yystate = yyn;
3843 goto yynewstate;
3845 #line 2183 "c-parse.y"