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