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