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