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