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