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