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