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