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