2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.27
6 #define YYBISON 1 /* Identify Bison output. */
32 #define ASM_KEYWORD 281
41 #define END_OF_LINE 290
46 #define ARITHCOMPARE 295
51 #define MINUSMINUS 300
52 #define HYPERUNARY 301
55 #define IMPLEMENTATION 304
65 #define OBJECTNAME 314
68 #define OBJC_STRING 317
70 #line 33 "objc-parse.y"
84 #ifdef MULTIBYTE_CHARS
90 /* Since parsers are distinct for each language, put the language string
92 const char * const language_string
= "GNU Obj-C";
94 /* Like YYERROR but do call yyerror. */
95 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
97 /* Cause the `yydebug' variable to be defined. */
100 #line 65 "objc-parse.y"
101 typedef union {long itype
; tree ttype
; enum tree_code code
;
102 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
103 #line 196 "objc-parse.y"
105 /* Number of statements (loosely speaking) and compound statements
107 static int stmt_count
;
108 static int compstmt_count
;
110 /* Input file and line number of the end of the body of last simple_if;
111 used by the stmt-rule immediately after simple_if returns. */
112 static char *if_stmt_file
;
113 static int if_stmt_line
;
115 /* List of types and structure classes of the current declaration. */
116 static tree current_declspecs
= NULL_TREE
;
117 static tree prefix_attributes
= NULL_TREE
;
119 /* Stack of saved values of current_declspecs and prefix_attributes. */
120 static tree declspec_stack
;
122 /* 1 if we explained undeclared var errors. */
123 static int undeclared_variable_notice
;
125 /* Objective-C specific information */
127 tree objc_interface_context
;
128 tree objc_implementation_context
;
129 tree objc_method_context
;
130 tree objc_ivar_chain
;
131 tree objc_ivar_context
;
132 enum tree_code objc_inherit_code
;
133 int objc_receiver_context
;
134 int objc_public_flag
;
137 /* Tell yyparse how to print a token's value, if yydebug is set. */
139 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
140 extern void yyprint
PROTO ((FILE *, int, YYSTYPE
));
152 #define YYFLAG -32768
155 #define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 314)
157 static const char yytranslate
[] = { 0,
158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161 2, 2, 82, 2, 2, 2, 54, 45, 2, 61,
162 78, 52, 50, 83, 51, 60, 53, 2, 2, 2,
163 2, 2, 2, 2, 2, 2, 2, 40, 79, 2,
164 38, 2, 39, 2, 2, 2, 2, 2, 2, 2,
165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
167 62, 2, 85, 44, 2, 2, 2, 2, 2, 2,
168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
170 2, 2, 84, 43, 80, 81, 2, 2, 2, 2,
171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
184 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
185 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
186 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
187 37, 41, 42, 46, 47, 48, 49, 55, 56, 57,
188 58, 59, 63, 64, 65, 66, 67, 68, 69, 70,
189 71, 72, 73, 74, 75, 76, 77
193 static const short yyprhs
[] = { 0,
194 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
195 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
196 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
197 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
198 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
199 139, 142, 145, 148, 153, 156, 161, 164, 167, 174,
200 176, 178, 180, 185, 186, 194, 196, 200, 204, 208,
201 212, 216, 220, 224, 228, 232, 236, 240, 244, 245,
202 250, 251, 256, 257, 258, 266, 267, 273, 277, 281,
203 283, 285, 287, 291, 295, 299, 303, 308, 313, 317,
204 321, 324, 327, 329, 331, 333, 335, 337, 339, 342,
205 344, 347, 348, 350, 353, 357, 359, 361, 364, 367,
206 372, 377, 380, 383, 387, 389, 391, 394, 397, 398,
207 399, 404, 409, 413, 417, 420, 423, 426, 429, 433,
208 434, 437, 440, 443, 446, 450, 451, 454, 457, 459,
209 461, 464, 467, 469, 471, 474, 477, 480, 484, 485,
210 488, 490, 492, 494, 497, 500, 502, 507, 512, 514,
211 516, 518, 520, 524, 526, 530, 531, 536, 537, 544,
212 548, 549, 556, 560, 561, 563, 565, 568, 575, 577,
213 581, 582, 584, 589, 596, 601, 603, 605, 607, 609,
214 611, 612, 617, 619, 620, 623, 625, 629, 633, 636,
215 637, 642, 644, 645, 650, 652, 654, 656, 659, 662,
216 663, 664, 670, 671, 672, 678, 680, 682, 686, 690,
217 695, 699, 703, 707, 709, 711, 715, 720, 724, 728,
218 732, 734, 738, 742, 746, 751, 755, 759, 761, 763,
219 766, 768, 771, 773, 776, 777, 785, 791, 794, 795,
220 803, 809, 812, 813, 822, 823, 831, 834, 835, 837,
221 838, 840, 842, 845, 846, 850, 853, 858, 862, 864,
222 868, 870, 872, 875, 877, 881, 886, 893, 899, 901,
223 905, 907, 909, 913, 916, 919, 920, 922, 924, 927,
224 928, 931, 935, 939, 942, 946, 951, 955, 958, 962,
225 965, 969, 971, 973, 976, 979, 980, 982, 985, 986,
226 987, 989, 991, 994, 998, 1000, 1003, 1005, 1007, 1013,
227 1018, 1023, 1026, 1029, 1032, 1035, 1040, 1041, 1046, 1047,
228 1048, 1052, 1057, 1061, 1063, 1065, 1067, 1069, 1072, 1073,
229 1078, 1080, 1084, 1085, 1086, 1094, 1100, 1103, 1104, 1105,
230 1106, 1119, 1120, 1127, 1130, 1133, 1136, 1140, 1147, 1156,
231 1167, 1180, 1184, 1189, 1191, 1193, 1194, 1201, 1205, 1211,
232 1214, 1218, 1219, 1221, 1222, 1224, 1225, 1227, 1229, 1233,
233 1238, 1240, 1244, 1245, 1248, 1251, 1252, 1257, 1260, 1261,
234 1263, 1265, 1269, 1271, 1275, 1280, 1285, 1290, 1295, 1300,
235 1301, 1304, 1306, 1309, 1311, 1315, 1317, 1321, 1323, 1325,
236 1327, 1329, 1331, 1333, 1335, 1337, 1341, 1345, 1350, 1351,
237 1352, 1363, 1364, 1371, 1372, 1373, 1386, 1387, 1396, 1397,
238 1404, 1407, 1408, 1417, 1422, 1423, 1433, 1439, 1440, 1447,
239 1448, 1450, 1454, 1458, 1460, 1462, 1464, 1466, 1467, 1471,
240 1474, 1478, 1482, 1484, 1485, 1487, 1491, 1493, 1497, 1500,
241 1501, 1502, 1503, 1511, 1512, 1513, 1514, 1522, 1523, 1524,
242 1527, 1529, 1531, 1534, 1535, 1539, 1541, 1543, 1544, 1545,
243 1551, 1552, 1553, 1559, 1564, 1566, 1572, 1575, 1576, 1579,
244 1580, 1582, 1584, 1586, 1589, 1592, 1597, 1600, 1603, 1605,
245 1609, 1612, 1615, 1618, 1619, 1622, 1623, 1627, 1629, 1631,
246 1634, 1636, 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652,
247 1654, 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672,
248 1674, 1676, 1678, 1680, 1682, 1684, 1691, 1695, 1701, 1704,
249 1706, 1708, 1710, 1713, 1715, 1719, 1722, 1724, 1726, 1727,
250 1728, 1735, 1737, 1739, 1741, 1744, 1747, 1749, 1754, 1759
253 static const short yyrhs
[] = { -1,
254 87, 0, 0, 88, 90, 0, 0, 87, 89, 90,
255 0, 92, 0, 91, 0, 245, 0, 27, 61, 101,
256 78, 79, 0, 244, 90, 0, 124, 138, 79, 0,
257 131, 124, 138, 79, 0, 127, 124, 137, 79, 0,
258 131, 79, 0, 127, 79, 0, 1, 79, 0, 1,
259 80, 0, 79, 0, 0, 0, 127, 124, 166, 93,
260 118, 94, 200, 0, 127, 124, 166, 1, 0, 0,
261 0, 131, 124, 169, 95, 118, 96, 200, 0, 131,
262 124, 169, 1, 0, 0, 0, 124, 169, 97, 118,
263 98, 200, 0, 124, 169, 1, 0, 3, 0, 4,
264 0, 74, 0, 69, 0, 45, 0, 51, 0, 50,
265 0, 56, 0, 57, 0, 81, 0, 82, 0, 103,
266 0, 0, 103, 0, 109, 0, 103, 83, 109, 0,
267 115, 0, 52, 107, 0, 244, 107, 0, 100, 107,
268 0, 42, 99, 0, 105, 104, 0, 105, 61, 187,
269 78, 0, 106, 104, 0, 106, 61, 187, 78, 0,
270 33, 107, 0, 34, 107, 0, 35, 61, 109, 83,
271 187, 78, 0, 11, 0, 29, 0, 104, 0, 61,
272 187, 78, 107, 0, 0, 61, 187, 78, 84, 108,
273 152, 80, 0, 107, 0, 109, 50, 109, 0, 109,
274 51, 109, 0, 109, 52, 109, 0, 109, 53, 109,
275 0, 109, 54, 109, 0, 109, 48, 109, 0, 109,
276 49, 109, 0, 109, 47, 109, 0, 109, 46, 109,
277 0, 109, 45, 109, 0, 109, 43, 109, 0, 109,
278 44, 109, 0, 0, 109, 42, 110, 109, 0, 0,
279 109, 41, 111, 109, 0, 0, 0, 109, 39, 112,
280 101, 40, 113, 109, 0, 0, 109, 39, 114, 40,
281 109, 0, 109, 38, 109, 0, 109, 37, 109, 0,
282 3, 0, 8, 0, 116, 0, 61, 101, 78, 0,
283 61, 1, 78, 0, 203, 202, 78, 0, 203, 1,
284 78, 0, 115, 61, 102, 78, 0, 115, 62, 101,
285 85, 0, 115, 60, 99, 0, 115, 59, 99, 0,
286 115, 56, 0, 115, 57, 0, 305, 0, 311, 0,
287 312, 0, 313, 0, 117, 0, 9, 0, 116, 9,
288 0, 77, 0, 117, 77, 0, 0, 120, 0, 120,
289 10, 0, 209, 210, 121, 0, 119, 0, 195, 0,
290 120, 119, 0, 119, 195, 0, 129, 124, 137, 79,
291 0, 132, 124, 138, 79, 0, 129, 79, 0, 132,
292 79, 0, 209, 210, 126, 0, 122, 0, 195, 0,
293 123, 122, 0, 122, 195, 0, 0, 0, 127, 124,
294 137, 79, 0, 131, 124, 138, 79, 0, 127, 124,
295 160, 0, 131, 124, 163, 0, 127, 79, 0, 131,
296 79, 0, 244, 126, 0, 135, 128, 0, 131, 135,
297 128, 0, 0, 128, 136, 0, 128, 5, 0, 128,
298 145, 0, 135, 130, 0, 132, 135, 130, 0, 0,
299 130, 136, 0, 130, 5, 0, 132, 0, 145, 0,
300 131, 132, 0, 131, 145, 0, 7, 0, 5, 0,
301 132, 7, 0, 132, 5, 0, 135, 134, 0, 189,
302 135, 134, 0, 0, 134, 136, 0, 6, 0, 173,
303 0, 4, 0, 69, 261, 0, 74, 261, 0, 262,
304 0, 28, 61, 101, 78, 0, 28, 61, 187, 78,
305 0, 6, 0, 7, 0, 173, 0, 140, 0, 137,
306 83, 140, 0, 142, 0, 138, 83, 140, 0, 0,
307 27, 61, 116, 78, 0, 0, 166, 139, 144, 38,
308 141, 150, 0, 166, 139, 144, 0, 0, 169, 139,
309 144, 38, 143, 150, 0, 169, 139, 144, 0, 0,
310 145, 0, 146, 0, 145, 146, 0, 30, 61, 61,
311 147, 78, 78, 0, 148, 0, 147, 83, 148, 0,
312 0, 149, 0, 149, 61, 3, 78, 0, 149, 61,
313 3, 83, 103, 78, 0, 149, 61, 102, 78, 0,
314 99, 0, 5, 0, 6, 0, 7, 0, 109, 0,
315 0, 84, 151, 152, 80, 0, 1, 0, 0, 153,
316 178, 0, 154, 0, 153, 83, 154, 0, 158, 38,
317 156, 0, 159, 156, 0, 0, 99, 40, 155, 156,
318 0, 156, 0, 0, 84, 157, 152, 80, 0, 109,
319 0, 1, 0, 159, 0, 158, 159, 0, 60, 99,
320 0, 0, 0, 166, 161, 118, 162, 204, 0, 0,
321 0, 169, 164, 118, 165, 204, 0, 167, 0, 169,
322 0, 61, 167, 78, 0, 167, 61, 239, 0, 167,
323 62, 101, 85, 0, 167, 62, 85, 0, 52, 190,
324 167, 0, 145, 125, 167, 0, 4, 0, 74, 0,
325 168, 61, 239, 0, 168, 62, 101, 85, 0, 168,
326 62, 85, 0, 52, 190, 168, 0, 145, 125, 168,
327 0, 4, 0, 169, 61, 239, 0, 61, 169, 78,
328 0, 52, 190, 169, 0, 169, 62, 101, 85, 0,
329 169, 62, 85, 0, 145, 125, 169, 0, 3, 0,
330 13, 0, 13, 145, 0, 14, 0, 14, 145, 0,
331 12, 0, 12, 145, 0, 0, 170, 99, 84, 174,
332 180, 80, 144, 0, 170, 84, 180, 80, 144, 0,
333 170, 99, 0, 0, 171, 99, 84, 175, 180, 80,
334 144, 0, 171, 84, 180, 80, 144, 0, 171, 99,
335 0, 0, 172, 99, 84, 176, 185, 179, 80, 144,
336 0, 0, 172, 84, 177, 185, 179, 80, 144, 0,
337 172, 99, 0, 0, 83, 0, 0, 83, 0, 181,
338 0, 181, 182, 0, 0, 181, 182, 79, 0, 181,
339 79, 0, 67, 61, 69, 78, 0, 133, 124, 183,
340 0, 133, 0, 189, 124, 183, 0, 189, 0, 1,
341 0, 244, 182, 0, 184, 0, 183, 83, 184, 0,
342 209, 210, 166, 144, 0, 209, 210, 166, 40, 109,
343 144, 0, 209, 210, 40, 109, 144, 0, 186, 0,
344 185, 83, 186, 0, 1, 0, 99, 0, 99, 38,
345 109, 0, 133, 188, 0, 189, 188, 0, 0, 191,
346 0, 7, 0, 189, 7, 0, 0, 190, 7, 0,
347 61, 191, 78, 0, 52, 190, 191, 0, 52, 190,
348 0, 191, 61, 232, 0, 191, 62, 101, 85, 0,
349 191, 62, 85, 0, 61, 232, 0, 62, 101, 85,
350 0, 62, 85, 0, 145, 125, 191, 0, 193, 0,
351 212, 0, 193, 212, 0, 193, 195, 0, 0, 192,
352 0, 1, 79, 0, 0, 0, 198, 0, 199, 0,
353 198, 199, 0, 32, 243, 79, 0, 204, 0, 1,
354 204, 0, 84, 0, 80, 0, 196, 197, 123, 194,
355 80, 0, 196, 197, 1, 80, 0, 196, 197, 192,
356 80, 0, 61, 84, 0, 201, 202, 0, 206, 211,
357 0, 206, 1, 0, 15, 61, 101, 78, 0, 0,
358 18, 208, 211, 17, 0, 0, 0, 209, 210, 214,
359 0, 209, 210, 225, 211, 0, 209, 210, 213, 0,
360 214, 0, 225, 0, 204, 0, 222, 0, 101, 79,
361 0, 0, 205, 16, 215, 211, 0, 205, 0, 205,
362 16, 1, 0, 0, 0, 17, 216, 61, 101, 78,
363 217, 211, 0, 207, 61, 101, 78, 79, 0, 207,
364 1, 0, 0, 0, 0, 19, 61, 227, 79, 218,
365 227, 79, 219, 227, 78, 220, 211, 0, 0, 20,
366 61, 101, 78, 221, 211, 0, 23, 79, 0, 24,
367 79, 0, 25, 79, 0, 25, 101, 79, 0, 27,
368 226, 61, 101, 78, 79, 0, 27, 226, 61, 101,
369 40, 228, 78, 79, 0, 27, 226, 61, 101, 40,
370 228, 40, 228, 78, 79, 0, 27, 226, 61, 101,
371 40, 228, 40, 228, 40, 231, 78, 79, 0, 26,
372 99, 79, 0, 26, 52, 101, 79, 0, 79, 0,
373 223, 0, 0, 19, 61, 115, 78, 224, 211, 0,
374 21, 109, 40, 0, 21, 109, 10, 109, 40, 0,
375 22, 40, 0, 99, 40, 144, 0, 0, 7, 0,
376 0, 101, 0, 0, 229, 0, 230, 0, 229, 83,
377 230, 0, 9, 61, 101, 78, 0, 116, 0, 231,
378 83, 116, 0, 0, 233, 234, 0, 236, 78, 0,
379 0, 237, 79, 235, 234, 0, 1, 78, 0, 0,
380 10, 0, 237, 0, 237, 83, 10, 0, 238, 0,
381 237, 83, 238, 0, 127, 124, 168, 144, 0, 127,
382 124, 169, 144, 0, 127, 124, 188, 144, 0, 131,
383 124, 169, 144, 0, 131, 124, 188, 144, 0, 0,
384 240, 241, 0, 234, 0, 242, 78, 0, 3, 0,
385 242, 83, 3, 0, 99, 0, 243, 83, 99, 0,
386 31, 0, 249, 0, 247, 0, 248, 0, 259, 0,
387 269, 0, 65, 0, 99, 0, 246, 83, 99, 0,
388 75, 246, 79, 0, 76, 99, 99, 79, 0, 0,
389 0, 63, 99, 261, 84, 250, 263, 80, 251, 276,
390 65, 0, 0, 63, 99, 261, 252, 276, 65, 0,
391 0, 0, 63, 99, 40, 99, 261, 84, 253, 263,
392 80, 254, 276, 65, 0, 0, 63, 99, 40, 99,
393 261, 255, 276, 65, 0, 0, 64, 99, 84, 256,
394 263, 80, 0, 64, 99, 0, 0, 64, 99, 40,
395 99, 84, 257, 263, 80, 0, 64, 99, 40, 99,
396 0, 0, 63, 99, 61, 99, 78, 261, 258, 276,
397 65, 0, 64, 99, 61, 99, 78, 0, 0, 73,
398 99, 261, 260, 276, 65, 0, 0, 262, 0, 47,
399 246, 47, 0, 263, 264, 265, 0, 265, 0, 71,
400 0, 72, 0, 70, 0, 0, 265, 266, 79, 0,
401 265, 79, 0, 133, 124, 267, 0, 189, 124, 267,
402 0, 1, 0, 0, 268, 0, 267, 83, 268, 0,
403 166, 0, 166, 40, 109, 0, 40, 109, 0, 0,
404 0, 0, 50, 270, 286, 271, 287, 272, 200, 0,
405 0, 0, 0, 51, 273, 286, 274, 287, 275, 200,
406 0, 0, 0, 277, 278, 0, 281, 0, 91, 0,
407 278, 281, 0, 0, 278, 279, 91, 0, 79, 0,
408 1, 0, 0, 0, 50, 282, 286, 283, 280, 0,
409 0, 0, 51, 284, 286, 285, 280, 0, 61, 187,
410 78, 295, 0, 295, 0, 61, 187, 78, 296, 293,
411 0, 296, 293, 0, 0, 79, 288, 0, 0, 289,
412 0, 290, 0, 195, 0, 289, 290, 0, 290, 195,
413 0, 127, 124, 291, 79, 0, 127, 79, 0, 131,
414 79, 0, 292, 0, 291, 83, 292, 0, 168, 144,
415 0, 169, 144, 0, 188, 144, 0, 0, 83, 10,
416 0, 0, 83, 294, 236, 0, 297, 0, 299, 0,
417 296, 299, 0, 3, 0, 4, 0, 74, 0, 298,
418 0, 12, 0, 13, 0, 14, 0, 15, 0, 16,
419 0, 17, 0, 18, 0, 19, 0, 20, 0, 21,
420 0, 22, 0, 23, 0, 24, 0, 25, 0, 26,
421 0, 27, 0, 11, 0, 28, 0, 29, 0, 6,
422 0, 7, 0, 297, 40, 61, 187, 78, 99, 0,
423 297, 40, 99, 0, 40, 61, 187, 78, 99, 0,
424 40, 99, 0, 297, 0, 301, 0, 303, 0, 301,
425 303, 0, 103, 0, 297, 40, 302, 0, 40, 302,
426 0, 101, 0, 69, 0, 0, 0, 62, 306, 304,
427 307, 300, 85, 0, 297, 0, 309, 0, 310, 0,
428 309, 310, 0, 297, 40, 0, 40, 0, 66, 61,
429 308, 78, 0, 73, 61, 99, 78, 0, 68, 61,
436 static const short yyrline
[] = { 0,
437 236, 241, 255, 257, 257, 258, 260, 262, 263, 264,
438 272, 276, 287, 292, 297, 299, 301, 302, 303, 308,
439 315, 317, 322, 327, 333, 335, 340, 345, 351, 353,
440 358, 365, 367, 368, 369, 372, 374, 376, 378, 380,
441 382, 384, 388, 392, 395, 398, 401, 405, 407, 410,
442 413, 417, 445, 451, 454, 457, 460, 462, 464, 468,
443 472, 476, 478, 481, 485, 512, 514, 516, 518, 520,
444 522, 524, 526, 528, 530, 532, 534, 536, 538, 542,
445 544, 548, 550, 553, 557, 559, 566, 569, 577, 588,
446 748, 749, 751, 757, 759, 782, 791, 793, 795, 807,
447 821, 823, 825, 827, 829, 831, 833, 838, 840, 846,
448 848, 852, 854, 855, 865, 870, 872, 873, 874, 881,
449 887, 892, 895, 903, 908, 910, 911, 912, 919, 930,
450 934, 940, 945, 950, 955, 957, 959, 968, 971, 975,
451 977, 979, 984, 988, 991, 995, 998, 1000, 1012, 1015,
452 1017, 1019, 1023, 1027, 1029, 1032, 1045, 1048, 1052, 1054,
453 1062, 1063, 1064, 1068, 1070, 1075, 1077, 1079, 1085, 1086,
454 1087, 1090, 1092, 1095, 1097, 1100, 1103, 1109, 1116, 1118,
455 1125, 1132, 1135, 1142, 1145, 1149, 1152, 1156, 1161, 1164,
456 1168, 1171, 1173, 1175, 1177, 1184, 1186, 1187, 1188, 1193,
457 1195, 1200, 1208, 1213, 1217, 1220, 1222, 1227, 1229, 1230,
458 1233, 1233, 1236, 1239, 1241, 1243, 1246, 1248, 1251, 1259,
459 1273, 1281, 1285, 1299, 1307, 1314, 1316, 1321, 1324, 1329,
460 1331, 1333, 1340, 1342, 1343, 1351, 1357, 1359, 1361, 1368,
461 1370, 1376, 1382, 1384, 1386, 1388, 1395, 1397, 1400, 1403,
462 1407, 1410, 1414, 1417, 1421, 1426, 1428, 1432, 1434, 1436,
463 1438, 1442, 1444, 1447, 1450, 1453, 1456, 1460, 1462, 1465,
464 1467, 1472, 1475, 1480, 1482, 1484, 1488, 1512, 1519, 1524,
465 1530, 1535, 1537, 1542, 1544, 1548, 1552, 1556, 1566, 1568,
466 1573, 1578, 1581, 1585, 1588, 1592, 1595, 1598, 1601, 1605,
467 1608, 1612, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630,
468 1634, 1642, 1650, 1652, 1654, 1658, 1660, 1663, 1666, 1679,
469 1681, 1686, 1688, 1691, 1705, 1708, 1711, 1713, 1715, 1723,
470 1731, 1741, 1759, 1764, 1769, 1772, 1786, 1795, 1799, 1803,
471 1807, 1813, 1817, 1822, 1825, 1830, 1833, 1834, 1851, 1856,
472 1859, 1871, 1873, 1883, 1893, 1894, 1902, 1905, 1917, 1921,
473 1938, 1948, 1957, 1962, 1967, 1972, 1976, 1980, 1991, 1998,
474 2005, 2012, 2023, 2029, 2032, 2037, 2060, 2094, 2125, 2156,
475 2171, 2185, 2189, 2193, 2196, 2201, 2203, 2206, 2208, 2212,
476 2217, 2220, 2226, 2231, 2236, 2238, 2247, 2248, 2254, 2256,
477 2266, 2268, 2272, 2275, 2281, 2291, 2300, 2309, 2319, 2333,
478 2338, 2343, 2345, 2354, 2357, 2362, 2365, 2369, 2377, 2379,
479 2380, 2381, 2382, 2383, 2397, 2400, 2404, 2410, 2416, 2423,
480 2428, 2434, 2441, 2447, 2453, 2458, 2464, 2471, 2477, 2483,
481 2489, 2497, 2503, 2509, 2517, 2524, 2530, 2539, 2546, 2554,
482 2559, 2562, 2572, 2574, 2577, 2579, 2580, 2583, 2588, 2589,
483 2606, 2613, 2619, 2623, 2626, 2627, 2630, 2638, 2644, 2653,
484 2663, 2670, 2674, 2679, 2688, 2695, 2699, 2709, 2711, 2712,
485 2714, 2716, 2717, 2718, 2719, 2721, 2723, 2726, 2734, 2741,
486 2741, 2748, 2754, 2756, 2762, 2767, 2772, 2781, 2783, 2789,
487 2791, 2794, 2796, 2797, 2798, 2801, 2807, 2809, 2813, 2816,
488 2823, 2829, 2834, 2841, 2846, 2851, 2856, 2863, 2867, 2870,
489 2876, 2878, 2879, 2880, 2883, 2885, 2886, 2887, 2888, 2889,
490 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899,
491 2900, 2901, 2902, 2903, 2903, 2906, 2912, 2917, 2922, 2928,
492 2930, 2933, 2935, 2942, 2954, 2959, 2965, 2967, 2973, 2977,
493 2978, 2984, 2986, 2989, 2991, 2997, 3002, 3008, 3015, 3024
498 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
500 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
501 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
502 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
503 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
504 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
505 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
506 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
507 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
508 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
509 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
510 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
511 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
512 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
513 "@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
514 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
515 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
516 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
517 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
518 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
519 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
520 "initelt","@18","initval","@19","designator_list","designator","nested_function",
521 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
522 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
523 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
524 "component_decl_list2","component_decl","components","component_declarator",
525 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
526 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
527 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
528 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
529 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
530 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
531 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
532 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
533 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
534 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
535 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
536 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
537 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
538 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
539 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
540 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
541 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
542 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
543 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
547 static const short yyr1
[] = { 0,
548 86, 86, 88, 87, 89, 87, 90, 90, 90, 90,
549 90, 91, 91, 91, 91, 91, 91, 91, 91, 93,
550 94, 92, 92, 95, 96, 92, 92, 97, 98, 92,
551 92, 99, 99, 99, 99, 100, 100, 100, 100, 100,
552 100, 100, 101, 102, 102, 103, 103, 104, 104, 104,
553 104, 104, 104, 104, 104, 104, 104, 104, 104, 105,
554 106, 107, 107, 108, 107, 109, 109, 109, 109, 109,
555 109, 109, 109, 109, 109, 109, 109, 109, 110, 109,
556 111, 109, 112, 113, 109, 114, 109, 109, 109, 115,
557 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
558 115, 115, 115, 115, 115, 115, 115, 116, 116, 117,
559 117, 118, 118, 118, 119, 120, 120, 120, 120, 121,
560 121, 121, 121, 122, 123, 123, 123, 123, 124, 125,
561 126, 126, 126, 126, 126, 126, 126, 127, 127, 128,
562 128, 128, 128, 129, 129, 130, 130, 130, 131, 131,
563 131, 131, 132, 132, 132, 132, 133, 133, 134, 134,
564 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
565 136, 137, 137, 138, 138, 139, 139, 141, 140, 140,
566 143, 142, 142, 144, 144, 145, 145, 146, 147, 147,
567 148, 148, 148, 148, 148, 149, 149, 149, 149, 150,
568 151, 150, 150, 152, 152, 153, 153, 154, 154, 155,
569 154, 154, 157, 156, 156, 156, 158, 158, 159, 161,
570 162, 160, 164, 165, 163, 166, 166, 167, 167, 167,
571 167, 167, 167, 167, 167, 168, 168, 168, 168, 168,
572 168, 169, 169, 169, 169, 169, 169, 169, 170, 170,
573 171, 171, 172, 172, 174, 173, 173, 173, 175, 173,
574 173, 173, 176, 173, 177, 173, 173, 178, 178, 179,
575 179, 180, 180, 181, 181, 181, 181, 182, 182, 182,
576 182, 182, 182, 183, 183, 184, 184, 184, 185, 185,
577 185, 186, 186, 187, 187, 188, 188, 189, 189, 190,
578 190, 191, 191, 191, 191, 191, 191, 191, 191, 191,
579 191, 192, 193, 193, 193, 194, 194, 195, 196, 197,
580 197, 198, 198, 199, 200, 200, 201, 202, 202, 202,
581 202, 203, 204, 205, 205, 206, 208, 207, 209, 210,
582 211, 211, 212, 213, 213, 214, 214, 214, 215, 214,
583 214, 214, 216, 217, 214, 214, 214, 218, 219, 220,
584 214, 221, 214, 214, 214, 214, 214, 214, 214, 214,
585 214, 214, 214, 214, 222, 224, 223, 225, 225, 225,
586 225, 226, 226, 227, 227, 228, 228, 229, 229, 230,
587 231, 231, 233, 232, 234, 235, 234, 234, 236, 236,
588 236, 236, 237, 237, 238, 238, 238, 238, 238, 240,
589 239, 241, 241, 242, 242, 243, 243, 244, 245, 245,
590 245, 245, 245, 245, 246, 246, 247, 248, 250, 251,
591 249, 252, 249, 253, 254, 249, 255, 249, 256, 249,
592 249, 257, 249, 249, 258, 249, 249, 260, 259, 261,
593 261, 262, 263, 263, 264, 264, 264, 265, 265, 265,
594 266, 266, 266, 267, 267, 267, 268, 268, 268, 270,
595 271, 272, 269, 273, 274, 275, 269, 276, 277, 276,
596 278, 278, 278, 279, 278, 280, 280, 282, 283, 281,
597 284, 285, 281, 286, 286, 286, 286, 287, 287, 288,
598 288, 289, 289, 289, 289, 290, 290, 290, 291, 291,
599 292, 292, 292, 293, 293, 294, 293, 295, 296, 296,
600 297, 297, 297, 297, 298, 298, 298, 298, 298, 298,
601 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
602 298, 298, 298, 298, 298, 299, 299, 299, 299, 300,
603 300, 301, 301, 302, 303, 303, 304, 304, 306, 307,
604 305, 308, 308, 309, 309, 310, 310, 311, 312, 313
607 static const short yyr2
[] = { 0,
608 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
609 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
610 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
611 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
612 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
613 2, 2, 2, 4, 2, 4, 2, 2, 6, 1,
614 1, 1, 4, 0, 7, 1, 3, 3, 3, 3,
615 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
616 0, 4, 0, 0, 7, 0, 5, 3, 3, 1,
617 1, 1, 3, 3, 3, 3, 4, 4, 3, 3,
618 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
619 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
620 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
621 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
622 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
623 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
624 1, 1, 1, 2, 2, 1, 4, 4, 1, 1,
625 1, 1, 3, 1, 3, 0, 4, 0, 6, 3,
626 0, 6, 3, 0, 1, 1, 2, 6, 1, 3,
627 0, 1, 4, 6, 4, 1, 1, 1, 1, 1,
628 0, 4, 1, 0, 2, 1, 3, 3, 2, 0,
629 4, 1, 0, 4, 1, 1, 1, 2, 2, 0,
630 0, 5, 0, 0, 5, 1, 1, 3, 3, 4,
631 3, 3, 3, 1, 1, 3, 4, 3, 3, 3,
632 1, 3, 3, 3, 4, 3, 3, 1, 1, 2,
633 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
634 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
635 1, 1, 2, 0, 3, 2, 4, 3, 1, 3,
636 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
637 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
638 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
639 3, 1, 1, 2, 2, 0, 1, 2, 0, 0,
640 1, 1, 2, 3, 1, 2, 1, 1, 5, 4,
641 4, 2, 2, 2, 2, 4, 0, 4, 0, 0,
642 3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
643 1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
644 12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
645 12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
646 3, 0, 1, 0, 1, 0, 1, 1, 3, 4,
647 1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
648 1, 3, 1, 3, 4, 4, 4, 4, 4, 0,
649 2, 1, 2, 1, 3, 1, 3, 1, 1, 1,
650 1, 1, 1, 1, 1, 3, 3, 4, 0, 0,
651 10, 0, 6, 0, 0, 12, 0, 8, 0, 6,
652 2, 0, 8, 4, 0, 9, 5, 0, 6, 0,
653 1, 3, 3, 1, 1, 1, 1, 0, 3, 2,
654 3, 3, 1, 0, 1, 3, 1, 3, 2, 0,
655 0, 0, 7, 0, 0, 0, 7, 0, 0, 2,
656 1, 1, 2, 0, 3, 1, 1, 0, 0, 5,
657 0, 0, 5, 4, 1, 5, 2, 0, 2, 0,
658 1, 1, 1, 2, 2, 4, 2, 2, 1, 3,
659 2, 2, 2, 0, 2, 0, 3, 1, 1, 2,
660 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
661 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
662 1, 1, 1, 1, 1, 6, 3, 5, 2, 1,
663 1, 1, 2, 1, 3, 2, 1, 1, 0, 0,
664 6, 1, 1, 1, 2, 2, 1, 4, 4, 4
667 static const short yydefact
[] = { 3,
668 5, 0, 0, 0, 163, 154, 161, 153, 253, 249,
669 251, 0, 0, 0, 418, 0, 470, 474, 0, 0,
670 424, 450, 0, 450, 0, 0, 19, 4, 8, 7,
671 0, 129, 129, 149, 140, 150, 186, 0, 0, 0,
672 162, 0, 9, 420, 421, 419, 422, 166, 423, 6,
673 17, 18, 254, 250, 252, 0, 0, 0, 32, 33,
674 35, 34, 425, 0, 0, 0, 450, 441, 164, 451,
675 450, 165, 0, 0, 248, 300, 0, 0, 174, 130,
676 0, 16, 0, 15, 0, 151, 140, 152, 156, 155,
677 138, 187, 274, 258, 274, 262, 265, 267, 11, 90,
678 91, 108, 60, 61, 0, 0, 0, 0, 36, 38,
679 37, 0, 39, 40, 0, 559, 0, 0, 0, 110,
680 41, 42, 0, 0, 43, 62, 0, 0, 66, 46,
681 48, 92, 107, 0, 0, 103, 104, 105, 106, 298,
682 0, 296, 159, 0, 296, 191, 452, 0, 521, 522,
683 544, 545, 541, 525, 526, 527, 528, 529, 530, 531,
684 532, 533, 534, 535, 536, 537, 538, 539, 540, 542,
685 543, 0, 0, 523, 471, 495, 514, 518, 524, 519,
686 475, 0, 0, 432, 0, 0, 439, 448, 427, 0,
687 0, 0, 12, 0, 0, 31, 0, 410, 0, 0,
688 184, 234, 300, 0, 235, 0, 172, 130, 0, 226,
689 227, 0, 0, 139, 142, 169, 170, 141, 143, 171,
690 0, 0, 0, 255, 0, 259, 0, 263, 57, 58,
691 0, 52, 49, 0, 332, 0, 0, 0, 0, 0,
692 0, 51, 0, 0, 0, 53, 0, 55, 0, 0,
693 83, 81, 79, 0, 0, 0, 0, 0, 0, 0,
694 0, 0, 0, 0, 0, 101, 102, 0, 0, 44,
695 0, 109, 111, 0, 328, 320, 0, 50, 167, 300,
696 393, 0, 130, 294, 297, 157, 168, 299, 159, 295,
697 197, 198, 199, 196, 0, 189, 192, 426, 0, 549,
698 0, 498, 516, 497, 0, 520, 0, 498, 450, 0,
699 429, 479, 444, 0, 458, 479, 428, 301, 244, 243,
700 175, 176, 247, 0, 242, 0, 246, 0, 0, 29,
701 0, 339, 117, 340, 183, 185, 0, 0, 14, 0,
702 0, 23, 0, 184, 410, 0, 13, 27, 0, 0,
703 184, 282, 276, 129, 273, 129, 0, 274, 184, 274,
704 291, 292, 270, 289, 0, 0, 94, 93, 0, 558,
705 557, 560, 567, 562, 0, 563, 564, 0, 0, 10,
706 47, 0, 0, 89, 88, 0, 0, 0, 0, 77,
707 78, 76, 75, 74, 72, 73, 67, 68, 69, 70,
708 71, 100, 99, 0, 45, 0, 96, 0, 0, 321,
709 322, 95, 304, 0, 308, 0, 310, 0, 0, 393,
710 0, 160, 158, 0, 191, 44, 0, 0, 0, 472,
711 515, 399, 0, 547, 476, 437, 450, 458, 0, 0,
712 442, 447, 0, 0, 0, 0, 0, 414, 400, 129,
713 129, 412, 0, 401, 403, 411, 0, 245, 318, 0,
714 119, 114, 118, 0, 181, 232, 228, 173, 233, 21,
715 180, 229, 231, 0, 25, 0, 257, 339, 275, 339,
716 283, 0, 261, 0, 0, 271, 0, 270, 0, 64,
717 63, 0, 566, 568, 0, 565, 570, 569, 54, 56,
718 0, 0, 82, 80, 97, 98, 416, 0, 0, 0,
719 339, 0, 0, 126, 340, 313, 323, 303, 302, 394,
720 309, 311, 305, 307, 0, 188, 190, 90, 0, 0,
721 494, 514, 129, 0, 503, 499, 501, 0, 0, 517,
722 401, 0, 0, 434, 479, 445, 0, 433, 488, 491,
723 482, 0, 129, 129, 484, 481, 458, 457, 455, 456,
724 440, 458, 463, 460, 129, 129, 0, 449, 177, 398,
725 296, 296, 395, 396, 0, 413, 0, 0, 327, 30,
726 319, 325, 115, 129, 129, 146, 0, 0, 178, 230,
727 0, 277, 278, 284, 340, 280, 184, 184, 293, 290,
728 184, 0, 0, 0, 0, 550, 0, 551, 552, 84,
729 87, 324, 0, 330, 128, 127, 317, 0, 331, 315,
730 340, 314, 0, 306, 193, 0, 195, 548, 496, 507,
731 296, 508, 504, 505, 473, 0, 477, 458, 0, 479,
732 430, 0, 0, 176, 0, 0, 0, 483, 0, 0,
733 464, 464, 459, 241, 300, 393, 130, 184, 184, 184,
734 300, 130, 184, 184, 0, 402, 404, 415, 326, 333,
735 122, 0, 123, 0, 146, 144, 203, 201, 200, 182,
736 22, 0, 26, 339, 0, 256, 260, 266, 184, 59,
737 216, 90, 0, 213, 0, 215, 0, 268, 206, 212,
738 0, 0, 554, 556, 0, 561, 0, 553, 0, 417,
739 329, 0, 163, 0, 353, 337, 0, 0, 0, 0,
740 0, 0, 0, 0, 382, 450, 450, 374, 0, 0,
741 124, 129, 129, 346, 351, 0, 0, 343, 344, 347,
742 375, 345, 0, 0, 184, 184, 184, 0, 509, 546,
743 0, 438, 0, 479, 489, 492, 485, 443, 0, 467,
744 461, 465, 462, 304, 0, 410, 0, 405, 406, 407,
745 304, 0, 408, 409, 397, 0, 0, 145, 148, 147,
746 0, 179, 285, 0, 184, 264, 219, 0, 210, 65,
747 0, 205, 0, 218, 209, 555, 85, 0, 0, 339,
748 384, 0, 0, 380, 364, 365, 366, 0, 0, 0,
749 383, 0, 184, 348, 135, 0, 136, 0, 0, 335,
750 340, 334, 357, 0, 137, 194, 511, 512, 513, 506,
751 296, 435, 446, 0, 0, 0, 469, 0, 0, 239,
752 240, 236, 238, 0, 120, 121, 0, 184, 0, 286,
753 0, 0, 207, 208, 0, 0, 0, 385, 48, 0,
754 0, 0, 378, 367, 0, 372, 0, 381, 0, 133,
755 220, 0, 134, 223, 352, 339, 0, 0, 510, 479,
756 431, 487, 486, 490, 493, 468, 466, 237, 202, 288,
757 184, 214, 211, 336, 0, 338, 376, 358, 362, 0,
758 373, 0, 131, 0, 132, 0, 350, 341, 339, 0,
759 0, 287, 354, 339, 384, 339, 379, 386, 0, 221,
760 224, 342, 356, 436, 339, 377, 0, 363, 0, 0,
761 387, 388, 368, 0, 0, 355, 359, 0, 386, 0,
762 0, 222, 225, 384, 0, 0, 369, 389, 0, 390,
763 0, 0, 360, 391, 0, 370, 339, 0, 0, 361,
767 static const short yydefgoto
[] = { 963,
768 1, 2, 3, 28, 29, 30, 343, 588, 349, 591,
769 200, 460, 695, 123, 236, 404, 125, 126, 127, 128,
770 129, 604, 130, 389, 388, 386, 709, 387, 131, 132,
771 133, 330, 331, 332, 583, 510, 511, 31, 195, 731,
772 450, 91, 584, 676, 451, 34, 142, 286, 35, 218,
773 206, 78, 201, 207, 682, 79, 587, 335, 336, 37,
774 295, 296, 297, 680, 781, 697, 698, 699, 852, 700,
775 788, 701, 702, 870, 904, 934, 873, 906, 935, 322,
776 210, 745, 211, 38, 39, 40, 41, 358, 360, 365,
777 227, 792, 487, 222, 223, 355, 593, 594, 363, 364,
778 144, 747, 145, 191, 285, 512, 513, 618, 333, 276,
779 409, 410, 411, 580, 581, 277, 134, 582, 735, 736,
780 737, 800, 821, 464, 822, 516, 738, 739, 876, 799,
781 925, 915, 944, 957, 916, 740, 741, 914, 742, 812,
782 860, 930, 931, 932, 955, 415, 416, 452, 665, 453,
783 454, 455, 325, 326, 456, 457, 508, 135, 43, 64,
784 44, 45, 46, 438, 754, 312, 638, 880, 545, 315,
785 557, 640, 47, 316, 69, 48, 443, 562, 444, 567,
786 761, 762, 49, 65, 302, 539, 66, 308, 543, 439,
787 440, 555, 647, 884, 556, 642, 835, 643, 836, 175,
788 430, 536, 537, 538, 748, 749, 304, 432, 176, 177,
789 178, 179, 180, 607, 608, 704, 609, 372, 136, 238,
790 492, 375, 376, 377, 137, 138, 139
793 static const short yypact
[] = { 101,
794 110, 3362, 3362, 129,-32768,-32768,-32768,-32768, 94, 94,
795 94, 134, 169, 178,-32768, 303,-32768,-32768, 303, 303,
796 -32768, 80, 303, 80, 303, 303,-32768,-32768,-32768,-32768,
797 112, 177, 2761, 217,-32768, 94,-32768, 82, 133, 239,
798 -32768, 3362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
799 -32768,-32768, 94, 94, 94, 2998, 2830, 211,-32768,-32768,
800 -32768,-32768,-32768, 46, 3614, 3614, 210, 51,-32768,-32768,
801 80,-32768, 231, 303,-32768,-32768, 112, 336,-32768, 94,
802 1979,-32768, 601,-32768, 112, 217,-32768, 94,-32768,-32768,
803 677,-32768, 207, 78, 207, 196,-32768, 200,-32768,-32768,
804 -32768,-32768,-32768,-32768, 2998, 2998, 237, 303,-32768,-32768,
805 -32768, 2998,-32768,-32768, 1497,-32768, 261, 272, 299,-32768,
806 -32768,-32768, 2998, 292, 310,-32768, 3054, 3110,-32768, 3935,
807 735, 366, 326, 1011, 2998,-32768,-32768,-32768,-32768,-32768,
808 340, 497,-32768, 343, 3738, 322,-32768, 303,-32768,-32768,
809 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
810 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
811 -32768, 278, 3809,-32768,-32768,-32768, 2720, 386,-32768,-32768,
812 -32768, 303, 303, 348, 303, 303,-32768,-32768,-32768, 367,
813 460, 47,-32768, 601, 112,-32768, 390,-32768, 2173, 2152,
814 94,-32768,-32768, 601,-32768, 345,-32768, 94, 2066, 293,
815 306, 383, 2007, 677,-32768,-32768,-32768,-32768, 94,-32768,
816 393, 381, 3282,-32768, 411,-32768, 127,-32768,-32768,-32768,
817 2998,-32768,-32768, 427,-32768, 432, 448, 2886, 3644, 3809,
818 303,-32768, 462, 2998, 1497,-32768, 1497,-32768, 2998, 2998,
819 491,-32768,-32768, 2998, 2998, 2998, 2998, 2998, 2998, 2998,
820 2998, 2998, 2998, 2998, 2998,-32768,-32768, 303, 303, 2998,
821 2998,-32768,-32768, 461,-32768, 518, 479,-32768,-32768,-32768,
822 497, 2234, 94,-32768, 377, 753,-32768,-32768,-32768,-32768,
823 -32768,-32768,-32768,-32768, 35,-32768, 522,-32768, 3809,-32768,
824 490, 510, 583,-32768, 386,-32768, 395, 510, 80, 517,
825 -32768, 535, 529, 523,-32768, 535,-32768,-32768, 306,-32768,
826 -32768, 590, 306, 610,-32768, 1209,-32768, 540, 547,-32768,
827 290, 95,-32768,-32768, 589, 94, 328, 171,-32768, 601,
828 601,-32768, 2152, 94,-32768, 2295,-32768,-32768, 2152, 560,
829 94,-32768,-32768, 414, 554, 801, 3550, 207, 94, 207,
830 -32768, 596, 553,-32768, 127, 3856,-32768,-32768, 2638,-32768,
831 -32768,-32768,-32768, 597, 561, 3644,-32768, 564, 565,-32768,
832 3935, 568, 569, 3935, 3935, 2998, 618, 2998, 2998, 845,
833 1546, 1152, 1626, 1553, 814, 814, 333, 333,-32768,-32768,
834 -32768,-32768,-32768, 572, 310, 576,-32768, 303, 1246, 518,
835 -32768,-32768, 644, 284,-32768, 3467,-32768, 578, 497,-32768,
836 2356,-32768, 753, 587, 322, 3166, 593, 3679, 2094,-32768,
837 -32768, 3392, 3809,-32768,-32768, 584, 80,-32768, 611, 3439,
838 -32768,-32768, 342, 3245, 613, 83, 602,-32768,-32768,-32768,
839 3797,-32768, 603, 397,-32768,-32768, 38,-32768,-32768, 65,
840 -32768,-32768,-32768, 2018,-32768, 293,-32768,-32768, 293,-32768,
841 650,-32768,-32768, 609,-32768, 621,-32768,-32768,-32768,-32768,
842 -32768, 622,-32768, 623, 2998, 303, 628, 553, 3809,-32768,
843 -32768, 3709,-32768,-32768, 597,-32768,-32768,-32768,-32768,-32768,
844 653, 2998, 1054, 1469,-32768,-32768,-32768, 400, 423, 1113,
845 632, 637, 908,-32768,-32768,-32768,-32768, 377,-32768,-32768,
846 -32768, 377,-32768,-32768, 616,-32768,-32768, 67, 640, 303,
847 -32768, 2720, 645, 3497,-32768,-32768, 3797, 2114, 65,-32768,
848 636, 648, 65,-32768, 535,-32768, 452,-32768,-32768,-32768,
849 -32768, 112, 177, 2761, 236,-32768,-32768,-32768,-32768,-32768,
850 -32768,-32768,-32768,-32768,-32768, 3822, 652,-32768,-32768,-32768,
851 608, 216,-32768,-32768, 3750,-32768, 724, 649,-32768,-32768,
852 656,-32768,-32768, 659, 541,-32768, 1820, 65,-32768,-32768,
853 65,-32768, 646,-32768,-32768, 646, 94, 94, 3935,-32768,
854 94, 667, 654, 1579, 2998, 710, 666, 3709,-32768,-32768,
855 952,-32768, 303,-32768,-32768,-32768,-32768, 682,-32768,-32768,
856 -32768,-32768, 2500,-32768,-32768, 2998,-32768,-32768,-32768,-32768,
857 608,-32768,-32768,-32768,-32768, 303,-32768,-32768, 708, 535,
858 -32768, 3614, 3614, 126, 601, 112, 1908,-32768, 494, 3262,
859 413, 413,-32768,-32768,-32768, 216, 94, 167, 259, 94,
860 -32768, 94, 259, 94, 3467,-32768,-32768,-32768,-32768,-32768,
861 -32768, 601,-32768, 112,-32768, 830,-32768,-32768, 3935,-32768,
862 -32768, 1820,-32768,-32768, 456,-32768,-32768,-32768, 94,-32768,
863 -32768, 736, 303,-32768, 737, 3935, 698, 715,-32768,-32768,
864 60, 1743, 310,-32768, 2998,-32768, 710,-32768, 2998,-32768,
865 -32768, 2582, 759, 740,-32768,-32768, 742, 743, 2998, 766,
866 730, 731, 2942, 201, 809, 159, 212,-32768, 782, 746,
867 -32768, 747, 3525,-32768, 811, 1333, 87,-32768,-32768,-32768,
868 -32768,-32768, 2750, 241, 167, 259, 94, 473,-32768,-32768,
869 615,-32768, 763, 535,-32768,-32768,-32768,-32768, 2998, 791,
870 749,-32768, 749, 445, 608,-32768, 2417,-32768,-32768,-32768,
871 375, 216,-32768,-32768,-32768, 496, 498, 830,-32768,-32768,
872 1579,-32768,-32768, 2998, 77,-32768,-32768, 1579,-32768,-32768,
873 1661,-32768, 1897,-32768,-32768,-32768, 952, 2998, 777,-32768,
874 2998, 2998, 3874,-32768,-32768,-32768,-32768, 760, 2998, 767,
875 -32768, 784, 94,-32768,-32768, 601,-32768, 112, 1415,-32768,
876 -32768,-32768,-32768, 2998,-32768,-32768,-32768,-32768,-32768,-32768,
877 608,-32768,-32768, 787, 86, 86, 3935, 2998, 413, 482,
878 482,-32768,-32768, 762,-32768,-32768, 778, 3899, 2998,-32768,
879 780, 1897,-32768,-32768, 779, 2998, 844,-32768, 794, 783,
880 793, 2998,-32768,-32768, 790,-32768, 2998,-32768, 499,-32768,
881 454, 507,-32768, 346,-32768,-32768, 2582, 795,-32768, 535,
882 -32768,-32768,-32768,-32768,-32768, 3935,-32768,-32768,-32768,-32768,
883 3899,-32768,-32768,-32768, 796,-32768,-32768,-32768,-32768, 3917,
884 -32768, 55,-32768, 2152,-32768, 2152,-32768,-32768,-32768, 798,
885 813,-32768,-32768,-32768, 2998,-32768,-32768, 870, 804,-32768,
886 -32768,-32768,-32768,-32768,-32768,-32768, 805,-32768, 825, 63,
887 818,-32768,-32768, 649, 649,-32768,-32768, 2998, 870, 823,
888 870,-32768,-32768, 2998, 826, 66,-32768,-32768, 832,-32768,
889 610, 824,-32768, 366, 270,-32768,-32768, 836, 610,-32768,
890 -32768, 366, 918, 920,-32768
893 static const short yypgoto
[] = {-32768,
894 -32768,-32768,-32768, 96, -378,-32768,-32768,-32768,-32768,-32768,
895 -32768,-32768, -14,-32768, -56, 495, -234, 435,-32768,-32768,
896 -77,-32768, 525,-32768,-32768,-32768,-32768,-32768, 121, -302,
897 -32768, -290, 592,-32768,-32768, 425,-32768, 7, -144, 195,
898 1, 853,-32768, 269, 5, -20, -200, 657, 143, -253,
899 -591, -66, -199, -117,-32768,-32768,-32768, 160, 69, 2,
900 -32768, 524,-32768, 265,-32768, -447,-32768, 157,-32768, -634,
901 -32768,-32768, 250,-32768,-32768,-32768,-32768,-32768,-32768, -67,
902 -121, -498, -1,-32768,-32768,-32768, -74,-32768,-32768,-32768,
903 -32768,-32768, 464, -43,-32768, 598, 474, 273, 591, 475,
904 -54, -94, -182, -166, -236, 451,-32768,-32768, -262,-32768,
905 -32768,-32768, 556, -354,-32768, 382,-32768, -534,-32768,-32768,
906 -32768,-32768, -169, -440, -678, 455,-32768, 90,-32768,-32768,
907 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 98,-32768,
908 -818, 32,-32768, 31,-32768, 558,-32768, -366,-32768, 548,
909 551, 404, -311,-32768,-32768,-32768,-32768, 12,-32768, 959,
910 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
911 -32768,-32768,-32768,-32768, 3, -4, -373,-32768, 424,-32768,
912 355, 170,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -284,
913 -32768,-32768,-32768, 175, 458,-32768,-32768,-32768,-32768, -45,
914 713,-32768,-32768, 511,-32768, 218, 515,-32768, 624, 626,
915 -135,-32768, -128,-32768,-32768, 350, 442,-32768,-32768,-32768,
916 -32768,-32768,-32768, 681,-32768,-32768,-32768
923 static const short yytable
[] = { 124,
924 141, 63, 32, 32, 67, 68, 33, 33, 71, 344,
925 63, 74, 86, 42, 42, 209, 220, 70, 212, 70,
926 181, 446, 354, 94, 96, 98, 72, 229, 230, 81,
927 334, 445, 422, 472, 233, 405, 337, 92, 83, 85,
928 356, 305, 32, 669, 414, 242, 33, 284, 306, 520,
929 290, 225, 470, 42, 92, 92, 92, 278, 475, 190,
930 237, 551, 70, 341, 547, 578, 70, 795, 461, 184,
931 36, 36, 658, 188, 623, 192, 321, 53, 54, 55,
932 776, 92, 338, 213, 59, 60, 882, 823, 734, 92,
933 185, 272, 147, 232, 918, -113, 927, 793, 50, 80,
934 -1, 88, 939, 374, 462, 951, 14, 198, 199, -2,
935 36, 186, 424, 413, 75, 576, 849, 425, 301, 693,
936 577, 857, 344, 14, 320, 949, 16, 361, 148, 59,
937 60, 294, 919, 298, 187, 59, 60, 99, 419, 220,
938 940, 14, 328, 952, 625, 80, 514, 824, 579, 626,
939 61, 208, 197, 80, 685, 62, 354, 300, 854, 219,
940 569, 224, 334, 76, 883, 93, 535, 309, 310, 422,
941 313, 314, 77, 334, 356, 87, 518, 734, -113, 334,
942 712, 371, 522, 649, 635, 378, 198, 199, 637, 319,
943 382, 405, 383, 323, 56, 61, 14, 907, -35, 143,
944 62, 61, 192, 59, 60, 16, 62, 51, 52, 92,
945 283, 220, 362, 283, 406, 466, 95, 893, 75, 469,
946 92, 89, 468, 90, 869, 418, 379, 766, 767, 57,
947 922, 345, 346, 681, 357, 926, 683, 928, 58, 515,
948 495, 59, 60, 565, 427, 14, 936, 615, 467, 182,
949 620, -34, 809, 402, 403, 82, 16, 143, 16, 80,
950 639, 566, 208, 80, 751, 840, 841, 661, 757, 61,
951 183, 146, 208, 221, 62, 634, 656, 282, 960, 226,
952 59, 60, 219, 228, 92, 549, 550, 289, 14, 474,
953 329, 491, 434, -116, -116, -116, -116, 231, 775, -116,
954 -480, -116, -116, -116, 70, 59, 60, 61, 595, 189,
955 595, 436, 62, 148, 482, 143, 484, -116, 826, 198,
956 199, 239, 97, 244, 59, 60, 291, 292, 293, 501,
957 75, 202, 240, 847, 318, 319, -116, 92, 299, 323,
958 851, 515, 734, 621, 420, 421, 61, 958, 220, 283,
959 362, 62, 959, 345, 346, 753, 606, 14, -116, 241,
960 478, 519, 480, -116, 525, 143, 198, 199, 357, 243,
961 703, 61, 197, -116, 272, -176, 62, 75, 542, 203,
962 877, 318, 143, -176, 263, 264, 265, 143, 204, 143,
963 61, 744, 244, 507, 36, 62, 305, 59, 60, 942,
964 943, 205, 273, 306, 14, 208, 198, 199, 208, 208,
965 294, 558, 559, 560, 193, 75, 202, 279, 194, 414,
966 287, 561, 780, 339, -176, 307, 661, 340, -176, 533,
967 86, 311, 70, 534, 603, 656, 282, 420, 421, 546,
968 553, 143, 14, 585, 554, 317, 552, 75, 654, 565,
969 324, 318, 759, 350, 842, 433, 571, 572, 75, 202,
970 351, 347, 75, 61, 203, 194, 318, 566, 62, 834,
971 703, 362, 707, 204, 14, 574, 660, 664, 612, 575,
972 197, 283, 613, -176, 36, 14, 205, 283, 764, 14,
973 359, -176, -279, -279, 771, 784, 655, 36, 289, 143,
974 36, 459, 614, 471, 367, 656, 282, 203, 36, 368,
975 477, 76, 765, 86, 595, 628, 204, 772, 483, 88,
976 77, 558, 559, 560, 780, 369, 14, 518, 522, 205,
977 -86, 641, -176, 86, 518, 522, -176, 533, 407, 631,
978 380, 534, 766, 767, 5, 89, 7, 90, 280, 408,
979 644, 830, 9, 10, 11, 831, 412, 281, 282, 645,
980 646, 246, 248, 558, 559, 560, 730, 428, 13, 659,
981 663, 651, 652, 758, 845, 143, 846, 903, 340, 212,
982 194, 340, 426, 760, 760, 905, 143, 16, 429, 194,
983 672, 674, 431, 87, 437, 911, 755, 756, 710, -478,
984 442, 220, 88, 75, 202, 36, 586, 777, 729, 22,
985 75, 654, 441, 920, 24, 921, 197, 785, 102, 673,
986 80, 750, 88, 732, 458, 459, 465, 733, 476, 746,
987 14, 143, 479, 485, 743, 486, 493, 14, 494, 657,
988 662, 497, 498, 36, 644, 499, 500, 553, 954, 505,
989 318, 554, 203, 552, 192, 730, 962, 502, 92, 655,
990 506, 204, 521, 92, 526, 278, 808, 544, 656, 282,
991 530, 344, 644, 14, 205, 548, 87, 568, 787, 570,
992 573, 215, 216, 217, 558, 559, 560, 589, 9, 10,
993 11, 36, 610, 590, 832, 280, 87, 729, 592, 657,
994 624, 597, 598, 220, 281, 282, 14, 601, 289, 810,
995 844, -316, 86, 208, 80, 36, 619, 627, 575, 208,
996 208, 70, 70, 630, 662, 636, 668, 675, 684, 72,
997 653, 690, 579, 36, 334, 275, 334, 671, 816, 818,
998 208, 855, 80, 732, 858, 861, 689, 733, 871, 705,
999 706, 872, 865, 208, 743, 366, 686, 687, 216, 217,
1000 688, 711, 319, 323, 9, 10, 11, 878, 381, 319,
1001 323, 760, 752, 384, 385, -32, 789, 790, 390, 391,
1002 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
1003 266, 267, 143, 268, 269, 270, 271, 791, -33, 895,
1004 798, 88, 801, 802, 5, 804, 7, 288, 805, 806,
1005 902, 36, 9, 10, 11, 811, 874, 768, 769, 770,
1006 730, 813, 773, 774, 814, 815, 819, 833, 13, 746,
1007 838, 839, 657, 657, 779, 216, 217, 856, 864, 662,
1008 662, 9, 10, 11, 867, 866, 888, 16, 786, 266,
1009 267, 881, 268, 269, 270, 271, 894, 889, 858, 892,
1010 896, 898, 729, 261, 262, 263, 264, 265, 901, 22,
1011 899, 897, 910, 913, 24, 87, 923, 924, 929, -281,
1012 -281, 945, 933, 937, 208, 938, 80, 858, 255, 256,
1013 257, 258, 259, 260, 261, 262, 263, 264, 265, 657,
1014 941, 947, 956, 950, 827, 828, 829, 208, 329, 953,
1015 -339, -339, 503, 504, 961, -339, -339, 964, -339, 965,
1016 529, 859, -339, 463, -339, -339, -339, -339, -339, -339,
1017 -339, -339, -339, -339, -339, 616, -339, 825, -339, 214,
1018 -339, -339, -339, 778, 850, 423, 782, 853, 527, -339,
1019 794, 602, -339, 596, 481, 488, 783, -339, -339, -339,
1020 600, 617, 670, -339, -339, 517, 908, 622, -339, -339,
1021 946, 948, 868, -339, 909, -339, -339, 523, 667, 540,
1022 -339, -339, 541, 73, -339, 650, -339, -312, -339, -339,
1023 251, -339, 252, 253, 254, 255, 256, 257, 258, 259,
1024 260, 261, 262, 263, 264, 265, 763, 890, 887, 599,
1025 885, 274, 648, -319, -319, -319, -319, -319, -319, -319,
1026 435, -319, -319, -319, -319, -319, 611, -319, -319, -319,
1027 -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1028 -319, -319, -319, -319, -319, -319, 629, 633, 879, 708,
1029 912, 531, -319, 532, 796, -319, 496, -319, 0, 0,
1030 -319, -319, -319, 0, 0, 0, -319, -319, 0, 0,
1031 0, -319, -319, 0, 0, 0, -319, 0, -319, -319,
1032 0, 0, 0, -319, -319, 0, 0, -319, 0, -319,
1033 275, -319, -319, 0, -319, 253, 254, 255, 256, 257,
1034 258, 259, 260, 261, 262, 263, 264, 265, 0, 0,
1035 0, 679, 0, 329, 0, -125, -125, -125, -125, -125,
1036 -125, -125, 0, -125, -125, -125, -125, -125, 696, -125,
1037 -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1038 -125, -125, -125, -125, 0, -125, -125, -125, 0, 0,
1039 0, 0, 0, 0, -125, 0, 0, -125, 0, -125,
1040 0, 0, -125, -125, -125, 0, 0, 0, -125, -125,
1041 0, 0, 0, -125, -125, 0, 0, 0, -125, 0,
1042 -125, -125, 0, 0, 0, -125, -125, 0, 0, -125,
1043 0, -125, -125, -125, -125, 0, -125, 257, 258, 259,
1044 260, 261, 262, 263, 264, 265, 679, 0, 0, 447,
1045 0, 448, 5, 6, 7, 8, 0, 0, 449, 0,
1046 9, 10, 11, 0, 0, 0, 696, 0, 0, 0,
1047 0, 0, 0, 797, 0, 0, 13, 0, 14, 0,
1048 0, 0, 0, 803, 0, 0, 509, 0, -339, -339,
1049 -339, -339, -339, -339, -339, 16, -339, -339, -339, -339,
1050 -339, 0, -339, -339, -339, -339, -339, -339, -339, -339,
1051 -339, -339, -339, -339, -339, -339, -339, 22, -339, -339,
1052 -339, 0, 24, 837, 0, 0, -399, -339, 0, 0,
1053 -339, 0, -339, 0, 0, -339, -339, -339, 0, 0,
1054 0, -339, -339, 0, 0, 696, -339, -339, 848, 0,
1055 0, -339, 696, -339, -339, 696, 0, 696, -339, -339,
1056 0, 0, -339, 0, -339, 0, -339, -339, 0, -339,
1057 0, 0, 0, 820, 0, -339, -339, 0, 0, 0,
1058 -339, -339, 0, -339, 0, 0, 0, -339, 0, -339,
1059 -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
1060 0, -339, 886, -339, 0, -339, -339, -339, 0, 0,
1061 0, 0, 0, 891, -339, 0, 696, -339, 0, 0,
1062 0, 0, -339, -339, -339, 0, 900, 0, -339, -339,
1063 0, 0, 0, -339, -339, 0, 0, 0, -339, 0,
1064 -339, -339, 0, 0, 0, -339, -339, 0, 0, -339,
1065 0, -339, 0, -339, -339, 875, -339, -349, -349, 0,
1066 0, 0, -349, -349, 0, -349, 0, 0, 0, -349,
1067 0, -349, -349, -349, -349, -349, -349, -349, -349, -349,
1068 -349, -349, 0, -349, 0, -349, 0, -349, -349, -349,
1069 0, 0, 0, 0, 0, 0, -349, 0, 0, -349,
1070 0, 0, 0, 0, -349, -349, -349, 0, 0, 0,
1071 -349, -349, 0, 0, 0, -349, -349, 0, 0, 0,
1072 -349, 0, -349, -349, 0, 0, 0, -349, -349, 0,
1073 0, -349, 0, -349, 0, -349, -349, 234, -349, 100,
1074 5, 0, 7, 140, 101, 102, 0, 103, 9, 10,
1075 11, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1076 263, 264, 265, 0, 13, 104, 0, 15, 0, 105,
1077 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1078 0, 109, 0, 16, 0, 0, 110, 111, 112, 0,
1079 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1080 0, 0, 117, 0, 118, 22, 0, 0, 0, 119,
1081 24, 0, 0, 120, 0, 0, 0, 121, 122, 691,
1082 235, 692, 60, 0, 0, 0, 101, 102, 0, 103,
1083 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1084 259, 260, 261, 262, 263, 264, 265, 104, 0, 15,
1085 0, 105, 106, 107, 0, 0, 0, 0, 0, 0,
1086 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1087 112, 0, 0, 0, 113, 114, 0, 0, 693, 115,
1088 116, 0, 0, 0, 117, 0, 118, 61, 0, 0,
1089 0, 119, 62, 0, 0, 120, 0, 0, -204, 121,
1090 122, 691, 694, 692, 60, 0, 0, 0, 101, 102,
1091 0, 103, 258, 259, 260, 261, 262, 263, 264, 265,
1092 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1093 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1094 0, 0, 108, 0, 0, 109, 0, 0, 0, 0,
1095 110, 111, 112, 0, 0, 0, 113, 114, 0, 0,
1096 693, 115, 116, 0, 0, 0, 117, 0, 118, 61,
1097 0, 0, 0, 119, 62, 0, 0, 120, 0, 0,
1098 -269, 121, 122, 691, 694, 100, 0, 0, 0, 0,
1099 101, 102, 0, 103, 0, 0, 0, 0, 0, 0,
1100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1102 -217, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1103 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1104 0, 0, -217, 115, 116, 0, 0, 0, 117, 0,
1105 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1106 677, 0, 100, 121, 122, 0, 694, 101, 102, 0,
1107 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1109 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1110 0, 108, 0, 0, 109, 0, 0, 0, 0, 110,
1111 111, 112, 0, 0, 0, 113, 114, 0, 0, 0,
1112 115, 116, 0, 0, 0, 117, 0, 118, 0, 0,
1113 0, 0, 119, 0, 0, 0, 120, 691, 0, 100,
1114 121, 122, 0, 678, 101, 102, 0, 103, 4, 0,
1115 -129, 5, 6, 7, 8, 0, 0, 0, 0, 9,
1116 10, 11, 0, 0, 0, 104, 0, 15, 0, 105,
1117 106, 107, 0, 0, 0, 13, 0, 14, 108, 0,
1118 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1119 0, 0, 113, 114, 16, 0, 0, 115, 116, -129,
1120 0, 0, 117, 0, 118, 0, 0, 0, -129, 119,
1121 0, 0, 0, 120, 0, 0, 22, 121, 122, 196,
1122 694, 24, -28, -28, -28, -28, 27, 0, 0, 0,
1123 -28, -28, -28, 0, 0, 0, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 197, -28, 348, -176, 0,
1125 -24, -24, -24, -24, 0, 0, -176, 0, -24, -24,
1126 -24, 5, 6, 7, 8, -28, 0, 0, 0, 9,
1127 10, 11, 0, 197, -24, 0, -176, 0, 0, 198,
1128 199, 0, 0, 0, -176, 13, 0, -28, 0, 0,
1129 0, 0, -28, -24, 0, 0, 0, -176, 0, 0,
1130 0, -176, -28, 0, 16, 0, 342, 198, 199, -20,
1131 -20, -20, -20, 0, 0, -24, 0, -20, -20, -20,
1132 -24, 0, 0, 0, 0, -176, 22, 0, 0, -176,
1133 -24, 24, 197, -20, 329, -176, 0, 5, 6, 7,
1134 8, 0, 0, -176, 0, 9, 10, 11, 0, 0,
1135 0, 0, -20, 0, 329, 0, 0, -502, -502, -502,
1136 -502, 13, 0, 14, 0, -502, -502, -502, 0, 0,
1137 0, 0, 0, 0, -20, 0, 0, 0, 0, -20,
1138 16, -502, 0, -502, -176, 0, 0, 0, -176, -20,
1139 0, 0, 329, 0, 0, -339, -339, -339, -339, 0,
1140 -502, 0, 22, -339, -339, -339, 0, 24, 0, 0,
1141 0, 0, 0, 0, 0, 100, 0, -500, 0, -339,
1142 101, 102, -502, 103, 0, 0, 0, -502, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, -502, -339, 0,
1144 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1145 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1146 -339, 0, 110, 111, 112, -339, 0, 0, 113, 114,
1147 0, 0, 0, 115, 116, -112, 100, 0, 117, 0,
1148 118, 101, 102, 0, 103, 119, 0, 0, 0, 120,
1149 0, 0, 0, 121, 122, 0, 0, 327, 0, 0,
1150 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1151 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1152 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1153 114, 0, 0, 0, 115, 116, 0, 100, 0, 117,
1154 0, 118, 101, 102, 0, 103, 119, 0, 0, 0,
1155 120, 0, 0, 0, 121, 122, 0, 0, 417, 0,
1156 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1157 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1158 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1159 113, 114, 0, 0, 0, 115, 116, 0, 100, 0,
1160 117, 0, 118, 101, 102, 0, 103, 119, 0, 0,
1161 0, 120, 0, 0, 0, 121, 122, 0, 0, 473,
1162 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1163 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1164 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1165 0, 113, 114, 0, 0, 0, 115, 116, 0, 100,
1166 0, 117, 0, 118, 101, 102, 0, 103, 119, 0,
1167 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1168 524, 0, 0, 0, 0, 104, 0, 15, 0, 105,
1169 106, 107, 0, 0, 0, 0, 0, 0, 108, 0,
1170 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1171 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1172 0, 0, 117, 0, 118, 0, 0, 0, 0, 119,
1173 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1174 0, 843, 692, 713, 6, 7, 8, 101, 102, 0,
1175 103, 9, 10, 11, 714, 0, 715, 716, 717, 718,
1176 719, 720, 721, 722, 723, 724, 725, 13, 104, 14,
1177 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1178 0, 108, 0, 0, 109, 0, 16, 0, 0, 110,
1179 111, 112, 0, 0, 0, 113, 114, 0, 0, 0,
1180 115, 116, 0, 0, 0, 117, 0, 118, 726, 0,
1181 0, 0, 119, 727, 0, 0, 120, 0, 728, 0,
1182 121, 122, 0, 579, 692, 60, 0, 0, 0, 101,
1183 102, 0, 103, 0, 0, 0, 714, 0, 715, 716,
1184 717, 718, 719, 720, 721, 722, 723, 724, 725, 0,
1185 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1186 0, 0, 0, 108, 0, 0, 109, 0, 0, 0,
1187 0, 110, 111, 112, 0, 0, 0, 113, 114, 0,
1188 100, 0, 115, 116, 0, 101, 102, 117, 103, 118,
1189 61, 0, 0, 0, 119, 62, 0, 0, 120, 0,
1190 728, 0, 121, 122, 0, 579, 104, 0, 15, 0,
1191 105, 106, 107, 0, 0, 0, 0, 0, 0, 108,
1192 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1193 0, 0, 0, 113, 114, 0, 0, 0, 115, 116,
1194 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1195 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1196 0, 490, 149, 150, 0, 151, 152, 0, 0, 0,
1197 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1198 163, 164, 165, 166, 167, 168, 169, 170, 171, 0,
1199 0, 0, 100, 5, 6, 7, 8, 101, 102, 172,
1200 103, 9, 10, 11, 5, 6, 7, 8, 0, 0,
1201 0, 0, 9, 10, 11, 0, 0, 13, 104, 14,
1202 15, 0, 105, 106, 107, 0, 0, 0, 13, 0,
1203 14, 108, 0, 174, 109, 0, 16, 0, 0, 110,
1204 111, 112, 303, 0, 0, 113, 114, 16, 0, 0,
1205 115, 116, 0, 0, 0, 117, 0, 118, 22, 0,
1206 0, 0, 119, 24, 0, 0, 120, 0, 0, 22,
1207 121, 122, 100, 5, 24, 7, 140, 101, 102, 84,
1208 103, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 13, 104, 0,
1210 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1211 0, 108, 0, 0, 109, 0, 16, 0, 0, 110,
1212 111, 112, 0, 0, 0, 113, 114, 0, 100, 0,
1213 115, 116, 0, 101, 102, 117, 103, 118, 22, 0,
1214 0, 0, 119, 24, 0, 0, 120, 0, 0, 0,
1215 121, 122, 0, 0, 104, 0, 15, 0, 105, 106,
1216 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1217 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1218 0, 113, 114, 0, 100, 0, 115, 116, 0, 101,
1219 102, 117, 103, 118, 370, 0, 0, 0, 119, 0,
1220 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1221 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1222 0, 0, 0, 108, 0, 0, 109, 0, 0, 0,
1223 0, 110, 111, 112, 0, 0, 0, 113, 114, 0,
1224 100, 0, 115, 116, 0, 101, 102, 117, 103, 118,
1225 0, 0, 0, 0, 119, 0, 0, 0, 120, 0,
1226 807, 0, 121, 122, 0, 0, 104, 0, 15, 0,
1227 105, 106, 107, 0, 0, 0, 0, 0, 0, 108,
1228 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1229 0, 0, 0, 113, 114, 0, 100, 0, 115, 116,
1230 0, 101, 102, 117, 103, 118, 0, 0, 0, 0,
1231 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1232 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1233 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1234 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1235 114, 0, 100, 0, 245, 116, 0, 101, 102, 117,
1236 103, 118, 0, 0, 0, 0, 119, 0, 0, 0,
1237 120, 0, 0, 0, 121, 122, 0, 0, 104, 0,
1238 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1239 0, 108, 0, 0, 109, 0, 0, 0, 0, 110,
1240 111, 112, 0, 0, 0, 113, 114, 0, 528, 0,
1241 247, 116, 0, 101, 102, 117, 103, 118, 0, 0,
1242 0, 0, 119, 0, 0, 0, 120, 0, 0, 0,
1243 121, 122, 0, 0, 104, 0, 15, 0, 105, 106,
1244 107, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1245 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1246 0, 113, 114, 0, 0, 0, 115, 116, 0, 0,
1247 0, 117, 0, 118, 0, 0, 0, 0, 119, 0,
1248 0, 0, 120, 0, 0, 563, 121, 122, 5, 0,
1249 7, 140, 0, 0, 0, 0, 9, 10, 11, 0,
1250 0, 0, 563, 0, 0, 5, 0, 7, 140, 0,
1251 0, 0, 13, 9, 10, 11, 0, 0, 0, 0,
1252 0, 0, 352, 0, 0, 5, 0, 7, 140, 13,
1253 0, 16, 0, 9, 10, 11, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 16, 13,
1255 0, 0, 15, 22, -454, -454, -454, 0, 24, 0,
1256 0, 0, 0, 564, -454, 0, 0, 0, 16, 0,
1257 22, -453, -453, -453, 0, 24, 0, 0, 0, 0,
1258 564, -453, 0, 0, 0, 0, 0, 0, 0, 0,
1259 22, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1260 353, -272, 4, 0, -129, 5, 6, 7, 8, 0,
1261 0, 0, 0, 9, 10, 11, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
1263 0, 14, 15, 0, 0, 5, 6, 7, 8, 0,
1264 0, 449, 0, 9, 10, 11, 0, 0, 16, 0,
1265 0, 17, 18, -129, 0, 0, 0, 0, 0, 13,
1266 0, 14, -129, 0, 19, 20, 21, 0, 0, 0,
1267 22, 0, 0, 0, 23, 24, 25, 26, 16, 4,
1268 27, -129, 5, 6, 7, 8, 0, 0, 0, 0,
1269 9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
1270 22, 0, 0, 0, 0, 24, 13, 447, 14, 0,
1271 5, 6, 7, 8, 0, 0, 449, 0, 9, 10,
1272 11, 0, 0, 0, 0, 16, 0, 0, 549, 550,
1273 -129, 0, 0, 0, 13, 0, 14, 0, 0, -129,
1274 5, 6, 7, 8, 0, 0, 0, 22, 9, 10,
1275 11, 0, 24, 16, 0, 0, 0, 27, 0, 0,
1276 0, 0, 0, 0, 13, 0, 14, 0, 5, 6,
1277 7, 8, 0, 0, 0, 22, 9, 10, 11, 0,
1278 24, 0, 0, 16, -399, 0, 0, 0, 0, 0,
1279 352, 0, 13, 5, 14, 7, 140, 0, 0, 0,
1280 0, 9, 10, 11, 0, 22, 0, 0, 0, 0,
1281 24, 16, 0, 0, 0, 632, 0, 13, 0, 0,
1282 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, 0, 22, 0, 0, 16, 0, 24, 0,
1284 0, 0, 0, 817, 0, 0, 0, 0, 0, 0,
1285 0, 0, 0, 0, 0, 0, 149, 150, 22, 151,
1286 152, 0, 0, 24, 153, 154, 155, 156, 157, 158,
1287 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1288 169, 170, 171, 0, 0, 0, 149, 150, 0, 151,
1289 152, 0, 0, 172, 153, 154, 155, 156, 157, 158,
1290 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1291 169, 170, 171, 0, 173, 0, 0, 0, 0, 0,
1292 0, 149, 150, 373, 151, 152, 0, 174, 0, 153,
1293 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1294 164, 165, 166, 167, 168, 169, 170, 171, 0, 0,
1295 0, 149, 150, 0, 151, 152, 0, 174, 172, 153,
1296 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1297 164, 165, 166, 167, 168, 169, 170, 171, 0, 0,
1298 0, 5, 0, 7, 288, 0, 0, 0, 605, 9,
1299 10, 11, 174, 5, 6, 7, 8, 0, 0, 666,
1300 0, 9, 10, 11, 0, 13, 0, 14, 0, 0,
1301 0, 0, 0, 0, 0, 0, 0, 13, 0, 14,
1302 0, 0, 174, 0, 16, 0, 0, 0, 0, 280,
1303 0, 0, 0, 0, 0, 0, 16, 0, 281, 282,
1304 5, 6, 7, 8, 0, 0, 22, 0, 9, 10,
1305 11, 24, 5, 0, 7, 140, 0, 0, 22, 0,
1306 9, 10, 11, 24, 13, 5, 14, 7, 288, 0,
1307 0, 0, 0, 9, 10, 11, 13, 0, 0, 0,
1308 0, 0, 0, 16, 0, 0, 0, 0, 0, 13,
1309 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
1310 0, 0, 0, 0, 0, 22, 0, 0, 16, 0,
1311 24, 0, 0, 0, 0, 0, 0, 22, 0, 0,
1312 0, 0, 24, 862, 0, 0, 0, 0, 0, 0,
1313 22, 0, 249, 250, 251, 24, 252, 253, 254, 255,
1314 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1315 249, 250, 251, 863, 252, 253, 254, 255, 256, 257,
1316 258, 259, 260, 261, 262, 263, 264, 265, 14, 0,
1317 0, 0, 0, 0, 0, 249, 250, 251, 489, 252,
1318 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
1319 263, 264, 265, 249, 250, 251, 917, 252, 253, 254,
1320 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1321 265, 249, 250, 251, 0, 252, 253, 254, 255, 256,
1322 257, 258, 259, 260, 261, 262, 263, 264, 265
1325 static const short yycheck
[] = { 56,
1326 57, 16, 2, 3, 19, 20, 2, 3, 23, 209,
1327 25, 26, 33, 2, 3, 83, 91, 22, 85, 24,
1328 66, 324, 223, 38, 39, 40, 24, 105, 106, 31,
1329 200, 316, 286, 345, 112, 270, 203, 36, 32, 33,
1330 223, 177, 42, 578, 281, 123, 42, 142, 177, 416,
1331 145, 95, 343, 42, 53, 54, 55, 135, 349, 74,
1332 115, 440, 67, 208, 438, 1, 71, 702, 331, 67,
1333 2, 3, 571, 71, 515, 77, 194, 9, 10, 11,
1334 672, 80, 204, 85, 3, 4, 1, 1, 623, 88,
1335 40, 9, 47, 108, 40, 1, 915, 38, 3, 31,
1336 0, 33, 40, 239, 10, 40, 30, 61, 62, 0,
1337 42, 61, 78, 280, 3, 78, 40, 83, 173, 60,
1338 83, 800, 322, 30, 78, 944, 47, 1, 83, 3,
1339 4, 146, 78, 148, 84, 3, 4, 42, 283, 214,
1340 78, 30, 199, 78, 78, 77, 409, 61, 84, 83,
1341 69, 83, 27, 85, 595, 74, 357, 172, 793, 91,
1342 78, 84, 332, 52, 79, 84, 429, 182, 183, 423,
1343 185, 186, 61, 343, 357, 33, 413, 712, 84, 349,
1344 621, 238, 419, 557, 539, 240, 61, 62, 543, 191,
1345 245, 426, 247, 195, 61, 69, 30, 876, 40, 57,
1346 74, 69, 204, 3, 4, 47, 74, 79, 80, 208,
1347 142, 286, 227, 145, 271, 337, 84, 852, 3, 341,
1348 219, 5, 340, 7, 816, 282, 241, 61, 62, 61,
1349 909, 61, 62, 588, 223, 914, 591, 916, 61, 409,
1350 376, 3, 4, 444, 299, 30, 925, 510, 78, 40,
1351 513, 40, 52, 268, 269, 79, 47, 115, 47, 191,
1352 545, 444, 194, 195, 638, 764, 765, 52, 647, 69,
1353 61, 61, 204, 67, 74, 538, 61, 62, 957, 84,
1354 3, 4, 214, 84, 283, 50, 51, 145, 30, 346,
1355 1, 369, 307, 4, 5, 6, 7, 61, 665, 10,
1356 65, 12, 13, 14, 309, 3, 4, 69, 478, 79,
1357 480, 309, 74, 83, 358, 173, 360, 28, 78, 61,
1358 62, 61, 84, 83, 3, 4, 5, 6, 7, 386,
1359 3, 4, 61, 781, 7, 337, 47, 336, 61, 341,
1360 788, 511, 877, 513, 61, 62, 69, 78, 423, 281,
1361 365, 74, 83, 61, 62, 640, 492, 30, 69, 61,
1362 354, 78, 356, 74, 421, 223, 61, 62, 357, 78,
1363 605, 69, 27, 84, 9, 30, 74, 3, 433, 52,
1364 821, 7, 240, 38, 52, 53, 54, 245, 61, 247,
1365 69, 626, 83, 408, 326, 74, 532, 3, 4, 934,
1366 935, 74, 77, 532, 30, 337, 61, 62, 340, 341,
1367 425, 70, 71, 72, 79, 3, 4, 78, 83, 656,
1368 78, 80, 676, 79, 79, 40, 52, 83, 83, 429,
1369 451, 84, 437, 429, 489, 61, 62, 61, 62, 437,
1370 440, 299, 30, 464, 440, 79, 440, 3, 4, 650,
1371 61, 7, 40, 61, 766, 61, 450, 451, 3, 4,
1372 80, 79, 3, 69, 52, 83, 7, 650, 74, 754,
1373 705, 486, 608, 61, 30, 79, 571, 572, 79, 83,
1374 27, 413, 83, 30, 416, 30, 74, 419, 655, 30,
1375 80, 38, 79, 80, 661, 40, 52, 429, 356, 357,
1376 432, 79, 80, 344, 78, 61, 62, 52, 440, 78,
1377 351, 52, 657, 534, 684, 530, 61, 662, 359, 451,
1378 61, 70, 71, 72, 778, 78, 30, 764, 765, 74,
1379 40, 80, 79, 554, 771, 772, 83, 537, 78, 533,
1380 79, 537, 61, 62, 4, 5, 6, 7, 52, 32,
1381 552, 79, 12, 13, 14, 83, 78, 61, 62, 553,
1382 554, 127, 128, 70, 71, 72, 623, 78, 28, 571,
1383 572, 565, 566, 80, 79, 433, 79, 79, 83, 646,
1384 83, 83, 61, 651, 652, 79, 444, 47, 79, 83,
1385 584, 585, 10, 451, 78, 880, 642, 643, 613, 65,
1386 78, 676, 534, 3, 4, 537, 464, 674, 623, 69,
1387 3, 4, 84, 904, 74, 906, 27, 685, 9, 79,
1388 552, 636, 554, 623, 85, 79, 38, 623, 69, 631,
1389 30, 489, 79, 38, 623, 83, 40, 30, 78, 571,
1390 572, 78, 78, 575, 646, 78, 78, 647, 951, 78,
1391 7, 647, 52, 647, 656, 712, 959, 40, 657, 52,
1392 85, 61, 85, 662, 78, 743, 723, 84, 61, 62,
1393 78, 871, 674, 30, 74, 65, 534, 65, 693, 78,
1394 78, 5, 6, 7, 70, 71, 72, 38, 12, 13,
1395 14, 623, 40, 85, 80, 52, 554, 712, 78, 631,
1396 85, 80, 80, 778, 61, 62, 30, 80, 566, 724,
1397 767, 80, 733, 645, 646, 647, 80, 78, 83, 651,
1398 652, 726, 727, 79, 656, 78, 3, 585, 83, 727,
1399 79, 78, 84, 665, 904, 80, 906, 79, 732, 733,
1400 672, 798, 674, 743, 801, 802, 80, 743, 816, 40,
1401 85, 818, 809, 685, 743, 231, 597, 598, 6, 7,
1402 601, 80, 764, 765, 12, 13, 14, 824, 244, 771,
1403 772, 839, 65, 249, 250, 40, 40, 80, 254, 255,
1404 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1405 56, 57, 650, 59, 60, 61, 62, 83, 40, 856,
1406 61, 733, 61, 61, 4, 40, 6, 7, 79, 79,
1407 867, 743, 12, 13, 14, 7, 818, 658, 659, 660,
1408 877, 40, 663, 664, 79, 79, 16, 65, 28, 831,
1409 40, 83, 764, 765, 5, 6, 7, 61, 79, 771,
1410 772, 12, 13, 14, 61, 79, 85, 47, 689, 56,
1411 57, 65, 59, 60, 61, 62, 78, 80, 915, 80,
1412 17, 79, 877, 50, 51, 52, 53, 54, 79, 69,
1413 78, 78, 78, 78, 74, 733, 79, 65, 9, 79,
1414 80, 938, 79, 79, 816, 61, 818, 944, 44, 45,
1415 46, 47, 48, 49, 50, 51, 52, 53, 54, 831,
1416 83, 79, 79, 78, 745, 746, 747, 839, 1, 78,
1417 3, 4, 388, 389, 79, 8, 9, 0, 11, 0,
1418 426, 801, 15, 332, 17, 18, 19, 20, 21, 22,
1419 23, 24, 25, 26, 27, 511, 29, 743, 31, 87,
1420 33, 34, 35, 675, 785, 289, 682, 791, 425, 42,
1421 701, 488, 45, 480, 357, 365, 684, 50, 51, 52,
1422 486, 511, 581, 56, 57, 410, 877, 513, 61, 62,
1423 939, 941, 813, 66, 877, 68, 69, 420, 575, 432,
1424 73, 74, 432, 25, 77, 562, 79, 80, 81, 82,
1425 39, 84, 41, 42, 43, 44, 45, 46, 47, 48,
1426 49, 50, 51, 52, 53, 54, 652, 848, 839, 485,
1427 836, 1, 555, 3, 4, 5, 6, 7, 8, 9,
1428 308, 11, 12, 13, 14, 15, 502, 17, 18, 19,
1429 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1430 30, 31, 32, 33, 34, 35, 532, 537, 831, 608,
1431 891, 428, 42, 428, 705, 45, 376, 47, -1, -1,
1432 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1433 -1, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1434 -1, -1, -1, 73, 74, -1, -1, 77, -1, 79,
1435 80, 81, 82, -1, 84, 42, 43, 44, 45, 46,
1436 47, 48, 49, 50, 51, 52, 53, 54, -1, -1,
1437 -1, 587, -1, 1, -1, 3, 4, 5, 6, 7,
1438 8, 9, -1, 11, 12, 13, 14, 15, 604, 17,
1439 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1440 28, 29, 30, 31, -1, 33, 34, 35, -1, -1,
1441 -1, -1, -1, -1, 42, -1, -1, 45, -1, 47,
1442 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1443 -1, -1, -1, 61, 62, -1, -1, -1, 66, -1,
1444 68, 69, -1, -1, -1, 73, 74, -1, -1, 77,
1445 -1, 79, 80, 81, 82, -1, 84, 46, 47, 48,
1446 49, 50, 51, 52, 53, 54, 682, -1, -1, 1,
1447 -1, 3, 4, 5, 6, 7, -1, -1, 10, -1,
1448 12, 13, 14, -1, -1, -1, 702, -1, -1, -1,
1449 -1, -1, -1, 709, -1, -1, 28, -1, 30, -1,
1450 -1, -1, -1, 719, -1, -1, 1, -1, 3, 4,
1451 5, 6, 7, 8, 9, 47, 11, 12, 13, 14,
1452 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1453 25, 26, 27, 28, 29, 30, 31, 69, 33, 34,
1454 35, -1, 74, 759, -1, -1, 78, 42, -1, -1,
1455 45, -1, 47, -1, -1, 50, 51, 52, -1, -1,
1456 -1, 56, 57, -1, -1, 781, 61, 62, 784, -1,
1457 -1, 66, 788, 68, 69, 791, -1, 793, 73, 74,
1458 -1, -1, 77, -1, 79, -1, 81, 82, -1, 84,
1459 -1, -1, -1, 1, -1, 3, 4, -1, -1, -1,
1460 8, 9, -1, 11, -1, -1, -1, 15, -1, 17,
1461 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1462 -1, 29, 838, 31, -1, 33, 34, 35, -1, -1,
1463 -1, -1, -1, 849, 42, -1, 852, 45, -1, -1,
1464 -1, -1, 50, 51, 52, -1, 862, -1, 56, 57,
1465 -1, -1, -1, 61, 62, -1, -1, -1, 66, -1,
1466 68, 69, -1, -1, -1, 73, 74, -1, -1, 77,
1467 -1, 79, -1, 81, 82, 1, 84, 3, 4, -1,
1468 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1469 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1470 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1471 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1472 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1473 56, 57, -1, -1, -1, 61, 62, -1, -1, -1,
1474 66, -1, 68, 69, -1, -1, -1, 73, 74, -1,
1475 -1, 77, -1, 79, -1, 81, 82, 1, 84, 3,
1476 4, -1, 6, 7, 8, 9, -1, 11, 12, 13,
1477 14, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1478 52, 53, 54, -1, 28, 29, -1, 31, -1, 33,
1479 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1480 -1, 45, -1, 47, -1, -1, 50, 51, 52, -1,
1481 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1482 -1, -1, 66, -1, 68, 69, -1, -1, -1, 73,
1483 74, -1, -1, 77, -1, -1, -1, 81, 82, 1,
1484 84, 3, 4, -1, -1, -1, 8, 9, -1, 11,
1485 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1486 48, 49, 50, 51, 52, 53, 54, 29, -1, 31,
1487 -1, 33, 34, 35, -1, -1, -1, -1, -1, -1,
1488 42, -1, -1, 45, -1, -1, -1, -1, 50, 51,
1489 52, -1, -1, -1, 56, 57, -1, -1, 60, 61,
1490 62, -1, -1, -1, 66, -1, 68, 69, -1, -1,
1491 -1, 73, 74, -1, -1, 77, -1, -1, 80, 81,
1492 82, 1, 84, 3, 4, -1, -1, -1, 8, 9,
1493 -1, 11, 47, 48, 49, 50, 51, 52, 53, 54,
1494 -1, -1, -1, -1, -1, -1, -1, -1, -1, 29,
1495 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1496 -1, -1, 42, -1, -1, 45, -1, -1, -1, -1,
1497 50, 51, 52, -1, -1, -1, 56, 57, -1, -1,
1498 60, 61, 62, -1, -1, -1, 66, -1, 68, 69,
1499 -1, -1, -1, 73, 74, -1, -1, 77, -1, -1,
1500 80, 81, 82, 1, 84, 3, -1, -1, -1, -1,
1501 8, 9, -1, 11, -1, -1, -1, -1, -1, -1,
1502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1503 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1504 38, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1505 -1, -1, 50, 51, 52, -1, -1, -1, 56, 57,
1506 -1, -1, 60, 61, 62, -1, -1, -1, 66, -1,
1507 68, -1, -1, -1, -1, 73, -1, -1, -1, 77,
1508 1, -1, 3, 81, 82, -1, 84, 8, 9, -1,
1509 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1510 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
1511 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1512 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1513 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1514 61, 62, -1, -1, -1, 66, -1, 68, -1, -1,
1515 -1, -1, 73, -1, -1, -1, 77, 1, -1, 3,
1516 81, 82, -1, 84, 8, 9, -1, 11, 1, -1,
1517 3, 4, 5, 6, 7, -1, -1, -1, -1, 12,
1518 13, 14, -1, -1, -1, 29, -1, 31, -1, 33,
1519 34, 35, -1, -1, -1, 28, -1, 30, 42, -1,
1520 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1521 -1, -1, 56, 57, 47, -1, -1, 61, 62, 52,
1522 -1, -1, 66, -1, 68, -1, -1, -1, 61, 73,
1523 -1, -1, -1, 77, -1, -1, 69, 81, 82, 1,
1524 84, 74, 4, 5, 6, 7, 79, -1, -1, -1,
1525 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1526 -1, -1, -1, -1, -1, 27, 28, 1, 30, -1,
1527 4, 5, 6, 7, -1, -1, 38, -1, 12, 13,
1528 14, 4, 5, 6, 7, 47, -1, -1, -1, 12,
1529 13, 14, -1, 27, 28, -1, 30, -1, -1, 61,
1530 62, -1, -1, -1, 38, 28, -1, 69, -1, -1,
1531 -1, -1, 74, 47, -1, -1, -1, 79, -1, -1,
1532 -1, 83, 84, -1, 47, -1, 1, 61, 62, 4,
1533 5, 6, 7, -1, -1, 69, -1, 12, 13, 14,
1534 74, -1, -1, -1, -1, 79, 69, -1, -1, 83,
1535 84, 74, 27, 28, 1, 30, -1, 4, 5, 6,
1536 7, -1, -1, 38, -1, 12, 13, 14, -1, -1,
1537 -1, -1, 47, -1, 1, -1, -1, 4, 5, 6,
1538 7, 28, -1, 30, -1, 12, 13, 14, -1, -1,
1539 -1, -1, -1, -1, 69, -1, -1, -1, -1, 74,
1540 47, 28, -1, 30, 79, -1, -1, -1, 83, 84,
1541 -1, -1, 1, -1, -1, 4, 5, 6, 7, -1,
1542 47, -1, 69, 12, 13, 14, -1, 74, -1, -1,
1543 -1, -1, -1, -1, -1, 3, -1, 84, -1, 28,
1544 8, 9, 69, 11, -1, -1, -1, 74, -1, -1,
1545 -1, -1, -1, -1, -1, -1, -1, 84, 47, -1,
1546 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1547 -1, -1, -1, -1, 42, -1, -1, 45, -1, -1,
1548 69, -1, 50, 51, 52, 74, -1, -1, 56, 57,
1549 -1, -1, -1, 61, 62, 84, 3, -1, 66, -1,
1550 68, 8, 9, -1, 11, 73, -1, -1, -1, 77,
1551 -1, -1, -1, 81, 82, -1, -1, 85, -1, -1,
1552 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1553 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1554 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1555 57, -1, -1, -1, 61, 62, -1, 3, -1, 66,
1556 -1, 68, 8, 9, -1, 11, 73, -1, -1, -1,
1557 77, -1, -1, -1, 81, 82, -1, -1, 85, -1,
1558 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1559 -1, -1, -1, -1, -1, -1, 42, -1, -1, 45,
1560 -1, -1, -1, -1, 50, 51, 52, -1, -1, -1,
1561 56, 57, -1, -1, -1, 61, 62, -1, 3, -1,
1562 66, -1, 68, 8, 9, -1, 11, 73, -1, -1,
1563 -1, 77, -1, -1, -1, 81, 82, -1, -1, 85,
1564 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1565 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1566 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1567 -1, 56, 57, -1, -1, -1, 61, 62, -1, 3,
1568 -1, 66, -1, 68, 8, 9, -1, 11, 73, -1,
1569 -1, -1, 77, -1, -1, -1, 81, 82, -1, -1,
1570 85, -1, -1, -1, -1, 29, -1, 31, -1, 33,
1571 34, 35, -1, -1, -1, -1, -1, -1, 42, -1,
1572 -1, 45, -1, -1, -1, -1, 50, 51, 52, -1,
1573 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1,
1574 -1, -1, 66, -1, 68, -1, -1, -1, -1, 73,
1575 -1, -1, -1, 77, -1, -1, -1, 81, 82, -1,
1576 -1, 85, 3, 4, 5, 6, 7, 8, 9, -1,
1577 11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
1578 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1579 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1580 -1, 42, -1, -1, 45, -1, 47, -1, -1, 50,
1581 51, 52, -1, -1, -1, 56, 57, -1, -1, -1,
1582 61, 62, -1, -1, -1, 66, -1, 68, 69, -1,
1583 -1, -1, 73, 74, -1, -1, 77, -1, 79, -1,
1584 81, 82, -1, 84, 3, 4, -1, -1, -1, 8,
1585 9, -1, 11, -1, -1, -1, 15, -1, 17, 18,
1586 19, 20, 21, 22, 23, 24, 25, 26, 27, -1,
1587 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1588 -1, -1, -1, 42, -1, -1, 45, -1, -1, -1,
1589 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1590 3, -1, 61, 62, -1, 8, 9, 66, 11, 68,
1591 69, -1, -1, -1, 73, 74, -1, -1, 77, -1,
1592 79, -1, 81, 82, -1, 84, 29, -1, 31, -1,
1593 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1594 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1595 -1, -1, -1, 56, 57, -1, -1, -1, 61, 62,
1596 -1, -1, -1, 66, -1, 68, -1, -1, -1, -1,
1597 73, -1, -1, -1, 77, -1, -1, -1, 81, 82,
1598 -1, 84, 3, 4, -1, 6, 7, -1, -1, -1,
1599 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1600 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1601 -1, -1, 3, 4, 5, 6, 7, 8, 9, 40,
1602 11, 12, 13, 14, 4, 5, 6, 7, -1, -1,
1603 -1, -1, 12, 13, 14, -1, -1, 28, 29, 30,
1604 31, -1, 33, 34, 35, -1, -1, -1, 28, -1,
1605 30, 42, -1, 74, 45, -1, 47, -1, -1, 50,
1606 51, 52, 83, -1, -1, 56, 57, 47, -1, -1,
1607 61, 62, -1, -1, -1, 66, -1, 68, 69, -1,
1608 -1, -1, 73, 74, -1, -1, 77, -1, -1, 69,
1609 81, 82, 3, 4, 74, 6, 7, 8, 9, 79,
1610 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1611 -1, -1, -1, -1, -1, -1, -1, 28, 29, -1,
1612 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1613 -1, 42, -1, -1, 45, -1, 47, -1, -1, 50,
1614 51, 52, -1, -1, -1, 56, 57, -1, 3, -1,
1615 61, 62, -1, 8, 9, 66, 11, 68, 69, -1,
1616 -1, -1, 73, 74, -1, -1, 77, -1, -1, -1,
1617 81, 82, -1, -1, 29, -1, 31, -1, 33, 34,
1618 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1619 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1620 -1, 56, 57, -1, 3, -1, 61, 62, -1, 8,
1621 9, 66, 11, 68, 69, -1, -1, -1, 73, -1,
1622 -1, -1, 77, -1, -1, -1, 81, 82, -1, -1,
1623 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1624 -1, -1, -1, 42, -1, -1, 45, -1, -1, -1,
1625 -1, 50, 51, 52, -1, -1, -1, 56, 57, -1,
1626 3, -1, 61, 62, -1, 8, 9, 66, 11, 68,
1627 -1, -1, -1, -1, 73, -1, -1, -1, 77, -1,
1628 79, -1, 81, 82, -1, -1, 29, -1, 31, -1,
1629 33, 34, 35, -1, -1, -1, -1, -1, -1, 42,
1630 -1, -1, 45, -1, -1, -1, -1, 50, 51, 52,
1631 -1, -1, -1, 56, 57, -1, 3, -1, 61, 62,
1632 -1, 8, 9, 66, 11, 68, -1, -1, -1, -1,
1633 73, -1, -1, -1, 77, -1, -1, -1, 81, 82,
1634 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1635 -1, -1, -1, -1, -1, 42, -1, -1, 45, -1,
1636 -1, -1, -1, 50, 51, 52, -1, -1, -1, 56,
1637 57, -1, 3, -1, 61, 62, -1, 8, 9, 66,
1638 11, 68, -1, -1, -1, -1, 73, -1, -1, -1,
1639 77, -1, -1, -1, 81, 82, -1, -1, 29, -1,
1640 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1641 -1, 42, -1, -1, 45, -1, -1, -1, -1, 50,
1642 51, 52, -1, -1, -1, 56, 57, -1, 3, -1,
1643 61, 62, -1, 8, 9, 66, 11, 68, -1, -1,
1644 -1, -1, 73, -1, -1, -1, 77, -1, -1, -1,
1645 81, 82, -1, -1, 29, -1, 31, -1, 33, 34,
1646 35, -1, -1, -1, -1, -1, -1, 42, -1, -1,
1647 45, -1, -1, -1, -1, 50, 51, 52, -1, -1,
1648 -1, 56, 57, -1, -1, -1, 61, 62, -1, -1,
1649 -1, 66, -1, 68, -1, -1, -1, -1, 73, -1,
1650 -1, -1, 77, -1, -1, 1, 81, 82, 4, -1,
1651 6, 7, -1, -1, -1, -1, 12, 13, 14, -1,
1652 -1, -1, 1, -1, -1, 4, -1, 6, 7, -1,
1653 -1, -1, 28, 12, 13, 14, -1, -1, -1, -1,
1654 -1, -1, 1, -1, -1, 4, -1, 6, 7, 28,
1655 -1, 47, -1, 12, 13, 14, -1, -1, -1, -1,
1656 -1, -1, -1, -1, -1, -1, -1, -1, 47, 28,
1657 -1, -1, 31, 69, 70, 71, 72, -1, 74, -1,
1658 -1, -1, -1, 79, 80, -1, -1, -1, 47, -1,
1659 69, 70, 71, 72, -1, 74, -1, -1, -1, -1,
1660 79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
1661 69, -1, -1, -1, -1, 74, -1, -1, -1, -1,
1662 79, 80, 1, -1, 3, 4, 5, 6, 7, -1,
1663 -1, -1, -1, 12, 13, 14, -1, -1, -1, -1,
1664 -1, -1, -1, -1, -1, -1, -1, -1, 27, 28,
1665 -1, 30, 31, -1, -1, 4, 5, 6, 7, -1,
1666 -1, 10, -1, 12, 13, 14, -1, -1, 47, -1,
1667 -1, 50, 51, 52, -1, -1, -1, -1, -1, 28,
1668 -1, 30, 61, -1, 63, 64, 65, -1, -1, -1,
1669 69, -1, -1, -1, 73, 74, 75, 76, 47, 1,
1670 79, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1671 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1672 69, -1, -1, -1, -1, 74, 28, 1, 30, -1,
1673 4, 5, 6, 7, -1, -1, 10, -1, 12, 13,
1674 14, -1, -1, -1, -1, 47, -1, -1, 50, 51,
1675 52, -1, -1, -1, 28, -1, 30, -1, -1, 61,
1676 4, 5, 6, 7, -1, -1, -1, 69, 12, 13,
1677 14, -1, 74, 47, -1, -1, -1, 79, -1, -1,
1678 -1, -1, -1, -1, 28, -1, 30, -1, 4, 5,
1679 6, 7, -1, -1, -1, 69, 12, 13, 14, -1,
1680 74, -1, -1, 47, 78, -1, -1, -1, -1, -1,
1681 1, -1, 28, 4, 30, 6, 7, -1, -1, -1,
1682 -1, 12, 13, 14, -1, 69, -1, -1, -1, -1,
1683 74, 47, -1, -1, -1, 79, -1, 28, -1, -1,
1684 31, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1685 -1, -1, -1, 69, -1, -1, 47, -1, 74, -1,
1686 -1, -1, -1, 79, -1, -1, -1, -1, -1, -1,
1687 -1, -1, -1, -1, -1, -1, 3, 4, 69, 6,
1688 7, -1, -1, 74, 11, 12, 13, 14, 15, 16,
1689 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1690 27, 28, 29, -1, -1, -1, 3, 4, -1, 6,
1691 7, -1, -1, 40, 11, 12, 13, 14, 15, 16,
1692 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1693 27, 28, 29, -1, 61, -1, -1, -1, -1, -1,
1694 -1, 3, 4, 40, 6, 7, -1, 74, -1, 11,
1695 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1696 22, 23, 24, 25, 26, 27, 28, 29, -1, -1,
1697 -1, 3, 4, -1, 6, 7, -1, 74, 40, 11,
1698 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1699 22, 23, 24, 25, 26, 27, 28, 29, -1, -1,
1700 -1, 4, -1, 6, 7, -1, -1, -1, 40, 12,
1701 13, 14, 74, 4, 5, 6, 7, -1, -1, 10,
1702 -1, 12, 13, 14, -1, 28, -1, 30, -1, -1,
1703 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
1704 -1, -1, 74, -1, 47, -1, -1, -1, -1, 52,
1705 -1, -1, -1, -1, -1, -1, 47, -1, 61, 62,
1706 4, 5, 6, 7, -1, -1, 69, -1, 12, 13,
1707 14, 74, 4, -1, 6, 7, -1, -1, 69, -1,
1708 12, 13, 14, 74, 28, 4, 30, 6, 7, -1,
1709 -1, -1, -1, 12, 13, 14, 28, -1, -1, -1,
1710 -1, -1, -1, 47, -1, -1, -1, -1, -1, 28,
1711 -1, -1, -1, -1, -1, 47, -1, -1, -1, -1,
1712 -1, -1, -1, -1, -1, 69, -1, -1, 47, -1,
1713 74, -1, -1, -1, -1, -1, -1, 69, -1, -1,
1714 -1, -1, 74, 10, -1, -1, -1, -1, -1, -1,
1715 69, -1, 37, 38, 39, 74, 41, 42, 43, 44,
1716 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1717 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1718 47, 48, 49, 50, 51, 52, 53, 54, 30, -1,
1719 -1, -1, -1, -1, -1, 37, 38, 39, 83, 41,
1720 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1721 52, 53, 54, 37, 38, 39, 40, 41, 42, 43,
1722 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1723 54, 37, 38, 39, -1, 41, 42, 43, 44, 45,
1724 46, 47, 48, 49, 50, 51, 52, 53, 54
1726 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1727 #line 3 "/usr/lib/bison.simple"
1728 /* This file comes from bison-1.27. */
1730 /* Skeleton output parser for bison,
1731 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1733 This program is free software; you can redistribute it and/or modify
1734 it under the terms of the GNU General Public License as published by
1735 the Free Software Foundation; either version 2, or (at your option)
1738 This program is distributed in the hope that it will be useful,
1739 but WITHOUT ANY WARRANTY; without even the implied warranty of
1740 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1741 GNU General Public License for more details.
1743 You should have received a copy of the GNU General Public License
1744 along with this program; if not, write to the Free Software
1745 Foundation, Inc., 59 Temple Place - Suite 330,
1746 Boston, MA 02111-1307, USA. */
1748 /* As a special exception, when this file is copied by Bison into a
1749 Bison output file, you may use that output file without restriction.
1750 This special exception was added by the Free Software Foundation
1751 in version 1.24 of Bison. */
1753 /* This is the parser code that is written into each bison parser
1754 when the %semantic_parser declaration is not specified in the grammar.
1755 It was written by Richard Stallman by simplifying the hairy parser
1756 used when %semantic_parser is specified. */
1758 #ifndef YYSTACK_USE_ALLOCA
1760 #define YYSTACK_USE_ALLOCA
1761 #else /* alloca not defined */
1763 #define YYSTACK_USE_ALLOCA
1764 #define alloca __builtin_alloca
1765 #else /* not GNU C. */
1766 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1767 #define YYSTACK_USE_ALLOCA
1769 #else /* not sparc */
1770 /* We think this test detects Watcom and Microsoft C. */
1771 /* This used to test MSDOS, but that is a bad idea
1772 since that symbol is in the user namespace. */
1773 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1774 #if 0 /* No need for malloc.h, which pollutes the namespace;
1775 instead, just don't use alloca. */
1778 #else /* not MSDOS, or __TURBOC__ */
1780 /* I don't know what this was needed for, but it pollutes the namespace.
1781 So I turned it off. rms, 2 May 1997. */
1782 /* #include <malloc.h> */
1784 #define YYSTACK_USE_ALLOCA
1785 #else /* not MSDOS, or __TURBOC__, or _AIX */
1787 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1788 and on HPUX 10. Eventually we can turn this on. */
1789 #define YYSTACK_USE_ALLOCA
1790 #define alloca __builtin_alloca
1793 #endif /* not _AIX */
1794 #endif /* not MSDOS, or __TURBOC__ */
1795 #endif /* not sparc */
1796 #endif /* not GNU C */
1797 #endif /* alloca not defined */
1798 #endif /* YYSTACK_USE_ALLOCA not defined */
1800 #ifdef YYSTACK_USE_ALLOCA
1801 #define YYSTACK_ALLOC alloca
1803 #define YYSTACK_ALLOC malloc
1806 /* Note: there must be only one dollar sign in this file.
1807 It is replaced by the list of actions, each action
1808 as one case of the switch. */
1810 #define yyerrok (yyerrstatus = 0)
1811 #define yyclearin (yychar = YYEMPTY)
1814 #define YYACCEPT goto yyacceptlab
1815 #define YYABORT goto yyabortlab
1816 #define YYERROR goto yyerrlab1
1817 /* Like YYERROR except do call yyerror.
1818 This remains here temporarily to ease the
1819 transition to the new meaning of YYERROR, for GCC.
1820 Once GCC version 2 has supplanted version 1, this can go. */
1821 #define YYFAIL goto yyerrlab
1822 #define YYRECOVERING() (!!yyerrstatus)
1823 #define YYBACKUP(token, value) \
1825 if (yychar == YYEMPTY && yylen == 1) \
1826 { yychar = (token), yylval = (value); \
1827 yychar1 = YYTRANSLATE (yychar); \
1832 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1836 #define YYERRCODE 256
1839 #define YYLEX yylex()
1845 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1847 #define YYLEX yylex(&yylval, &yylloc)
1849 #else /* not YYLSP_NEEDED */
1851 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1853 #define YYLEX yylex(&yylval)
1855 #endif /* not YYLSP_NEEDED */
1858 /* If nonreentrant, generate the variables here */
1862 int yychar
; /* the lookahead symbol */
1863 YYSTYPE yylval
; /* the semantic value of the */
1864 /* lookahead symbol */
1867 YYLTYPE yylloc
; /* location data for the lookahead */
1871 int yynerrs
; /* number of parse errors so far */
1872 #endif /* not YYPURE */
1875 int yydebug
; /* nonzero means print parse trace */
1876 /* Since this is uninitialized, it does not stop multiple parsers
1880 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1883 #define YYINITDEPTH 200
1886 /* YYMAXDEPTH is the maximum size the stacks can grow to
1887 (effective only if the built-in stack extension method is used). */
1894 #define YYMAXDEPTH 10000
1897 /* Define __yy_memcpy. Note that the size argument
1898 should be passed with type unsigned int, because that is what the non-GCC
1899 definitions require. With GCC, __builtin_memcpy takes an arg
1900 of type size_t, but it can handle unsigned int. */
1902 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1903 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1904 #else /* not GNU C or C++ */
1907 /* This is the most reliable way to avoid incompatibilities
1908 in available built-in functions on various systems. */
1910 __yy_memcpy (to
, from
, count
)
1915 register char *f
= from
;
1916 register char *t
= to
;
1917 register int i
= count
;
1923 #else /* __cplusplus */
1925 /* This is the most reliable way to avoid incompatibilities
1926 in available built-in functions on various systems. */
1928 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1930 register char *t
= to
;
1931 register char *f
= from
;
1932 register int i
= count
;
1941 #line 216 "/usr/lib/bison.simple"
1943 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1944 into yyparse. The argument should have type void *.
1945 It should actually point to an object.
1946 Grammar actions can access the variable by casting it
1947 to the proper pointer type. */
1949 #ifdef YYPARSE_PARAM
1951 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1952 #define YYPARSE_PARAM_DECL
1953 #else /* not __cplusplus */
1954 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1955 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1956 #endif /* not __cplusplus */
1957 #else /* not YYPARSE_PARAM */
1958 #define YYPARSE_PARAM_ARG
1959 #define YYPARSE_PARAM_DECL
1960 #endif /* not YYPARSE_PARAM */
1962 /* Prevent warning if -Wstrict-prototypes. */
1964 #ifdef YYPARSE_PARAM
1965 int yyparse (void *);
1972 yyparse(YYPARSE_PARAM_ARG
)
1975 register int yystate
;
1977 register short *yyssp
;
1978 register YYSTYPE
*yyvsp
;
1979 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1980 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1982 short yyssa
[YYINITDEPTH
]; /* the state stack */
1983 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1985 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1986 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1989 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1990 YYLTYPE
*yyls
= yylsa
;
1993 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1995 #define YYPOPSTACK (yyvsp--, yyssp--)
1998 int yystacksize
= YYINITDEPTH
;
1999 int yyfree_stacks
= 0;
2010 YYSTYPE yyval
; /* the variable used to return */
2011 /* semantic values from the action */
2018 fprintf(stderr
, "Starting parse\n");
2024 yychar
= YYEMPTY
; /* Cause a token to be read. */
2026 /* Initialize stack pointers.
2027 Waste one element of value and location stack
2028 so that they stay on the same level as the state stack.
2029 The wasted elements are never initialized. */
2037 /* Push a new state, which is found in yystate . */
2038 /* In all cases, when you get here, the value and location stacks
2039 have just been pushed. so pushing a state here evens the stacks. */
2044 if (yyssp
>= yyss
+ yystacksize
- 1)
2046 /* Give user a chance to reallocate the stack */
2047 /* Use copies of these so that the &'s don't force the real ones into memory. */
2048 YYSTYPE
*yyvs1
= yyvs
;
2049 short *yyss1
= yyss
;
2051 YYLTYPE
*yyls1
= yyls
;
2054 /* Get the current used size of the three stacks, in elements. */
2055 int size
= yyssp
- yyss
+ 1;
2058 /* Each stack pointer address is followed by the size of
2059 the data in use in that stack, in bytes. */
2061 /* This used to be a conditional around just the two extra args,
2062 but that might be undefined if yyoverflow is a macro. */
2063 yyoverflow("parser stack overflow",
2064 &yyss1
, size
* sizeof (*yyssp
),
2065 &yyvs1
, size
* sizeof (*yyvsp
),
2066 &yyls1
, size
* sizeof (*yylsp
),
2069 yyoverflow("parser stack overflow",
2070 &yyss1
, size
* sizeof (*yyssp
),
2071 &yyvs1
, size
* sizeof (*yyvsp
),
2075 yyss
= yyss1
; yyvs
= yyvs1
;
2079 #else /* no yyoverflow */
2080 /* Extend the stack our own way. */
2081 if (yystacksize
>= YYMAXDEPTH
)
2083 yyerror("parser stack overflow");
2095 if (yystacksize
> YYMAXDEPTH
)
2096 yystacksize
= YYMAXDEPTH
;
2097 #ifndef YYSTACK_USE_ALLOCA
2100 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
2101 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
2102 size
* (unsigned int) sizeof (*yyssp
));
2103 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
2104 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
2105 size
* (unsigned int) sizeof (*yyvsp
));
2107 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
2108 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
2109 size
* (unsigned int) sizeof (*yylsp
));
2111 #endif /* no yyoverflow */
2113 yyssp
= yyss
+ size
- 1;
2114 yyvsp
= yyvs
+ size
- 1;
2116 yylsp
= yyls
+ size
- 1;
2121 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2124 if (yyssp
>= yyss
+ yystacksize
- 1)
2130 fprintf(stderr
, "Entering state %d\n", yystate
);
2136 /* Do appropriate processing given the current state. */
2137 /* Read a lookahead token if we need one and don't already have one. */
2140 /* First try to decide what to do without reference to lookahead token. */
2142 yyn
= yypact
[yystate
];
2146 /* Not known => get a lookahead token if don't already have one. */
2148 /* yychar is either YYEMPTY or YYEOF
2149 or a valid token in external form. */
2151 if (yychar
== YYEMPTY
)
2155 fprintf(stderr
, "Reading a token: ");
2160 /* Convert token to internal form (in yychar1) for indexing tables with */
2162 if (yychar
<= 0) /* This means end of input. */
2165 yychar
= YYEOF
; /* Don't call YYLEX any more */
2169 fprintf(stderr
, "Now at end of input.\n");
2174 yychar1
= YYTRANSLATE(yychar
);
2179 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2180 /* Give the individual parser a way to print the precise meaning
2181 of a token, for further debugging info. */
2183 YYPRINT (stderr
, yychar
, yylval
);
2185 fprintf (stderr
, ")\n");
2191 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2196 /* yyn is what to do for this token type in this state.
2197 Negative => reduce, -yyn is rule number.
2198 Positive => shift, yyn is new state.
2199 New state is final state => don't bother to shift,
2200 just return success.
2201 0, or most negative number => error. */
2216 /* Shift the lookahead token. */
2220 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2223 /* Discard the token being shifted unless it is eof. */
2224 if (yychar
!= YYEOF
)
2232 /* count tokens shifted since error; after three, turn off error status. */
2233 if (yyerrstatus
) yyerrstatus
--;
2238 /* Do the default action for the current state. */
2241 yyn
= yydefact
[yystate
];
2245 /* Do a reduction. yyn is the number of a rule to reduce with. */
2249 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2256 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2259 /* Print the symbols being reduced, and their result. */
2260 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2261 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2262 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2270 #line 237 "objc-parse.y"
2272 pedwarn ("ANSI C forbids an empty source file");
2277 #line 242 "objc-parse.y"
2279 /* In case there were missing closebraces,
2280 get us back to the global binding level. */
2281 while (! global_bindings_p ())
2287 #line 256 "objc-parse.y"
2288 {yyval
.ttype
= NULL_TREE
; ;
2291 #line 257 "objc-parse.y"
2292 {yyval
.ttype
= NULL_TREE
; ;
2295 #line 265 "objc-parse.y"
2296 { STRIP_NOPS (yyvsp
[-2].ttype
);
2297 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2298 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2299 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2300 assemble_asm (yyvsp
[-2].ttype
);
2302 error ("argument of `asm' is not a constant string"); ;
2305 #line 273 "objc-parse.y"
2306 { pedantic
= yyvsp
[-1].itype
; ;
2309 #line 278 "objc-parse.y"
2311 error ("ANSI C forbids data definition with no type or storage class");
2312 else if (!flag_traditional
)
2313 warning ("data definition has no type or storage class");
2315 current_declspecs
= TREE_VALUE (declspec_stack
);
2316 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2317 declspec_stack
= TREE_CHAIN (declspec_stack
);
2318 resume_momentary (yyvsp
[-2].itype
); ;
2321 #line 288 "objc-parse.y"
2322 { current_declspecs
= TREE_VALUE (declspec_stack
);
2323 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2324 declspec_stack
= TREE_CHAIN (declspec_stack
);
2325 resume_momentary (yyvsp
[-2].itype
); ;
2328 #line 293 "objc-parse.y"
2329 { current_declspecs
= TREE_VALUE (declspec_stack
);
2330 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2331 declspec_stack
= TREE_CHAIN (declspec_stack
);
2332 resume_momentary (yyvsp
[-2].itype
); ;
2335 #line 298 "objc-parse.y"
2336 { pedwarn ("empty declaration"); ;
2339 #line 300 "objc-parse.y"
2340 { shadow_tag (yyvsp
[-1].ttype
); ;
2343 #line 304 "objc-parse.y"
2345 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2348 #line 310 "objc-parse.y"
2349 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2350 prefix_attributes
, NULL_TREE
, 0))
2352 reinit_parse_for_function (); ;
2355 #line 315 "objc-parse.y"
2356 { store_parm_decls (); ;
2359 #line 317 "objc-parse.y"
2360 { finish_function (0);
2361 current_declspecs
= TREE_VALUE (declspec_stack
);
2362 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2363 declspec_stack
= TREE_CHAIN (declspec_stack
);
2364 resume_momentary (yyvsp
[-5].itype
); ;
2367 #line 323 "objc-parse.y"
2368 { current_declspecs
= TREE_VALUE (declspec_stack
);
2369 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2370 declspec_stack
= TREE_CHAIN (declspec_stack
);
2371 resume_momentary (yyvsp
[-2].itype
); ;
2374 #line 328 "objc-parse.y"
2375 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2376 prefix_attributes
, NULL_TREE
, 0))
2378 reinit_parse_for_function (); ;
2381 #line 333 "objc-parse.y"
2382 { store_parm_decls (); ;
2385 #line 335 "objc-parse.y"
2386 { finish_function (0);
2387 current_declspecs
= TREE_VALUE (declspec_stack
);
2388 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2389 declspec_stack
= TREE_CHAIN (declspec_stack
);
2390 resume_momentary (yyvsp
[-5].itype
); ;
2393 #line 341 "objc-parse.y"
2394 { current_declspecs
= TREE_VALUE (declspec_stack
);
2395 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2396 declspec_stack
= TREE_CHAIN (declspec_stack
);
2397 resume_momentary (yyvsp
[-2].itype
); ;
2400 #line 346 "objc-parse.y"
2401 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2402 prefix_attributes
, NULL_TREE
, 0))
2404 reinit_parse_for_function (); ;
2407 #line 351 "objc-parse.y"
2408 { store_parm_decls (); ;
2411 #line 353 "objc-parse.y"
2412 { finish_function (0);
2413 current_declspecs
= TREE_VALUE (declspec_stack
);
2414 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2415 declspec_stack
= TREE_CHAIN (declspec_stack
);
2416 resume_momentary (yyvsp
[-5].itype
); ;
2419 #line 359 "objc-parse.y"
2420 { current_declspecs
= TREE_VALUE (declspec_stack
);
2421 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2422 declspec_stack
= TREE_CHAIN (declspec_stack
);
2423 resume_momentary (yyvsp
[-2].itype
); ;
2426 #line 373 "objc-parse.y"
2427 { yyval
.code
= ADDR_EXPR
; ;
2430 #line 375 "objc-parse.y"
2431 { yyval
.code
= NEGATE_EXPR
; ;
2434 #line 377 "objc-parse.y"
2435 { yyval
.code
= CONVERT_EXPR
; ;
2438 #line 379 "objc-parse.y"
2439 { yyval
.code
= PREINCREMENT_EXPR
; ;
2442 #line 381 "objc-parse.y"
2443 { yyval
.code
= PREDECREMENT_EXPR
; ;
2446 #line 383 "objc-parse.y"
2447 { yyval
.code
= BIT_NOT_EXPR
; ;
2450 #line 385 "objc-parse.y"
2451 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2454 #line 389 "objc-parse.y"
2455 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2458 #line 394 "objc-parse.y"
2459 { yyval
.ttype
= NULL_TREE
; ;
2462 #line 400 "objc-parse.y"
2463 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2466 #line 402 "objc-parse.y"
2467 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2470 #line 408 "objc-parse.y"
2471 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2474 #line 411 "objc-parse.y"
2475 { yyval
.ttype
= yyvsp
[0].ttype
;
2476 pedantic
= yyvsp
[-1].itype
; ;
2479 #line 414 "objc-parse.y"
2480 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2481 overflow_warning (yyval
.ttype
); ;
2484 #line 418 "objc-parse.y"
2485 { tree label
= lookup_label (yyvsp
[0].ttype
);
2487 pedwarn ("ANSI C forbids `&&'");
2489 yyval
.ttype
= null_pointer_node
;
2492 TREE_USED (label
) = 1;
2493 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2494 TREE_CONSTANT (yyval
.ttype
) = 1;
2499 #line 446 "objc-parse.y"
2500 { skip_evaluation
--;
2501 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2502 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2503 error ("`sizeof' applied to a bit-field");
2504 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2507 #line 452 "objc-parse.y"
2508 { skip_evaluation
--;
2509 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2512 #line 455 "objc-parse.y"
2513 { skip_evaluation
--;
2514 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2517 #line 458 "objc-parse.y"
2518 { skip_evaluation
--;
2519 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2522 #line 461 "objc-parse.y"
2523 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2526 #line 463 "objc-parse.y"
2527 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2530 #line 465 "objc-parse.y"
2531 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2534 #line 469 "objc-parse.y"
2535 { skip_evaluation
++; ;
2538 #line 473 "objc-parse.y"
2539 { skip_evaluation
++; ;
2542 #line 479 "objc-parse.y"
2543 { tree type
= groktypename (yyvsp
[-2].ttype
);
2544 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2547 #line 482 "objc-parse.y"
2548 { start_init (NULL_TREE
, NULL
, 0);
2549 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2550 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2553 #line 486 "objc-parse.y"
2555 tree result
= pop_init_level (0);
2556 tree type
= yyvsp
[-5].ttype
;
2559 if (pedantic
&& ! flag_isoc9x
)
2560 pedwarn ("ANSI C forbids constructor expressions");
2561 if (TYPE_NAME (type
) != 0)
2563 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2564 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2566 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2570 yyval
.ttype
= result
;
2571 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2573 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2580 #line 515 "objc-parse.y"
2581 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2584 #line 517 "objc-parse.y"
2585 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2588 #line 519 "objc-parse.y"
2589 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2592 #line 521 "objc-parse.y"
2593 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2596 #line 523 "objc-parse.y"
2597 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2600 #line 525 "objc-parse.y"
2601 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2604 #line 527 "objc-parse.y"
2605 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2608 #line 529 "objc-parse.y"
2609 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2612 #line 531 "objc-parse.y"
2613 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2616 #line 533 "objc-parse.y"
2617 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2620 #line 535 "objc-parse.y"
2621 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2624 #line 537 "objc-parse.y"
2625 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2628 #line 539 "objc-parse.y"
2629 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2630 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2633 #line 542 "objc-parse.y"
2634 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2635 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2638 #line 545 "objc-parse.y"
2639 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2640 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2643 #line 548 "objc-parse.y"
2644 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2645 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2648 #line 551 "objc-parse.y"
2649 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2650 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2653 #line 554 "objc-parse.y"
2654 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2655 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2658 #line 557 "objc-parse.y"
2659 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2660 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2663 #line 560 "objc-parse.y"
2665 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2666 /* Make sure first operand is calculated only once. */
2667 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2668 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2669 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2672 #line 567 "objc-parse.y"
2673 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2674 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2677 #line 570 "objc-parse.y"
2679 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2680 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2681 if (class == 'e' || class == '1'
2682 || class == '2' || class == '<')
2683 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2687 #line 578 "objc-parse.y"
2689 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2690 /* This inhibits warnings in truthvalue_conversion. */
2691 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2692 if (class == 'e' || class == '1'
2693 || class == '2' || class == '<')
2694 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2698 #line 590 "objc-parse.y"
2700 yyval
.ttype
= lastiddecl
;
2701 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2703 if (yychar
== YYEMPTY
)
2709 if (objc_receiver_context
2710 && ! (objc_receiver_context
2711 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2712 /* we have a message to super */
2713 yyval
.ttype
= get_super_receiver ();
2714 else if (objc_method_context
2715 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2717 if (is_private (decl
))
2718 yyval
.ttype
= error_mark_node
;
2720 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2724 /* Ordinary implicit function declaration. */
2725 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2726 assemble_external (yyval
.ttype
);
2727 TREE_USED (yyval
.ttype
) = 1;
2730 else if (current_function_decl
== 0)
2732 error ("`%s' undeclared here (not in a function)",
2733 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2734 yyval
.ttype
= error_mark_node
;
2740 if (objc_receiver_context
2741 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2742 /* we have a message to super */
2743 yyval
.ttype
= get_super_receiver ();
2744 else if (objc_method_context
2745 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2747 if (is_private (decl
))
2748 yyval
.ttype
= error_mark_node
;
2750 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2754 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2755 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2757 error ("`%s' undeclared (first use in this function)",
2758 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2760 if (! undeclared_variable_notice
)
2762 error ("(Each undeclared identifier is reported only once");
2763 error ("for each function it appears in.)");
2764 undeclared_variable_notice
= 1;
2767 yyval
.ttype
= error_mark_node
;
2768 /* Prevent repeated error messages. */
2769 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2770 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2774 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2775 yyval
.ttype
= error_mark_node
;
2776 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2778 /* The first time we see a build-in function used,
2779 if it has not been declared. */
2780 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2781 if (yychar
== YYEMPTY
)
2785 /* Omit the implicit declaration we
2786 would ordinarily do, so we don't lose
2787 the actual built in type.
2788 But print a diagnostic for the mismatch. */
2789 if (objc_method_context
2790 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2791 error ("Instance variable `%s' implicitly declared as function",
2792 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2794 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2795 error ("`%s' implicitly declared as function",
2796 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2797 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2798 != TYPE_MODE (integer_type_node
))
2799 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2801 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2802 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2803 /* If it really returns void, change that to int. */
2804 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2805 TREE_TYPE (yyval
.ttype
)
2806 = build_function_type (integer_type_node
,
2807 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2810 pedwarn ("built-in function `%s' used without declaration",
2811 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2813 /* Do what we would ordinarily do when a fn is used. */
2814 assemble_external (yyval
.ttype
);
2815 TREE_USED (yyval
.ttype
) = 1;
2819 assemble_external (yyval
.ttype
);
2820 TREE_USED (yyval
.ttype
) = 1;
2821 /* we have a definition - still check if iVariable */
2823 if (!objc_receiver_context
2824 || (objc_receiver_context
2825 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2829 if (objc_method_context
2830 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2832 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2833 warning ("local declaration of `%s' hides instance variable",
2834 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2837 if (is_private (decl
))
2838 yyval
.ttype
= error_mark_node
;
2840 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2844 else /* we have a message to super */
2845 yyval
.ttype
= get_super_receiver ();
2848 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2850 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2851 /* This is to prevent an enum whose value is 0
2852 from being considered a null pointer constant. */
2853 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2854 TREE_CONSTANT (yyval
.ttype
) = 1;
2859 #line 750 "objc-parse.y"
2860 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2863 #line 752 "objc-parse.y"
2864 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2865 if (class == 'e' || class == '1'
2866 || class == '2' || class == '<')
2867 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2868 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2871 #line 758 "objc-parse.y"
2872 { yyval
.ttype
= error_mark_node
; ;
2875 #line 760 "objc-parse.y"
2878 pedwarn ("ANSI C forbids braced-groups within expressions");
2879 pop_iterator_stack ();
2881 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2882 /* The statements have side effects, so the group does. */
2883 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2885 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2887 /* Make a BIND_EXPR for the BLOCK already made. */
2888 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2889 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2890 /* Remove the block from the tree at this point.
2891 It gets put back at the proper place
2892 when the BIND_EXPR is expanded. */
2893 delete_block (yyvsp
[-1].ttype
);
2896 yyval
.ttype
= yyvsp
[-1].ttype
;
2900 #line 783 "objc-parse.y"
2902 /* Make sure we call expand_end_stmt_expr. Otherwise
2903 we are likely to lose sequences and crash later. */
2904 pop_iterator_stack ();
2906 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2907 yyval
.ttype
= error_mark_node
;
2911 #line 792 "objc-parse.y"
2912 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2915 #line 794 "objc-parse.y"
2916 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2919 #line 796 "objc-parse.y"
2921 if (doing_objc_thang
)
2923 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2924 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2926 yyval
.ttype
= error_mark_node
;
2929 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2933 #line 808 "objc-parse.y"
2935 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2937 if (doing_objc_thang
)
2939 if (is_public (expr
, yyvsp
[0].ttype
))
2940 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2942 yyval
.ttype
= error_mark_node
;
2945 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2949 #line 822 "objc-parse.y"
2950 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2953 #line 824 "objc-parse.y"
2954 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2957 #line 826 "objc-parse.y"
2958 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2961 #line 828 "objc-parse.y"
2962 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2965 #line 830 "objc-parse.y"
2966 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2969 #line 832 "objc-parse.y"
2970 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2973 #line 834 "objc-parse.y"
2974 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
2977 #line 841 "objc-parse.y"
2978 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2981 #line 849 "objc-parse.y"
2982 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
2985 #line 857 "objc-parse.y"
2986 { c_mark_varargs ();
2988 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2991 #line 867 "objc-parse.y"
2995 #line 883 "objc-parse.y"
2996 { current_declspecs
= TREE_VALUE (declspec_stack
);
2997 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2998 declspec_stack
= TREE_CHAIN (declspec_stack
);
2999 resume_momentary (yyvsp
[-2].itype
); ;
3002 #line 888 "objc-parse.y"
3003 { current_declspecs
= TREE_VALUE (declspec_stack
);
3004 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3005 declspec_stack
= TREE_CHAIN (declspec_stack
);
3006 resume_momentary (yyvsp
[-2].itype
); ;
3009 #line 893 "objc-parse.y"
3010 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
3011 pedwarn ("empty declaration"); ;
3014 #line 896 "objc-parse.y"
3015 { pedwarn ("empty declaration"); ;
3018 #line 905 "objc-parse.y"
3022 #line 920 "objc-parse.y"
3023 { yyval
.itype
= suspend_momentary ();
3024 pending_xref_error ();
3025 declspec_stack
= tree_cons (prefix_attributes
,
3028 split_specs_attrs (yyvsp
[0].ttype
,
3029 ¤t_declspecs
, &prefix_attributes
); ;
3032 #line 931 "objc-parse.y"
3033 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
3036 #line 936 "objc-parse.y"
3037 { current_declspecs
= TREE_VALUE (declspec_stack
);
3038 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3039 declspec_stack
= TREE_CHAIN (declspec_stack
);
3040 resume_momentary (yyvsp
[-2].itype
); ;
3043 #line 941 "objc-parse.y"
3044 { current_declspecs
= TREE_VALUE (declspec_stack
);
3045 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3046 declspec_stack
= TREE_CHAIN (declspec_stack
);
3047 resume_momentary (yyvsp
[-2].itype
); ;
3050 #line 946 "objc-parse.y"
3051 { current_declspecs
= TREE_VALUE (declspec_stack
);
3052 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3053 declspec_stack
= TREE_CHAIN (declspec_stack
);
3054 resume_momentary (yyvsp
[-1].itype
); ;
3057 #line 951 "objc-parse.y"
3058 { current_declspecs
= TREE_VALUE (declspec_stack
);
3059 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3060 declspec_stack
= TREE_CHAIN (declspec_stack
);
3061 resume_momentary (yyvsp
[-1].itype
); ;
3064 #line 956 "objc-parse.y"
3065 { shadow_tag (yyvsp
[-1].ttype
); ;
3068 #line 958 "objc-parse.y"
3069 { pedwarn ("empty declaration"); ;
3072 #line 960 "objc-parse.y"
3073 { pedantic
= yyvsp
[-1].itype
; ;
3076 #line 970 "objc-parse.y"
3077 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3080 #line 972 "objc-parse.y"
3081 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3084 #line 976 "objc-parse.y"
3085 { yyval
.ttype
= NULL_TREE
; ;
3088 #line 978 "objc-parse.y"
3089 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3092 #line 980 "objc-parse.y"
3093 { if (extra_warnings
)
3094 warning ("`%s' is not at beginning of declaration",
3095 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3096 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3099 #line 985 "objc-parse.y"
3100 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3103 #line 990 "objc-parse.y"
3104 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3107 #line 992 "objc-parse.y"
3108 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3111 #line 997 "objc-parse.y"
3112 { yyval
.ttype
= NULL_TREE
; ;
3115 #line 999 "objc-parse.y"
3116 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3119 #line 1001 "objc-parse.y"
3120 { if (extra_warnings
)
3121 warning ("`%s' is not at beginning of declaration",
3122 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3123 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3126 #line 1014 "objc-parse.y"
3127 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3130 #line 1016 "objc-parse.y"
3131 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
3134 #line 1018 "objc-parse.y"
3135 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3138 #line 1020 "objc-parse.y"
3139 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3142 #line 1025 "objc-parse.y"
3143 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3144 TREE_STATIC (yyval
.ttype
) = 1; ;
3147 #line 1028 "objc-parse.y"
3148 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3151 #line 1030 "objc-parse.y"
3152 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3153 TREE_STATIC (yyval
.ttype
) = 1; ;
3156 #line 1033 "objc-parse.y"
3157 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3158 warning ("`%s' is not at beginning of declaration",
3159 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3160 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3161 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3164 #line 1047 "objc-parse.y"
3165 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3168 #line 1049 "objc-parse.y"
3169 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3172 #line 1053 "objc-parse.y"
3173 { yyval
.ttype
= NULL_TREE
; ;
3176 #line 1055 "objc-parse.y"
3177 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3180 #line 1065 "objc-parse.y"
3181 { /* For a typedef name, record the meaning, not the name.
3182 In case of `foo foo, bar;'. */
3183 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3186 #line 1069 "objc-parse.y"
3187 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3190 #line 1071 "objc-parse.y"
3191 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3194 #line 1076 "objc-parse.y"
3195 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3198 #line 1078 "objc-parse.y"
3199 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3202 #line 1080 "objc-parse.y"
3203 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3206 #line 1102 "objc-parse.y"
3207 { yyval
.ttype
= NULL_TREE
; ;
3210 #line 1104 "objc-parse.y"
3211 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3212 yyval
.ttype
= yyvsp
[-1].ttype
;
3216 #line 1111 "objc-parse.y"
3217 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3218 yyvsp
[-1].ttype
, prefix_attributes
);
3219 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3222 #line 1116 "objc-parse.y"
3224 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3227 #line 1119 "objc-parse.y"
3228 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3229 yyvsp
[0].ttype
, prefix_attributes
);
3230 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3234 #line 1127 "objc-parse.y"
3235 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3236 yyvsp
[-1].ttype
, prefix_attributes
);
3237 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3240 #line 1132 "objc-parse.y"
3242 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3243 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3246 #line 1136 "objc-parse.y"
3247 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3248 yyvsp
[0].ttype
, prefix_attributes
);
3249 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3252 #line 1144 "objc-parse.y"
3253 { yyval
.ttype
= NULL_TREE
; ;
3256 #line 1146 "objc-parse.y"
3257 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3260 #line 1151 "objc-parse.y"
3261 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3264 #line 1153 "objc-parse.y"
3265 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3268 #line 1158 "objc-parse.y"
3269 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3272 #line 1163 "objc-parse.y"
3273 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3276 #line 1165 "objc-parse.y"
3277 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3280 #line 1170 "objc-parse.y"
3281 { yyval
.ttype
= NULL_TREE
; ;
3284 #line 1172 "objc-parse.y"
3285 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3288 #line 1174 "objc-parse.y"
3289 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3292 #line 1176 "objc-parse.y"
3293 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3296 #line 1178 "objc-parse.y"
3297 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3300 #line 1196 "objc-parse.y"
3301 { really_start_incremental_init (NULL_TREE
);
3302 /* Note that the call to clear_momentary
3303 is in process_init_element. */
3304 push_momentary (); ;
3307 #line 1201 "objc-parse.y"
3308 { yyval
.ttype
= pop_init_level (0);
3309 if (yyval
.ttype
== error_mark_node
3310 && ! (yychar
== STRING
|| yychar
== CONSTANT
))
3313 pop_momentary_nofree (); ;
3316 #line 1209 "objc-parse.y"
3317 { yyval
.ttype
= error_mark_node
; ;
3320 #line 1215 "objc-parse.y"
3322 pedwarn ("ANSI C forbids empty initializer braces"); ;
3325 #line 1231 "objc-parse.y"
3326 { set_init_label (yyvsp
[-1].ttype
); ;
3329 #line 1238 "objc-parse.y"
3330 { push_init_level (0); ;
3333 #line 1240 "objc-parse.y"
3334 { process_init_element (pop_init_level (0)); ;
3337 #line 1242 "objc-parse.y"
3338 { process_init_element (yyvsp
[0].ttype
); ;
3341 #line 1253 "objc-parse.y"
3342 { set_init_label (yyvsp
[0].ttype
); ;
3345 #line 1261 "objc-parse.y"
3347 pedwarn ("ANSI C forbids nested functions");
3349 push_function_context ();
3350 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3351 prefix_attributes
, NULL_TREE
, 1))
3353 pop_function_context ();
3356 reinit_parse_for_function (); ;
3359 #line 1273 "objc-parse.y"
3360 { store_parm_decls (); ;
3363 #line 1281 "objc-parse.y"
3364 { finish_function (1);
3365 pop_function_context (); ;
3368 #line 1287 "objc-parse.y"
3370 pedwarn ("ANSI C forbids nested functions");
3372 push_function_context ();
3373 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3374 prefix_attributes
, NULL_TREE
, 1))
3376 pop_function_context ();
3379 reinit_parse_for_function (); ;
3382 #line 1299 "objc-parse.y"
3383 { store_parm_decls (); ;
3386 #line 1307 "objc-parse.y"
3387 { finish_function (1);
3388 pop_function_context (); ;
3391 #line 1323 "objc-parse.y"
3392 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3395 #line 1325 "objc-parse.y"
3396 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3399 #line 1330 "objc-parse.y"
3400 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3403 #line 1332 "objc-parse.y"
3404 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3407 #line 1334 "objc-parse.y"
3408 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3411 #line 1341 "objc-parse.y"
3412 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3415 #line 1353 "objc-parse.y"
3416 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3419 #line 1358 "objc-parse.y"
3420 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3423 #line 1360 "objc-parse.y"
3424 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3427 #line 1362 "objc-parse.y"
3428 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3431 #line 1369 "objc-parse.y"
3432 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3435 #line 1378 "objc-parse.y"
3436 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3439 #line 1383 "objc-parse.y"
3440 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3443 #line 1385 "objc-parse.y"
3444 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3447 #line 1387 "objc-parse.y"
3448 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3451 #line 1389 "objc-parse.y"
3452 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3455 #line 1396 "objc-parse.y"
3456 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3459 #line 1402 "objc-parse.y"
3460 { yyval
.ttype
= NULL_TREE
; ;
3463 #line 1404 "objc-parse.y"
3464 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3467 #line 1409 "objc-parse.y"
3468 { yyval
.ttype
= NULL_TREE
; ;
3471 #line 1411 "objc-parse.y"
3472 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3475 #line 1416 "objc-parse.y"
3476 { yyval
.ttype
= NULL_TREE
; ;
3479 #line 1418 "objc-parse.y"
3480 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3483 #line 1423 "objc-parse.y"
3484 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3485 /* Start scope of tag before parsing components. */
3489 #line 1427 "objc-parse.y"
3490 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3493 #line 1429 "objc-parse.y"
3494 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3495 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3499 #line 1433 "objc-parse.y"
3500 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3503 #line 1435 "objc-parse.y"
3504 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3507 #line 1437 "objc-parse.y"
3508 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3511 #line 1439 "objc-parse.y"
3512 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3513 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3517 #line 1443 "objc-parse.y"
3518 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3521 #line 1445 "objc-parse.y"
3522 { yyvsp
[0].itype
= suspend_momentary ();
3523 yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3526 #line 1448 "objc-parse.y"
3527 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
));
3528 resume_momentary (yyvsp
[-5].itype
); ;
3531 #line 1451 "objc-parse.y"
3532 { yyvsp
[0].itype
= suspend_momentary ();
3533 yyval
.ttype
= start_enum (NULL_TREE
); ;
3536 #line 1454 "objc-parse.y"
3537 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
), chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
));
3538 resume_momentary (yyvsp
[-5].itype
); ;
3541 #line 1457 "objc-parse.y"
3542 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3545 #line 1468 "objc-parse.y"
3546 { if (pedantic
&& ! flag_isoc9x
)
3547 pedwarn ("comma at end of enumerator list"); ;
3550 #line 1474 "objc-parse.y"
3551 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3554 #line 1476 "objc-parse.y"
3555 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3556 pedwarn ("no semicolon at end of struct or union"); ;
3559 #line 1481 "objc-parse.y"
3560 { yyval
.ttype
= NULL_TREE
; ;
3563 #line 1483 "objc-parse.y"
3564 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3567 #line 1485 "objc-parse.y"
3569 pedwarn ("extra semicolon in struct or union specified"); ;
3572 #line 1489 "objc-parse.y"
3574 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3577 yyval
.ttype
= get_class_ivars (interface
);
3580 error ("Cannot find interface declaration for `%s'",
3581 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3582 yyval
.ttype
= NULL_TREE
;
3587 #line 1514 "objc-parse.y"
3588 { yyval
.ttype
= yyvsp
[0].ttype
;
3589 current_declspecs
= TREE_VALUE (declspec_stack
);
3590 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3591 declspec_stack
= TREE_CHAIN (declspec_stack
);
3592 resume_momentary (yyvsp
[-1].itype
); ;
3595 #line 1520 "objc-parse.y"
3597 pedwarn ("ANSI C forbids member declarations with no members");
3598 shadow_tag(yyvsp
[0].ttype
);
3599 yyval
.ttype
= NULL_TREE
; ;
3602 #line 1525 "objc-parse.y"
3603 { yyval
.ttype
= yyvsp
[0].ttype
;
3604 current_declspecs
= TREE_VALUE (declspec_stack
);
3605 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3606 declspec_stack
= TREE_CHAIN (declspec_stack
);
3607 resume_momentary (yyvsp
[-1].itype
); ;
3610 #line 1531 "objc-parse.y"
3612 pedwarn ("ANSI C forbids member declarations with no members");
3613 shadow_tag(yyvsp
[0].ttype
);
3614 yyval
.ttype
= NULL_TREE
; ;
3617 #line 1536 "objc-parse.y"
3618 { yyval
.ttype
= NULL_TREE
; ;
3621 #line 1538 "objc-parse.y"
3622 { yyval
.ttype
= yyvsp
[0].ttype
;
3623 pedantic
= yyvsp
[-1].itype
; ;
3626 #line 1545 "objc-parse.y"
3627 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3630 #line 1550 "objc-parse.y"
3631 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3632 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3635 #line 1554 "objc-parse.y"
3636 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3637 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3640 #line 1557 "objc-parse.y"
3641 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3642 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3645 #line 1569 "objc-parse.y"
3646 { if (yyvsp
[-2].ttype
== error_mark_node
)
3647 yyval
.ttype
= yyvsp
[-2].ttype
;
3649 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3652 #line 1574 "objc-parse.y"
3653 { yyval
.ttype
= error_mark_node
; ;
3656 #line 1580 "objc-parse.y"
3657 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3660 #line 1582 "objc-parse.y"
3661 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3664 #line 1587 "objc-parse.y"
3665 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3668 #line 1589 "objc-parse.y"
3669 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3672 #line 1594 "objc-parse.y"
3673 { yyval
.ttype
= NULL_TREE
; ;
3676 #line 1600 "objc-parse.y"
3677 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3680 #line 1602 "objc-parse.y"
3681 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3684 #line 1607 "objc-parse.y"
3685 { yyval
.ttype
= NULL_TREE
; ;
3688 #line 1609 "objc-parse.y"
3689 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3692 #line 1614 "objc-parse.y"
3693 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3696 #line 1617 "objc-parse.y"
3697 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3700 #line 1619 "objc-parse.y"
3701 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3704 #line 1621 "objc-parse.y"
3705 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3708 #line 1623 "objc-parse.y"
3709 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3712 #line 1625 "objc-parse.y"
3713 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3716 #line 1627 "objc-parse.y"
3717 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3720 #line 1629 "objc-parse.y"
3721 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3724 #line 1631 "objc-parse.y"
3725 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3728 #line 1635 "objc-parse.y"
3729 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3732 #line 1644 "objc-parse.y"
3734 if (pedantic
&& yyvsp
[0].ends_in_label
)
3735 pedwarn ("ANSI C forbids label at end of compound statement");
3739 #line 1653 "objc-parse.y"
3740 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3743 #line 1655 "objc-parse.y"
3744 { yyval
.ends_in_label
= 0; ;
3747 #line 1667 "objc-parse.y"
3748 { emit_line_note (input_filename
, lineno
);
3752 expand_start_bindings (0);
3753 if (objc_method_context
)
3758 #line 1682 "objc-parse.y"
3760 pedwarn ("ANSI C forbids label declarations"); ;
3763 #line 1693 "objc-parse.y"
3765 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3767 tree label
= shadow_label (TREE_VALUE (link
));
3768 C_DECLARED_LABEL_FLAG (label
) = 1;
3769 declare_nonlocal_label (label
);
3774 #line 1707 "objc-parse.y"
3778 #line 1711 "objc-parse.y"
3779 { compstmt_count
++; ;
3782 #line 1714 "objc-parse.y"
3783 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3786 #line 1716 "objc-parse.y"
3787 { emit_line_note (input_filename
, lineno
);
3788 expand_end_bindings (getdecls (), 1, 0);
3789 yyval
.ttype
= poplevel (1, 1, 0);
3790 if (yychar
== CONSTANT
|| yychar
== STRING
)
3791 pop_momentary_nofree ();
3796 #line 1724 "objc-parse.y"
3797 { emit_line_note (input_filename
, lineno
);
3798 expand_end_bindings (getdecls (), kept_level_p (), 0);
3799 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3800 if (yychar
== CONSTANT
|| yychar
== STRING
)
3801 pop_momentary_nofree ();
3806 #line 1732 "objc-parse.y"
3807 { emit_line_note (input_filename
, lineno
);
3808 expand_end_bindings (getdecls (), kept_level_p (), 0);
3809 yyval
.ttype
= poplevel (kept_level_p (), 0, 0);
3810 if (yychar
== CONSTANT
|| yychar
== STRING
)
3811 pop_momentary_nofree ();
3816 #line 1743 "objc-parse.y"
3817 { if (current_function_decl
== 0)
3819 error ("braced-group within expression allowed only inside a function");
3822 /* We must force a BLOCK for this level
3823 so that, if it is not expanded later,
3824 there is a way to turn off the entire subtree of blocks
3825 that are contained in it. */
3827 push_iterator_stack ();
3828 push_label_level ();
3829 yyval
.ttype
= expand_start_stmt_expr ();
3834 #line 1760 "objc-parse.y"
3835 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3838 #line 1774 "objc-parse.y"
3839 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3840 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3842 yyval
.itype
= stmt_count
;
3843 if_stmt_file
= yyvsp
[-5].filename
;
3844 if_stmt_line
= yyvsp
[-4].lineno
;
3845 position_after_white_space (); ;
3848 #line 1788 "objc-parse.y"
3851 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3852 /* See comment in `while' alternative, above. */
3854 expand_start_loop_continue_elsewhere (1);
3855 position_after_white_space (); ;
3858 #line 1796 "objc-parse.y"
3859 { expand_loop_continue_here (); ;
3862 #line 1800 "objc-parse.y"
3863 { yyval
.filename
= input_filename
; ;
3866 #line 1804 "objc-parse.y"
3867 { yyval
.lineno
= lineno
; ;
3870 #line 1809 "objc-parse.y"
3874 #line 1814 "objc-parse.y"
3878 #line 1819 "objc-parse.y"
3879 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3882 #line 1824 "objc-parse.y"
3883 { yyval
.ends_in_label
= 0; ;
3886 #line 1826 "objc-parse.y"
3887 { yyval
.ends_in_label
= 1; ;
3890 #line 1832 "objc-parse.y"
3894 #line 1835 "objc-parse.y"
3896 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3897 /* It appears that this should not be done--that a non-lvalue array
3898 shouldn't get an error if the value isn't used.
3899 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3900 if it appears as a top-level expression,
3901 but says nothing about non-lvalue arrays. */
3903 /* Call default_conversion to get an error
3904 on referring to a register array if pedantic. */
3905 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3906 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3907 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3909 iterator_expand (yyvsp
[-1].ttype
);
3910 clear_momentary (); ;
3913 #line 1852 "objc-parse.y"
3914 { c_expand_start_else ();
3915 yyvsp
[-1].itype
= stmt_count
;
3916 position_after_white_space (); ;
3919 #line 1856 "objc-parse.y"
3920 { c_expand_end_cond ();
3921 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3922 warning ("empty body in an else-statement"); ;
3925 #line 1860 "objc-parse.y"
3926 { c_expand_end_cond ();
3927 /* This warning is here instead of in simple_if, because we
3928 do not want a warning if an empty if is followed by an
3929 else statement. Increment stmt_count so we don't
3930 give a second error if this is a nested `if'. */
3931 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3932 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3933 "empty body in an if-statement"); ;
3936 #line 1872 "objc-parse.y"
3937 { c_expand_end_cond (); ;
3940 #line 1874 "objc-parse.y"
3942 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3943 /* The emit_nop used to come before emit_line_note,
3944 but that made the nop seem like part of the preceding line.
3945 And that was confusing when the preceding line was
3946 inside of an if statement and was not really executed.
3947 I think it ought to work to put the nop after the line number.
3948 We will see. --rms, July 15, 1991. */
3952 #line 1884 "objc-parse.y"
3953 { /* Don't start the loop till we have succeeded
3954 in parsing the end test. This is to make sure
3955 that we end every loop we start. */
3956 expand_start_loop (1);
3957 emit_line_note (input_filename
, lineno
);
3958 expand_exit_loop_if_false (NULL_PTR
,
3959 truthvalue_conversion (yyvsp
[-1].ttype
));
3960 position_after_white_space (); ;
3963 #line 1893 "objc-parse.y"
3964 { expand_end_loop (); ;
3967 #line 1896 "objc-parse.y"
3968 { emit_line_note (input_filename
, lineno
);
3969 expand_exit_loop_if_false (NULL_PTR
,
3970 truthvalue_conversion (yyvsp
[-2].ttype
));
3972 clear_momentary (); ;
3975 #line 1903 "objc-parse.y"
3976 { expand_end_loop ();
3977 clear_momentary (); ;
3980 #line 1907 "objc-parse.y"
3982 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3983 /* See comment in `while' alternative, above. */
3985 if (yyvsp
[-1].ttype
) c_expand_expr_stmt (yyvsp
[-1].ttype
);
3986 /* Next step is to call expand_start_loop_continue_elsewhere,
3987 but wait till after we parse the entire for (...).
3988 Otherwise, invalid input might cause us to call that
3989 fn without calling expand_end_loop. */
3993 #line 1919 "objc-parse.y"
3994 { yyvsp
[0].lineno
= lineno
;
3995 yyval
.filename
= input_filename
; ;
3998 #line 1922 "objc-parse.y"
4000 /* Start the loop. Doing this after parsing
4001 all the expressions ensures we will end the loop. */
4002 expand_start_loop_continue_elsewhere (1);
4003 /* Emit the end-test, with a line number. */
4004 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-3].lineno
);
4005 if (yyvsp
[-4].ttype
)
4006 expand_exit_loop_if_false (NULL_PTR
,
4007 truthvalue_conversion (yyvsp
[-4].ttype
));
4008 /* Don't let the tree nodes for $9 be discarded by
4009 clear_momentary during the parsing of the next stmt. */
4011 yyvsp
[-3].lineno
= lineno
;
4012 yyvsp
[-2].filename
= input_filename
;
4013 position_after_white_space (); ;
4016 #line 1938 "objc-parse.y"
4017 { /* Emit the increment expression, with a line number. */
4018 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
4019 expand_loop_continue_here ();
4020 if (yyvsp
[-3].ttype
)
4021 c_expand_expr_stmt (yyvsp
[-3].ttype
);
4022 if (yychar
== CONSTANT
|| yychar
== STRING
)
4023 pop_momentary_nofree ();
4026 expand_end_loop (); ;
4029 #line 1949 "objc-parse.y"
4031 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4032 c_expand_start_case (yyvsp
[-1].ttype
);
4033 /* Don't let the tree nodes for $3 be discarded by
4034 clear_momentary during the parsing of the next stmt. */
4036 position_after_white_space (); ;
4039 #line 1957 "objc-parse.y"
4040 { expand_end_case (yyvsp
[-3].ttype
);
4041 if (yychar
== CONSTANT
|| yychar
== STRING
)
4042 pop_momentary_nofree ();
4047 #line 1963 "objc-parse.y"
4049 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4050 if ( ! expand_exit_something ())
4051 error ("break statement not within loop or switch"); ;
4054 #line 1968 "objc-parse.y"
4056 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4057 if (! expand_continue_loop (NULL_PTR
))
4058 error ("continue statement not within a loop"); ;
4061 #line 1973 "objc-parse.y"
4063 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4064 c_expand_return (NULL_TREE
); ;
4067 #line 1977 "objc-parse.y"
4069 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4070 c_expand_return (yyvsp
[-1].ttype
); ;
4073 #line 1981 "objc-parse.y"
4075 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
4076 STRIP_NOPS (yyvsp
[-2].ttype
);
4077 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
4078 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
4079 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
4080 expand_asm (yyvsp
[-2].ttype
);
4082 error ("argument of `asm' is not a constant string"); ;
4085 #line 1992 "objc-parse.y"
4087 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
4088 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
4089 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
4090 input_filename
, lineno
); ;
4093 #line 1999 "objc-parse.y"
4095 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
4096 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
4097 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
4098 input_filename
, lineno
); ;
4101 #line 2007 "objc-parse.y"
4103 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
4104 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
4105 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
4106 input_filename
, lineno
); ;
4109 #line 2013 "objc-parse.y"
4112 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4113 decl
= lookup_label (yyvsp
[-1].ttype
);
4116 TREE_USED (decl
) = 1;
4122 #line 2024 "objc-parse.y"
4124 pedwarn ("ANSI C forbids `goto *expr;'");
4126 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4127 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
4130 #line 2039 "objc-parse.y"
4132 /* The value returned by this action is */
4133 /* 1 if everything is OK */
4134 /* 0 in case of error or already bound iterator */
4137 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
4138 error ("invalid `for (ITERATOR)' syntax");
4139 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
4140 error ("`%s' is not an iterator",
4141 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4142 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
4143 error ("`for (%s)' inside expansion of same iterator",
4144 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4148 iterator_for_loop_start (yyvsp
[-1].ttype
);
4153 #line 2060 "objc-parse.y"
4155 if (yyvsp
[-1].itype
)
4156 iterator_for_loop_end (yyvsp
[-3].ttype
);
4160 #line 2095 "objc-parse.y"
4161 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
4163 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4167 if (value
!= error_mark_node
)
4172 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
4173 pedwarn ("label must have integral type in ANSI C");
4175 success
= pushcase (value
, convert_and_check
,
4179 error ("case label not within a switch statement");
4180 else if (success
== 2)
4182 error ("duplicate case value");
4183 error_with_decl (duplicate
, "this is the first entry for that value");
4185 else if (success
== 3)
4186 warning ("case value out of range");
4187 else if (success
== 5)
4188 error ("case label within scope of cleanup or variable array");
4190 position_after_white_space (); ;
4193 #line 2126 "objc-parse.y"
4194 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
4195 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
4197 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4200 pedwarn ("ANSI C forbids case ranges");
4203 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4206 int success
= pushcase_range (value1
, value2
,
4207 convert_and_check
, label
,
4210 error ("case label not within a switch statement");
4211 else if (success
== 2)
4213 error ("duplicate case value");
4214 error_with_decl (duplicate
, "this is the first entry for that value");
4216 else if (success
== 3)
4217 warning ("case value out of range");
4218 else if (success
== 4)
4219 warning ("empty case range");
4220 else if (success
== 5)
4221 error ("case label within scope of cleanup or variable array");
4223 position_after_white_space (); ;
4226 #line 2157 "objc-parse.y"
4230 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4231 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4234 error ("default label not within a switch statement");
4235 else if (success
== 2)
4237 error ("multiple default labels in one switch");
4238 error_with_decl (duplicate
, "this is the first default label");
4240 position_after_white_space (); ;
4243 #line 2172 "objc-parse.y"
4244 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
4249 expand_label (label
);
4250 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
4252 position_after_white_space (); ;
4255 #line 2187 "objc-parse.y"
4256 { emit_line_note (input_filename
, lineno
);
4257 yyval
.ttype
= NULL_TREE
; ;
4260 #line 2190 "objc-parse.y"
4261 { emit_line_note (input_filename
, lineno
); ;
4264 #line 2195 "objc-parse.y"
4265 { yyval
.ttype
= NULL_TREE
; ;
4268 #line 2202 "objc-parse.y"
4269 { yyval
.ttype
= NULL_TREE
; ;
4272 #line 2209 "objc-parse.y"
4273 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4276 #line 2214 "objc-parse.y"
4277 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4280 #line 2219 "objc-parse.y"
4281 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4284 #line 2221 "objc-parse.y"
4285 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4288 #line 2227 "objc-parse.y"
4290 clear_parm_order ();
4291 declare_parm_level (0); ;
4294 #line 2231 "objc-parse.y"
4295 { yyval
.ttype
= yyvsp
[0].ttype
;
4296 parmlist_tags_warning ();
4297 poplevel (0, 0, 0); ;
4300 #line 2239 "objc-parse.y"
4303 pedwarn ("ANSI C forbids forward parameter declarations");
4304 /* Mark the forward decls as such. */
4305 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4306 TREE_ASM_WRITTEN (parm
) = 1;
4307 clear_parm_order (); ;
4310 #line 2247 "objc-parse.y"
4311 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4314 #line 2249 "objc-parse.y"
4315 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4318 #line 2255 "objc-parse.y"
4319 { yyval
.ttype
= get_parm_info (0); ;
4322 #line 2257 "objc-parse.y"
4323 { yyval
.ttype
= get_parm_info (0);
4324 /* Gcc used to allow this as an extension. However, it does
4325 not work for all targets, and thus has been disabled.
4326 Also, since func (...) and func () are indistinguishable,
4327 it caused problems with the code in expand_builtin which
4328 tries to verify that BUILT_IN_NEXT_ARG is being used
4330 error ("ANSI C requires a named argument before `...'");
4334 #line 2267 "objc-parse.y"
4335 { yyval
.ttype
= get_parm_info (1); ;
4338 #line 2269 "objc-parse.y"
4339 { yyval
.ttype
= get_parm_info (0); ;
4342 #line 2274 "objc-parse.y"
4343 { push_parm_decl (yyvsp
[0].ttype
); ;
4346 #line 2276 "objc-parse.y"
4347 { push_parm_decl (yyvsp
[0].ttype
); ;
4350 #line 2283 "objc-parse.y"
4351 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4353 build_tree_list (prefix_attributes
,
4355 current_declspecs
= TREE_VALUE (declspec_stack
);
4356 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4357 declspec_stack
= TREE_CHAIN (declspec_stack
);
4358 resume_momentary (yyvsp
[-2].itype
); ;
4361 #line 2292 "objc-parse.y"
4362 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4364 build_tree_list (prefix_attributes
,
4366 current_declspecs
= TREE_VALUE (declspec_stack
);
4367 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4368 declspec_stack
= TREE_CHAIN (declspec_stack
);
4369 resume_momentary (yyvsp
[-2].itype
); ;
4372 #line 2301 "objc-parse.y"
4373 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4375 build_tree_list (prefix_attributes
,
4377 current_declspecs
= TREE_VALUE (declspec_stack
);
4378 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4379 declspec_stack
= TREE_CHAIN (declspec_stack
);
4380 resume_momentary (yyvsp
[-2].itype
); ;
4383 #line 2310 "objc-parse.y"
4384 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4386 build_tree_list (prefix_attributes
,
4388 current_declspecs
= TREE_VALUE (declspec_stack
);
4389 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4390 declspec_stack
= TREE_CHAIN (declspec_stack
);
4391 resume_momentary (yyvsp
[-2].itype
); ;
4394 #line 2320 "objc-parse.y"
4395 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4397 build_tree_list (prefix_attributes
,
4399 current_declspecs
= TREE_VALUE (declspec_stack
);
4400 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4401 declspec_stack
= TREE_CHAIN (declspec_stack
);
4402 resume_momentary (yyvsp
[-2].itype
); ;
4405 #line 2334 "objc-parse.y"
4407 clear_parm_order ();
4408 declare_parm_level (1); ;
4411 #line 2338 "objc-parse.y"
4412 { yyval
.ttype
= yyvsp
[0].ttype
;
4413 parmlist_tags_warning ();
4414 poplevel (0, 0, 0); ;
4417 #line 2346 "objc-parse.y"
4419 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4420 if (TREE_VALUE (t
) == NULL_TREE
)
4421 error ("`...' in old-style identifier list");
4422 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4425 #line 2356 "objc-parse.y"
4426 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4429 #line 2358 "objc-parse.y"
4430 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4433 #line 2364 "objc-parse.y"
4434 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4437 #line 2366 "objc-parse.y"
4438 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4441 #line 2371 "objc-parse.y"
4442 { yyval
.itype
= pedantic
;
4446 #line 2384 "objc-parse.y"
4448 if (objc_implementation_context
)
4450 finish_class (objc_implementation_context
);
4451 objc_ivar_chain
= NULL_TREE
;
4452 objc_implementation_context
= NULL_TREE
;
4455 warning ("`@end' must appear in an implementation context");
4459 #line 2399 "objc-parse.y"
4460 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4463 #line 2401 "objc-parse.y"
4464 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4467 #line 2406 "objc-parse.y"
4469 objc_declare_class (yyvsp
[-1].ttype
);
4473 #line 2412 "objc-parse.y"
4475 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4479 #line 2418 "objc-parse.y"
4481 objc_interface_context
= objc_ivar_context
4482 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4483 objc_public_flag
= 0;
4487 #line 2424 "objc-parse.y"
4489 continue_class (objc_interface_context
);
4493 #line 2429 "objc-parse.y"
4495 finish_class (objc_interface_context
);
4496 objc_interface_context
= NULL_TREE
;
4500 #line 2435 "objc-parse.y"
4502 objc_interface_context
4503 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4504 continue_class (objc_interface_context
);
4508 #line 2442 "objc-parse.y"
4510 finish_class (objc_interface_context
);
4511 objc_interface_context
= NULL_TREE
;
4515 #line 2448 "objc-parse.y"
4517 objc_interface_context
= objc_ivar_context
4518 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4519 objc_public_flag
= 0;
4523 #line 2454 "objc-parse.y"
4525 continue_class (objc_interface_context
);
4529 #line 2459 "objc-parse.y"
4531 finish_class (objc_interface_context
);
4532 objc_interface_context
= NULL_TREE
;
4536 #line 2465 "objc-parse.y"
4538 objc_interface_context
4539 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4540 continue_class (objc_interface_context
);
4544 #line 2472 "objc-parse.y"
4546 finish_class (objc_interface_context
);
4547 objc_interface_context
= NULL_TREE
;
4551 #line 2478 "objc-parse.y"
4553 objc_implementation_context
= objc_ivar_context
4554 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4555 objc_public_flag
= 0;
4559 #line 2484 "objc-parse.y"
4562 = continue_class (objc_implementation_context
);
4566 #line 2490 "objc-parse.y"
4568 objc_implementation_context
4569 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4571 = continue_class (objc_implementation_context
);
4575 #line 2498 "objc-parse.y"
4577 objc_implementation_context
= objc_ivar_context
4578 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4579 objc_public_flag
= 0;
4583 #line 2504 "objc-parse.y"
4586 = continue_class (objc_implementation_context
);
4590 #line 2510 "objc-parse.y"
4592 objc_implementation_context
4593 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4595 = continue_class (objc_implementation_context
);
4599 #line 2518 "objc-parse.y"
4601 objc_interface_context
4602 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4603 continue_class (objc_interface_context
);
4607 #line 2525 "objc-parse.y"
4609 finish_class (objc_interface_context
);
4610 objc_interface_context
= NULL_TREE
;
4614 #line 2531 "objc-parse.y"
4616 objc_implementation_context
4617 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4619 = continue_class (objc_implementation_context
);
4623 #line 2541 "objc-parse.y"
4625 remember_protocol_qualifiers ();
4626 objc_interface_context
4627 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4631 #line 2547 "objc-parse.y"
4633 forget_protocol_qualifiers();
4634 finish_protocol(objc_interface_context
);
4635 objc_interface_context
= NULL_TREE
;
4639 #line 2556 "objc-parse.y"
4641 yyval
.ttype
= NULL_TREE
;
4645 #line 2564 "objc-parse.y"
4647 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4648 yyval
.ttype
= yyvsp
[-1].ttype
;
4654 #line 2578 "objc-parse.y"
4655 { objc_public_flag
= 2; ;
4658 #line 2579 "objc-parse.y"
4659 { objc_public_flag
= 0; ;
4662 #line 2580 "objc-parse.y"
4663 { objc_public_flag
= 1; ;
4666 #line 2585 "objc-parse.y"
4668 yyval
.ttype
= NULL_TREE
;
4672 #line 2590 "objc-parse.y"
4675 pedwarn ("extra semicolon in struct or union specified");
4679 #line 2608 "objc-parse.y"
4680 { yyval
.ttype
= yyvsp
[0].ttype
;
4681 current_declspecs
= TREE_VALUE (declspec_stack
);
4682 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4683 declspec_stack
= TREE_CHAIN (declspec_stack
);
4684 resume_momentary (yyvsp
[-1].itype
); ;
4687 #line 2614 "objc-parse.y"
4688 { yyval
.ttype
= yyvsp
[0].ttype
;
4689 current_declspecs
= TREE_VALUE (declspec_stack
);
4690 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4691 declspec_stack
= TREE_CHAIN (declspec_stack
);
4692 resume_momentary (yyvsp
[-1].itype
); ;
4695 #line 2620 "objc-parse.y"
4696 { yyval
.ttype
= NULL_TREE
; ;
4699 #line 2625 "objc-parse.y"
4700 { yyval
.ttype
= NULL_TREE
; ;
4703 #line 2632 "objc-parse.y"
4705 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4707 yyvsp
[0].ttype
, current_declspecs
,
4712 #line 2639 "objc-parse.y"
4714 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4716 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4720 #line 2645 "objc-parse.y"
4722 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4725 current_declspecs
, yyvsp
[0].ttype
);
4729 #line 2655 "objc-parse.y"
4731 remember_protocol_qualifiers ();
4732 if (objc_implementation_context
)
4733 objc_inherit_code
= CLASS_METHOD_DECL
;
4735 fatal ("method definition not in class context");
4739 #line 2663 "objc-parse.y"
4741 forget_protocol_qualifiers ();
4742 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4743 start_method_def (yyvsp
[0].ttype
);
4744 objc_method_context
= yyvsp
[0].ttype
;
4748 #line 2670 "objc-parse.y"
4750 continue_method_def ();
4754 #line 2674 "objc-parse.y"
4756 finish_method_def ();
4757 objc_method_context
= NULL_TREE
;
4761 #line 2680 "objc-parse.y"
4763 remember_protocol_qualifiers ();
4764 if (objc_implementation_context
)
4765 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4767 fatal ("method definition not in class context");
4771 #line 2688 "objc-parse.y"
4773 forget_protocol_qualifiers ();
4774 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4775 start_method_def (yyvsp
[0].ttype
);
4776 objc_method_context
= yyvsp
[0].ttype
;
4780 #line 2695 "objc-parse.y"
4782 continue_method_def ();
4786 #line 2699 "objc-parse.y"
4788 finish_method_def ();
4789 objc_method_context
= NULL_TREE
;
4793 #line 2711 "objc-parse.y"
4794 {yyval
.ttype
= NULL_TREE
; ;
4797 #line 2718 "objc-parse.y"
4798 {yyval
.ttype
= NULL_TREE
; ;
4801 #line 2728 "objc-parse.y"
4803 /* Remember protocol qualifiers in prototypes. */
4804 remember_protocol_qualifiers ();
4805 objc_inherit_code
= CLASS_METHOD_DECL
;
4809 #line 2734 "objc-parse.y"
4811 /* Forget protocol qualifiers here. */
4812 forget_protocol_qualifiers ();
4813 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4817 #line 2742 "objc-parse.y"
4819 /* Remember protocol qualifiers in prototypes. */
4820 remember_protocol_qualifiers ();
4821 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4825 #line 2748 "objc-parse.y"
4827 /* Forget protocol qualifiers here. */
4828 forget_protocol_qualifiers ();
4829 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4833 #line 2758 "objc-parse.y"
4835 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4839 #line 2763 "objc-parse.y"
4841 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4845 #line 2768 "objc-parse.y"
4847 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4851 #line 2773 "objc-parse.y"
4853 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4857 #line 2803 "objc-parse.y"
4858 { current_declspecs
= TREE_VALUE (declspec_stack
);
4859 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4860 declspec_stack
= TREE_CHAIN (declspec_stack
);
4861 resume_momentary (yyvsp
[-2].itype
); ;
4864 #line 2808 "objc-parse.y"
4865 { shadow_tag (yyvsp
[-1].ttype
); ;
4868 #line 2810 "objc-parse.y"
4869 { pedwarn ("empty declaration"); ;
4872 #line 2815 "objc-parse.y"
4873 { push_parm_decl (yyvsp
[0].ttype
); ;
4876 #line 2817 "objc-parse.y"
4877 { push_parm_decl (yyvsp
[0].ttype
); ;
4880 #line 2825 "objc-parse.y"
4881 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4883 build_tree_list (prefix_attributes
,
4887 #line 2830 "objc-parse.y"
4888 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4890 build_tree_list (prefix_attributes
,
4894 #line 2835 "objc-parse.y"
4895 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4897 build_tree_list (prefix_attributes
,
4901 #line 2843 "objc-parse.y"
4903 yyval
.ttype
= NULL_TREE
;
4907 #line 2847 "objc-parse.y"
4909 /* oh what a kludge! */
4910 yyval
.ttype
= (tree
)1;
4914 #line 2852 "objc-parse.y"
4920 #line 2856 "objc-parse.y"
4922 /* returns a tree list node generated by get_parm_info */
4923 yyval
.ttype
= yyvsp
[0].ttype
;
4928 #line 2871 "objc-parse.y"
4930 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4934 #line 2884 "objc-parse.y"
4935 { yyval
.ttype
= get_identifier (token_buffer
); ;
4938 #line 2885 "objc-parse.y"
4939 { yyval
.ttype
= get_identifier (token_buffer
); ;
4942 #line 2886 "objc-parse.y"
4943 { yyval
.ttype
= get_identifier (token_buffer
); ;
4946 #line 2887 "objc-parse.y"
4947 { yyval
.ttype
= get_identifier (token_buffer
); ;
4950 #line 2888 "objc-parse.y"
4951 { yyval
.ttype
= get_identifier (token_buffer
); ;
4954 #line 2889 "objc-parse.y"
4955 { yyval
.ttype
= get_identifier (token_buffer
); ;
4958 #line 2890 "objc-parse.y"
4959 { yyval
.ttype
= get_identifier (token_buffer
); ;
4962 #line 2891 "objc-parse.y"
4963 { yyval
.ttype
= get_identifier (token_buffer
); ;
4966 #line 2892 "objc-parse.y"
4967 { yyval
.ttype
= get_identifier (token_buffer
); ;
4970 #line 2893 "objc-parse.y"
4971 { yyval
.ttype
= get_identifier (token_buffer
); ;
4974 #line 2894 "objc-parse.y"
4975 { yyval
.ttype
= get_identifier (token_buffer
); ;
4978 #line 2895 "objc-parse.y"
4979 { yyval
.ttype
= get_identifier (token_buffer
); ;
4982 #line 2896 "objc-parse.y"
4983 { yyval
.ttype
= get_identifier (token_buffer
); ;
4986 #line 2897 "objc-parse.y"
4987 { yyval
.ttype
= get_identifier (token_buffer
); ;
4990 #line 2898 "objc-parse.y"
4991 { yyval
.ttype
= get_identifier (token_buffer
); ;
4994 #line 2899 "objc-parse.y"
4995 { yyval
.ttype
= get_identifier (token_buffer
); ;
4998 #line 2900 "objc-parse.y"
4999 { yyval
.ttype
= get_identifier (token_buffer
); ;
5002 #line 2901 "objc-parse.y"
5003 { yyval
.ttype
= get_identifier (token_buffer
); ;
5006 #line 2902 "objc-parse.y"
5007 { yyval
.ttype
= get_identifier (token_buffer
); ;
5010 #line 2908 "objc-parse.y"
5012 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5016 #line 2913 "objc-parse.y"
5018 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
5022 #line 2918 "objc-parse.y"
5024 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5028 #line 2923 "objc-parse.y"
5030 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
5034 #line 2936 "objc-parse.y"
5036 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5040 #line 2944 "objc-parse.y"
5042 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
5043 /* just return the expr., remove a level of indirection */
5044 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
5046 /* we have a comma expr., we will collapse later */
5047 yyval
.ttype
= yyvsp
[0].ttype
;
5051 #line 2956 "objc-parse.y"
5053 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5057 #line 2960 "objc-parse.y"
5059 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
5063 #line 2968 "objc-parse.y"
5065 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
5069 #line 2975 "objc-parse.y"
5070 { objc_receiver_context
= 1; ;
5073 #line 2977 "objc-parse.y"
5074 { objc_receiver_context
= 0; ;
5077 #line 2979 "objc-parse.y"
5079 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
5083 #line 2992 "objc-parse.y"
5085 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5089 #line 2999 "objc-parse.y"
5091 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
5095 #line 3003 "objc-parse.y"
5097 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
5101 #line 3010 "objc-parse.y"
5103 yyval
.ttype
= yyvsp
[-1].ttype
;
5107 #line 3017 "objc-parse.y"
5109 yyval
.ttype
= yyvsp
[-1].ttype
;
5113 #line 3026 "objc-parse.y"
5115 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
5119 /* the action file gets copied in in place of this dollarsign */
5120 #line 542 "/usr/lib/bison.simple"
5131 short *ssp1
= yyss
- 1;
5132 fprintf (stderr
, "state stack now");
5133 while (ssp1
!= yyssp
)
5134 fprintf (stderr
, " %d", *++ssp1
);
5135 fprintf (stderr
, "\n");
5145 yylsp
->first_line
= yylloc
.first_line
;
5146 yylsp
->first_column
= yylloc
.first_column
;
5147 yylsp
->last_line
= (yylsp
-1)->last_line
;
5148 yylsp
->last_column
= (yylsp
-1)->last_column
;
5153 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
5154 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
5158 /* Now "shift" the result of the reduction.
5159 Determine what state that goes to,
5160 based on the state we popped back to
5161 and the rule number reduced by. */
5165 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
5166 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5167 yystate
= yytable
[yystate
];
5169 yystate
= yydefgoto
[yyn
- YYNTBASE
];
5173 yyerrlab
: /* here on detecting error */
5176 /* If not already recovering from an error, report this error. */
5180 #ifdef YYERROR_VERBOSE
5181 yyn
= yypact
[yystate
];
5183 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
5190 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5191 for (x
= (yyn
< 0 ? -yyn
: 0);
5192 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5193 if (yycheck
[x
+ yyn
] == x
)
5194 size
+= strlen(yytname
[x
]) + 15, count
++;
5195 msg
= (char *) malloc(size
+ 15);
5198 strcpy(msg
, "parse error");
5203 for (x
= (yyn
< 0 ? -yyn
: 0);
5204 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5205 if (yycheck
[x
+ yyn
] == x
)
5207 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
5208 strcat(msg
, yytname
[x
]);
5217 yyerror ("parse error; also virtual memory exceeded");
5220 #endif /* YYERROR_VERBOSE */
5221 yyerror("parse error");
5225 yyerrlab1
: /* here on error raised explicitly by an action */
5227 if (yyerrstatus
== 3)
5229 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5231 /* return failure if at end of input */
5232 if (yychar
== YYEOF
)
5237 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5243 /* Else will try to reuse lookahead token
5244 after shifting the error token. */
5246 yyerrstatus
= 3; /* Each real token shifted decrements this */
5250 yyerrdefault
: /* current state does not do anything special for the error token. */
5253 /* This is wrong; only states that explicitly want error tokens
5254 should shift them. */
5255 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5256 if (yyn
) goto yydefault
;
5259 yyerrpop
: /* pop the current state because it cannot handle the error token */
5261 if (yyssp
== yyss
) YYABORT
;
5271 short *ssp1
= yyss
- 1;
5272 fprintf (stderr
, "Error: state stack now");
5273 while (ssp1
!= yyssp
)
5274 fprintf (stderr
, " %d", *++ssp1
);
5275 fprintf (stderr
, "\n");
5281 yyn
= yypact
[yystate
];
5286 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5305 fprintf(stderr
, "Shifting error token, ");
5317 /* YYACCEPT comes here. */
5329 /* YYABORT comes here. */
5340 #line 3031 "objc-parse.y"