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