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