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