2 /* A Bison parser, made from objc-parse.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
31 #define ASM_KEYWORD 281
42 #define PTR_EXTENT 292
43 #define END_OF_LINE 293
48 #define ARITHCOMPARE 298
53 #define MINUSMINUS 303
54 #define HYPERUNARY 304
57 #define IMPLEMENTATION 307
67 #define OBJECTNAME 317
70 #define OBJC_STRING 320
72 #line 34 "objc-parse.y"
86 #ifdef MULTIBYTE_CHARS
92 /* Since parsers are distinct for each language, put the language string
94 const char * const language_string
= "GNU Obj-C";
96 /* Like YYERROR but do call yyerror. */
97 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
99 /* Cause the `yydebug' variable to be defined. */
102 #line 66 "objc-parse.y"
103 typedef union {long itype
; tree ttype
; enum tree_code code
;
104 char *filename
; int lineno
; int ends_in_label
; } YYSTYPE
;
105 #line 198 "objc-parse.y"
107 /* Number of statements (loosely speaking) and compound statements
109 static int stmt_count
;
110 static int compstmt_count
;
112 /* Input file and line number of the end of the body of last simple_if;
113 used by the stmt-rule immediately after simple_if returns. */
114 static char *if_stmt_file
;
115 static int if_stmt_line
;
117 /* List of types and structure classes of the current declaration. */
118 static tree current_declspecs
= NULL_TREE
;
119 static tree prefix_attributes
= NULL_TREE
;
121 /* Stack of saved values of current_declspecs and prefix_attributes. */
122 static tree declspec_stack
;
124 /* 1 if we explained undeclared var errors. */
125 static int undeclared_variable_notice
;
127 /* For __extension__, save/restore the warning flags which are
128 controlled by __extension__. */
129 #define SAVE_WARN_FLAGS() \
130 build_int_2 (pedantic | (warn_pointer_arith << 1), 0)
131 #define RESTORE_WARN_FLAGS(tval) \
133 int val = TREE_INT_CST_LOW (tval); \
134 pedantic = val & 1; \
135 warn_pointer_arith = (val >> 1) & 1; \
138 /* Objective-C specific information */
140 tree objc_interface_context
;
141 tree objc_implementation_context
;
142 tree objc_method_context
;
143 tree objc_ivar_chain
;
144 tree objc_ivar_context
;
145 enum tree_code objc_inherit_code
;
146 int objc_receiver_context
;
147 int objc_public_flag
;
150 /* Tell yyparse how to print a token's value, if yydebug is set. */
152 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
153 extern void yyprint
PARAMS ((FILE *, int, YYSTYPE
));
155 /* Add GC roots for variables local to this file. */
159 ggc_add_tree_root (&declspec_stack
, 1);
160 ggc_add_tree_root (¤t_declspecs
, 1);
161 ggc_add_tree_root (&prefix_attributes
, 1);
175 #define YYFLAG -32768
178 #define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 317)
180 static const char yytranslate
[] = { 0,
181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
184 2, 2, 85, 2, 2, 2, 57, 48, 2, 64,
185 81, 55, 53, 86, 54, 63, 56, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 43, 82, 2,
187 41, 2, 42, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
190 65, 2, 88, 47, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 87, 46, 83, 84, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
207 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
208 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
209 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
210 37, 38, 39, 40, 44, 45, 49, 50, 51, 52,
211 58, 59, 60, 61, 62, 66, 67, 68, 69, 70,
212 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
216 static const short yyprhs
[] = { 0,
217 0, 1, 3, 4, 7, 8, 12, 14, 16, 18,
218 24, 27, 31, 36, 41, 44, 47, 50, 53, 55,
219 56, 57, 65, 70, 71, 72, 80, 85, 86, 87,
220 94, 98, 100, 102, 104, 106, 108, 110, 112, 114,
221 116, 118, 120, 122, 123, 125, 127, 131, 133, 136,
222 139, 142, 145, 148, 153, 156, 161, 164, 167, 174,
223 176, 178, 180, 185, 186, 194, 196, 200, 204, 208,
224 212, 216, 220, 224, 228, 232, 236, 240, 244, 245,
225 250, 251, 256, 257, 258, 266, 267, 273, 277, 281,
226 283, 285, 287, 291, 295, 299, 303, 308, 313, 317,
227 321, 324, 327, 329, 331, 333, 335, 337, 339, 342,
228 344, 347, 348, 350, 353, 357, 359, 361, 364, 367,
229 372, 377, 380, 383, 387, 389, 391, 394, 397, 398,
230 399, 404, 409, 413, 417, 420, 423, 426, 429, 433,
231 434, 437, 440, 443, 446, 450, 451, 454, 457, 459,
232 461, 464, 467, 469, 471, 474, 477, 480, 484, 485,
233 488, 490, 492, 494, 497, 500, 502, 507, 512, 514,
234 516, 518, 520, 524, 526, 530, 531, 536, 537, 544,
235 548, 549, 556, 560, 561, 563, 565, 568, 575, 577,
236 581, 582, 584, 589, 596, 601, 603, 605, 607, 609,
237 611, 612, 617, 619, 620, 623, 625, 629, 633, 636,
238 637, 642, 644, 645, 650, 652, 654, 656, 659, 662,
239 663, 664, 670, 671, 672, 678, 680, 682, 686, 690,
240 695, 699, 703, 707, 709, 711, 715, 720, 724, 728,
241 732, 734, 738, 742, 746, 751, 755, 759, 761, 763,
242 766, 768, 771, 773, 776, 777, 785, 791, 794, 795,
243 803, 809, 812, 813, 822, 823, 831, 834, 835, 837,
244 838, 840, 842, 845, 846, 850, 853, 858, 862, 868,
245 872, 874, 876, 879, 881, 885, 890, 897, 903, 905,
246 909, 911, 913, 917, 920, 923, 924, 926, 928, 931,
247 932, 935, 939, 943, 946, 950, 955, 959, 962, 966,
248 969, 973, 975, 977, 980, 983, 984, 986, 989, 990,
249 991, 993, 995, 998, 1002, 1004, 1007, 1009, 1011, 1017,
250 1022, 1027, 1030, 1033, 1036, 1039, 1044, 1045, 1050, 1051,
251 1052, 1056, 1061, 1065, 1067, 1069, 1071, 1073, 1076, 1077,
252 1082, 1084, 1088, 1089, 1090, 1098, 1104, 1107, 1108, 1109,
253 1110, 1123, 1124, 1131, 1134, 1137, 1140, 1144, 1151, 1160,
254 1171, 1184, 1188, 1193, 1195, 1197, 1198, 1205, 1209, 1215,
255 1218, 1222, 1223, 1225, 1226, 1228, 1229, 1231, 1233, 1237,
256 1242, 1244, 1248, 1249, 1252, 1255, 1256, 1261, 1264, 1265,
257 1267, 1269, 1273, 1275, 1279, 1284, 1289, 1294, 1299, 1304,
258 1305, 1308, 1310, 1313, 1315, 1319, 1321, 1325, 1327, 1329,
259 1331, 1333, 1335, 1337, 1339, 1341, 1345, 1349, 1354, 1355,
260 1356, 1367, 1368, 1375, 1376, 1377, 1390, 1391, 1400, 1401,
261 1408, 1411, 1412, 1421, 1426, 1427, 1437, 1443, 1444, 1451,
262 1452, 1454, 1458, 1462, 1464, 1466, 1468, 1470, 1471, 1475,
263 1478, 1482, 1486, 1488, 1489, 1491, 1495, 1497, 1501, 1504,
264 1505, 1506, 1507, 1515, 1516, 1517, 1518, 1526, 1527, 1528,
265 1531, 1533, 1535, 1538, 1539, 1543, 1545, 1547, 1548, 1549,
266 1555, 1556, 1557, 1563, 1568, 1570, 1576, 1579, 1580, 1583,
267 1584, 1586, 1588, 1590, 1593, 1596, 1601, 1604, 1607, 1609,
268 1613, 1616, 1619, 1622, 1623, 1626, 1627, 1631, 1633, 1635,
269 1638, 1640, 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656,
270 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676,
271 1678, 1680, 1682, 1684, 1686, 1688, 1695, 1699, 1705, 1708,
272 1710, 1712, 1714, 1717, 1719, 1723, 1726, 1728, 1730, 1731,
273 1732, 1739, 1741, 1743, 1745, 1748, 1751, 1753, 1758, 1763
276 static const short yyrhs
[] = { -1,
277 90, 0, 0, 91, 93, 0, 0, 90, 92, 93,
278 0, 95, 0, 94, 0, 248, 0, 27, 64, 104,
279 81, 82, 0, 247, 93, 0, 127, 141, 82, 0,
280 134, 127, 141, 82, 0, 130, 127, 140, 82, 0,
281 134, 82, 0, 130, 82, 0, 1, 82, 0, 1,
282 83, 0, 82, 0, 0, 0, 130, 127, 169, 96,
283 121, 97, 203, 0, 130, 127, 169, 1, 0, 0,
284 0, 134, 127, 172, 98, 121, 99, 203, 0, 134,
285 127, 172, 1, 0, 0, 0, 127, 172, 100, 121,
286 101, 203, 0, 127, 172, 1, 0, 3, 0, 4,
287 0, 77, 0, 72, 0, 48, 0, 54, 0, 53,
288 0, 59, 0, 60, 0, 84, 0, 85, 0, 106,
289 0, 0, 106, 0, 112, 0, 106, 86, 112, 0,
290 118, 0, 55, 110, 0, 247, 110, 0, 103, 110,
291 0, 45, 102, 0, 108, 107, 0, 108, 64, 190,
292 81, 0, 109, 107, 0, 109, 64, 190, 81, 0,
293 33, 110, 0, 34, 110, 0, 35, 64, 112, 86,
294 190, 81, 0, 11, 0, 29, 0, 107, 0, 64,
295 190, 81, 110, 0, 0, 64, 190, 81, 87, 111,
296 155, 83, 0, 110, 0, 112, 53, 112, 0, 112,
297 54, 112, 0, 112, 55, 112, 0, 112, 56, 112,
298 0, 112, 57, 112, 0, 112, 51, 112, 0, 112,
299 52, 112, 0, 112, 50, 112, 0, 112, 49, 112,
300 0, 112, 48, 112, 0, 112, 46, 112, 0, 112,
301 47, 112, 0, 0, 112, 45, 113, 112, 0, 0,
302 112, 44, 114, 112, 0, 0, 0, 112, 42, 115,
303 104, 43, 116, 112, 0, 0, 112, 42, 117, 43,
304 112, 0, 112, 41, 112, 0, 112, 40, 112, 0,
305 3, 0, 8, 0, 119, 0, 64, 104, 81, 0,
306 64, 1, 81, 0, 206, 205, 81, 0, 206, 1,
307 81, 0, 118, 64, 105, 81, 0, 118, 65, 104,
308 88, 0, 118, 63, 102, 0, 118, 62, 102, 0,
309 118, 59, 0, 118, 60, 0, 308, 0, 314, 0,
310 315, 0, 316, 0, 120, 0, 9, 0, 119, 9,
311 0, 80, 0, 120, 80, 0, 0, 123, 0, 123,
312 10, 0, 212, 213, 124, 0, 122, 0, 198, 0,
313 123, 122, 0, 122, 198, 0, 132, 127, 140, 82,
314 0, 135, 127, 141, 82, 0, 132, 82, 0, 135,
315 82, 0, 212, 213, 129, 0, 125, 0, 198, 0,
316 126, 125, 0, 125, 198, 0, 0, 0, 130, 127,
317 140, 82, 0, 134, 127, 141, 82, 0, 130, 127,
318 163, 0, 134, 127, 166, 0, 130, 82, 0, 134,
319 82, 0, 247, 129, 0, 138, 131, 0, 134, 138,
320 131, 0, 0, 131, 139, 0, 131, 5, 0, 131,
321 148, 0, 138, 133, 0, 135, 138, 133, 0, 0,
322 133, 139, 0, 133, 5, 0, 135, 0, 148, 0,
323 134, 135, 0, 134, 148, 0, 7, 0, 5, 0,
324 135, 7, 0, 135, 5, 0, 138, 137, 0, 192,
325 138, 137, 0, 0, 137, 139, 0, 6, 0, 176,
326 0, 4, 0, 72, 264, 0, 77, 264, 0, 265,
327 0, 28, 64, 104, 81, 0, 28, 64, 190, 81,
328 0, 6, 0, 7, 0, 176, 0, 143, 0, 140,
329 86, 143, 0, 145, 0, 141, 86, 143, 0, 0,
330 27, 64, 119, 81, 0, 0, 169, 142, 147, 41,
331 144, 153, 0, 169, 142, 147, 0, 0, 172, 142,
332 147, 41, 146, 153, 0, 172, 142, 147, 0, 0,
333 148, 0, 149, 0, 148, 149, 0, 30, 64, 64,
334 150, 81, 81, 0, 151, 0, 150, 86, 151, 0,
335 0, 152, 0, 152, 64, 3, 81, 0, 152, 64,
336 3, 86, 106, 81, 0, 152, 64, 105, 81, 0,
337 102, 0, 5, 0, 6, 0, 7, 0, 112, 0,
338 0, 87, 154, 155, 83, 0, 1, 0, 0, 156,
339 181, 0, 157, 0, 156, 86, 157, 0, 161, 41,
340 159, 0, 162, 159, 0, 0, 102, 43, 158, 159,
341 0, 159, 0, 0, 87, 160, 155, 83, 0, 112,
342 0, 1, 0, 162, 0, 161, 162, 0, 63, 102,
343 0, 0, 0, 169, 164, 121, 165, 207, 0, 0,
344 0, 172, 167, 121, 168, 207, 0, 170, 0, 172,
345 0, 64, 170, 81, 0, 170, 64, 242, 0, 170,
346 65, 104, 88, 0, 170, 65, 88, 0, 55, 193,
347 170, 0, 148, 128, 170, 0, 4, 0, 77, 0,
348 171, 64, 242, 0, 171, 65, 104, 88, 0, 171,
349 65, 88, 0, 55, 193, 171, 0, 148, 128, 171,
350 0, 4, 0, 172, 64, 242, 0, 64, 172, 81,
351 0, 55, 193, 172, 0, 172, 65, 104, 88, 0,
352 172, 65, 88, 0, 148, 128, 172, 0, 3, 0,
353 13, 0, 13, 148, 0, 14, 0, 14, 148, 0,
354 12, 0, 12, 148, 0, 0, 173, 102, 87, 177,
355 183, 83, 147, 0, 173, 87, 183, 83, 147, 0,
356 173, 102, 0, 0, 174, 102, 87, 178, 183, 83,
357 147, 0, 174, 87, 183, 83, 147, 0, 174, 102,
358 0, 0, 175, 102, 87, 179, 188, 182, 83, 147,
359 0, 0, 175, 87, 180, 188, 182, 83, 147, 0,
360 175, 102, 0, 0, 86, 0, 0, 86, 0, 184,
361 0, 184, 185, 0, 0, 184, 185, 82, 0, 184,
362 82, 0, 70, 64, 72, 81, 0, 136, 127, 186,
363 0, 136, 127, 212, 213, 147, 0, 192, 127, 186,
364 0, 192, 0, 1, 0, 247, 185, 0, 187, 0,
365 186, 86, 187, 0, 212, 213, 169, 147, 0, 212,
366 213, 169, 43, 112, 147, 0, 212, 213, 43, 112,
367 147, 0, 189, 0, 188, 86, 189, 0, 1, 0,
368 102, 0, 102, 41, 112, 0, 136, 191, 0, 192,
369 191, 0, 0, 194, 0, 7, 0, 192, 7, 0,
370 0, 193, 7, 0, 64, 194, 81, 0, 55, 193,
371 194, 0, 55, 193, 0, 194, 64, 235, 0, 194,
372 65, 104, 88, 0, 194, 65, 88, 0, 64, 235,
373 0, 65, 104, 88, 0, 65, 88, 0, 148, 128,
374 194, 0, 196, 0, 215, 0, 196, 215, 0, 196,
375 198, 0, 0, 195, 0, 1, 82, 0, 0, 0,
376 201, 0, 202, 0, 201, 202, 0, 32, 246, 82,
377 0, 207, 0, 1, 207, 0, 87, 0, 83, 0,
378 199, 200, 126, 197, 83, 0, 199, 200, 1, 83,
379 0, 199, 200, 195, 83, 0, 64, 87, 0, 204,
380 205, 0, 209, 214, 0, 209, 1, 0, 15, 64,
381 104, 81, 0, 0, 18, 211, 214, 17, 0, 0,
382 0, 212, 213, 217, 0, 212, 213, 228, 214, 0,
383 212, 213, 216, 0, 217, 0, 228, 0, 207, 0,
384 225, 0, 104, 82, 0, 0, 208, 16, 218, 214,
385 0, 208, 0, 208, 16, 1, 0, 0, 0, 17,
386 219, 64, 104, 81, 220, 214, 0, 210, 64, 104,
387 81, 82, 0, 210, 1, 0, 0, 0, 0, 19,
388 64, 230, 82, 221, 230, 82, 222, 230, 81, 223,
389 214, 0, 0, 20, 64, 104, 81, 224, 214, 0,
390 23, 82, 0, 24, 82, 0, 25, 82, 0, 25,
391 104, 82, 0, 27, 229, 64, 104, 81, 82, 0,
392 27, 229, 64, 104, 43, 231, 81, 82, 0, 27,
393 229, 64, 104, 43, 231, 43, 231, 81, 82, 0,
394 27, 229, 64, 104, 43, 231, 43, 231, 43, 234,
395 81, 82, 0, 26, 102, 82, 0, 26, 55, 104,
396 82, 0, 82, 0, 226, 0, 0, 19, 64, 118,
397 81, 227, 214, 0, 21, 112, 43, 0, 21, 112,
398 10, 112, 43, 0, 22, 43, 0, 102, 43, 147,
399 0, 0, 7, 0, 0, 104, 0, 0, 232, 0,
400 233, 0, 232, 86, 233, 0, 9, 64, 104, 81,
401 0, 119, 0, 234, 86, 119, 0, 0, 236, 237,
402 0, 239, 81, 0, 0, 240, 82, 238, 237, 0,
403 1, 81, 0, 0, 10, 0, 240, 0, 240, 86,
404 10, 0, 241, 0, 240, 86, 241, 0, 130, 127,
405 171, 147, 0, 130, 127, 172, 147, 0, 130, 127,
406 191, 147, 0, 134, 127, 172, 147, 0, 134, 127,
407 191, 147, 0, 0, 243, 244, 0, 237, 0, 245,
408 81, 0, 3, 0, 245, 86, 3, 0, 102, 0,
409 246, 86, 102, 0, 31, 0, 252, 0, 250, 0,
410 251, 0, 262, 0, 272, 0, 68, 0, 102, 0,
411 249, 86, 102, 0, 78, 249, 82, 0, 79, 102,
412 102, 82, 0, 0, 0, 66, 102, 264, 87, 253,
413 266, 83, 254, 279, 68, 0, 0, 66, 102, 264,
414 255, 279, 68, 0, 0, 0, 66, 102, 43, 102,
415 264, 87, 256, 266, 83, 257, 279, 68, 0, 0,
416 66, 102, 43, 102, 264, 258, 279, 68, 0, 0,
417 67, 102, 87, 259, 266, 83, 0, 67, 102, 0,
418 0, 67, 102, 43, 102, 87, 260, 266, 83, 0,
419 67, 102, 43, 102, 0, 0, 66, 102, 64, 102,
420 81, 264, 261, 279, 68, 0, 67, 102, 64, 102,
421 81, 0, 0, 76, 102, 264, 263, 279, 68, 0,
422 0, 265, 0, 50, 249, 50, 0, 266, 267, 268,
423 0, 268, 0, 74, 0, 75, 0, 73, 0, 0,
424 268, 269, 82, 0, 268, 82, 0, 136, 127, 270,
425 0, 192, 127, 270, 0, 1, 0, 0, 271, 0,
426 270, 86, 271, 0, 169, 0, 169, 43, 112, 0,
427 43, 112, 0, 0, 0, 0, 53, 273, 289, 274,
428 290, 275, 203, 0, 0, 0, 0, 54, 276, 289,
429 277, 290, 278, 203, 0, 0, 0, 280, 281, 0,
430 284, 0, 94, 0, 281, 284, 0, 0, 281, 282,
431 94, 0, 82, 0, 1, 0, 0, 0, 53, 285,
432 289, 286, 283, 0, 0, 0, 54, 287, 289, 288,
433 283, 0, 64, 190, 81, 298, 0, 298, 0, 64,
434 190, 81, 299, 296, 0, 299, 296, 0, 0, 82,
435 291, 0, 0, 292, 0, 293, 0, 198, 0, 292,
436 293, 0, 293, 198, 0, 130, 127, 294, 82, 0,
437 130, 82, 0, 134, 82, 0, 295, 0, 294, 86,
438 295, 0, 171, 147, 0, 172, 147, 0, 191, 147,
439 0, 0, 86, 10, 0, 0, 86, 297, 239, 0,
440 300, 0, 302, 0, 299, 302, 0, 3, 0, 4,
441 0, 77, 0, 301, 0, 12, 0, 13, 0, 14,
442 0, 15, 0, 16, 0, 17, 0, 18, 0, 19,
443 0, 20, 0, 21, 0, 22, 0, 23, 0, 24,
444 0, 25, 0, 26, 0, 27, 0, 11, 0, 28,
445 0, 29, 0, 6, 0, 7, 0, 300, 43, 64,
446 190, 81, 102, 0, 300, 43, 102, 0, 43, 64,
447 190, 81, 102, 0, 43, 102, 0, 300, 0, 304,
448 0, 306, 0, 304, 306, 0, 106, 0, 300, 43,
449 305, 0, 43, 305, 0, 104, 0, 72, 0, 0,
450 0, 65, 309, 307, 310, 303, 88, 0, 300, 0,
451 312, 0, 313, 0, 312, 313, 0, 300, 43, 0,
452 43, 0, 69, 64, 311, 81, 0, 76, 64, 102,
453 81, 0, 71, 64, 190, 81, 0
459 static const short yyrline
[] = { 0,
460 259, 264, 278, 280, 280, 281, 283, 285, 286, 287,
461 295, 299, 309, 313, 317, 319, 321, 322, 323, 328,
462 335, 337, 341, 345, 351, 353, 357, 361, 367, 369,
463 373, 379, 381, 382, 383, 386, 388, 390, 392, 394,
464 396, 398, 402, 406, 409, 412, 415, 419, 421, 424,
465 427, 431, 459, 465, 468, 471, 474, 476, 478, 482,
466 486, 490, 492, 495, 499, 526, 528, 530, 532, 534,
467 536, 538, 540, 542, 544, 546, 548, 550, 552, 556,
468 558, 562, 564, 567, 571, 573, 580, 583, 591, 602,
469 762, 763, 765, 771, 773, 796, 805, 807, 809, 821,
470 835, 837, 839, 841, 843, 845, 847, 852, 854, 861,
471 863, 867, 869, 870, 880, 885, 887, 888, 889, 896,
472 901, 905, 908, 916, 921, 923, 924, 925, 932, 942,
473 946, 951, 955, 959, 963, 965, 967, 976, 979, 983,
474 985, 987, 992, 996, 999, 1003, 1006, 1008, 1020, 1023,
475 1025, 1027, 1031, 1035, 1037, 1040, 1053, 1056, 1060, 1062,
476 1070, 1071, 1072, 1076, 1078, 1083, 1085, 1087, 1093, 1094,
477 1095, 1098, 1100, 1103, 1105, 1108, 1111, 1117, 1124, 1126,
478 1133, 1140, 1143, 1150, 1153, 1157, 1160, 1164, 1169, 1172,
479 1176, 1179, 1181, 1183, 1185, 1192, 1194, 1195, 1196, 1201,
480 1203, 1205, 1207, 1212, 1216, 1219, 1221, 1226, 1228, 1229,
481 1232, 1232, 1235, 1238, 1240, 1242, 1245, 1247, 1250, 1258,
482 1272, 1280, 1284, 1298, 1306, 1313, 1315, 1320, 1323, 1328,
483 1330, 1332, 1339, 1341, 1342, 1350, 1356, 1358, 1360, 1367,
484 1369, 1375, 1381, 1383, 1385, 1387, 1394, 1396, 1399, 1402,
485 1406, 1409, 1413, 1416, 1420, 1425, 1427, 1431, 1433, 1435,
486 1437, 1441, 1443, 1445, 1448, 1450, 1453, 1457, 1459, 1462,
487 1464, 1469, 1472, 1477, 1479, 1481, 1485, 1509, 1515, 1528,
488 1533, 1538, 1540, 1545, 1547, 1551, 1555, 1559, 1569, 1571,
489 1576, 1581, 1584, 1588, 1591, 1595, 1598, 1601, 1604, 1608,
490 1611, 1615, 1619, 1621, 1623, 1625, 1627, 1629, 1631, 1633,
491 1637, 1645, 1653, 1655, 1657, 1661, 1663, 1666, 1669, 1681,
492 1683, 1688, 1690, 1693, 1707, 1710, 1713, 1715, 1717, 1721,
493 1725, 1731, 1749, 1754, 1759, 1762, 1776, 1785, 1789, 1793,
494 1797, 1803, 1807, 1812, 1815, 1820, 1823, 1824, 1840, 1845,
495 1848, 1860, 1862, 1872, 1882, 1883, 1890, 1892, 1904, 1908,
496 1922, 1928, 1934, 1935, 1940, 1945, 1949, 1953, 1964, 1971,
497 1978, 1985, 1996, 2002, 2005, 2010, 2033, 2063, 2094, 2125,
498 2140, 2154, 2158, 2162, 2165, 2170, 2172, 2175, 2177, 2181,
499 2186, 2189, 2195, 2200, 2205, 2207, 2216, 2217, 2223, 2225,
500 2235, 2237, 2241, 2244, 2250, 2259, 2267, 2275, 2284, 2297,
501 2302, 2307, 2309, 2318, 2321, 2326, 2329, 2333, 2342, 2344,
502 2345, 2346, 2347, 2348, 2362, 2365, 2369, 2375, 2381, 2388,
503 2393, 2399, 2406, 2412, 2418, 2423, 2429, 2436, 2442, 2448,
504 2454, 2462, 2468, 2474, 2482, 2489, 2495, 2504, 2511, 2519,
505 2524, 2527, 2537, 2539, 2542, 2544, 2545, 2548, 2553, 2554,
506 2571, 2577, 2582, 2586, 2589, 2590, 2593, 2601, 2607, 2616,
507 2626, 2633, 2637, 2642, 2651, 2658, 2662, 2672, 2674, 2675,
508 2677, 2679, 2680, 2681, 2682, 2684, 2686, 2689, 2697, 2704,
509 2704, 2711, 2717, 2719, 2725, 2730, 2735, 2744, 2746, 2752,
510 2754, 2757, 2759, 2760, 2761, 2764, 2769, 2771, 2775, 2778,
511 2785, 2791, 2796, 2803, 2808, 2813, 2818, 2825, 2829, 2832,
512 2838, 2840, 2841, 2842, 2845, 2847, 2848, 2849, 2850, 2851,
513 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861,
514 2862, 2863, 2864, 2865, 2865, 2868, 2874, 2879, 2884, 2890,
515 2892, 2895, 2897, 2904, 2916, 2921, 2927, 2929, 2935, 2939,
516 2940, 2946, 2948, 2951, 2953, 2959, 2964, 2970, 2977, 2986
521 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
523 static const char * const yytname
[] = { "$","error","$undefined.","IDENTIFIER",
524 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
525 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
526 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
527 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT",
528 "END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE",
529 "ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
530 "MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION",
531 "END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED",
532 "PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
533 "'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef",
534 "@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist",
535 "unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11",
536 "@12","@13","@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
537 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
538 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
539 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
540 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
541 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
542 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
543 "initelt","@18","initval","@19","designator_list","designator","nested_function",
544 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
545 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
546 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
547 "component_decl_list2","component_decl","components","component_declarator",
548 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
549 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
550 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
551 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
552 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
553 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
554 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
555 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
556 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
557 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
558 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
559 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
560 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
561 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
562 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
563 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
564 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
565 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
566 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
570 static const short yyr1
[] = { 0,
571 89, 89, 91, 90, 92, 90, 93, 93, 93, 93,
572 93, 94, 94, 94, 94, 94, 94, 94, 94, 96,
573 97, 95, 95, 98, 99, 95, 95, 100, 101, 95,
574 95, 102, 102, 102, 102, 103, 103, 103, 103, 103,
575 103, 103, 104, 105, 105, 106, 106, 107, 107, 107,
576 107, 107, 107, 107, 107, 107, 107, 107, 107, 108,
577 109, 110, 110, 111, 110, 112, 112, 112, 112, 112,
578 112, 112, 112, 112, 112, 112, 112, 112, 113, 112,
579 114, 112, 115, 116, 112, 117, 112, 112, 112, 118,
580 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
581 118, 118, 118, 118, 118, 118, 118, 119, 119, 120,
582 120, 121, 121, 121, 122, 123, 123, 123, 123, 124,
583 124, 124, 124, 125, 126, 126, 126, 126, 127, 128,
584 129, 129, 129, 129, 129, 129, 129, 130, 130, 131,
585 131, 131, 131, 132, 132, 133, 133, 133, 134, 134,
586 134, 134, 135, 135, 135, 135, 136, 136, 137, 137,
587 138, 138, 138, 138, 138, 138, 138, 138, 139, 139,
588 139, 140, 140, 141, 141, 142, 142, 144, 143, 143,
589 146, 145, 145, 147, 147, 148, 148, 149, 150, 150,
590 151, 151, 151, 151, 151, 152, 152, 152, 152, 153,
591 154, 153, 153, 155, 155, 156, 156, 157, 157, 158,
592 157, 157, 160, 159, 159, 159, 161, 161, 162, 164,
593 165, 163, 167, 168, 166, 169, 169, 170, 170, 170,
594 170, 170, 170, 170, 170, 171, 171, 171, 171, 171,
595 171, 172, 172, 172, 172, 172, 172, 172, 173, 173,
596 174, 174, 175, 175, 177, 176, 176, 176, 178, 176,
597 176, 176, 179, 176, 180, 176, 176, 181, 181, 182,
598 182, 183, 183, 184, 184, 184, 184, 185, 185, 185,
599 185, 185, 185, 186, 186, 187, 187, 187, 188, 188,
600 188, 189, 189, 190, 190, 191, 191, 192, 192, 193,
601 193, 194, 194, 194, 194, 194, 194, 194, 194, 194,
602 194, 195, 196, 196, 196, 197, 197, 198, 199, 200,
603 200, 201, 201, 202, 203, 203, 204, 205, 205, 205,
604 205, 206, 207, 208, 208, 209, 211, 210, 212, 213,
605 214, 214, 215, 216, 216, 217, 217, 217, 218, 217,
606 217, 217, 219, 220, 217, 217, 217, 221, 222, 223,
607 217, 224, 217, 217, 217, 217, 217, 217, 217, 217,
608 217, 217, 217, 217, 225, 227, 226, 228, 228, 228,
609 228, 229, 229, 230, 230, 231, 231, 232, 232, 233,
610 234, 234, 236, 235, 237, 238, 237, 237, 239, 239,
611 239, 239, 240, 240, 241, 241, 241, 241, 241, 243,
612 242, 244, 244, 245, 245, 246, 246, 247, 248, 248,
613 248, 248, 248, 248, 249, 249, 250, 251, 253, 254,
614 252, 255, 252, 256, 257, 252, 258, 252, 259, 252,
615 252, 260, 252, 252, 261, 252, 252, 263, 262, 264,
616 264, 265, 266, 266, 267, 267, 267, 268, 268, 268,
617 269, 269, 269, 270, 270, 270, 271, 271, 271, 273,
618 274, 275, 272, 276, 277, 278, 272, 279, 280, 279,
619 281, 281, 281, 282, 281, 283, 283, 285, 286, 284,
620 287, 288, 284, 289, 289, 289, 289, 290, 290, 291,
621 291, 292, 292, 292, 292, 293, 293, 293, 294, 294,
622 295, 295, 295, 296, 296, 297, 296, 298, 299, 299,
623 300, 300, 300, 300, 301, 301, 301, 301, 301, 301,
624 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
625 301, 301, 301, 301, 301, 302, 302, 302, 302, 303,
626 303, 304, 304, 305, 306, 306, 307, 307, 309, 310,
627 308, 311, 311, 312, 312, 313, 313, 314, 315, 316
630 static const short yyr2
[] = { 0,
631 0, 1, 0, 2, 0, 3, 1, 1, 1, 5,
632 2, 3, 4, 4, 2, 2, 2, 2, 1, 0,
633 0, 7, 4, 0, 0, 7, 4, 0, 0, 6,
634 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
635 1, 1, 1, 0, 1, 1, 3, 1, 2, 2,
636 2, 2, 2, 4, 2, 4, 2, 2, 6, 1,
637 1, 1, 4, 0, 7, 1, 3, 3, 3, 3,
638 3, 3, 3, 3, 3, 3, 3, 3, 0, 4,
639 0, 4, 0, 0, 7, 0, 5, 3, 3, 1,
640 1, 1, 3, 3, 3, 3, 4, 4, 3, 3,
641 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
642 2, 0, 1, 2, 3, 1, 1, 2, 2, 4,
643 4, 2, 2, 3, 1, 1, 2, 2, 0, 0,
644 4, 4, 3, 3, 2, 2, 2, 2, 3, 0,
645 2, 2, 2, 2, 3, 0, 2, 2, 1, 1,
646 2, 2, 1, 1, 2, 2, 2, 3, 0, 2,
647 1, 1, 1, 2, 2, 1, 4, 4, 1, 1,
648 1, 1, 3, 1, 3, 0, 4, 0, 6, 3,
649 0, 6, 3, 0, 1, 1, 2, 6, 1, 3,
650 0, 1, 4, 6, 4, 1, 1, 1, 1, 1,
651 0, 4, 1, 0, 2, 1, 3, 3, 2, 0,
652 4, 1, 0, 4, 1, 1, 1, 2, 2, 0,
653 0, 5, 0, 0, 5, 1, 1, 3, 3, 4,
654 3, 3, 3, 1, 1, 3, 4, 3, 3, 3,
655 1, 3, 3, 3, 4, 3, 3, 1, 1, 2,
656 1, 2, 1, 2, 0, 7, 5, 2, 0, 7,
657 5, 2, 0, 8, 0, 7, 2, 0, 1, 0,
658 1, 1, 2, 0, 3, 2, 4, 3, 5, 3,
659 1, 1, 2, 1, 3, 4, 6, 5, 1, 3,
660 1, 1, 3, 2, 2, 0, 1, 1, 2, 0,
661 2, 3, 3, 2, 3, 4, 3, 2, 3, 2,
662 3, 1, 1, 2, 2, 0, 1, 2, 0, 0,
663 1, 1, 2, 3, 1, 2, 1, 1, 5, 4,
664 4, 2, 2, 2, 2, 4, 0, 4, 0, 0,
665 3, 4, 3, 1, 1, 1, 1, 2, 0, 4,
666 1, 3, 0, 0, 7, 5, 2, 0, 0, 0,
667 12, 0, 6, 2, 2, 2, 3, 6, 8, 10,
668 12, 3, 4, 1, 1, 0, 6, 3, 5, 2,
669 3, 0, 1, 0, 1, 0, 1, 1, 3, 4,
670 1, 3, 0, 2, 2, 0, 4, 2, 0, 1,
671 1, 3, 1, 3, 4, 4, 4, 4, 4, 0,
672 2, 1, 2, 1, 3, 1, 3, 1, 1, 1,
673 1, 1, 1, 1, 1, 3, 3, 4, 0, 0,
674 10, 0, 6, 0, 0, 12, 0, 8, 0, 6,
675 2, 0, 8, 4, 0, 9, 5, 0, 6, 0,
676 1, 3, 3, 1, 1, 1, 1, 0, 3, 2,
677 3, 3, 1, 0, 1, 3, 1, 3, 2, 0,
678 0, 0, 7, 0, 0, 0, 7, 0, 0, 2,
679 1, 1, 2, 0, 3, 1, 1, 0, 0, 5,
680 0, 0, 5, 4, 1, 5, 2, 0, 2, 0,
681 1, 1, 1, 2, 2, 4, 2, 2, 1, 3,
682 2, 2, 2, 0, 2, 0, 3, 1, 1, 2,
683 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
684 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
685 1, 1, 1, 1, 1, 6, 3, 5, 2, 1,
686 1, 1, 2, 1, 3, 2, 1, 1, 0, 0,
687 6, 1, 1, 1, 2, 2, 1, 4, 4, 4
690 static const short yydefact
[] = { 3,
691 5, 0, 0, 0, 163, 154, 161, 153, 253, 249,
692 251, 0, 0, 0, 418, 0, 470, 474, 0, 0,
693 424, 450, 0, 450, 0, 0, 19, 4, 8, 7,
694 0, 129, 129, 149, 140, 150, 186, 0, 0, 0,
695 162, 0, 9, 420, 421, 419, 422, 166, 423, 6,
696 17, 18, 254, 250, 252, 0, 0, 0, 32, 33,
697 35, 34, 425, 0, 0, 0, 450, 441, 164, 451,
698 450, 165, 0, 0, 248, 300, 0, 0, 174, 130,
699 0, 16, 0, 15, 0, 151, 140, 152, 156, 155,
700 138, 187, 274, 258, 274, 262, 265, 267, 11, 90,
701 91, 108, 60, 61, 0, 0, 0, 0, 36, 38,
702 37, 0, 39, 40, 0, 559, 0, 0, 0, 110,
703 41, 42, 0, 0, 43, 62, 0, 0, 66, 46,
704 48, 92, 107, 0, 0, 103, 104, 105, 106, 298,
705 0, 296, 159, 0, 296, 191, 452, 0, 521, 522,
706 544, 545, 541, 525, 526, 527, 528, 529, 530, 531,
707 532, 533, 534, 535, 536, 537, 538, 539, 540, 542,
708 543, 0, 0, 523, 471, 495, 514, 518, 524, 519,
709 475, 0, 0, 432, 0, 0, 439, 448, 427, 0,
710 0, 0, 12, 0, 0, 31, 0, 410, 0, 0,
711 184, 234, 300, 0, 235, 0, 172, 130, 0, 226,
712 227, 0, 0, 139, 142, 169, 170, 141, 143, 171,
713 0, 0, 0, 255, 0, 259, 0, 263, 57, 58,
714 0, 52, 49, 0, 332, 0, 0, 0, 0, 0,
715 0, 51, 0, 0, 0, 53, 0, 55, 0, 0,
716 83, 81, 79, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 101, 102, 0, 0, 44,
718 0, 109, 111, 0, 328, 320, 0, 50, 167, 300,
719 393, 0, 130, 294, 297, 157, 168, 299, 159, 295,
720 197, 198, 199, 196, 0, 189, 192, 426, 0, 549,
721 0, 498, 516, 497, 0, 520, 0, 498, 450, 0,
722 429, 479, 444, 0, 458, 479, 428, 301, 244, 243,
723 175, 176, 247, 0, 242, 0, 246, 0, 0, 29,
724 0, 339, 117, 340, 183, 185, 0, 0, 14, 0,
725 0, 23, 0, 184, 410, 0, 13, 27, 0, 0,
726 184, 282, 276, 129, 273, 129, 0, 274, 184, 274,
727 291, 292, 270, 289, 0, 0, 94, 93, 0, 558,
728 557, 560, 567, 562, 0, 563, 564, 0, 0, 10,
729 47, 0, 0, 89, 88, 0, 0, 0, 0, 77,
730 78, 76, 75, 74, 72, 73, 67, 68, 69, 70,
731 71, 100, 99, 0, 45, 0, 96, 0, 0, 321,
732 322, 95, 304, 0, 308, 0, 310, 0, 0, 393,
733 0, 160, 158, 0, 191, 44, 0, 0, 0, 472,
734 515, 399, 0, 547, 476, 437, 450, 458, 0, 0,
735 442, 447, 0, 0, 0, 0, 0, 414, 400, 129,
736 129, 412, 0, 401, 403, 411, 0, 245, 318, 0,
737 119, 114, 118, 0, 181, 232, 228, 173, 233, 21,
738 180, 229, 231, 0, 25, 0, 257, 339, 275, 339,
739 283, 0, 261, 0, 0, 271, 0, 270, 0, 64,
740 63, 0, 566, 568, 0, 565, 570, 569, 54, 56,
741 0, 0, 82, 80, 97, 98, 416, 0, 0, 0,
742 339, 0, 0, 126, 340, 313, 323, 303, 302, 394,
743 309, 311, 305, 307, 0, 188, 190, 90, 0, 0,
744 494, 514, 129, 0, 503, 499, 501, 0, 0, 517,
745 401, 0, 0, 434, 479, 445, 0, 433, 488, 491,
746 482, 0, 129, 129, 484, 481, 458, 457, 455, 456,
747 440, 458, 463, 460, 129, 129, 0, 449, 177, 398,
748 296, 296, 395, 396, 0, 413, 0, 0, 327, 30,
749 319, 325, 115, 129, 129, 146, 0, 0, 178, 230,
750 0, 277, 278, 284, 340, 280, 340, 184, 184, 293,
751 290, 184, 0, 0, 0, 0, 550, 0, 551, 552,
752 84, 87, 324, 0, 330, 128, 127, 317, 0, 331,
753 315, 340, 314, 0, 306, 193, 0, 195, 548, 496,
754 507, 296, 508, 504, 505, 473, 0, 477, 458, 0,
755 479, 430, 0, 0, 176, 0, 0, 0, 483, 0,
756 0, 464, 464, 459, 241, 300, 393, 130, 184, 184,
757 184, 300, 130, 184, 184, 0, 402, 404, 415, 326,
758 333, 122, 0, 123, 0, 146, 144, 203, 201, 200,
759 182, 22, 0, 26, 339, 184, 0, 256, 260, 266,
760 184, 59, 216, 90, 0, 213, 0, 215, 0, 268,
761 206, 212, 0, 0, 554, 556, 0, 561, 0, 553,
762 0, 417, 329, 0, 163, 0, 353, 337, 0, 0,
763 0, 0, 0, 0, 0, 0, 382, 450, 450, 374,
764 0, 0, 124, 129, 129, 346, 351, 0, 0, 343,
765 344, 347, 375, 345, 0, 0, 184, 184, 184, 0,
766 509, 546, 0, 438, 0, 479, 489, 492, 485, 443,
767 0, 467, 461, 465, 462, 304, 0, 410, 0, 405,
768 406, 407, 304, 0, 408, 409, 397, 0, 0, 145,
769 148, 147, 0, 179, 285, 0, 279, 130, 184, 264,
770 219, 0, 210, 65, 0, 205, 0, 218, 209, 555,
771 85, 0, 0, 339, 384, 0, 0, 380, 364, 365,
772 366, 0, 0, 0, 383, 0, 184, 348, 135, 0,
773 136, 0, 0, 335, 340, 334, 357, 0, 137, 194,
774 511, 512, 513, 506, 296, 435, 446, 0, 0, 0,
775 469, 0, 0, 239, 240, 236, 238, 0, 120, 121,
776 0, 184, 0, 286, 0, 0, 207, 208, 0, 0,
777 0, 385, 48, 0, 0, 0, 378, 367, 0, 372,
778 0, 381, 0, 133, 220, 0, 134, 223, 352, 339,
779 0, 0, 510, 479, 431, 487, 486, 490, 493, 468,
780 466, 237, 202, 288, 184, 214, 211, 336, 0, 338,
781 376, 358, 362, 0, 373, 0, 131, 0, 132, 0,
782 350, 341, 339, 0, 0, 287, 354, 339, 384, 339,
783 379, 386, 0, 221, 224, 342, 356, 436, 339, 377,
784 0, 363, 0, 0, 387, 388, 368, 0, 0, 355,
785 359, 0, 386, 0, 0, 222, 225, 384, 0, 0,
786 369, 389, 0, 390, 0, 0, 360, 391, 0, 370,
787 339, 0, 0, 361, 371, 392, 0, 0, 0
790 static const short yydefgoto
[] = { 967,
791 1, 2, 3, 28, 29, 30, 343, 588, 349, 591,
792 200, 460, 697, 123, 236, 404, 125, 126, 127, 128,
793 129, 605, 130, 389, 388, 386, 711, 387, 131, 132,
794 133, 330, 331, 332, 583, 510, 511, 31, 341, 733,
795 450, 91, 584, 677, 451, 34, 142, 286, 35, 218,
796 206, 78, 201, 207, 683, 79, 587, 335, 336, 37,
797 295, 296, 297, 681, 783, 699, 700, 701, 856, 702,
798 792, 703, 704, 874, 908, 938, 877, 910, 939, 322,
799 210, 747, 211, 38, 39, 40, 41, 358, 360, 365,
800 227, 796, 487, 222, 223, 355, 593, 594, 363, 364,
801 144, 749, 145, 191, 285, 512, 513, 619, 333, 276,
802 409, 410, 411, 580, 581, 277, 134, 582, 737, 738,
803 739, 804, 825, 464, 826, 516, 740, 741, 880, 803,
804 929, 919, 948, 961, 920, 742, 743, 918, 744, 816,
805 864, 934, 935, 936, 959, 415, 416, 452, 666, 453,
806 454, 455, 325, 326, 456, 457, 508, 135, 43, 64,
807 44, 45, 46, 438, 756, 312, 639, 884, 545, 315,
808 557, 641, 47, 316, 69, 48, 443, 562, 444, 567,
809 763, 764, 49, 65, 302, 539, 66, 308, 543, 439,
810 440, 555, 648, 888, 556, 643, 839, 644, 840, 175,
811 430, 536, 537, 538, 750, 751, 304, 432, 176, 177,
812 178, 179, 180, 608, 609, 706, 610, 372, 136, 238,
813 492, 375, 376, 377, 137, 138, 139
816 static const short yypact
[] = { 102,
817 124, 3399, 3399, 214,-32768,-32768,-32768,-32768, 70, 70,
818 70, 114, 145, 206,-32768, 152,-32768,-32768, 152, 152,
819 -32768, 94, 152, 94, 152, 152,-32768,-32768,-32768,-32768,
820 189, 197, 1269, 271,-32768, 70,-32768, 135, 230, 306,
821 -32768, 3399,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
822 -32768,-32768, 70, 70, 70, 3083, 2906, 223,-32768,-32768,
823 -32768,-32768,-32768, 61, 3667, 3667, 131, 50,-32768,-32768,
824 94,-32768, 252, 152,-32768,-32768, 189, 293,-32768, 70,
825 2040,-32768, 479,-32768, 189, 271,-32768, 70,-32768,-32768,
826 910,-32768, 224, 219, 224, 229,-32768, 242,-32768,-32768,
827 -32768,-32768,-32768,-32768, 3083, 3083, 313, 152,-32768,-32768,
828 -32768, 3083,-32768,-32768, 1620,-32768, 322, 332, 346,-32768,
829 -32768,-32768, 3083, 254, 330,-32768, 3142, 3201,-32768, 3961,
830 523, 335, 347, 985, 3083,-32768,-32768,-32768,-32768,-32768,
831 349, 434,-32768, 360, 3794, 343,-32768, 152,-32768,-32768,
832 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
833 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
834 -32768, 368, 3874,-32768,-32768,-32768, 2795, 415,-32768,-32768,
835 -32768, 152, 152, 362, 152, 152,-32768,-32768,-32768, 386,
836 503, 292,-32768, 479, 189,-32768, 402,-32768, 2224, 255,
837 70,-32768,-32768, 479,-32768, 337,-32768, 70, 2143, 406,
838 475, 418, 2059, 910,-32768,-32768,-32768,-32768, 70,-32768,
839 416, 408, 1966,-32768, 420,-32768, 119,-32768,-32768,-32768,
840 3083,-32768,-32768, 424,-32768, 451, 472, 2965, 3700, 3874,
841 152,-32768, 477, 3083, 1620,-32768, 1620,-32768, 3083, 3083,
842 514,-32768,-32768, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
843 3083, 3083, 3083, 3083, 3083,-32768,-32768, 152, 152, 3083,
844 3083,-32768,-32768, 483,-32768, 539, 496,-32768,-32768,-32768,
845 434, 2288, 70,-32768, 486, 666,-32768,-32768,-32768,-32768,
846 -32768,-32768,-32768,-32768, 222,-32768, 525,-32768, 3874,-32768,
847 513, 519, 593,-32768, 415,-32768, 443, 519, 94, 527,
848 -32768, 543, 537, 544,-32768, 543,-32768,-32768, 475,-32768,
849 -32768, 600, 475, 626,-32768, 103,-32768, 573, 603,-32768,
850 793, 80,-32768,-32768, 646, 70, 384, 325,-32768, 479,
851 479,-32768, 255, 70,-32768, 2352,-32768,-32768, 255, 617,
852 70,-32768,-32768,-32768, 611, 354, 3600, 224, 70, 224,
853 -32768, 662, 620,-32768, 119, 1283,-32768,-32768, 2710,-32768,
854 -32768,-32768,-32768, 664, 630, 3700,-32768, 633, 654,-32768,
855 3961, 655, 657, 3961, 3961, 3083, 665, 3083, 3083, 1588,
856 1391, 672, 1068, 1257, 688, 688, 627, 627,-32768,-32768,
857 -32768,-32768,-32768, 667, 330, 663,-32768, 152, 1185, 539,
858 -32768,-32768, 388, 448,-32768, 3553,-32768, 670, 434,-32768,
859 2416,-32768, 666, 671, 343, 3260, 673, 3735, 2162,-32768,
860 -32768, 3371, 3874,-32768,-32768, 668, 94,-32768, 685, 3479,
861 -32768,-32768, 487, 3342, 691, 79, 680,-32768,-32768,-32768,
862 3824,-32768, 682, 436,-32768,-32768, 273,-32768,-32768, 77,
863 -32768,-32768,-32768, 3863,-32768, 406,-32768,-32768, 406,-32768,
864 723,-32768,-32768, 677,-32768, 686,-32768,-32768,-32768,-32768,
865 -32768, 683,-32768, 690, 3083, 152, 694, 620, 3874,-32768,
866 -32768, 3768,-32768,-32768, 664,-32768,-32768,-32768,-32768,-32768,
867 735, 3083, 1125, 1238,-32768,-32768,-32768, 437, 509, 1082,
868 697, 699, 1341,-32768,-32768,-32768,-32768, 486,-32768,-32768,
869 -32768, 486,-32768,-32768, 696,-32768,-32768, 283, 705, 152,
870 -32768, 2795, 706, 2174,-32768,-32768, 3824, 2193, 77,-32768,
871 701, 709, 77,-32768, 543,-32768, 555,-32768,-32768,-32768,
872 -32768, 189, 197, 1269, 258,-32768,-32768,-32768,-32768,-32768,
873 -32768,-32768,-32768,-32768,-32768, 3891, 710,-32768,-32768,-32768,
874 227, 298,-32768,-32768, 3813,-32768, 790, 708,-32768,-32768,
875 713,-32768,-32768, 730, 3583,-32768, 873, 77,-32768,-32768,
876 77,-32768, 733,-32768,-32768, 733,-32768, 70, 70, 3961,
877 -32768, 70, 737, 741, 1705, 3083, 773, 740, 3768,-32768,
878 -32768, 1673,-32768, 152,-32768,-32768,-32768,-32768, 746,-32768,
879 -32768,-32768,-32768, 2566,-32768,-32768, 3083,-32768,-32768,-32768,
880 -32768, 227,-32768,-32768,-32768,-32768, 152,-32768,-32768, 755,
881 543,-32768, 3667, 3667, 98, 479, 189, 3498,-32768, 577,
882 3359, 447, 447,-32768,-32768,-32768, 298, 70, 259, 370,
883 70,-32768, 70, 370, 70, 3553,-32768,-32768,-32768,-32768,
884 -32768,-32768, 479,-32768, 189,-32768, 1143,-32768,-32768, 3961,
885 -32768,-32768, 873,-32768,-32768, 471, 471,-32768,-32768,-32768,
886 70,-32768,-32768, 788, 152,-32768, 791, 3961, 752, 750,
887 -32768,-32768, 87, 1875, 330,-32768, 3083,-32768, 773,-32768,
888 3083,-32768,-32768, 2651, 795, 775,-32768,-32768, 777, 778,
889 3083, 801, 765, 780, 3024, 243, 861, 76, 200,-32768,
890 826, 789,-32768, 796, 3572,-32768, 856, 1450, 95,-32768,
891 -32768,-32768,-32768,-32768, 2823, 336, 259, 370, 70, 490,
892 -32768,-32768, 581,-32768, 805, 543,-32768,-32768,-32768,-32768,
893 3083, 832, 797,-32768, 797, 602, 227,-32768, 2480,-32768,
894 -32768,-32768, 640, 298,-32768,-32768,-32768, 536, 554, 1143,
895 -32768,-32768, 1705,-32768,-32768, 3083,-32768, 122, 75,-32768,
896 -32768, 1705,-32768,-32768, 1790,-32768, 1955,-32768,-32768,-32768,
897 1673, 3083, 813,-32768, 3083, 3083, 921,-32768,-32768,-32768,
898 -32768, 803, 3083, 806,-32768, 825, 70,-32768,-32768, 479,
899 -32768, 189, 1535,-32768,-32768,-32768,-32768, 3083,-32768,-32768,
900 -32768,-32768,-32768,-32768, 227,-32768,-32768, 822, 83, 83,
901 3961, 3083, 447, 610, 610,-32768,-32768, 807,-32768,-32768,
902 808, 3925, 3083,-32768, 810, 1955,-32768,-32768, 816, 3083,
903 877,-32768, 482, 817, 819, 3083,-32768,-32768, 821,-32768,
904 3083,-32768, 560,-32768, 236, 562,-32768, 744,-32768,-32768,
905 2651, 820,-32768, 543,-32768,-32768,-32768,-32768,-32768, 3961,
906 -32768,-32768,-32768,-32768, 3925,-32768,-32768,-32768, 824,-32768,
907 -32768,-32768,-32768, 3943,-32768, 160,-32768, 255,-32768, 255,
908 -32768,-32768,-32768, 827, 830,-32768,-32768,-32768, 3083,-32768,
909 -32768, 901, 829,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
910 831,-32768, 848, 168, 828,-32768,-32768, 708, 708,-32768,
911 -32768, 3083, 901, 837, 901,-32768,-32768, 3083, 839, 171,
912 -32768,-32768, 849,-32768, 626, 847,-32768, 335, 373,-32768,
913 -32768, 852, 626,-32768,-32768, 335, 935, 939,-32768
916 static const short yypgoto
[] = {-32768,
917 -32768,-32768,-32768, 100, -375,-32768,-32768,-32768,-32768,-32768,
918 -32768,-32768, -14,-32768, -56, 515, -226, 280,-32768,-32768,
919 -74,-32768, 596,-32768,-32768,-32768,-32768,-32768, 140, -310,
920 -32768, -313, 614,-32768,-32768, 439,-32768, 248, -46, 202,
921 15, 864,-32768, 272, 38, -26, -172, 698, 492, -244,
922 -602, -82, -181, -120,-32768,-32768,-32768, -262, 44, -32,
923 -32768, 529,-32768, 269,-32768, -638,-32768, 164,-32768, -631,
924 -32768,-32768, 276,-32768,-32768,-32768,-32768,-32768,-32768, -73,
925 -109, -502, 2,-32768,-32768,-32768, -78,-32768,-32768,-32768,
926 -32768,-32768, 467, -27,-32768, 623, 521, 310, 656, 538,
927 -24, -75, -159, -168, -236, 511,-32768,-32768, -239,-32768,
928 -32768,-32768, 613, -22,-32768, 444,-32768, -526,-32768,-32768,
929 -32768,-32768, -192, -449, -719, 516,-32768, 146,-32768,-32768,
930 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 147,-32768,
931 -818, 88,-32768, 89,-32768, 612,-32768, -353,-32768, 604,
932 605, 466, -306,-32768,-32768,-32768,-32768, 17,-32768, 1017,
933 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
934 -32768,-32768,-32768,-32768, -9, 5, -355,-32768, 481,-32768,
935 394, 205,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -300,
936 -32768,-32768,-32768, 211, 497,-32768,-32768,-32768,-32768, -23,
937 745,-32768,-32768, 518,-32768, 225, 531,-32768, 631, 636,
938 -140,-32768, -127,-32768,-32768, 359, 462,-32768,-32768,-32768,
939 -32768,-32768,-32768, 700,-32768,-32768,-32768
946 static const short yytable
[] = { 124,
947 141, 63, 212, 92, 67, 68, 86, 334, 71, 209,
948 63, 74, 220, 446, 72, 445, 32, 32, 42, 42,
949 92, 92, 92, 94, 96, 98, 70, 344, 70, 470,
950 229, 230, 81, 195, 337, 475, 305, 233, 472, 33,
951 33, 422, 181, 405, 414, 36, 36, 92, 242, 306,
952 354, 670, 53, 54, 55, 92, 32, 184, 42, 190,
953 278, 188, 520, 356, 551, 624, 284, 225, 659, 290,
954 778, 70, 799, 321, 80, 70, 88, 578, 192, 33,
955 -113, 471, 547, 886, 861, 36, 213, 272, 477, 462,
956 237, 461, 185, 232, 338, 827, 483, 736, 374, 14,
957 931, -1, 50, 447, 14, 448, 5, 6, 7, 8,
958 147, 413, 449, 186, 9, 10, 11, 853, -35, 361,
959 80, 59, 60, -2, 197, 16, 208, 797, 80, 953,
960 13, 294, 14, 298, 219, 220, 187, 59, 60, 334,
961 344, 99, 328, 16, 851, 686, 148, 687, 301, 695,
962 334, 14, 16, 855, 59, 60, 334, 300, 828, 569,
963 911, 198, 199, 579, 887, 858, -113, 309, 310, 514,
964 313, 314, 714, 182, 22, 92, 518, 56, 422, 24,
965 16, 371, 522, -399, 354, 283, 92, 736, 283, 535,
966 61, 75, 319, 926, 183, 62, 323, 356, 930, 405,
967 932, 650, 922, -185, -185, 192, 61, 220, 57, 940,
968 943, 62, 362, 955, 406, 378, 515, 873, 14, 468,
969 382, 93, 383, 61, 897, 418, 379, 466, 62, 75,
970 655, 469, 59, 60, 80, 495, 419, 208, 80, 357,
971 923, 964, -34, 76, 640, 59, 60, 208, 944, 16,
972 92, 956, 77, 402, 403, 329, 14, 219, -339, -339,
973 -339, -339, 197, 844, 845, -176, -339, -339, -339, 58,
974 616, 565, 759, 621, 427, 89, -176, 90, 82, 83,
975 85, 656, -339, 753, 566, 595, 146, 597, 14, 474,
976 657, 282, 434, 221, 491, 51, 52, 813, 635, 436,
977 75, 61, 424, 92, -339, 224, 62, 425, 59, 60,
978 549, 550, 777, 70, 61, 226, 95, -176, 515, 62,
979 622, -176, 768, 769, 283, -480, -339, 14, 228, 501,
980 482, -339, 484, 189, 243, 688, 689, 148, 319, 690,
981 755, -112, 323, 272, 220, 59, 60, 291, 292, 293,
982 362, 607, 662, 576, 736, 198, 199, 5, 577, 7,
983 288, 657, 282, 626, 525, 9, 10, 11, 627, 36,
984 59, 60, 320, 357, 193, 881, 231, 61, 194, 705,
985 208, 13, 62, 208, 208, 239, 75, 202, 345, 346,
986 318, 305, 97, 507, 318, 240, 770, 771, 772, 14,
987 746, 775, 776, 16, 306, 467, 246, 248, 542, 241,
988 294, 946, 947, 14, 61, 244, 830, 14, 339, 62,
989 414, 244, 340, 787, 86, 22, 273, 546, 790, 279,
990 24, 299, 782, 198, 199, -281, -281, 585, 203, 61,
991 287, 70, 280, 533, 62, 59, 60, 204, 311, 75,
992 202, 281, 282, 962, 553, 838, 283, 307, 963, 36,
993 205, 846, 283, 14, 604, 324, 534, 317, 709, 345,
994 346, 362, 36, 75, 202, 36, 14, 554, 565, 350,
995 705, 75, 202, 36, 831, 832, 833, 766, 280, 761,
996 351, 566, 597, 773, 88, 661, 665, 281, 282, 347,
997 14, 203, 359, 194, 367, 75, 433, 86, 14, 318,
998 204, 420, 421, 786, 61, 629, 636, 574, 613, 62,
999 638, 575, 614, 205, 87, 203, 854, 86, 519, 518,
1000 522, 368, 14, 203, 204, 782, 518, 522, 198, 199,
1001 266, 267, 204, 268, 269, 270, 271, 205, 143, 420,
1002 421, 533, 369, 645, 872, 205, -86, 76, 380, 558,
1003 559, 560, 901, 407, 212, 682, 77, 732, 684, 561,
1004 408, 834, 660, 664, 534, 835, 412, 88, 762, 762,
1005 36, 266, 267, 915, 268, 269, 270, 271, 426, 894,
1006 459, 615, 779, 428, 924, 80, 925, 88, 220, 712,
1007 429, 478, 431, 480, 75, 655, 143, 437, 318, 731,
1008 -478, 767, 789, 789, 658, 663, 774, 849, 36, 757,
1009 758, 340, 752, 441, 442, 92, 197, 558, 559, 560,
1010 92, 14, 916, 748, 102, 850, 289, 642, 734, 194,
1011 745, 907, 75, 909, 958, 340, 318, 194, 645, 558,
1012 559, 560, 966, 558, 559, 560, 656, 732, 192, 760,
1013 458, 735, 553, 836, 143, 657, 282, 36, 812, 14,
1014 278, 216, 217, 768, 769, 658, 645, 9, 10, 11,
1015 791, 263, 264, 265, 459, 554, 465, 552, 476, 208,
1016 80, 36, 479, 344, 662, 208, 208, 571, 572, 731,
1017 663, 220, 485, 657, 282, 486, 493, 502, 86, 36,
1018 494, 814, 848, 497, 143, 334, 208, 334, 80, 72,
1019 257, 258, 259, 260, 261, 262, 263, 264, 265, 788,
1020 208, 143, 70, 70, 498, 499, 143, 500, 143, 876,
1021 261, 262, 263, 264, 265, 859, 875, 505, 862, 865,
1022 506, 526, 548, 530, 544, 92, 869, 521, 568, 734,
1023 570, 745, 573, 589, 590, 598, 592, 319, 323, 762,
1024 197, 882, 599, -176, 319, 323, 602, 611, 88, -316,
1025 632, 620, 735, 625, -176, 628, 575, 631, 36, 637,
1026 143, 654, 669, 329, 579, 275, -116, -116, -116, -116,
1027 646, 647, -116, 899, -116, -116, -116, 198, 199, 658,
1028 658, 672, 652, 653, 906, 707, 663, 663, 685, 691,
1029 -116, 692, 754, 878, 732, -176, 366, 708, 713, -176,
1030 -32, 673, 675, 793, 794, 795, 748, -33, 802, 381,
1031 805, 806, -116, 808, 384, 385, 809, 289, 143, 390,
1032 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
1033 401, 810, 862, 208, -116, 80, 731, 815, 817, -116,
1034 818, 823, 837, 678, 842, 100, 860, 819, 658, -116,
1035 101, 102, 843, 103, 868, 949, 208, 870, 871, 885,
1036 893, 862, 896, 900, 892, 552, 898, 928, 902, 903,
1037 914, 104, 905, 15, 917, 105, 106, 107, 927, 933,
1038 937, 942, 941, 945, 215, 216, 217, 108, 951, 954,
1039 109, 9, 10, 11, 143, 110, 111, 112, 960, 957,
1040 866, 113, 114, 965, 968, 143, 115, 116, 969, 14,
1041 529, 117, 87, 118, 863, 463, 829, 780, 119, 617,
1042 214, 784, 120, 527, 603, 586, 121, 122, 857, 679,
1043 249, 250, 251, 867, 252, 253, 254, 255, 256, 257,
1044 258, 259, 260, 261, 262, 263, 264, 265, 798, 481,
1045 143, 820, 822, 503, 504, 274, 423, -319, -319, -319,
1046 -319, -319, -319, -319, 785, -319, -319, -319, -319, -319,
1047 596, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1048 -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
1049 488, 618, 517, 601, 671, 87, 912, 913, 623, -319,
1050 950, 523, -319, 952, -319, 540, 541, -319, -319, -319,
1051 668, 73, 651, -319, -319, 87, 765, 891, -319, -319,
1052 889, 649, 435, -319, 634, -319, -319, 289, 531, 883,
1053 -319, -319, 630, 532, -319, 800, -319, 275, -319, -319,
1054 710, -319, 0, 0, 0, 496, 676, 0, 0, 0,
1055 600, 0, 329, 0, -125, -125, -125, -125, -125, -125,
1056 -125, 0, -125, -125, -125, -125, -125, 612, -125, -125,
1057 -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1058 -125, -125, -125, 0, -125, -125, -125, 258, 259, 260,
1059 261, 262, 263, 264, 265, 0, -125, 0, 0, -125,
1060 0, -125, 0, 0, -125, -125, -125, 0, 0, 0,
1061 -125, -125, 143, 0, 0, -125, -125, 781, 216, 217,
1062 -125, 0, -125, -125, 9, 10, 11, -125, -125, 0,
1063 0, -125, 0, -125, -125, -125, -125, 0, -125, 253,
1064 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1065 264, 265, 680, 0, 0, 509, 0, -339, -339, -339,
1066 -339, -339, -339, -339, 0, -339, -339, -339, -339, -339,
1067 698, -339, -339, -339, -339, -339, -339, -339, -339, -339,
1068 -339, -339, -339, -339, -339, -339, 0, -339, -339, -339,
1069 0, 0, 0, 0, 0, 0, 87, 0, 0, -339,
1070 0, 0, -339, 0, -339, 0, 0, -339, -339, -339,
1071 0, 0, 0, -339, -339, 0, 0, 0, -339, -339,
1072 0, 0, 0, -339, 0, -339, -339, 0, 0, 0,
1073 -339, -339, 0, 0, -339, 0, -339, 0, -339, -339,
1074 0, -339, 5, 6, 7, 8, 0, 0, 680, 0,
1075 9, 10, 11, 254, 255, 256, 257, 258, 259, 260,
1076 261, 262, 263, 264, 265, 0, 13, 0, 14, 698,
1077 0, 0, 0, 0, 0, 0, 801, 259, 260, 261,
1078 262, 263, 264, 265, 0, 0, 807, 0, 16, 0,
1079 0, 0, 249, 250, 251, 0, 252, 253, 254, 255,
1080 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1081 22, 329, 0, -339, -339, 24, 0, 0, -339, -339,
1082 84, -339, 0, 0, 0, -339, 841, -339, -339, -339,
1083 -339, -339, -339, -339, -339, -339, -339, -339, 489, -339,
1084 0, -339, 0, -339, -339, -339, 0, 0, 698, 0,
1085 0, 852, 0, 0, 0, -339, 0, 698, -339, 0,
1086 698, 0, 698, -339, -339, -339, 0, 0, 0, -339,
1087 -339, 0, 0, 0, -339, -339, 0, 0, 0, -339,
1088 0, -339, -339, 0, 0, 0, -339, -339, 0, 0,
1089 -339, 0, -339, -312, -339, -339, 0, -339, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 890, 256, 257,
1091 258, 259, 260, 261, 262, 263, 264, 265, 895, 0,
1092 824, 698, -339, -339, 0, 0, 0, -339, -339, 0,
1093 -339, 904, 0, 0, -339, 0, -339, -339, -339, -339,
1094 -339, -339, -339, -339, -339, -339, -339, 0, -339, 0,
1095 -339, 0, -339, -339, -339, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, -339, 0, 0, -339, 0, 0,
1097 0, 0, -339, -339, -339, 0, 0, 0, -339, -339,
1098 0, 0, 0, -339, -339, 0, 0, 0, -339, 0,
1099 -339, -339, 0, 0, 0, -339, -339, 0, 0, -339,
1100 0, -339, 0, -339, -339, 879, -339, -349, -349, 0,
1101 0, 0, -349, -349, 0, -349, 0, 0, 0, -349,
1102 0, -349, -349, -349, -349, -349, -349, -349, -349, -349,
1103 -349, -349, 0, -349, 0, -349, 0, -349, -349, -349,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, -349,
1105 0, 0, -349, 0, 0, 0, 0, -349, -349, -349,
1106 0, 0, 0, -349, -349, 0, 0, 0, -349, -349,
1107 0, 0, 0, -349, 0, -349, -349, 0, 0, 0,
1108 -349, -349, 0, 0, -349, 0, -349, 0, -349, -349,
1109 234, -349, 100, 5, 0, 7, 140, 101, 102, 0,
1110 103, 9, 10, 11, 255, 256, 257, 258, 259, 260,
1111 261, 262, 263, 264, 265, 0, 0, 13, 104, 0,
1112 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1113 0, 0, 0, 0, 108, 0, 0, 109, 0, 16,
1114 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1115 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1116 118, 22, 0, 0, 0, 119, 24, 0, 0, 120,
1117 0, 0, 0, 121, 122, 693, 235, 694, 60, 0,
1118 0, 0, 101, 102, 251, 103, 252, 253, 254, 255,
1119 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1120 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1122 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1123 0, 0, 0, 113, 114, 0, 0, 695, 115, 116,
1124 0, 0, 0, 117, 0, 118, 61, 0, 0, 0,
1125 119, 62, 0, 0, 120, 0, 0, -204, 121, 122,
1126 693, 696, 694, 60, 0, 0, 0, 101, 102, 0,
1127 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1129 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1130 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1131 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1132 0, 0, 695, 115, 116, 0, 0, 0, 117, 0,
1133 118, 61, 0, 0, 0, 119, 62, 0, 0, 120,
1134 0, 0, -269, 121, 122, 693, 696, 100, 0, 0,
1135 0, 0, 101, 102, 0, 103, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1137 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1138 0, 0, 0, 0, 0, -217, 0, 0, 0, 108,
1139 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1140 0, 0, 0, 113, 114, 0, 0, -217, 115, 116,
1141 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1142 119, 0, 0, 0, 120, 693, 0, 100, 121, 122,
1143 0, 696, 101, 102, 0, 103, 352, 0, 0, 5,
1144 0, 7, 140, 0, 0, 0, 0, 9, 10, 11,
1145 0, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1146 0, 0, 0, 13, 0, 0, 15, 0, 0, 108,
1147 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1148 0, 0, 0, 113, 114, 16, 0, 0, 115, 116,
1149 0, 0, 0, 117, 0, 118, 0, 0, 0, 0,
1150 119, 0, 0, 0, 120, 0, 0, 22, 121, 122,
1151 196, 696, 24, -28, -28, -28, -28, 353, -272, 0,
1152 0, -28, -28, -28, 0, 0, 0, 0, 0, 348,
1153 0, 0, -24, -24, -24, -24, 197, -28, 0, -176,
1154 -24, -24, -24, 0, 0, 0, 0, 0, 0, 0,
1155 -176, 0, 0, 0, 0, 197, -24, 0, -176, -28,
1156 0, 0, 0, 0, 0, 0, 0, 0, 0, -176,
1157 0, 0, 0, 198, 199, 0, 0, 0, -24, 0,
1158 0, -28, 0, 0, 0, 0, -28, 0, 0, 0,
1159 0, -176, 198, 199, 0, -176, -28, 0, 0, 0,
1160 -24, 0, 0, 0, 0, -24, 0, 0, 0, 0,
1161 -176, 0, 0, 342, -176, -24, -20, -20, -20, -20,
1162 0, 0, 0, 0, -20, -20, -20, 0, 0, 0,
1163 0, 0, 329, 0, 0, 5, 6, 7, 8, 197,
1164 -20, 0, -176, 9, 10, 11, 0, 5, 6, 7,
1165 8, 0, 0, -176, 0, 9, 10, 11, 0, 13,
1166 0, 14, -20, 329, 0, 0, -502, -502, -502, -502,
1167 0, 13, 0, 14, -502, -502, -502, 0, 0, 0,
1168 0, 16, 0, 0, -20, 0, 0, 0, 0, -20,
1169 -502, 0, -502, 16, -176, 0, 100, 0, -176, -20,
1170 0, 101, 102, 22, 103, 0, 0, 0, 24, 0,
1171 0, 0, -502, 0, 0, 22, 0, 0, -500, 0,
1172 24, 0, 104, 0, 15, 633, 105, 106, 107, 0,
1173 0, 0, 0, 0, -502, 0, 0, 0, 108, -502,
1174 0, 109, 0, 0, 0, 0, 110, 111, 112, -502,
1175 0, 0, 113, 114, 0, 0, 0, 115, 116, 0,
1176 100, 0, 117, 0, 118, 101, 102, 0, 103, 119,
1177 0, 0, 0, 120, 0, 0, 0, 121, 122, 0,
1178 0, 327, 0, 0, 0, 0, 104, 0, 15, 0,
1179 105, 106, 107, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 108, 0, 0, 109, 0, 0, 0, 0,
1181 110, 111, 112, 0, 0, 0, 113, 114, 0, 0,
1182 0, 115, 116, 0, 100, 0, 117, 0, 118, 101,
1183 102, 0, 103, 119, 0, 0, 0, 120, 0, 0,
1184 0, 121, 122, 0, 0, 417, 0, 0, 0, 0,
1185 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1187 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1188 113, 114, 0, 0, 0, 115, 116, 0, 100, 0,
1189 117, 0, 118, 101, 102, 0, 103, 119, 0, 0,
1190 0, 120, 0, 0, 0, 121, 122, 0, 0, 473,
1191 0, 0, 0, 0, 104, 0, 15, 0, 105, 106,
1192 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1193 108, 0, 0, 109, 0, 0, 0, 0, 110, 111,
1194 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1195 116, 0, 100, 0, 117, 0, 118, 101, 102, 0,
1196 103, 119, 0, 0, 0, 120, 0, 0, 0, 121,
1197 122, 0, 0, 524, 0, 0, 0, 0, 104, 0,
1198 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1200 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1201 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1202 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1203 0, 0, 0, 121, 122, 0, 0, 847, 694, 715,
1204 6, 7, 8, 101, 102, 0, 103, 9, 10, 11,
1205 716, 0, 717, 718, 719, 720, 721, 722, 723, 724,
1206 725, 726, 727, 13, 104, 14, 15, 0, 105, 106,
1207 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 108, 0, 0, 109, 0, 16, 0, 0, 110, 111,
1209 112, 0, 0, 0, 113, 114, 0, 0, 0, 115,
1210 116, 0, 0, 0, 117, 0, 118, 728, 0, 0,
1211 0, 119, 729, 0, 0, 120, 0, 730, 0, 121,
1212 122, 0, 579, 694, 60, 0, 0, 0, 101, 102,
1213 0, 103, 0, 0, 0, 716, 0, 717, 718, 719,
1214 720, 721, 722, 723, 724, 725, 726, 727, 0, 104,
1215 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1217 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1218 114, 0, 100, 0, 115, 116, 0, 101, 102, 117,
1219 103, 118, 61, 0, 0, 0, 119, 62, 0, 0,
1220 120, 0, 730, 0, 121, 122, 0, 579, 104, 0,
1221 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1223 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1224 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1225 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1226 0, 0, 0, 121, 122, 0, 490, 149, 150, 0,
1227 151, 152, 0, 0, 0, 153, 154, 155, 156, 157,
1228 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1229 168, 169, 170, 171, 0, 100, 5, 6, 7, 8,
1230 101, 102, 0, 103, 9, 10, 11, 172, 0, 0,
1231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1232 13, 104, 14, 15, 0, 105, 106, 107, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1234 109, 174, 16, 0, 0, 110, 111, 112, 0, 0,
1235 303, 113, 114, 0, 0, 0, 115, 116, 0, 0,
1236 0, 117, 0, 118, 22, 0, 0, 0, 119, 24,
1237 0, 0, 120, 0, 0, 0, 121, 122, 100, 5,
1238 0, 7, 140, 101, 102, 0, 103, 9, 10, 11,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 13, 104, 0, 15, 0, 105, 106,
1241 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1242 108, 0, 0, 109, 0, 16, 0, 0, 110, 111,
1243 112, 0, 0, 0, 113, 114, 0, 100, 0, 115,
1244 116, 0, 101, 102, 117, 103, 118, 22, 0, 0,
1245 0, 119, 24, 0, 0, 120, 0, 0, 0, 121,
1246 122, 0, 0, 104, 0, 15, 0, 105, 106, 107,
1247 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1248 0, 0, 109, 0, 0, 0, 0, 110, 111, 112,
1249 0, 0, 0, 113, 114, 0, 100, 0, 115, 116,
1250 0, 101, 102, 117, 103, 118, 370, 0, 0, 0,
1251 119, 0, 0, 0, 120, 0, 0, 0, 121, 122,
1252 0, 0, 104, 0, 15, 0, 105, 106, 107, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
1254 0, 109, 0, 0, 0, 0, 110, 111, 112, 0,
1255 0, 0, 113, 114, 0, 100, 0, 115, 116, 0,
1256 101, 102, 117, 103, 118, 0, 0, 0, 0, 119,
1257 0, 0, 0, 120, 0, 811, 0, 121, 122, 0,
1258 0, 104, 0, 15, 0, 105, 106, 107, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
1260 109, 0, 0, 0, 0, 110, 111, 112, 0, 0,
1261 0, 113, 114, 0, 100, 0, 115, 116, 0, 101,
1262 102, 117, 103, 118, 0, 0, 0, 0, 119, 0,
1263 0, 0, 120, 0, 0, 0, 121, 122, 0, 0,
1264 104, 0, 15, 0, 105, 106, 107, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 108, 0, 0, 109,
1266 0, 0, 0, 0, 110, 111, 112, 0, 0, 0,
1267 113, 114, 0, 100, 0, 245, 116, 0, 101, 102,
1268 117, 103, 118, 0, 0, 0, 0, 119, 0, 0,
1269 0, 120, 0, 0, 0, 121, 122, 0, 0, 104,
1270 0, 15, 0, 105, 106, 107, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 108, 0, 0, 109, 0,
1272 0, 0, 0, 110, 111, 112, 0, 0, 0, 113,
1273 114, 0, 528, 0, 247, 116, 0, 101, 102, 117,
1274 103, 118, 0, 0, 0, 0, 119, 0, 0, 0,
1275 120, 0, 0, 0, 121, 122, 0, 0, 104, 0,
1276 15, 0, 105, 106, 107, 0, 0, 0, 0, 0,
1277 0, 0, 0, 0, 108, 0, 0, 109, 0, 0,
1278 0, 0, 110, 111, 112, 0, 0, 0, 113, 114,
1279 0, 0, 0, 115, 116, 0, 0, 0, 117, 0,
1280 118, 0, 0, 0, 0, 119, 0, 0, 0, 120,
1281 0, 0, 563, 121, 122, 5, 0, 7, 140, 0,
1282 0, 0, 0, 9, 10, 11, 0, 0, 0, 563,
1283 0, 0, 5, 0, 7, 140, 0, 0, 0, 13,
1284 9, 10, 11, 0, 5, 6, 7, 8, 0, 0,
1285 449, 0, 9, 10, 11, 0, 13, 0, 0, 0,
1286 0, 16, 0, 0, 0, 0, 0, 0, 13, 4,
1287 14, -129, 5, 6, 7, 8, 0, 0, 16, 0,
1288 9, 10, 11, 22, -454, -454, -454, 0, 24, 0,
1289 16, 0, 0, 564, -454, 12, 13, 0, 14, 15,
1290 22, -453, -453, -453, 0, 24, 0, 0, 0, 0,
1291 564, -453, 22, 0, 0, 0, 0, 24, 16, 0,
1292 0, 17, 18, -129, 0, 0, 0, 0, 0, 0,
1293 0, 0, -129, 0, 19, 20, 21, 0, 0, 0,
1294 22, 0, 0, 0, 23, 24, 25, 26, 0, 4,
1295 27, -129, 5, 6, 7, 8, 0, 0, 0, 0,
1296 9, 10, 11, 0, 0, 0, 0, 0, 4, 0,
1297 -129, 5, 6, 7, 8, 0, 13, 0, 14, 9,
1298 10, 11, 0, 0, 0, 0, 0, 0, 0, 0,
1299 0, 0, 0, 0, 0, 13, 0, 14, 16, 0,
1300 0, 549, 550, -129, 0, 0, 0, 0, 0, 0,
1301 0, 0, -129, 0, 0, 0, 0, 16, 0, 0,
1302 22, 0, -129, 447, 0, 24, 5, 6, 7, 8,
1303 27, -129, 449, 0, 9, 10, 11, 0, 0, 22,
1304 0, 0, 0, 0, 24, 5, 6, 7, 8, 27,
1305 13, 0, 14, 9, 10, 11, 5, 89, 7, 90,
1306 0, 0, 0, 0, 9, 10, 11, 0, 0, 13,
1307 352, 14, 16, 5, 0, 7, 140, 0, 0, 0,
1308 13, 9, 10, 11, 0, 0, 0, 0, 0, 0,
1309 0, 16, 0, 0, 22, 0, 0, 13, 0, 24,
1310 15, 0, 16, -399, 0, 0, 0, 0, 0, 0,
1311 0, 0, 0, 22, 0, 0, 0, 0, 24, 16,
1312 0, 0, 0, 821, 22, 0, 0, 0, 0, 24,
1313 0, 0, 0, 0, 674, 0, 0, 0, 0, 149,
1314 150, 22, 151, 152, 0, 0, 24, 153, 154, 155,
1315 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
1316 166, 167, 168, 169, 170, 171, 0, 0, 0, 0,
1317 0, 0, 149, 150, 0, 151, 152, 0, 0, 172,
1318 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1319 163, 164, 165, 166, 167, 168, 169, 170, 171, 0,
1320 173, 0, 0, 0, 0, 0, 0, 149, 150, 0,
1321 151, 152, 373, 174, 0, 153, 154, 155, 156, 157,
1322 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
1323 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
1324 149, 150, 0, 151, 152, 0, 174, 172, 153, 154,
1325 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1326 165, 166, 167, 168, 169, 170, 171, 5, 0, 7,
1327 288, 0, 0, 0, 0, 9, 10, 11, 0, 0,
1328 606, 174, 0, 0, 0, 0, 5, 6, 7, 8,
1329 0, 13, 667, 14, 9, 10, 11, 5, 6, 7,
1330 8, 0, 0, 0, 0, 9, 10, 11, 0, 0,
1331 13, 0, 14, 16, 174, 0, 0, 0, 280, 0,
1332 0, 13, 0, 14, 0, 0, 0, 281, 282, 0,
1333 0, 0, 16, 0, 0, 22, 5, 6, 7, 8,
1334 24, 0, 0, 16, 9, 10, 11, 5, 0, 7,
1335 140, 0, 0, 0, 22, 9, 10, 11, 0, 24,
1336 13, 0, 0, 0, 5, 22, 7, 288, 0, 0,
1337 24, 13, 9, 10, 11, 0, 0, 0, 0, 0,
1338 0, 0, 16, 0, 0, 0, 0, 0, 13, 0,
1339 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
1340 0, 0, 0, 0, 22, 0, 0, 0, 0, 24,
1341 16, 0, 0, 0, 0, 22, 0, 0, 0, 0,
1342 24, 0, 0, 0, 14, 0, 0, 0, 0, 0,
1343 0, 0, 22, 0, 249, 250, 251, 24, 252, 253,
1344 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1345 264, 265, 249, 250, 251, 921, 252, 253, 254, 255,
1346 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1347 249, 250, 251, 0, 252, 253, 254, 255, 256, 257,
1348 258, 259, 260, 261, 262, 263, 264, 265
1351 static const short yycheck
[] = { 56,
1352 57, 16, 85, 36, 19, 20, 33, 200, 23, 83,
1353 25, 26, 91, 324, 24, 316, 2, 3, 2, 3,
1354 53, 54, 55, 38, 39, 40, 22, 209, 24, 343,
1355 105, 106, 31, 80, 203, 349, 177, 112, 345, 2,
1356 3, 286, 66, 270, 281, 2, 3, 80, 123, 177,
1357 223, 578, 9, 10, 11, 88, 42, 67, 42, 74,
1358 135, 71, 416, 223, 440, 515, 142, 95, 571, 145,
1359 673, 67, 704, 194, 31, 71, 33, 1, 77, 42,
1360 1, 344, 438, 1, 804, 42, 85, 9, 351, 10,
1361 115, 331, 43, 108, 204, 1, 359, 624, 239, 30,
1362 919, 0, 3, 1, 30, 3, 4, 5, 6, 7,
1363 50, 280, 10, 64, 12, 13, 14, 43, 43, 1,
1364 77, 3, 4, 0, 27, 50, 83, 41, 85, 948,
1365 28, 146, 30, 148, 91, 214, 87, 3, 4, 332,
1366 322, 42, 199, 50, 783, 595, 86, 597, 173, 63,
1367 343, 30, 50, 792, 3, 4, 349, 172, 64, 81,
1368 880, 64, 65, 87, 82, 797, 87, 182, 183, 409,
1369 185, 186, 622, 43, 72, 208, 413, 64, 423, 77,
1370 50, 238, 419, 81, 357, 142, 219, 714, 145, 429,
1371 72, 3, 191, 913, 64, 77, 195, 357, 918, 426,
1372 920, 557, 43, 82, 83, 204, 72, 286, 64, 929,
1373 43, 77, 227, 43, 271, 240, 409, 820, 30, 340,
1374 245, 87, 247, 72, 856, 282, 241, 337, 77, 3,
1375 4, 341, 3, 4, 191, 376, 283, 194, 195, 223,
1376 81, 961, 43, 55, 545, 3, 4, 204, 81, 50,
1377 283, 81, 64, 268, 269, 1, 30, 214, 4, 5,
1378 6, 7, 27, 766, 767, 30, 12, 13, 14, 64,
1379 510, 444, 648, 513, 299, 5, 41, 7, 82, 32,
1380 33, 55, 28, 639, 444, 478, 64, 480, 30, 346,
1381 64, 65, 307, 70, 369, 82, 83, 55, 538, 309,
1382 3, 72, 81, 336, 50, 87, 77, 86, 3, 4,
1383 53, 54, 666, 309, 72, 87, 87, 82, 511, 77,
1384 513, 86, 64, 65, 281, 68, 72, 30, 87, 386,
1385 358, 77, 360, 82, 81, 598, 599, 86, 337, 602,
1386 641, 87, 341, 9, 423, 3, 4, 5, 6, 7,
1387 365, 492, 55, 81, 881, 64, 65, 4, 86, 6,
1388 7, 64, 65, 81, 421, 12, 13, 14, 86, 326,
1389 3, 4, 81, 357, 82, 825, 64, 72, 86, 606,
1390 337, 28, 77, 340, 341, 64, 3, 4, 64, 65,
1391 7, 532, 87, 408, 7, 64, 659, 660, 661, 30,
1392 627, 664, 665, 50, 532, 81, 127, 128, 433, 64,
1393 425, 938, 939, 30, 72, 86, 81, 30, 82, 77,
1394 657, 86, 86, 686, 451, 72, 80, 437, 691, 81,
1395 77, 64, 677, 64, 65, 82, 83, 464, 55, 72,
1396 81, 437, 55, 429, 77, 3, 4, 64, 87, 3,
1397 4, 64, 65, 81, 440, 756, 413, 43, 86, 416,
1398 77, 768, 419, 30, 489, 64, 429, 82, 609, 64,
1399 65, 486, 429, 3, 4, 432, 30, 440, 651, 64,
1400 707, 3, 4, 440, 747, 748, 749, 656, 55, 43,
1401 83, 651, 685, 662, 451, 571, 572, 64, 65, 82,
1402 30, 55, 83, 86, 81, 3, 64, 534, 30, 7,
1403 64, 64, 65, 43, 72, 530, 539, 82, 82, 77,
1404 543, 86, 86, 77, 33, 55, 789, 554, 81, 766,
1405 767, 81, 30, 55, 64, 780, 773, 774, 64, 65,
1406 59, 60, 64, 62, 63, 64, 65, 77, 57, 64,
1407 65, 537, 81, 552, 817, 77, 43, 55, 82, 73,
1408 74, 75, 81, 81, 647, 588, 64, 624, 591, 83,
1409 32, 82, 571, 572, 537, 86, 81, 534, 652, 653,
1410 537, 59, 60, 884, 62, 63, 64, 65, 64, 852,
1411 82, 83, 675, 81, 908, 552, 910, 554, 677, 614,
1412 82, 354, 10, 356, 3, 4, 115, 81, 7, 624,
1413 68, 658, 686, 687, 571, 572, 663, 82, 575, 643,
1414 644, 86, 637, 87, 81, 658, 27, 73, 74, 75,
1415 663, 30, 895, 632, 9, 82, 145, 83, 624, 86,
1416 624, 82, 3, 82, 955, 86, 7, 86, 647, 73,
1417 74, 75, 963, 73, 74, 75, 55, 714, 657, 83,
1418 88, 624, 648, 83, 173, 64, 65, 624, 725, 30,
1419 745, 6, 7, 64, 65, 632, 675, 12, 13, 14,
1420 695, 55, 56, 57, 82, 648, 41, 440, 72, 646,
1421 647, 648, 82, 875, 55, 652, 653, 450, 451, 714,
1422 657, 780, 41, 64, 65, 86, 43, 43, 735, 666,
1423 81, 726, 769, 81, 223, 908, 673, 910, 675, 729,
1424 49, 50, 51, 52, 53, 54, 55, 56, 57, 686,
1425 687, 240, 728, 729, 81, 81, 245, 81, 247, 822,
1426 53, 54, 55, 56, 57, 802, 820, 81, 805, 806,
1427 88, 81, 68, 81, 87, 788, 813, 88, 68, 745,
1428 81, 745, 81, 41, 88, 83, 81, 766, 767, 843,
1429 27, 828, 83, 30, 773, 774, 83, 43, 735, 83,
1430 533, 83, 745, 88, 41, 81, 86, 82, 745, 81,
1431 299, 82, 3, 1, 87, 83, 4, 5, 6, 7,
1432 553, 554, 10, 860, 12, 13, 14, 64, 65, 766,
1433 767, 82, 565, 566, 871, 43, 773, 774, 86, 83,
1434 28, 81, 68, 822, 881, 82, 231, 88, 83, 86,
1435 43, 584, 585, 43, 83, 86, 835, 43, 64, 244,
1436 64, 64, 50, 43, 249, 250, 82, 356, 357, 254,
1437 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1438 265, 82, 919, 820, 72, 822, 881, 7, 43, 77,
1439 82, 16, 68, 1, 43, 3, 64, 82, 835, 87,
1440 8, 9, 86, 11, 82, 942, 843, 82, 64, 68,
1441 83, 948, 83, 17, 88, 648, 81, 68, 82, 81,
1442 81, 29, 82, 31, 81, 33, 34, 35, 82, 9,
1443 82, 64, 82, 86, 5, 6, 7, 45, 82, 81,
1444 48, 12, 13, 14, 433, 53, 54, 55, 82, 81,
1445 10, 59, 60, 82, 0, 444, 64, 65, 0, 30,
1446 426, 69, 451, 71, 805, 332, 745, 676, 76, 511,
1447 87, 683, 80, 425, 488, 464, 84, 85, 795, 87,
1448 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1449 50, 51, 52, 53, 54, 55, 56, 57, 703, 357,
1450 489, 734, 735, 388, 389, 1, 289, 3, 4, 5,
1451 6, 7, 8, 9, 685, 11, 12, 13, 14, 15,
1452 480, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1453 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1454 365, 511, 410, 486, 581, 534, 881, 881, 513, 45,
1455 943, 420, 48, 945, 50, 432, 432, 53, 54, 55,
1456 575, 25, 562, 59, 60, 554, 653, 843, 64, 65,
1457 840, 555, 308, 69, 537, 71, 72, 566, 428, 835,
1458 76, 77, 532, 428, 80, 707, 82, 83, 84, 85,
1459 609, 87, -1, -1, -1, 376, 585, -1, -1, -1,
1460 485, -1, 1, -1, 3, 4, 5, 6, 7, 8,
1461 9, -1, 11, 12, 13, 14, 15, 502, 17, 18,
1462 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1463 29, 30, 31, -1, 33, 34, 35, 50, 51, 52,
1464 53, 54, 55, 56, 57, -1, 45, -1, -1, 48,
1465 -1, 50, -1, -1, 53, 54, 55, -1, -1, -1,
1466 59, 60, 651, -1, -1, 64, 65, 5, 6, 7,
1467 69, -1, 71, 72, 12, 13, 14, 76, 77, -1,
1468 -1, 80, -1, 82, 83, 84, 85, -1, 87, 45,
1469 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1470 56, 57, 587, -1, -1, 1, -1, 3, 4, 5,
1471 6, 7, 8, 9, -1, 11, 12, 13, 14, 15,
1472 605, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1473 26, 27, 28, 29, 30, 31, -1, 33, 34, 35,
1474 -1, -1, -1, -1, -1, -1, 735, -1, -1, 45,
1475 -1, -1, 48, -1, 50, -1, -1, 53, 54, 55,
1476 -1, -1, -1, 59, 60, -1, -1, -1, 64, 65,
1477 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1478 76, 77, -1, -1, 80, -1, 82, -1, 84, 85,
1479 -1, 87, 4, 5, 6, 7, -1, -1, 683, -1,
1480 12, 13, 14, 46, 47, 48, 49, 50, 51, 52,
1481 53, 54, 55, 56, 57, -1, 28, -1, 30, 704,
1482 -1, -1, -1, -1, -1, -1, 711, 51, 52, 53,
1483 54, 55, 56, 57, -1, -1, 721, -1, 50, -1,
1484 -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
1485 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1486 72, 1, -1, 3, 4, 77, -1, -1, 8, 9,
1487 82, 11, -1, -1, -1, 15, 761, 17, 18, 19,
1488 20, 21, 22, 23, 24, 25, 26, 27, 86, 29,
1489 -1, 31, -1, 33, 34, 35, -1, -1, 783, -1,
1490 -1, 786, -1, -1, -1, 45, -1, 792, 48, -1,
1491 795, -1, 797, 53, 54, 55, -1, -1, -1, 59,
1492 60, -1, -1, -1, 64, 65, -1, -1, -1, 69,
1493 -1, 71, 72, -1, -1, -1, 76, 77, -1, -1,
1494 80, -1, 82, 83, 84, 85, -1, 87, -1, -1,
1495 -1, -1, -1, -1, -1, -1, -1, 842, 48, 49,
1496 50, 51, 52, 53, 54, 55, 56, 57, 853, -1,
1497 1, 856, 3, 4, -1, -1, -1, 8, 9, -1,
1498 11, 866, -1, -1, 15, -1, 17, 18, 19, 20,
1499 21, 22, 23, 24, 25, 26, 27, -1, 29, -1,
1500 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1501 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1502 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1503 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1504 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1505 -1, 82, -1, 84, 85, 1, 87, 3, 4, -1,
1506 -1, -1, 8, 9, -1, 11, -1, -1, -1, 15,
1507 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1508 26, 27, -1, 29, -1, 31, -1, 33, 34, 35,
1509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1510 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1511 -1, -1, -1, 59, 60, -1, -1, -1, 64, 65,
1512 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1513 76, 77, -1, -1, 80, -1, 82, -1, 84, 85,
1514 1, 87, 3, 4, -1, 6, 7, 8, 9, -1,
1515 11, 12, 13, 14, 47, 48, 49, 50, 51, 52,
1516 53, 54, 55, 56, 57, -1, -1, 28, 29, -1,
1517 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1518 -1, -1, -1, -1, 45, -1, -1, 48, -1, 50,
1519 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1520 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1521 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1522 -1, -1, -1, 84, 85, 1, 87, 3, 4, -1,
1523 -1, -1, 8, 9, 42, 11, 44, 45, 46, 47,
1524 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1525 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1526 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1527 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1528 -1, -1, -1, 59, 60, -1, -1, 63, 64, 65,
1529 -1, -1, -1, 69, -1, 71, 72, -1, -1, -1,
1530 76, 77, -1, -1, 80, -1, -1, 83, 84, 85,
1531 1, 87, 3, 4, -1, -1, -1, 8, 9, -1,
1532 11, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1533 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
1534 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1536 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1537 -1, -1, 63, 64, 65, -1, -1, -1, 69, -1,
1538 71, 72, -1, -1, -1, 76, 77, -1, -1, 80,
1539 -1, -1, 83, 84, 85, 1, 87, 3, -1, -1,
1540 -1, -1, 8, 9, -1, 11, -1, -1, -1, -1,
1541 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1542 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1543 -1, -1, -1, -1, -1, 41, -1, -1, -1, 45,
1544 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1545 -1, -1, -1, 59, 60, -1, -1, 63, 64, 65,
1546 -1, -1, -1, 69, -1, 71, -1, -1, -1, -1,
1547 76, -1, -1, -1, 80, 1, -1, 3, 84, 85,
1548 -1, 87, 8, 9, -1, 11, 1, -1, -1, 4,
1549 -1, 6, 7, -1, -1, -1, -1, 12, 13, 14,
1550 -1, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1551 -1, -1, -1, 28, -1, -1, 31, -1, -1, 45,
1552 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1553 -1, -1, -1, 59, 60, 50, -1, -1, 64, 65,
1554 -1, -1, -1, 69, -1, 71, -1, -1, -1, -1,
1555 76, -1, -1, -1, 80, -1, -1, 72, 84, 85,
1556 1, 87, 77, 4, 5, 6, 7, 82, 83, -1,
1557 -1, 12, 13, 14, -1, -1, -1, -1, -1, 1,
1558 -1, -1, 4, 5, 6, 7, 27, 28, -1, 30,
1559 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
1560 41, -1, -1, -1, -1, 27, 28, -1, 30, 50,
1561 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
1562 -1, -1, -1, 64, 65, -1, -1, -1, 50, -1,
1563 -1, 72, -1, -1, -1, -1, 77, -1, -1, -1,
1564 -1, 82, 64, 65, -1, 86, 87, -1, -1, -1,
1565 72, -1, -1, -1, -1, 77, -1, -1, -1, -1,
1566 82, -1, -1, 1, 86, 87, 4, 5, 6, 7,
1567 -1, -1, -1, -1, 12, 13, 14, -1, -1, -1,
1568 -1, -1, 1, -1, -1, 4, 5, 6, 7, 27,
1569 28, -1, 30, 12, 13, 14, -1, 4, 5, 6,
1570 7, -1, -1, 41, -1, 12, 13, 14, -1, 28,
1571 -1, 30, 50, 1, -1, -1, 4, 5, 6, 7,
1572 -1, 28, -1, 30, 12, 13, 14, -1, -1, -1,
1573 -1, 50, -1, -1, 72, -1, -1, -1, -1, 77,
1574 28, -1, 30, 50, 82, -1, 3, -1, 86, 87,
1575 -1, 8, 9, 72, 11, -1, -1, -1, 77, -1,
1576 -1, -1, 50, -1, -1, 72, -1, -1, 87, -1,
1577 77, -1, 29, -1, 31, 82, 33, 34, 35, -1,
1578 -1, -1, -1, -1, 72, -1, -1, -1, 45, 77,
1579 -1, 48, -1, -1, -1, -1, 53, 54, 55, 87,
1580 -1, -1, 59, 60, -1, -1, -1, 64, 65, -1,
1581 3, -1, 69, -1, 71, 8, 9, -1, 11, 76,
1582 -1, -1, -1, 80, -1, -1, -1, 84, 85, -1,
1583 -1, 88, -1, -1, -1, -1, 29, -1, 31, -1,
1584 33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
1585 -1, -1, 45, -1, -1, 48, -1, -1, -1, -1,
1586 53, 54, 55, -1, -1, -1, 59, 60, -1, -1,
1587 -1, 64, 65, -1, 3, -1, 69, -1, 71, 8,
1588 9, -1, 11, 76, -1, -1, -1, 80, -1, -1,
1589 -1, 84, 85, -1, -1, 88, -1, -1, -1, -1,
1590 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1591 -1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
1592 -1, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1593 59, 60, -1, -1, -1, 64, 65, -1, 3, -1,
1594 69, -1, 71, 8, 9, -1, 11, 76, -1, -1,
1595 -1, 80, -1, -1, -1, 84, 85, -1, -1, 88,
1596 -1, -1, -1, -1, 29, -1, 31, -1, 33, 34,
1597 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1598 45, -1, -1, 48, -1, -1, -1, -1, 53, 54,
1599 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1600 65, -1, 3, -1, 69, -1, 71, 8, 9, -1,
1601 11, 76, -1, -1, -1, 80, -1, -1, -1, 84,
1602 85, -1, -1, 88, -1, -1, -1, -1, 29, -1,
1603 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1605 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1606 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1607 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1608 -1, -1, -1, 84, 85, -1, -1, 88, 3, 4,
1609 5, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1610 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
1611 25, 26, 27, 28, 29, 30, 31, -1, 33, 34,
1612 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1613 45, -1, -1, 48, -1, 50, -1, -1, 53, 54,
1614 55, -1, -1, -1, 59, 60, -1, -1, -1, 64,
1615 65, -1, -1, -1, 69, -1, 71, 72, -1, -1,
1616 -1, 76, 77, -1, -1, 80, -1, 82, -1, 84,
1617 85, -1, 87, 3, 4, -1, -1, -1, 8, 9,
1618 -1, 11, -1, -1, -1, 15, -1, 17, 18, 19,
1619 20, 21, 22, 23, 24, 25, 26, 27, -1, 29,
1620 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1621 -1, -1, -1, -1, -1, 45, -1, -1, 48, -1,
1622 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1623 60, -1, 3, -1, 64, 65, -1, 8, 9, 69,
1624 11, 71, 72, -1, -1, -1, 76, 77, -1, -1,
1625 80, -1, 82, -1, 84, 85, -1, 87, 29, -1,
1626 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1627 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1628 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1629 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1630 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1631 -1, -1, -1, 84, 85, -1, 87, 3, 4, -1,
1632 6, 7, -1, -1, -1, 11, 12, 13, 14, 15,
1633 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1634 26, 27, 28, 29, -1, 3, 4, 5, 6, 7,
1635 8, 9, -1, 11, 12, 13, 14, 43, -1, -1,
1636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1637 28, 29, 30, 31, -1, 33, 34, 35, -1, -1,
1638 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
1639 48, 77, 50, -1, -1, 53, 54, 55, -1, -1,
1640 86, 59, 60, -1, -1, -1, 64, 65, -1, -1,
1641 -1, 69, -1, 71, 72, -1, -1, -1, 76, 77,
1642 -1, -1, 80, -1, -1, -1, 84, 85, 3, 4,
1643 -1, 6, 7, 8, 9, -1, 11, 12, 13, 14,
1644 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1645 -1, -1, -1, 28, 29, -1, 31, -1, 33, 34,
1646 35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 45, -1, -1, 48, -1, 50, -1, -1, 53, 54,
1648 55, -1, -1, -1, 59, 60, -1, 3, -1, 64,
1649 65, -1, 8, 9, 69, 11, 71, 72, -1, -1,
1650 -1, 76, 77, -1, -1, 80, -1, -1, -1, 84,
1651 85, -1, -1, 29, -1, 31, -1, 33, 34, 35,
1652 -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
1653 -1, -1, 48, -1, -1, -1, -1, 53, 54, 55,
1654 -1, -1, -1, 59, 60, -1, 3, -1, 64, 65,
1655 -1, 8, 9, 69, 11, 71, 72, -1, -1, -1,
1656 76, -1, -1, -1, 80, -1, -1, -1, 84, 85,
1657 -1, -1, 29, -1, 31, -1, 33, 34, 35, -1,
1658 -1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
1659 -1, 48, -1, -1, -1, -1, 53, 54, 55, -1,
1660 -1, -1, 59, 60, -1, 3, -1, 64, 65, -1,
1661 8, 9, 69, 11, 71, -1, -1, -1, -1, 76,
1662 -1, -1, -1, 80, -1, 82, -1, 84, 85, -1,
1663 -1, 29, -1, 31, -1, 33, 34, 35, -1, -1,
1664 -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
1665 48, -1, -1, -1, -1, 53, 54, 55, -1, -1,
1666 -1, 59, 60, -1, 3, -1, 64, 65, -1, 8,
1667 9, 69, 11, 71, -1, -1, -1, -1, 76, -1,
1668 -1, -1, 80, -1, -1, -1, 84, 85, -1, -1,
1669 29, -1, 31, -1, 33, 34, 35, -1, -1, -1,
1670 -1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
1671 -1, -1, -1, -1, 53, 54, 55, -1, -1, -1,
1672 59, 60, -1, 3, -1, 64, 65, -1, 8, 9,
1673 69, 11, 71, -1, -1, -1, -1, 76, -1, -1,
1674 -1, 80, -1, -1, -1, 84, 85, -1, -1, 29,
1675 -1, 31, -1, 33, 34, 35, -1, -1, -1, -1,
1676 -1, -1, -1, -1, -1, 45, -1, -1, 48, -1,
1677 -1, -1, -1, 53, 54, 55, -1, -1, -1, 59,
1678 60, -1, 3, -1, 64, 65, -1, 8, 9, 69,
1679 11, 71, -1, -1, -1, -1, 76, -1, -1, -1,
1680 80, -1, -1, -1, 84, 85, -1, -1, 29, -1,
1681 31, -1, 33, 34, 35, -1, -1, -1, -1, -1,
1682 -1, -1, -1, -1, 45, -1, -1, 48, -1, -1,
1683 -1, -1, 53, 54, 55, -1, -1, -1, 59, 60,
1684 -1, -1, -1, 64, 65, -1, -1, -1, 69, -1,
1685 71, -1, -1, -1, -1, 76, -1, -1, -1, 80,
1686 -1, -1, 1, 84, 85, 4, -1, 6, 7, -1,
1687 -1, -1, -1, 12, 13, 14, -1, -1, -1, 1,
1688 -1, -1, 4, -1, 6, 7, -1, -1, -1, 28,
1689 12, 13, 14, -1, 4, 5, 6, 7, -1, -1,
1690 10, -1, 12, 13, 14, -1, 28, -1, -1, -1,
1691 -1, 50, -1, -1, -1, -1, -1, -1, 28, 1,
1692 30, 3, 4, 5, 6, 7, -1, -1, 50, -1,
1693 12, 13, 14, 72, 73, 74, 75, -1, 77, -1,
1694 50, -1, -1, 82, 83, 27, 28, -1, 30, 31,
1695 72, 73, 74, 75, -1, 77, -1, -1, -1, -1,
1696 82, 83, 72, -1, -1, -1, -1, 77, 50, -1,
1697 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1698 -1, -1, 64, -1, 66, 67, 68, -1, -1, -1,
1699 72, -1, -1, -1, 76, 77, 78, 79, -1, 1,
1700 82, 3, 4, 5, 6, 7, -1, -1, -1, -1,
1701 12, 13, 14, -1, -1, -1, -1, -1, 1, -1,
1702 3, 4, 5, 6, 7, -1, 28, -1, 30, 12,
1703 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
1704 -1, -1, -1, -1, -1, 28, -1, 30, 50, -1,
1705 -1, 53, 54, 55, -1, -1, -1, -1, -1, -1,
1706 -1, -1, 64, -1, -1, -1, -1, 50, -1, -1,
1707 72, -1, 55, 1, -1, 77, 4, 5, 6, 7,
1708 82, 64, 10, -1, 12, 13, 14, -1, -1, 72,
1709 -1, -1, -1, -1, 77, 4, 5, 6, 7, 82,
1710 28, -1, 30, 12, 13, 14, 4, 5, 6, 7,
1711 -1, -1, -1, -1, 12, 13, 14, -1, -1, 28,
1712 1, 30, 50, 4, -1, 6, 7, -1, -1, -1,
1713 28, 12, 13, 14, -1, -1, -1, -1, -1, -1,
1714 -1, 50, -1, -1, 72, -1, -1, 28, -1, 77,
1715 31, -1, 50, 81, -1, -1, -1, -1, -1, -1,
1716 -1, -1, -1, 72, -1, -1, -1, -1, 77, 50,
1717 -1, -1, -1, 82, 72, -1, -1, -1, -1, 77,
1718 -1, -1, -1, -1, 82, -1, -1, -1, -1, 3,
1719 4, 72, 6, 7, -1, -1, 77, 11, 12, 13,
1720 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1721 24, 25, 26, 27, 28, 29, -1, -1, -1, -1,
1722 -1, -1, 3, 4, -1, 6, 7, -1, -1, 43,
1723 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1724 21, 22, 23, 24, 25, 26, 27, 28, 29, -1,
1725 64, -1, -1, -1, -1, -1, -1, 3, 4, -1,
1726 6, 7, 43, 77, -1, 11, 12, 13, 14, 15,
1727 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1728 26, 27, 28, 29, -1, -1, -1, -1, -1, -1,
1729 3, 4, -1, 6, 7, -1, 77, 43, 11, 12,
1730 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1731 23, 24, 25, 26, 27, 28, 29, 4, -1, 6,
1732 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1733 43, 77, -1, -1, -1, -1, 4, 5, 6, 7,
1734 -1, 28, 10, 30, 12, 13, 14, 4, 5, 6,
1735 7, -1, -1, -1, -1, 12, 13, 14, -1, -1,
1736 28, -1, 30, 50, 77, -1, -1, -1, 55, -1,
1737 -1, 28, -1, 30, -1, -1, -1, 64, 65, -1,
1738 -1, -1, 50, -1, -1, 72, 4, 5, 6, 7,
1739 77, -1, -1, 50, 12, 13, 14, 4, -1, 6,
1740 7, -1, -1, -1, 72, 12, 13, 14, -1, 77,
1741 28, -1, -1, -1, 4, 72, 6, 7, -1, -1,
1742 77, 28, 12, 13, 14, -1, -1, -1, -1, -1,
1743 -1, -1, 50, -1, -1, -1, -1, -1, 28, -1,
1744 -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
1745 -1, -1, -1, -1, 72, -1, -1, -1, -1, 77,
1746 50, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1747 77, -1, -1, -1, 30, -1, -1, -1, -1, -1,
1748 -1, -1, 72, -1, 40, 41, 42, 77, 44, 45,
1749 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
1750 56, 57, 40, 41, 42, 43, 44, 45, 46, 47,
1751 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1752 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
1753 50, 51, 52, 53, 54, 55, 56, 57
1755 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1756 #line 3 "/usr/share/bison.simple"
1757 /* This file comes from bison-1.28. */
1759 /* Skeleton output parser for bison,
1760 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1762 This program is free software; you can redistribute it and/or modify
1763 it under the terms of the GNU General Public License as published by
1764 the Free Software Foundation; either version 2, or (at your option)
1767 This program is distributed in the hope that it will be useful,
1768 but WITHOUT ANY WARRANTY; without even the implied warranty of
1769 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1770 GNU General Public License for more details.
1772 You should have received a copy of the GNU General Public License
1773 along with this program; if not, write to the Free Software
1774 Foundation, Inc., 59 Temple Place - Suite 330,
1775 Boston, MA 02111-1307, USA. */
1777 /* As a special exception, when this file is copied by Bison into a
1778 Bison output file, you may use that output file without restriction.
1779 This special exception was added by the Free Software Foundation
1780 in version 1.24 of Bison. */
1782 /* This is the parser code that is written into each bison parser
1783 when the %semantic_parser declaration is not specified in the grammar.
1784 It was written by Richard Stallman by simplifying the hairy parser
1785 used when %semantic_parser is specified. */
1787 #ifndef YYSTACK_USE_ALLOCA
1789 #define YYSTACK_USE_ALLOCA
1790 #else /* alloca not defined */
1792 #define YYSTACK_USE_ALLOCA
1793 #define alloca __builtin_alloca
1794 #else /* not GNU C. */
1795 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1796 #define YYSTACK_USE_ALLOCA
1798 #else /* not sparc */
1799 /* We think this test detects Watcom and Microsoft C. */
1800 /* This used to test MSDOS, but that is a bad idea
1801 since that symbol is in the user namespace. */
1802 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1803 #if 0 /* No need for malloc.h, which pollutes the namespace;
1804 instead, just don't use alloca. */
1807 #else /* not MSDOS, or __TURBOC__ */
1809 /* I don't know what this was needed for, but it pollutes the namespace.
1810 So I turned it off. rms, 2 May 1997. */
1811 /* #include <malloc.h> */
1813 #define YYSTACK_USE_ALLOCA
1814 #else /* not MSDOS, or __TURBOC__, or _AIX */
1816 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1817 and on HPUX 10. Eventually we can turn this on. */
1818 #define YYSTACK_USE_ALLOCA
1819 #define alloca __builtin_alloca
1822 #endif /* not _AIX */
1823 #endif /* not MSDOS, or __TURBOC__ */
1824 #endif /* not sparc */
1825 #endif /* not GNU C */
1826 #endif /* alloca not defined */
1827 #endif /* YYSTACK_USE_ALLOCA not defined */
1829 #ifdef YYSTACK_USE_ALLOCA
1830 #define YYSTACK_ALLOC alloca
1832 #define YYSTACK_ALLOC malloc
1835 /* Note: there must be only one dollar sign in this file.
1836 It is replaced by the list of actions, each action
1837 as one case of the switch. */
1839 #define yyerrok (yyerrstatus = 0)
1840 #define yyclearin (yychar = YYEMPTY)
1843 #define YYACCEPT goto yyacceptlab
1844 #define YYABORT goto yyabortlab
1845 #define YYERROR goto yyerrlab1
1846 /* Like YYERROR except do call yyerror.
1847 This remains here temporarily to ease the
1848 transition to the new meaning of YYERROR, for GCC.
1849 Once GCC version 2 has supplanted version 1, this can go. */
1850 #define YYFAIL goto yyerrlab
1851 #define YYRECOVERING() (!!yyerrstatus)
1852 #define YYBACKUP(token, value) \
1854 if (yychar == YYEMPTY && yylen == 1) \
1855 { yychar = (token), yylval = (value); \
1856 yychar1 = YYTRANSLATE (yychar); \
1861 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1865 #define YYERRCODE 256
1868 #define YYLEX yylex()
1874 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1876 #define YYLEX yylex(&yylval, &yylloc)
1878 #else /* not YYLSP_NEEDED */
1880 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1882 #define YYLEX yylex(&yylval)
1884 #endif /* not YYLSP_NEEDED */
1887 /* If nonreentrant, generate the variables here */
1891 int yychar
; /* the lookahead symbol */
1892 YYSTYPE yylval
; /* the semantic value of the */
1893 /* lookahead symbol */
1896 YYLTYPE yylloc
; /* location data for the lookahead */
1900 int yynerrs
; /* number of parse errors so far */
1901 #endif /* not YYPURE */
1904 int yydebug
; /* nonzero means print parse trace */
1905 /* Since this is uninitialized, it does not stop multiple parsers
1909 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1912 #define YYINITDEPTH 200
1915 /* YYMAXDEPTH is the maximum size the stacks can grow to
1916 (effective only if the built-in stack extension method is used). */
1923 #define YYMAXDEPTH 10000
1926 /* Define __yy_memcpy. Note that the size argument
1927 should be passed with type unsigned int, because that is what the non-GCC
1928 definitions require. With GCC, __builtin_memcpy takes an arg
1929 of type size_t, but it can handle unsigned int. */
1931 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1932 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1933 #else /* not GNU C or C++ */
1936 /* This is the most reliable way to avoid incompatibilities
1937 in available built-in functions on various systems. */
1939 __yy_memcpy (to
, from
, count
)
1944 register char *f
= from
;
1945 register char *t
= to
;
1946 register int i
= count
;
1952 #else /* __cplusplus */
1954 /* This is the most reliable way to avoid incompatibilities
1955 in available built-in functions on various systems. */
1957 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1959 register char *t
= to
;
1960 register char *f
= from
;
1961 register int i
= count
;
1970 #line 217 "/usr/share/bison.simple"
1972 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1973 into yyparse. The argument should have type void *.
1974 It should actually point to an object.
1975 Grammar actions can access the variable by casting it
1976 to the proper pointer type. */
1978 #ifdef YYPARSE_PARAM
1980 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1981 #define YYPARSE_PARAM_DECL
1982 #else /* not __cplusplus */
1983 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1984 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1985 #endif /* not __cplusplus */
1986 #else /* not YYPARSE_PARAM */
1987 #define YYPARSE_PARAM_ARG
1988 #define YYPARSE_PARAM_DECL
1989 #endif /* not YYPARSE_PARAM */
1991 /* Prevent warning if -Wstrict-prototypes. */
1993 #ifdef YYPARSE_PARAM
1994 int yyparse (void *);
2001 yyparse(YYPARSE_PARAM_ARG
)
2004 register int yystate
;
2006 register short *yyssp
;
2007 register YYSTYPE
*yyvsp
;
2008 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
2009 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
2011 short yyssa
[YYINITDEPTH
]; /* the state stack */
2012 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
2014 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
2015 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
2018 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
2019 YYLTYPE
*yyls
= yylsa
;
2022 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
2024 #define YYPOPSTACK (yyvsp--, yyssp--)
2027 int yystacksize
= YYINITDEPTH
;
2028 int yyfree_stacks
= 0;
2039 YYSTYPE yyval
; /* the variable used to return */
2040 /* semantic values from the action */
2045 #if YYDEBUG != 0 && !defined YYFILE
2047 fprintf(stderr
, "Starting parse\n");
2053 yychar
= YYEMPTY
; /* Cause a token to be read. */
2055 /* Initialize stack pointers.
2056 Waste one element of value and location stack
2057 so that they stay on the same level as the state stack.
2058 The wasted elements are never initialized. */
2066 /* Push a new state, which is found in yystate . */
2067 /* In all cases, when you get here, the value and location stacks
2068 have just been pushed. so pushing a state here evens the stacks. */
2073 if (yyssp
>= yyss
+ yystacksize
- 1)
2075 /* Give user a chance to reallocate the stack */
2076 /* Use copies of these so that the &'s don't force the real ones into memory. */
2077 YYSTYPE
*yyvs1
= yyvs
;
2078 short *yyss1
= yyss
;
2080 YYLTYPE
*yyls1
= yyls
;
2083 /* Get the current used size of the three stacks, in elements. */
2084 int size
= yyssp
- yyss
+ 1;
2087 /* Each stack pointer address is followed by the size of
2088 the data in use in that stack, in bytes. */
2090 /* This used to be a conditional around just the two extra args,
2091 but that might be undefined if yyoverflow is a macro. */
2092 yyoverflow("parser stack overflow",
2093 &yyss1
, size
* sizeof (*yyssp
),
2094 &yyvs1
, size
* sizeof (*yyvsp
),
2095 &yyls1
, size
* sizeof (*yylsp
),
2098 yyoverflow("parser stack overflow",
2099 &yyss1
, size
* sizeof (*yyssp
),
2100 &yyvs1
, size
* sizeof (*yyvsp
),
2104 yyss
= yyss1
; yyvs
= yyvs1
;
2108 #else /* no yyoverflow */
2109 /* Extend the stack our own way. */
2110 if (yystacksize
>= YYMAXDEPTH
)
2112 yyerror("parser stack overflow");
2124 if (yystacksize
> YYMAXDEPTH
)
2125 yystacksize
= YYMAXDEPTH
;
2126 #ifndef YYSTACK_USE_ALLOCA
2129 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
2130 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
2131 size
* (unsigned int) sizeof (*yyssp
));
2132 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
2133 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
2134 size
* (unsigned int) sizeof (*yyvsp
));
2136 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
2137 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
2138 size
* (unsigned int) sizeof (*yylsp
));
2140 #endif /* no yyoverflow */
2142 yyssp
= yyss
+ size
- 1;
2143 yyvsp
= yyvs
+ size
- 1;
2145 yylsp
= yyls
+ size
- 1;
2148 #if YYDEBUG != 0 && !defined YYFILE
2150 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
2153 if (yyssp
>= yyss
+ yystacksize
- 1)
2157 #if YYDEBUG != 0 && !defined YYFILE
2159 fprintf(stderr
, "Entering state %d\n", yystate
);
2165 /* Do appropriate processing given the current state. */
2166 /* Read a lookahead token if we need one and don't already have one. */
2169 /* First try to decide what to do without reference to lookahead token. */
2171 yyn
= yypact
[yystate
];
2175 /* Not known => get a lookahead token if don't already have one. */
2177 /* yychar is either YYEMPTY or YYEOF
2178 or a valid token in external form. */
2180 if (yychar
== YYEMPTY
)
2182 #if YYDEBUG != 0 && !defined YYFILE
2184 fprintf(stderr
, "Reading a token: ");
2189 /* Convert token to internal form (in yychar1) for indexing tables with */
2191 if (yychar
<= 0) /* This means end of input. */
2194 yychar
= YYEOF
; /* Don't call YYLEX any more */
2196 #if YYDEBUG != 0 && !defined YYFILE
2198 fprintf(stderr
, "Now at end of input.\n");
2203 yychar1
= YYTRANSLATE(yychar
);
2205 #if YYDEBUG != 0 && !defined YYFILE
2208 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
2209 /* Give the individual parser a way to print the precise meaning
2210 of a token, for further debugging info. */
2212 YYPRINT (stderr
, yychar
, yylval
);
2214 fprintf (stderr
, ")\n");
2220 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
2225 /* yyn is what to do for this token type in this state.
2226 Negative => reduce, -yyn is rule number.
2227 Positive => shift, yyn is new state.
2228 New state is final state => don't bother to shift,
2229 just return success.
2230 0, or most negative number => error. */
2245 /* Shift the lookahead token. */
2247 #if YYDEBUG != 0 && !defined YYFILE
2249 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
2252 /* Discard the token being shifted unless it is eof. */
2253 if (yychar
!= YYEOF
)
2261 /* count tokens shifted since error; after three, turn off error status. */
2262 if (yyerrstatus
) yyerrstatus
--;
2267 /* Do the default action for the current state. */
2270 yyn
= yydefact
[yystate
];
2274 /* Do a reduction. yyn is the number of a rule to reduce with. */
2278 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
2285 fprintf (stderr
, YYFILE
":%d: %s:", yyrline
[yyn
], yytname
[yyr1
[yyn
]]);
2286 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2287 fprintf (stderr
, " %s", yytname
[yyrhs
[i
]]);
2288 fputc ('\n', stderr
);
2290 fprintf (stderr
, "Reducing via rule %d (line %d), ",
2293 /* Print the symbols being reduced, and their result. */
2294 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
2295 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
2296 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
2305 #line 260 "objc-parse.y"
2307 pedwarn ("ANSI C forbids an empty source file");
2312 #line 265 "objc-parse.y"
2314 /* In case there were missing closebraces,
2315 get us back to the global binding level. */
2316 while (! global_bindings_p ())
2322 #line 279 "objc-parse.y"
2323 {yyval
.ttype
= NULL_TREE
; ;
2326 #line 280 "objc-parse.y"
2327 {yyval
.ttype
= NULL_TREE
; ;
2330 #line 288 "objc-parse.y"
2331 { STRIP_NOPS (yyvsp
[-2].ttype
);
2332 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
2333 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
2334 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
2335 assemble_asm (yyvsp
[-2].ttype
);
2337 error ("argument of `asm' is not a constant string"); ;
2340 #line 296 "objc-parse.y"
2341 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2344 #line 301 "objc-parse.y"
2346 error ("ANSI C forbids data definition with no type or storage class");
2347 else if (!flag_traditional
)
2348 warning ("data definition has no type or storage class");
2350 current_declspecs
= TREE_VALUE (declspec_stack
);
2351 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2352 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2355 #line 310 "objc-parse.y"
2356 { current_declspecs
= TREE_VALUE (declspec_stack
);
2357 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2358 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2361 #line 314 "objc-parse.y"
2362 { current_declspecs
= TREE_VALUE (declspec_stack
);
2363 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2364 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2367 #line 318 "objc-parse.y"
2368 { pedwarn ("empty declaration"); ;
2371 #line 320 "objc-parse.y"
2372 { shadow_tag (yyvsp
[-1].ttype
); ;
2375 #line 324 "objc-parse.y"
2377 pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2380 #line 330 "objc-parse.y"
2381 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2382 prefix_attributes
, NULL_TREE
))
2384 reinit_parse_for_function (); ;
2387 #line 335 "objc-parse.y"
2388 { store_parm_decls (); ;
2391 #line 337 "objc-parse.y"
2392 { finish_function (0);
2393 current_declspecs
= TREE_VALUE (declspec_stack
);
2394 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2395 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2398 #line 342 "objc-parse.y"
2399 { current_declspecs
= TREE_VALUE (declspec_stack
);
2400 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2401 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2404 #line 346 "objc-parse.y"
2405 { if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
2406 prefix_attributes
, NULL_TREE
))
2408 reinit_parse_for_function (); ;
2411 #line 351 "objc-parse.y"
2412 { store_parm_decls (); ;
2415 #line 353 "objc-parse.y"
2416 { finish_function (0);
2417 current_declspecs
= TREE_VALUE (declspec_stack
);
2418 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2419 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2422 #line 358 "objc-parse.y"
2423 { current_declspecs
= TREE_VALUE (declspec_stack
);
2424 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2425 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2428 #line 362 "objc-parse.y"
2429 { if (! start_function (NULL_TREE
, yyvsp
[0].ttype
,
2430 prefix_attributes
, NULL_TREE
))
2432 reinit_parse_for_function (); ;
2435 #line 367 "objc-parse.y"
2436 { store_parm_decls (); ;
2439 #line 369 "objc-parse.y"
2440 { finish_function (0);
2441 current_declspecs
= TREE_VALUE (declspec_stack
);
2442 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2443 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2446 #line 374 "objc-parse.y"
2447 { current_declspecs
= TREE_VALUE (declspec_stack
);
2448 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
2449 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
2452 #line 387 "objc-parse.y"
2453 { yyval
.code
= ADDR_EXPR
; ;
2456 #line 389 "objc-parse.y"
2457 { yyval
.code
= NEGATE_EXPR
; ;
2460 #line 391 "objc-parse.y"
2461 { yyval
.code
= CONVERT_EXPR
; ;
2464 #line 393 "objc-parse.y"
2465 { yyval
.code
= PREINCREMENT_EXPR
; ;
2468 #line 395 "objc-parse.y"
2469 { yyval
.code
= PREDECREMENT_EXPR
; ;
2472 #line 397 "objc-parse.y"
2473 { yyval
.code
= BIT_NOT_EXPR
; ;
2476 #line 399 "objc-parse.y"
2477 { yyval
.code
= TRUTH_NOT_EXPR
; ;
2480 #line 403 "objc-parse.y"
2481 { yyval
.ttype
= build_compound_expr (yyvsp
[0].ttype
); ;
2484 #line 408 "objc-parse.y"
2485 { yyval
.ttype
= NULL_TREE
; ;
2488 #line 414 "objc-parse.y"
2489 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
2492 #line 416 "objc-parse.y"
2493 { chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
2496 #line 422 "objc-parse.y"
2497 { yyval
.ttype
= build_indirect_ref (yyvsp
[0].ttype
, "unary *"); ;
2500 #line 425 "objc-parse.y"
2501 { yyval
.ttype
= yyvsp
[0].ttype
;
2502 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
2505 #line 428 "objc-parse.y"
2506 { yyval
.ttype
= build_unary_op (yyvsp
[-1].code
, yyvsp
[0].ttype
, 0);
2507 overflow_warning (yyval
.ttype
); ;
2510 #line 432 "objc-parse.y"
2511 { tree label
= lookup_label (yyvsp
[0].ttype
);
2513 pedwarn ("ANSI C forbids `&&'");
2515 yyval
.ttype
= null_pointer_node
;
2518 TREE_USED (label
) = 1;
2519 yyval
.ttype
= build1 (ADDR_EXPR
, ptr_type_node
, label
);
2520 TREE_CONSTANT (yyval
.ttype
) = 1;
2525 #line 460 "objc-parse.y"
2526 { skip_evaluation
--;
2527 if (TREE_CODE (yyvsp
[0].ttype
) == COMPONENT_REF
2528 && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp
[0].ttype
, 1)))
2529 error ("`sizeof' applied to a bit-field");
2530 yyval
.ttype
= c_sizeof (TREE_TYPE (yyvsp
[0].ttype
)); ;
2533 #line 466 "objc-parse.y"
2534 { skip_evaluation
--;
2535 yyval
.ttype
= c_sizeof (groktypename (yyvsp
[-1].ttype
)); ;
2538 #line 469 "objc-parse.y"
2539 { skip_evaluation
--;
2540 yyval
.ttype
= c_alignof_expr (yyvsp
[0].ttype
); ;
2543 #line 472 "objc-parse.y"
2544 { skip_evaluation
--;
2545 yyval
.ttype
= c_alignof (groktypename (yyvsp
[-1].ttype
)); ;
2548 #line 475 "objc-parse.y"
2549 { yyval
.ttype
= build_unary_op (REALPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2552 #line 477 "objc-parse.y"
2553 { yyval
.ttype
= build_unary_op (IMAGPART_EXPR
, yyvsp
[0].ttype
, 0); ;
2556 #line 479 "objc-parse.y"
2557 { yyval
.ttype
= build_va_arg (yyvsp
[-3].ttype
, groktypename (yyvsp
[-1].ttype
)); ;
2560 #line 483 "objc-parse.y"
2561 { skip_evaluation
++; ;
2564 #line 487 "objc-parse.y"
2565 { skip_evaluation
++; ;
2568 #line 493 "objc-parse.y"
2569 { tree type
= groktypename (yyvsp
[-2].ttype
);
2570 yyval
.ttype
= build_c_cast (type
, yyvsp
[0].ttype
); ;
2573 #line 496 "objc-parse.y"
2574 { start_init (NULL_TREE
, NULL
, 0);
2575 yyvsp
[-2].ttype
= groktypename (yyvsp
[-2].ttype
);
2576 really_start_incremental_init (yyvsp
[-2].ttype
); ;
2579 #line 500 "objc-parse.y"
2581 tree result
= pop_init_level (0);
2582 tree type
= yyvsp
[-5].ttype
;
2585 if (pedantic
&& ! flag_isoc99
)
2586 pedwarn ("ANSI C forbids constructor expressions");
2587 if (TYPE_NAME (type
) != 0)
2589 if (TREE_CODE (TYPE_NAME (type
)) == IDENTIFIER_NODE
)
2590 name
= IDENTIFIER_POINTER (TYPE_NAME (type
));
2592 name
= IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type
)));
2596 yyval
.ttype
= result
;
2597 if (TREE_CODE (type
) == ARRAY_TYPE
&& TYPE_SIZE (type
) == 0)
2599 int failure
= complete_array_type (type
, yyval
.ttype
, 1);
2606 #line 529 "objc-parse.y"
2607 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2610 #line 531 "objc-parse.y"
2611 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2614 #line 533 "objc-parse.y"
2615 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2618 #line 535 "objc-parse.y"
2619 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2622 #line 537 "objc-parse.y"
2623 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2626 #line 539 "objc-parse.y"
2627 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2630 #line 541 "objc-parse.y"
2631 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2634 #line 543 "objc-parse.y"
2635 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2638 #line 545 "objc-parse.y"
2639 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2642 #line 547 "objc-parse.y"
2643 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2646 #line 549 "objc-parse.y"
2647 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2650 #line 551 "objc-parse.y"
2651 { yyval
.ttype
= parser_build_binary_op (yyvsp
[-1].code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
2654 #line 553 "objc-parse.y"
2655 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2656 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2659 #line 556 "objc-parse.y"
2660 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_false_node
;
2661 yyval
.ttype
= parser_build_binary_op (TRUTH_ANDIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2664 #line 559 "objc-parse.y"
2665 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2666 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2669 #line 562 "objc-parse.y"
2670 { skip_evaluation
-= yyvsp
[-3].ttype
== boolean_true_node
;
2671 yyval
.ttype
= parser_build_binary_op (TRUTH_ORIF_EXPR
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2674 #line 565 "objc-parse.y"
2675 { yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[-1].ttype
));
2676 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_false_node
; ;
2679 #line 568 "objc-parse.y"
2680 { skip_evaluation
+= ((yyvsp
[-4].ttype
== boolean_true_node
)
2681 - (yyvsp
[-4].ttype
== boolean_false_node
)); ;
2684 #line 571 "objc-parse.y"
2685 { skip_evaluation
-= yyvsp
[-6].ttype
== boolean_true_node
;
2686 yyval
.ttype
= build_conditional_expr (yyvsp
[-6].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2689 #line 574 "objc-parse.y"
2691 pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2692 /* Make sure first operand is calculated only once. */
2693 yyvsp
[0].ttype
= save_expr (yyvsp
[-1].ttype
);
2694 yyvsp
[-1].ttype
= truthvalue_conversion (default_conversion (yyvsp
[0].ttype
));
2695 skip_evaluation
+= yyvsp
[-1].ttype
== boolean_true_node
; ;
2698 #line 581 "objc-parse.y"
2699 { skip_evaluation
-= yyvsp
[-4].ttype
== boolean_true_node
;
2700 yyval
.ttype
= build_conditional_expr (yyvsp
[-4].ttype
, yyvsp
[-3].ttype
, yyvsp
[0].ttype
); ;
2703 #line 584 "objc-parse.y"
2705 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, NOP_EXPR
, yyvsp
[0].ttype
);
2706 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2707 if (class == 'e' || class == '1'
2708 || class == '2' || class == '<')
2709 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, MODIFY_EXPR
);
2713 #line 592 "objc-parse.y"
2715 yyval
.ttype
= build_modify_expr (yyvsp
[-2].ttype
, yyvsp
[-1].code
, yyvsp
[0].ttype
);
2716 /* This inhibits warnings in truthvalue_conversion. */
2717 class = TREE_CODE_CLASS (TREE_CODE (yyval
.ttype
));
2718 if (class == 'e' || class == '1'
2719 || class == '2' || class == '<')
2720 C_SET_EXP_ORIGINAL_CODE (yyval
.ttype
, ERROR_MARK
);
2724 #line 604 "objc-parse.y"
2726 yyval
.ttype
= lastiddecl
;
2727 if (!yyval
.ttype
|| yyval
.ttype
== error_mark_node
)
2729 if (yychar
== YYEMPTY
)
2735 if (objc_receiver_context
2736 && ! (objc_receiver_context
2737 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2738 /* we have a message to super */
2739 yyval
.ttype
= get_super_receiver ();
2740 else if (objc_method_context
2741 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2743 if (is_private (decl
))
2744 yyval
.ttype
= error_mark_node
;
2746 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2750 /* Ordinary implicit function declaration. */
2751 yyval
.ttype
= implicitly_declare (yyvsp
[0].ttype
);
2752 assemble_external (yyval
.ttype
);
2753 TREE_USED (yyval
.ttype
) = 1;
2756 else if (current_function_decl
== 0)
2758 error ("`%s' undeclared here (not in a function)",
2759 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2760 yyval
.ttype
= error_mark_node
;
2766 if (objc_receiver_context
2767 && ! strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super"))
2768 /* we have a message to super */
2769 yyval
.ttype
= get_super_receiver ();
2770 else if (objc_method_context
2771 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2773 if (is_private (decl
))
2774 yyval
.ttype
= error_mark_node
;
2776 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2780 if (IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) != error_mark_node
2781 || IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) != current_function_decl
)
2783 error ("`%s' undeclared (first use in this function)",
2784 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2786 if (! undeclared_variable_notice
)
2788 error ("(Each undeclared identifier is reported only once");
2789 error ("for each function it appears in.)");
2790 undeclared_variable_notice
= 1;
2793 yyval
.ttype
= error_mark_node
;
2794 /* Prevent repeated error messages. */
2795 IDENTIFIER_GLOBAL_VALUE (yyvsp
[0].ttype
) = error_mark_node
;
2796 IDENTIFIER_ERROR_LOCUS (yyvsp
[0].ttype
) = current_function_decl
;
2800 else if (TREE_TYPE (yyval
.ttype
) == error_mark_node
)
2801 yyval
.ttype
= error_mark_node
;
2802 else if (C_DECL_ANTICIPATED (yyval
.ttype
))
2804 /* The first time we see a build-in function used,
2805 if it has not been declared. */
2806 C_DECL_ANTICIPATED (yyval
.ttype
) = 0;
2807 if (yychar
== YYEMPTY
)
2811 /* Omit the implicit declaration we
2812 would ordinarily do, so we don't lose
2813 the actual built in type.
2814 But print a diagnostic for the mismatch. */
2815 if (objc_method_context
2816 && is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
))
2817 error ("Instance variable `%s' implicitly declared as function",
2818 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2820 if (TREE_CODE (yyval
.ttype
) != FUNCTION_DECL
)
2821 error ("`%s' implicitly declared as function",
2822 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2823 else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval
.ttype
)))
2824 != TYPE_MODE (integer_type_node
))
2825 && (TREE_TYPE (TREE_TYPE (yyval
.ttype
))
2827 pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2828 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2829 /* If it really returns void, change that to int. */
2830 if (TREE_TYPE (TREE_TYPE (yyval
.ttype
)) == void_type_node
)
2831 TREE_TYPE (yyval
.ttype
)
2832 = build_function_type (integer_type_node
,
2833 TYPE_ARG_TYPES (TREE_TYPE (yyval
.ttype
)));
2836 pedwarn ("built-in function `%s' used without declaration",
2837 IDENTIFIER_POINTER (DECL_NAME (yyval
.ttype
)));
2839 /* Do what we would ordinarily do when a fn is used. */
2840 assemble_external (yyval
.ttype
);
2841 TREE_USED (yyval
.ttype
) = 1;
2845 assemble_external (yyval
.ttype
);
2846 TREE_USED (yyval
.ttype
) = 1;
2847 /* we have a definition - still check if iVariable */
2849 if (!objc_receiver_context
2850 || (objc_receiver_context
2851 && strcmp (IDENTIFIER_POINTER (yyvsp
[0].ttype
), "super")))
2855 if (objc_method_context
2856 && (decl
= is_ivar (objc_ivar_chain
, yyvsp
[0].ttype
)))
2858 if (IDENTIFIER_LOCAL_VALUE (yyvsp
[0].ttype
))
2859 warning ("local declaration of `%s' hides instance variable",
2860 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
2863 if (is_private (decl
))
2864 yyval
.ttype
= error_mark_node
;
2866 yyval
.ttype
= build_ivar_reference (yyvsp
[0].ttype
);
2870 else /* we have a message to super */
2871 yyval
.ttype
= get_super_receiver ();
2874 if (TREE_CODE (yyval
.ttype
) == CONST_DECL
)
2876 yyval
.ttype
= DECL_INITIAL (yyval
.ttype
);
2877 /* This is to prevent an enum whose value is 0
2878 from being considered a null pointer constant. */
2879 yyval
.ttype
= build1 (NOP_EXPR
, TREE_TYPE (yyval
.ttype
), yyval
.ttype
);
2880 TREE_CONSTANT (yyval
.ttype
) = 1;
2885 #line 764 "objc-parse.y"
2886 { yyval
.ttype
= combine_strings (yyvsp
[0].ttype
); ;
2889 #line 766 "objc-parse.y"
2890 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp
[-1].ttype
));
2891 if (class == 'e' || class == '1'
2892 || class == '2' || class == '<')
2893 C_SET_EXP_ORIGINAL_CODE (yyvsp
[-1].ttype
, ERROR_MARK
);
2894 yyval
.ttype
= yyvsp
[-1].ttype
; ;
2897 #line 772 "objc-parse.y"
2898 { yyval
.ttype
= error_mark_node
; ;
2901 #line 774 "objc-parse.y"
2904 pedwarn ("ANSI C forbids braced-groups within expressions");
2905 pop_iterator_stack ();
2907 rtl_exp
= expand_end_stmt_expr (yyvsp
[-2].ttype
);
2908 /* The statements have side effects, so the group does. */
2909 TREE_SIDE_EFFECTS (rtl_exp
) = 1;
2911 if (TREE_CODE (yyvsp
[-1].ttype
) == BLOCK
)
2913 /* Make a BIND_EXPR for the BLOCK already made. */
2914 yyval
.ttype
= build (BIND_EXPR
, TREE_TYPE (rtl_exp
),
2915 NULL_TREE
, rtl_exp
, yyvsp
[-1].ttype
);
2916 /* Remove the block from the tree at this point.
2917 It gets put back at the proper place
2918 when the BIND_EXPR is expanded. */
2919 delete_block (yyvsp
[-1].ttype
);
2922 yyval
.ttype
= yyvsp
[-1].ttype
;
2926 #line 797 "objc-parse.y"
2928 /* Make sure we call expand_end_stmt_expr. Otherwise
2929 we are likely to lose sequences and crash later. */
2930 pop_iterator_stack ();
2932 expand_end_stmt_expr (yyvsp
[-2].ttype
);
2933 yyval
.ttype
= error_mark_node
;
2937 #line 806 "objc-parse.y"
2938 { yyval
.ttype
= build_function_call (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2941 #line 808 "objc-parse.y"
2942 { yyval
.ttype
= build_array_ref (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
2945 #line 810 "objc-parse.y"
2947 if (doing_objc_thang
)
2949 if (is_public (yyvsp
[-2].ttype
, yyvsp
[0].ttype
))
2950 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2952 yyval
.ttype
= error_mark_node
;
2955 yyval
.ttype
= build_component_ref (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
2959 #line 822 "objc-parse.y"
2961 tree expr
= build_indirect_ref (yyvsp
[-2].ttype
, "->");
2963 if (doing_objc_thang
)
2965 if (is_public (expr
, yyvsp
[0].ttype
))
2966 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2968 yyval
.ttype
= error_mark_node
;
2971 yyval
.ttype
= build_component_ref (expr
, yyvsp
[0].ttype
);
2975 #line 836 "objc-parse.y"
2976 { yyval
.ttype
= build_unary_op (POSTINCREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2979 #line 838 "objc-parse.y"
2980 { yyval
.ttype
= build_unary_op (POSTDECREMENT_EXPR
, yyvsp
[-1].ttype
, 0); ;
2983 #line 840 "objc-parse.y"
2984 { yyval
.ttype
= build_message_expr (yyvsp
[0].ttype
); ;
2987 #line 842 "objc-parse.y"
2988 { yyval
.ttype
= build_selector_expr (yyvsp
[0].ttype
); ;
2991 #line 844 "objc-parse.y"
2992 { yyval
.ttype
= build_protocol_expr (yyvsp
[0].ttype
); ;
2995 #line 846 "objc-parse.y"
2996 { yyval
.ttype
= build_encode_expr (yyvsp
[0].ttype
); ;
2999 #line 848 "objc-parse.y"
3000 { yyval
.ttype
= build_objc_string_object (yyvsp
[0].ttype
); ;
3003 #line 855 "objc-parse.y"
3004 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3008 #line 864 "objc-parse.y"
3009 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3012 #line 872 "objc-parse.y"
3013 { c_mark_varargs ();
3015 pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
3018 #line 882 "objc-parse.y"
3022 #line 898 "objc-parse.y"
3023 { current_declspecs
= TREE_VALUE (declspec_stack
);
3024 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3025 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3028 #line 902 "objc-parse.y"
3029 { current_declspecs
= TREE_VALUE (declspec_stack
);
3030 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3031 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3034 #line 906 "objc-parse.y"
3035 { shadow_tag_warned (yyvsp
[-1].ttype
, 1);
3036 pedwarn ("empty declaration"); ;
3039 #line 909 "objc-parse.y"
3040 { pedwarn ("empty declaration"); ;
3043 #line 918 "objc-parse.y"
3047 #line 933 "objc-parse.y"
3048 { pending_xref_error ();
3049 declspec_stack
= tree_cons (prefix_attributes
,
3052 split_specs_attrs (yyvsp
[0].ttype
,
3053 ¤t_declspecs
, &prefix_attributes
); ;
3056 #line 943 "objc-parse.y"
3057 { prefix_attributes
= chainon (prefix_attributes
, yyvsp
[0].ttype
); ;
3060 #line 948 "objc-parse.y"
3061 { current_declspecs
= TREE_VALUE (declspec_stack
);
3062 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3063 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3066 #line 952 "objc-parse.y"
3067 { current_declspecs
= TREE_VALUE (declspec_stack
);
3068 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3069 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3072 #line 956 "objc-parse.y"
3073 { current_declspecs
= TREE_VALUE (declspec_stack
);
3074 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3075 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3078 #line 960 "objc-parse.y"
3079 { current_declspecs
= TREE_VALUE (declspec_stack
);
3080 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3081 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3084 #line 964 "objc-parse.y"
3085 { shadow_tag (yyvsp
[-1].ttype
); ;
3088 #line 966 "objc-parse.y"
3089 { pedwarn ("empty declaration"); ;
3092 #line 968 "objc-parse.y"
3093 { RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3096 #line 978 "objc-parse.y"
3097 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3100 #line 980 "objc-parse.y"
3101 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3104 #line 984 "objc-parse.y"
3105 { yyval
.ttype
= NULL_TREE
; ;
3108 #line 986 "objc-parse.y"
3109 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3112 #line 988 "objc-parse.y"
3113 { if (extra_warnings
)
3114 warning ("`%s' is not at beginning of declaration",
3115 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3116 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3119 #line 993 "objc-parse.y"
3120 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3123 #line 998 "objc-parse.y"
3124 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3127 #line 1000 "objc-parse.y"
3128 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3131 #line 1005 "objc-parse.y"
3132 { yyval
.ttype
= NULL_TREE
; ;
3135 #line 1007 "objc-parse.y"
3136 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3139 #line 1009 "objc-parse.y"
3140 { if (extra_warnings
)
3141 warning ("`%s' is not at beginning of declaration",
3142 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3143 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3146 #line 1022 "objc-parse.y"
3147 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3150 #line 1024 "objc-parse.y"
3151 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
); ;
3154 #line 1026 "objc-parse.y"
3155 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3158 #line 1028 "objc-parse.y"
3159 { yyval
.ttype
= tree_cons (yyvsp
[0].ttype
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3162 #line 1033 "objc-parse.y"
3163 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
3164 TREE_STATIC (yyval
.ttype
) = 1; ;
3167 #line 1036 "objc-parse.y"
3168 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3171 #line 1038 "objc-parse.y"
3172 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3173 TREE_STATIC (yyval
.ttype
) = 1; ;
3176 #line 1041 "objc-parse.y"
3177 { if (extra_warnings
&& TREE_STATIC (yyvsp
[-1].ttype
))
3178 warning ("`%s' is not at beginning of declaration",
3179 IDENTIFIER_POINTER (yyvsp
[0].ttype
));
3180 yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
);
3181 TREE_STATIC (yyval
.ttype
) = TREE_STATIC (yyvsp
[-1].ttype
); ;
3184 #line 1055 "objc-parse.y"
3185 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3188 #line 1057 "objc-parse.y"
3189 { yyval
.ttype
= chainon (yyvsp
[0].ttype
, tree_cons (NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[-2].ttype
)); ;
3192 #line 1061 "objc-parse.y"
3193 { yyval
.ttype
= NULL_TREE
; ;
3196 #line 1063 "objc-parse.y"
3197 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3200 #line 1073 "objc-parse.y"
3201 { /* For a typedef name, record the meaning, not the name.
3202 In case of `foo foo, bar;'. */
3203 yyval
.ttype
= lookup_name (yyvsp
[0].ttype
); ;
3206 #line 1077 "objc-parse.y"
3207 { yyval
.ttype
= get_static_reference (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3210 #line 1079 "objc-parse.y"
3211 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3214 #line 1084 "objc-parse.y"
3215 { yyval
.ttype
= get_object_reference (yyvsp
[0].ttype
); ;
3218 #line 1086 "objc-parse.y"
3219 { yyval
.ttype
= TREE_TYPE (yyvsp
[-1].ttype
); ;
3222 #line 1088 "objc-parse.y"
3223 { yyval
.ttype
= groktypename (yyvsp
[-1].ttype
); ;
3226 #line 1110 "objc-parse.y"
3227 { yyval
.ttype
= NULL_TREE
; ;
3230 #line 1112 "objc-parse.y"
3231 { if (TREE_CHAIN (yyvsp
[-1].ttype
)) yyvsp
[-1].ttype
= combine_strings (yyvsp
[-1].ttype
);
3232 yyval
.ttype
= yyvsp
[-1].ttype
;
3236 #line 1119 "objc-parse.y"
3237 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3238 yyvsp
[-1].ttype
, prefix_attributes
);
3239 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3242 #line 1124 "objc-parse.y"
3244 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3247 #line 1127 "objc-parse.y"
3248 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3249 yyvsp
[0].ttype
, prefix_attributes
);
3250 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
);
3254 #line 1135 "objc-parse.y"
3255 { yyval
.ttype
= start_decl (yyvsp
[-3].ttype
, current_declspecs
, 1,
3256 yyvsp
[-1].ttype
, prefix_attributes
);
3257 start_init (yyval
.ttype
, yyvsp
[-2].ttype
, global_bindings_p ()); ;
3260 #line 1140 "objc-parse.y"
3262 decl_attributes (yyvsp
[-1].ttype
, yyvsp
[-3].ttype
, prefix_attributes
);
3263 finish_decl (yyvsp
[-1].ttype
, yyvsp
[0].ttype
, yyvsp
[-4].ttype
); ;
3266 #line 1144 "objc-parse.y"
3267 { tree d
= start_decl (yyvsp
[-2].ttype
, current_declspecs
, 0,
3268 yyvsp
[0].ttype
, prefix_attributes
);
3269 finish_decl (d
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3272 #line 1152 "objc-parse.y"
3273 { yyval
.ttype
= NULL_TREE
; ;
3276 #line 1154 "objc-parse.y"
3277 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3280 #line 1159 "objc-parse.y"
3281 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3284 #line 1161 "objc-parse.y"
3285 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3288 #line 1166 "objc-parse.y"
3289 { yyval
.ttype
= yyvsp
[-2].ttype
; ;
3292 #line 1171 "objc-parse.y"
3293 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3296 #line 1173 "objc-parse.y"
3297 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3300 #line 1178 "objc-parse.y"
3301 { yyval
.ttype
= NULL_TREE
; ;
3304 #line 1180 "objc-parse.y"
3305 { yyval
.ttype
= build_tree_list (yyvsp
[0].ttype
, NULL_TREE
); ;
3308 #line 1182 "objc-parse.y"
3309 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, build_tree_list (NULL_TREE
, yyvsp
[-1].ttype
)); ;
3312 #line 1184 "objc-parse.y"
3313 { yyval
.ttype
= build_tree_list (yyvsp
[-5].ttype
, tree_cons (NULL_TREE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
)); ;
3316 #line 1186 "objc-parse.y"
3317 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3320 #line 1204 "objc-parse.y"
3321 { really_start_incremental_init (NULL_TREE
); ;
3324 #line 1206 "objc-parse.y"
3325 { yyval
.ttype
= pop_init_level (0); ;
3328 #line 1208 "objc-parse.y"
3329 { yyval
.ttype
= error_mark_node
; ;
3332 #line 1214 "objc-parse.y"
3334 pedwarn ("ANSI C forbids empty initializer braces"); ;
3337 #line 1230 "objc-parse.y"
3338 { set_init_label (yyvsp
[-1].ttype
); ;
3341 #line 1237 "objc-parse.y"
3342 { push_init_level (0); ;
3345 #line 1239 "objc-parse.y"
3346 { process_init_element (pop_init_level (0)); ;
3349 #line 1241 "objc-parse.y"
3350 { process_init_element (yyvsp
[0].ttype
); ;
3353 #line 1252 "objc-parse.y"
3354 { set_init_label (yyvsp
[0].ttype
); ;
3357 #line 1260 "objc-parse.y"
3359 pedwarn ("ANSI C forbids nested functions");
3361 push_function_context ();
3362 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3363 prefix_attributes
, NULL_TREE
))
3365 pop_function_context ();
3368 reinit_parse_for_function (); ;
3371 #line 1272 "objc-parse.y"
3372 { store_parm_decls (); ;
3375 #line 1280 "objc-parse.y"
3376 { finish_function (1);
3377 pop_function_context (); ;
3380 #line 1286 "objc-parse.y"
3382 pedwarn ("ANSI C forbids nested functions");
3384 push_function_context ();
3385 if (! start_function (current_declspecs
, yyvsp
[0].ttype
,
3386 prefix_attributes
, NULL_TREE
))
3388 pop_function_context ();
3391 reinit_parse_for_function (); ;
3394 #line 1298 "objc-parse.y"
3395 { store_parm_decls (); ;
3398 #line 1306 "objc-parse.y"
3399 { finish_function (1);
3400 pop_function_context (); ;
3403 #line 1322 "objc-parse.y"
3404 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3407 #line 1324 "objc-parse.y"
3408 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3411 #line 1329 "objc-parse.y"
3412 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3415 #line 1331 "objc-parse.y"
3416 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3419 #line 1333 "objc-parse.y"
3420 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3423 #line 1340 "objc-parse.y"
3424 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3427 #line 1352 "objc-parse.y"
3428 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3431 #line 1357 "objc-parse.y"
3432 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3435 #line 1359 "objc-parse.y"
3436 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3439 #line 1361 "objc-parse.y"
3440 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3443 #line 1368 "objc-parse.y"
3444 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3447 #line 1377 "objc-parse.y"
3448 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3451 #line 1382 "objc-parse.y"
3452 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3455 #line 1384 "objc-parse.y"
3456 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3459 #line 1386 "objc-parse.y"
3460 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3463 #line 1388 "objc-parse.y"
3464 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3467 #line 1395 "objc-parse.y"
3468 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3471 #line 1401 "objc-parse.y"
3472 { yyval
.ttype
= NULL_TREE
; ;
3475 #line 1403 "objc-parse.y"
3476 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3479 #line 1408 "objc-parse.y"
3480 { yyval
.ttype
= NULL_TREE
; ;
3483 #line 1410 "objc-parse.y"
3484 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3487 #line 1415 "objc-parse.y"
3488 { yyval
.ttype
= NULL_TREE
; ;
3491 #line 1417 "objc-parse.y"
3492 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3495 #line 1422 "objc-parse.y"
3496 { yyval
.ttype
= start_struct (RECORD_TYPE
, yyvsp
[-1].ttype
);
3497 /* Start scope of tag before parsing components. */
3501 #line 1426 "objc-parse.y"
3502 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3505 #line 1428 "objc-parse.y"
3506 { yyval
.ttype
= finish_struct (start_struct (RECORD_TYPE
, NULL_TREE
),
3507 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3511 #line 1432 "objc-parse.y"
3512 { yyval
.ttype
= xref_tag (RECORD_TYPE
, yyvsp
[0].ttype
); ;
3515 #line 1434 "objc-parse.y"
3516 { yyval
.ttype
= start_struct (UNION_TYPE
, yyvsp
[-1].ttype
); ;
3519 #line 1436 "objc-parse.y"
3520 { yyval
.ttype
= finish_struct (yyvsp
[-3].ttype
, yyvsp
[-2].ttype
, chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3523 #line 1438 "objc-parse.y"
3524 { yyval
.ttype
= finish_struct (start_struct (UNION_TYPE
, NULL_TREE
),
3525 yyvsp
[-2].ttype
, chainon (yyvsp
[-4].ttype
, yyvsp
[0].ttype
));
3529 #line 1442 "objc-parse.y"
3530 { yyval
.ttype
= xref_tag (UNION_TYPE
, yyvsp
[0].ttype
); ;
3533 #line 1444 "objc-parse.y"
3534 { yyval
.ttype
= start_enum (yyvsp
[-1].ttype
); ;
3537 #line 1446 "objc-parse.y"
3538 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
3539 chainon (yyvsp
[-7].ttype
, yyvsp
[0].ttype
)); ;
3542 #line 1449 "objc-parse.y"
3543 { yyval
.ttype
= start_enum (NULL_TREE
); ;
3546 #line 1451 "objc-parse.y"
3547 { yyval
.ttype
= finish_enum (yyvsp
[-4].ttype
, nreverse (yyvsp
[-3].ttype
),
3548 chainon (yyvsp
[-6].ttype
, yyvsp
[0].ttype
)); ;
3551 #line 1454 "objc-parse.y"
3552 { yyval
.ttype
= xref_tag (ENUMERAL_TYPE
, yyvsp
[0].ttype
); ;
3555 #line 1465 "objc-parse.y"
3556 { if (pedantic
&& ! flag_isoc99
)
3557 pedwarn ("comma at end of enumerator list"); ;
3560 #line 1471 "objc-parse.y"
3561 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3564 #line 1473 "objc-parse.y"
3565 { yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
3566 pedwarn ("no semicolon at end of struct or union"); ;
3569 #line 1478 "objc-parse.y"
3570 { yyval
.ttype
= NULL_TREE
; ;
3573 #line 1480 "objc-parse.y"
3574 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
); ;
3577 #line 1482 "objc-parse.y"
3579 pedwarn ("extra semicolon in struct or union specified"); ;
3582 #line 1486 "objc-parse.y"
3584 tree interface
= lookup_interface (yyvsp
[-1].ttype
);
3587 yyval
.ttype
= get_class_ivars (interface
);
3590 error ("Cannot find interface declaration for `%s'",
3591 IDENTIFIER_POINTER (yyvsp
[-1].ttype
));
3592 yyval
.ttype
= NULL_TREE
;
3597 #line 1511 "objc-parse.y"
3598 { yyval
.ttype
= yyvsp
[0].ttype
;
3599 current_declspecs
= TREE_VALUE (declspec_stack
);
3600 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3601 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3604 #line 1516 "objc-parse.y"
3606 /* Support for unnamed structs or unions as members of
3607 structs or unions (which is [a] useful and [b] supports
3610 pedwarn ("ANSI C doesn't support unnamed structs/unions");
3612 yyval
.ttype
= grokfield(yyvsp
[-2].filename
, yyvsp
[-1].lineno
, NULL
, current_declspecs
, NULL_TREE
);
3613 current_declspecs
= TREE_VALUE (declspec_stack
);
3614 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3615 declspec_stack
= TREE_CHAIN (declspec_stack
);
3619 #line 1529 "objc-parse.y"
3620 { yyval
.ttype
= yyvsp
[0].ttype
;
3621 current_declspecs
= TREE_VALUE (declspec_stack
);
3622 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
3623 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
3626 #line 1534 "objc-parse.y"
3628 pedwarn ("ANSI C forbids member declarations with no members");
3629 shadow_tag(yyvsp
[0].ttype
);
3630 yyval
.ttype
= NULL_TREE
; ;
3633 #line 1539 "objc-parse.y"
3634 { yyval
.ttype
= NULL_TREE
; ;
3637 #line 1541 "objc-parse.y"
3638 { yyval
.ttype
= yyvsp
[0].ttype
;
3639 RESTORE_WARN_FLAGS (yyvsp
[-1].ttype
); ;
3642 #line 1548 "objc-parse.y"
3643 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3646 #line 1553 "objc-parse.y"
3647 { yyval
.ttype
= grokfield (yyvsp
[-3].filename
, yyvsp
[-2].lineno
, yyvsp
[-1].ttype
, current_declspecs
, NULL_TREE
);
3648 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3651 #line 1557 "objc-parse.y"
3652 { yyval
.ttype
= grokfield (yyvsp
[-5].filename
, yyvsp
[-4].lineno
, yyvsp
[-3].ttype
, current_declspecs
, yyvsp
[-1].ttype
);
3653 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3656 #line 1560 "objc-parse.y"
3657 { yyval
.ttype
= grokfield (yyvsp
[-4].filename
, yyvsp
[-3].lineno
, NULL_TREE
, current_declspecs
, yyvsp
[-1].ttype
);
3658 decl_attributes (yyval
.ttype
, yyvsp
[0].ttype
, prefix_attributes
); ;
3661 #line 1572 "objc-parse.y"
3662 { if (yyvsp
[-2].ttype
== error_mark_node
)
3663 yyval
.ttype
= yyvsp
[-2].ttype
;
3665 yyval
.ttype
= chainon (yyvsp
[0].ttype
, yyvsp
[-2].ttype
); ;
3668 #line 1577 "objc-parse.y"
3669 { yyval
.ttype
= error_mark_node
; ;
3672 #line 1583 "objc-parse.y"
3673 { yyval
.ttype
= build_enumerator (yyvsp
[0].ttype
, NULL_TREE
); ;
3676 #line 1585 "objc-parse.y"
3677 { yyval
.ttype
= build_enumerator (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
3680 #line 1590 "objc-parse.y"
3681 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3684 #line 1592 "objc-parse.y"
3685 { yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3688 #line 1597 "objc-parse.y"
3689 { yyval
.ttype
= NULL_TREE
; ;
3692 #line 1603 "objc-parse.y"
3693 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3696 #line 1605 "objc-parse.y"
3697 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3700 #line 1610 "objc-parse.y"
3701 { yyval
.ttype
= NULL_TREE
; ;
3704 #line 1612 "objc-parse.y"
3705 { yyval
.ttype
= tree_cons (NULL_TREE
, yyvsp
[0].ttype
, yyvsp
[-1].ttype
); ;
3708 #line 1617 "objc-parse.y"
3709 { yyval
.ttype
= yyvsp
[-1].ttype
; ;
3712 #line 1620 "objc-parse.y"
3713 { yyval
.ttype
= make_pointer_declarator (yyvsp
[-1].ttype
, yyvsp
[0].ttype
); ;
3716 #line 1622 "objc-parse.y"
3717 { yyval
.ttype
= make_pointer_declarator (yyvsp
[0].ttype
, NULL_TREE
); ;
3720 #line 1624 "objc-parse.y"
3721 { yyval
.ttype
= build_nt (CALL_EXPR
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
); ;
3724 #line 1626 "objc-parse.y"
3725 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
3728 #line 1628 "objc-parse.y"
3729 { yyval
.ttype
= build_nt (ARRAY_REF
, yyvsp
[-2].ttype
, NULL_TREE
); ;
3732 #line 1630 "objc-parse.y"
3733 { yyval
.ttype
= build_nt (CALL_EXPR
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
); ;
3736 #line 1632 "objc-parse.y"
3737 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, yyvsp
[-1].ttype
); ;
3740 #line 1634 "objc-parse.y"
3741 { yyval
.ttype
= build_nt (ARRAY_REF
, NULL_TREE
, NULL_TREE
); ;
3744 #line 1638 "objc-parse.y"
3745 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3748 #line 1647 "objc-parse.y"
3750 if (pedantic
&& yyvsp
[0].ends_in_label
)
3751 pedwarn ("ANSI C forbids label at end of compound statement");
3755 #line 1656 "objc-parse.y"
3756 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3759 #line 1658 "objc-parse.y"
3760 { yyval
.ends_in_label
= 0; ;
3763 #line 1670 "objc-parse.y"
3764 { emit_line_note (input_filename
, lineno
);
3767 expand_start_bindings (0);
3768 if (objc_method_context
)
3773 #line 1684 "objc-parse.y"
3775 pedwarn ("ANSI C forbids label declarations"); ;
3778 #line 1695 "objc-parse.y"
3780 for (link
= yyvsp
[-1].ttype
; link
; link
= TREE_CHAIN (link
))
3782 tree label
= shadow_label (TREE_VALUE (link
));
3783 C_DECLARED_LABEL_FLAG (label
) = 1;
3784 declare_nonlocal_label (label
);
3789 #line 1709 "objc-parse.y"
3793 #line 1713 "objc-parse.y"
3794 { compstmt_count
++; ;
3797 #line 1716 "objc-parse.y"
3798 { yyval
.ttype
= convert (void_type_node
, integer_zero_node
); ;
3801 #line 1718 "objc-parse.y"
3802 { emit_line_note (input_filename
, lineno
);
3803 expand_end_bindings (getdecls (), 1, 0);
3804 yyval
.ttype
= poplevel (1, 1, 0); ;
3807 #line 1722 "objc-parse.y"
3808 { emit_line_note (input_filename
, lineno
);
3809 expand_end_bindings (getdecls (), kept_level_p (), 0);
3810 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3813 #line 1726 "objc-parse.y"
3814 { emit_line_note (input_filename
, lineno
);
3815 expand_end_bindings (getdecls (), kept_level_p (), 0);
3816 yyval
.ttype
= poplevel (kept_level_p (), 0, 0); ;
3819 #line 1733 "objc-parse.y"
3820 { if (current_function_decl
== 0)
3822 error ("braced-group within expression allowed only inside a function");
3825 /* We must force a BLOCK for this level
3826 so that, if it is not expanded later,
3827 there is a way to turn off the entire subtree of blocks
3828 that are contained in it. */
3830 push_iterator_stack ();
3831 push_label_level ();
3832 yyval
.ttype
= expand_start_stmt_expr ();
3837 #line 1750 "objc-parse.y"
3838 { yyval
.ttype
= yyvsp
[0].ttype
; ;
3841 #line 1764 "objc-parse.y"
3842 { emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
3843 c_expand_start_cond (truthvalue_conversion (yyvsp
[-1].ttype
), 0,
3845 yyval
.itype
= stmt_count
;
3846 if_stmt_file
= yyvsp
[-5].filename
;
3847 if_stmt_line
= yyvsp
[-4].lineno
;
3848 position_after_white_space (); ;
3851 #line 1778 "objc-parse.y"
3854 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3855 /* See comment in `while' alternative, above. */
3857 expand_start_loop_continue_elsewhere (1);
3858 position_after_white_space (); ;
3861 #line 1786 "objc-parse.y"
3862 { expand_loop_continue_here (); ;
3865 #line 1790 "objc-parse.y"
3866 { yyval
.filename
= input_filename
; ;
3869 #line 1794 "objc-parse.y"
3870 { yyval
.lineno
= lineno
; ;
3873 #line 1799 "objc-parse.y"
3877 #line 1804 "objc-parse.y"
3881 #line 1809 "objc-parse.y"
3882 { yyval
.ends_in_label
= yyvsp
[0].ends_in_label
; ;
3885 #line 1814 "objc-parse.y"
3886 { yyval
.ends_in_label
= 0; ;
3889 #line 1816 "objc-parse.y"
3890 { yyval
.ends_in_label
= 1; ;
3893 #line 1822 "objc-parse.y"
3897 #line 1825 "objc-parse.y"
3899 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
3900 /* It appears that this should not be done--that a non-lvalue array
3901 shouldn't get an error if the value isn't used.
3902 Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3903 if it appears as a top-level expression,
3904 but says nothing about non-lvalue arrays. */
3906 /* Call default_conversion to get an error
3907 on referring to a register array if pedantic. */
3908 if (TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == ARRAY_TYPE
3909 || TREE_CODE (TREE_TYPE (yyvsp
[-1].ttype
)) == FUNCTION_TYPE
)
3910 yyvsp
[-1].ttype
= default_conversion (yyvsp
[-1].ttype
);
3912 iterator_expand (yyvsp
[-1].ttype
); ;
3915 #line 1841 "objc-parse.y"
3916 { c_expand_start_else ();
3917 yyvsp
[-1].itype
= stmt_count
;
3918 position_after_white_space (); ;
3921 #line 1845 "objc-parse.y"
3922 { c_expand_end_cond ();
3923 if (extra_warnings
&& stmt_count
== yyvsp
[-3].itype
)
3924 warning ("empty body in an else-statement"); ;
3927 #line 1849 "objc-parse.y"
3928 { c_expand_end_cond ();
3929 /* This warning is here instead of in simple_if, because we
3930 do not want a warning if an empty if is followed by an
3931 else statement. Increment stmt_count so we don't
3932 give a second error if this is a nested `if'. */
3933 if (extra_warnings
&& stmt_count
++ == yyvsp
[0].itype
)
3934 warning_with_file_and_line (if_stmt_file
, if_stmt_line
,
3935 "empty body in an if-statement"); ;
3938 #line 1861 "objc-parse.y"
3939 { c_expand_end_cond (); ;
3942 #line 1863 "objc-parse.y"
3944 emit_line_note (yyvsp
[-2].filename
, yyvsp
[-1].lineno
);
3945 /* The emit_nop used to come before emit_line_note,
3946 but that made the nop seem like part of the preceding line.
3947 And that was confusing when the preceding line was
3948 inside of an if statement and was not really executed.
3949 I think it ought to work to put the nop after the line number.
3950 We will see. --rms, July 15, 1991. */
3954 #line 1873 "objc-parse.y"
3955 { /* Don't start the loop till we have succeeded
3956 in parsing the end test. This is to make sure
3957 that we end every loop we start. */
3958 expand_start_loop (1);
3959 emit_line_note (input_filename
, lineno
);
3960 expand_exit_loop_if_false (NULL_PTR
,
3961 truthvalue_conversion (yyvsp
[-1].ttype
));
3962 position_after_white_space (); ;
3965 #line 1882 "objc-parse.y"
3966 { expand_end_loop (); ;
3969 #line 1885 "objc-parse.y"
3970 { emit_line_note (input_filename
, lineno
);
3971 expand_exit_loop_if_false (NULL_PTR
,
3972 truthvalue_conversion (yyvsp
[-2].ttype
));
3973 expand_end_loop (); ;
3976 #line 1891 "objc-parse.y"
3977 { expand_end_loop (); ;
3980 #line 1894 "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 1906 "objc-parse.y"
3994 { yyvsp
[0].lineno
= lineno
;
3995 yyval
.filename
= input_filename
; ;
3998 #line 1909 "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 yyvsp
[-3].lineno
= lineno
;
4009 yyvsp
[-2].filename
= input_filename
;
4010 position_after_white_space (); ;
4013 #line 1922 "objc-parse.y"
4014 { /* Emit the increment expression, with a line number. */
4015 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-5].lineno
);
4016 expand_loop_continue_here ();
4017 if (yyvsp
[-3].ttype
)
4018 c_expand_expr_stmt (yyvsp
[-3].ttype
);
4019 expand_end_loop (); ;
4022 #line 1929 "objc-parse.y"
4024 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4025 c_expand_start_case (yyvsp
[-1].ttype
);
4026 position_after_white_space (); ;
4029 #line 1934 "objc-parse.y"
4030 { expand_end_case (yyvsp
[-3].ttype
); ;
4033 #line 1936 "objc-parse.y"
4035 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4036 if ( ! expand_exit_something ())
4037 error ("break statement not within loop or switch"); ;
4040 #line 1941 "objc-parse.y"
4042 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4043 if (! expand_continue_loop (NULL_PTR
))
4044 error ("continue statement not within a loop"); ;
4047 #line 1946 "objc-parse.y"
4049 emit_line_note (yyvsp
[-3].filename
, yyvsp
[-2].lineno
);
4050 c_expand_return (NULL_TREE
); ;
4053 #line 1950 "objc-parse.y"
4055 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4056 c_expand_return (yyvsp
[-1].ttype
); ;
4059 #line 1954 "objc-parse.y"
4061 emit_line_note (yyvsp
[-7].filename
, yyvsp
[-6].lineno
);
4062 STRIP_NOPS (yyvsp
[-2].ttype
);
4063 if ((TREE_CODE (yyvsp
[-2].ttype
) == ADDR_EXPR
4064 && TREE_CODE (TREE_OPERAND (yyvsp
[-2].ttype
, 0)) == STRING_CST
)
4065 || TREE_CODE (yyvsp
[-2].ttype
) == STRING_CST
)
4066 expand_asm (yyvsp
[-2].ttype
);
4068 error ("argument of `asm' is not a constant string"); ;
4071 #line 1965 "objc-parse.y"
4073 emit_line_note (yyvsp
[-9].filename
, yyvsp
[-8].lineno
);
4074 c_expand_asm_operands (yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
, NULL_TREE
,
4075 yyvsp
[-6].ttype
== ridpointers
[(int)RID_VOLATILE
],
4076 input_filename
, lineno
); ;
4079 #line 1972 "objc-parse.y"
4081 emit_line_note (yyvsp
[-11].filename
, yyvsp
[-10].lineno
);
4082 c_expand_asm_operands (yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, NULL_TREE
,
4083 yyvsp
[-8].ttype
== ridpointers
[(int)RID_VOLATILE
],
4084 input_filename
, lineno
); ;
4087 #line 1980 "objc-parse.y"
4089 emit_line_note (yyvsp
[-13].filename
, yyvsp
[-12].lineno
);
4090 c_expand_asm_operands (yyvsp
[-8].ttype
, yyvsp
[-6].ttype
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
,
4091 yyvsp
[-10].ttype
== ridpointers
[(int)RID_VOLATILE
],
4092 input_filename
, lineno
); ;
4095 #line 1986 "objc-parse.y"
4098 emit_line_note (yyvsp
[-4].filename
, yyvsp
[-3].lineno
);
4099 decl
= lookup_label (yyvsp
[-1].ttype
);
4102 TREE_USED (decl
) = 1;
4108 #line 1997 "objc-parse.y"
4110 pedwarn ("ANSI C forbids `goto *expr;'");
4112 emit_line_note (yyvsp
[-5].filename
, yyvsp
[-4].lineno
);
4113 expand_computed_goto (convert (ptr_type_node
, yyvsp
[-1].ttype
)); ;
4116 #line 2012 "objc-parse.y"
4118 /* The value returned by this action is */
4119 /* 1 if everything is OK */
4120 /* 0 in case of error or already bound iterator */
4123 if (TREE_CODE (yyvsp
[-1].ttype
) != VAR_DECL
)
4124 error ("invalid `for (ITERATOR)' syntax");
4125 else if (! ITERATOR_P (yyvsp
[-1].ttype
))
4126 error ("`%s' is not an iterator",
4127 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4128 else if (ITERATOR_BOUND_P (yyvsp
[-1].ttype
))
4129 error ("`for (%s)' inside expansion of same iterator",
4130 IDENTIFIER_POINTER (DECL_NAME (yyvsp
[-1].ttype
)));
4134 iterator_for_loop_start (yyvsp
[-1].ttype
);
4139 #line 2033 "objc-parse.y"
4141 if (yyvsp
[-1].itype
)
4142 iterator_for_loop_end (yyvsp
[-3].ttype
);
4146 #line 2064 "objc-parse.y"
4147 { register tree value
= check_case_value (yyvsp
[-1].ttype
);
4149 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4153 if (value
!= error_mark_node
)
4158 if (pedantic
&& ! INTEGRAL_TYPE_P (TREE_TYPE (value
)))
4159 pedwarn ("label must have integral type in ANSI C");
4161 success
= pushcase (value
, convert_and_check
,
4165 error ("case label not within a switch statement");
4166 else if (success
== 2)
4168 error ("duplicate case value");
4169 error_with_decl (duplicate
, "this is the first entry for that value");
4171 else if (success
== 3)
4172 warning ("case value out of range");
4173 else if (success
== 5)
4174 error ("case label within scope of cleanup or variable array");
4176 position_after_white_space (); ;
4179 #line 2095 "objc-parse.y"
4180 { register tree value1
= check_case_value (yyvsp
[-3].ttype
);
4181 register tree value2
= check_case_value (yyvsp
[-1].ttype
);
4183 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4186 pedwarn ("ANSI C forbids case ranges");
4189 if (value1
!= error_mark_node
&& value2
!= error_mark_node
)
4192 int success
= pushcase_range (value1
, value2
,
4193 convert_and_check
, label
,
4196 error ("case label not within a switch statement");
4197 else if (success
== 2)
4199 error ("duplicate case value");
4200 error_with_decl (duplicate
, "this is the first entry for that value");
4202 else if (success
== 3)
4203 warning ("case value out of range");
4204 else if (success
== 4)
4205 warning ("empty case range");
4206 else if (success
== 5)
4207 error ("case label within scope of cleanup or variable array");
4209 position_after_white_space (); ;
4212 #line 2126 "objc-parse.y"
4216 = build_decl (LABEL_DECL
, NULL_TREE
, NULL_TREE
);
4217 int success
= pushcase (NULL_TREE
, 0, label
, &duplicate
);
4220 error ("default label not within a switch statement");
4221 else if (success
== 2)
4223 error ("multiple default labels in one switch");
4224 error_with_decl (duplicate
, "this is the first default label");
4226 position_after_white_space (); ;
4229 #line 2141 "objc-parse.y"
4230 { tree label
= define_label (input_filename
, lineno
, yyvsp
[-2].ttype
);
4235 expand_label (label
);
4236 decl_attributes (label
, yyvsp
[0].ttype
, NULL_TREE
);
4238 position_after_white_space (); ;
4241 #line 2156 "objc-parse.y"
4242 { emit_line_note (input_filename
, lineno
);
4243 yyval
.ttype
= NULL_TREE
; ;
4246 #line 2159 "objc-parse.y"
4247 { emit_line_note (input_filename
, lineno
); ;
4250 #line 2164 "objc-parse.y"
4251 { yyval
.ttype
= NULL_TREE
; ;
4254 #line 2171 "objc-parse.y"
4255 { yyval
.ttype
= NULL_TREE
; ;
4258 #line 2178 "objc-parse.y"
4259 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, yyvsp
[0].ttype
); ;
4262 #line 2183 "objc-parse.y"
4263 { yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
); ;
4266 #line 2188 "objc-parse.y"
4267 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), NULL_TREE
); ;
4270 #line 2190 "objc-parse.y"
4271 { yyval
.ttype
= tree_cons (NULL_TREE
, combine_strings (yyvsp
[0].ttype
), yyvsp
[-2].ttype
); ;
4274 #line 2196 "objc-parse.y"
4276 clear_parm_order ();
4277 declare_parm_level (0); ;
4280 #line 2200 "objc-parse.y"
4281 { yyval
.ttype
= yyvsp
[0].ttype
;
4282 parmlist_tags_warning ();
4283 poplevel (0, 0, 0); ;
4286 #line 2208 "objc-parse.y"
4289 pedwarn ("ANSI C forbids forward parameter declarations");
4290 /* Mark the forward decls as such. */
4291 for (parm
= getdecls (); parm
; parm
= TREE_CHAIN (parm
))
4292 TREE_ASM_WRITTEN (parm
) = 1;
4293 clear_parm_order (); ;
4296 #line 2216 "objc-parse.y"
4297 { yyval
.ttype
= yyvsp
[0].ttype
; ;
4300 #line 2218 "objc-parse.y"
4301 { yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, NULL_TREE
); ;
4304 #line 2224 "objc-parse.y"
4305 { yyval
.ttype
= get_parm_info (0); ;
4308 #line 2226 "objc-parse.y"
4309 { yyval
.ttype
= get_parm_info (0);
4310 /* Gcc used to allow this as an extension. However, it does
4311 not work for all targets, and thus has been disabled.
4312 Also, since func (...) and func () are indistinguishable,
4313 it caused problems with the code in expand_builtin which
4314 tries to verify that BUILT_IN_NEXT_ARG is being used
4316 error ("ANSI C requires a named argument before `...'");
4320 #line 2236 "objc-parse.y"
4321 { yyval
.ttype
= get_parm_info (1); ;
4324 #line 2238 "objc-parse.y"
4325 { yyval
.ttype
= get_parm_info (0); ;
4328 #line 2243 "objc-parse.y"
4329 { push_parm_decl (yyvsp
[0].ttype
); ;
4332 #line 2245 "objc-parse.y"
4333 { push_parm_decl (yyvsp
[0].ttype
); ;
4336 #line 2252 "objc-parse.y"
4337 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4339 build_tree_list (prefix_attributes
,
4341 current_declspecs
= TREE_VALUE (declspec_stack
);
4342 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4343 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4346 #line 2260 "objc-parse.y"
4347 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4349 build_tree_list (prefix_attributes
,
4351 current_declspecs
= TREE_VALUE (declspec_stack
);
4352 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4353 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4356 #line 2268 "objc-parse.y"
4357 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4359 build_tree_list (prefix_attributes
,
4361 current_declspecs
= TREE_VALUE (declspec_stack
);
4362 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4363 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4366 #line 2276 "objc-parse.y"
4367 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4369 build_tree_list (prefix_attributes
,
4371 current_declspecs
= TREE_VALUE (declspec_stack
);
4372 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4373 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4376 #line 2285 "objc-parse.y"
4377 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4379 build_tree_list (prefix_attributes
,
4381 current_declspecs
= TREE_VALUE (declspec_stack
);
4382 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4383 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4386 #line 2298 "objc-parse.y"
4388 clear_parm_order ();
4389 declare_parm_level (1); ;
4392 #line 2302 "objc-parse.y"
4393 { yyval
.ttype
= yyvsp
[0].ttype
;
4394 parmlist_tags_warning ();
4395 poplevel (0, 0, 0); ;
4398 #line 2310 "objc-parse.y"
4400 for (t
= yyvsp
[-1].ttype
; t
; t
= TREE_CHAIN (t
))
4401 if (TREE_VALUE (t
) == NULL_TREE
)
4402 error ("`...' in old-style identifier list");
4403 yyval
.ttype
= tree_cons (NULL_TREE
, NULL_TREE
, yyvsp
[-1].ttype
); ;
4406 #line 2320 "objc-parse.y"
4407 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4410 #line 2322 "objc-parse.y"
4411 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4414 #line 2328 "objc-parse.y"
4415 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4418 #line 2330 "objc-parse.y"
4419 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4422 #line 2335 "objc-parse.y"
4423 { yyval
.ttype
= SAVE_WARN_FLAGS();
4425 warn_pointer_arith
= 0; ;
4428 #line 2349 "objc-parse.y"
4430 if (objc_implementation_context
)
4432 finish_class (objc_implementation_context
);
4433 objc_ivar_chain
= NULL_TREE
;
4434 objc_implementation_context
= NULL_TREE
;
4437 warning ("`@end' must appear in an implementation context");
4441 #line 2364 "objc-parse.y"
4442 { yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
); ;
4445 #line 2366 "objc-parse.y"
4446 { yyval
.ttype
= chainon (yyvsp
[-2].ttype
, build_tree_list (NULL_TREE
, yyvsp
[0].ttype
)); ;
4449 #line 2371 "objc-parse.y"
4451 objc_declare_class (yyvsp
[-1].ttype
);
4455 #line 2377 "objc-parse.y"
4457 objc_declare_alias (yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4461 #line 2383 "objc-parse.y"
4463 objc_interface_context
= objc_ivar_context
4464 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[-1].ttype
);
4465 objc_public_flag
= 0;
4469 #line 2389 "objc-parse.y"
4471 continue_class (objc_interface_context
);
4475 #line 2394 "objc-parse.y"
4477 finish_class (objc_interface_context
);
4478 objc_interface_context
= NULL_TREE
;
4482 #line 2400 "objc-parse.y"
4484 objc_interface_context
4485 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
4486 continue_class (objc_interface_context
);
4490 #line 2407 "objc-parse.y"
4492 finish_class (objc_interface_context
);
4493 objc_interface_context
= NULL_TREE
;
4497 #line 2413 "objc-parse.y"
4499 objc_interface_context
= objc_ivar_context
4500 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[-1].ttype
);
4501 objc_public_flag
= 0;
4505 #line 2419 "objc-parse.y"
4507 continue_class (objc_interface_context
);
4511 #line 2424 "objc-parse.y"
4513 finish_class (objc_interface_context
);
4514 objc_interface_context
= NULL_TREE
;
4518 #line 2430 "objc-parse.y"
4520 objc_interface_context
4521 = start_class (CLASS_INTERFACE_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4522 continue_class (objc_interface_context
);
4526 #line 2437 "objc-parse.y"
4528 finish_class (objc_interface_context
);
4529 objc_interface_context
= NULL_TREE
;
4533 #line 2443 "objc-parse.y"
4535 objc_implementation_context
= objc_ivar_context
4536 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-1].ttype
, NULL_TREE
, NULL_TREE
);
4537 objc_public_flag
= 0;
4541 #line 2449 "objc-parse.y"
4544 = continue_class (objc_implementation_context
);
4548 #line 2455 "objc-parse.y"
4550 objc_implementation_context
4551 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[0].ttype
, NULL_TREE
, NULL_TREE
);
4553 = continue_class (objc_implementation_context
);
4557 #line 2463 "objc-parse.y"
4559 objc_implementation_context
= objc_ivar_context
4560 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4561 objc_public_flag
= 0;
4565 #line 2469 "objc-parse.y"
4568 = continue_class (objc_implementation_context
);
4572 #line 2475 "objc-parse.y"
4574 objc_implementation_context
4575 = start_class (CLASS_IMPLEMENTATION_TYPE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4577 = continue_class (objc_implementation_context
);
4581 #line 2483 "objc-parse.y"
4583 objc_interface_context
4584 = start_class (CATEGORY_INTERFACE_TYPE
, yyvsp
[-4].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4585 continue_class (objc_interface_context
);
4589 #line 2490 "objc-parse.y"
4591 finish_class (objc_interface_context
);
4592 objc_interface_context
= NULL_TREE
;
4596 #line 2496 "objc-parse.y"
4598 objc_implementation_context
4599 = start_class (CATEGORY_IMPLEMENTATION_TYPE
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, NULL_TREE
);
4601 = continue_class (objc_implementation_context
);
4605 #line 2506 "objc-parse.y"
4607 remember_protocol_qualifiers ();
4608 objc_interface_context
4609 = start_protocol(PROTOCOL_INTERFACE_TYPE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4613 #line 2512 "objc-parse.y"
4615 forget_protocol_qualifiers();
4616 finish_protocol(objc_interface_context
);
4617 objc_interface_context
= NULL_TREE
;
4621 #line 2521 "objc-parse.y"
4623 yyval
.ttype
= NULL_TREE
;
4627 #line 2529 "objc-parse.y"
4629 if (yyvsp
[-2].code
== LT_EXPR
&& yyvsp
[0].code
== GT_EXPR
)
4630 yyval
.ttype
= yyvsp
[-1].ttype
;
4636 #line 2543 "objc-parse.y"
4637 { objc_public_flag
= 2; ;
4640 #line 2544 "objc-parse.y"
4641 { objc_public_flag
= 0; ;
4644 #line 2545 "objc-parse.y"
4645 { objc_public_flag
= 1; ;
4648 #line 2550 "objc-parse.y"
4650 yyval
.ttype
= NULL_TREE
;
4654 #line 2555 "objc-parse.y"
4657 pedwarn ("extra semicolon in struct or union specified");
4661 #line 2573 "objc-parse.y"
4662 { yyval
.ttype
= yyvsp
[0].ttype
;
4663 current_declspecs
= TREE_VALUE (declspec_stack
);
4664 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4665 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4668 #line 2578 "objc-parse.y"
4669 { yyval
.ttype
= yyvsp
[0].ttype
;
4670 current_declspecs
= TREE_VALUE (declspec_stack
);
4671 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4672 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4675 #line 2583 "objc-parse.y"
4676 { yyval
.ttype
= NULL_TREE
; ;
4679 #line 2588 "objc-parse.y"
4680 { yyval
.ttype
= NULL_TREE
; ;
4683 #line 2595 "objc-parse.y"
4685 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4687 yyvsp
[0].ttype
, current_declspecs
,
4692 #line 2602 "objc-parse.y"
4694 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4696 yyvsp
[-2].ttype
, current_declspecs
, yyvsp
[0].ttype
);
4700 #line 2608 "objc-parse.y"
4702 yyval
.ttype
= add_instance_variable (objc_ivar_context
,
4705 current_declspecs
, yyvsp
[0].ttype
);
4709 #line 2618 "objc-parse.y"
4711 remember_protocol_qualifiers ();
4712 if (objc_implementation_context
)
4713 objc_inherit_code
= CLASS_METHOD_DECL
;
4715 fatal ("method definition not in class context");
4719 #line 2626 "objc-parse.y"
4721 forget_protocol_qualifiers ();
4722 add_class_method (objc_implementation_context
, yyvsp
[0].ttype
);
4723 start_method_def (yyvsp
[0].ttype
);
4724 objc_method_context
= yyvsp
[0].ttype
;
4728 #line 2633 "objc-parse.y"
4730 continue_method_def ();
4734 #line 2637 "objc-parse.y"
4736 finish_method_def ();
4737 objc_method_context
= NULL_TREE
;
4741 #line 2643 "objc-parse.y"
4743 remember_protocol_qualifiers ();
4744 if (objc_implementation_context
)
4745 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4747 fatal ("method definition not in class context");
4751 #line 2651 "objc-parse.y"
4753 forget_protocol_qualifiers ();
4754 add_instance_method (objc_implementation_context
, yyvsp
[0].ttype
);
4755 start_method_def (yyvsp
[0].ttype
);
4756 objc_method_context
= yyvsp
[0].ttype
;
4760 #line 2658 "objc-parse.y"
4762 continue_method_def ();
4766 #line 2662 "objc-parse.y"
4768 finish_method_def ();
4769 objc_method_context
= NULL_TREE
;
4773 #line 2674 "objc-parse.y"
4774 {yyval
.ttype
= NULL_TREE
; ;
4777 #line 2681 "objc-parse.y"
4778 {yyval
.ttype
= NULL_TREE
; ;
4781 #line 2691 "objc-parse.y"
4783 /* Remember protocol qualifiers in prototypes. */
4784 remember_protocol_qualifiers ();
4785 objc_inherit_code
= CLASS_METHOD_DECL
;
4789 #line 2697 "objc-parse.y"
4791 /* Forget protocol qualifiers here. */
4792 forget_protocol_qualifiers ();
4793 add_class_method (objc_interface_context
, yyvsp
[0].ttype
);
4797 #line 2705 "objc-parse.y"
4799 /* Remember protocol qualifiers in prototypes. */
4800 remember_protocol_qualifiers ();
4801 objc_inherit_code
= INSTANCE_METHOD_DECL
;
4805 #line 2711 "objc-parse.y"
4807 /* Forget protocol qualifiers here. */
4808 forget_protocol_qualifiers ();
4809 add_instance_method (objc_interface_context
, yyvsp
[0].ttype
);
4813 #line 2721 "objc-parse.y"
4815 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
, NULL_TREE
);
4819 #line 2726 "objc-parse.y"
4821 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[0].ttype
, NULL_TREE
);
4825 #line 2731 "objc-parse.y"
4827 yyval
.ttype
= build_method_decl (objc_inherit_code
, yyvsp
[-3].ttype
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4831 #line 2736 "objc-parse.y"
4833 yyval
.ttype
= build_method_decl (objc_inherit_code
, NULL_TREE
, yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4837 #line 2766 "objc-parse.y"
4838 { current_declspecs
= TREE_VALUE (declspec_stack
);
4839 prefix_attributes
= TREE_PURPOSE (declspec_stack
);
4840 declspec_stack
= TREE_CHAIN (declspec_stack
); ;
4843 #line 2770 "objc-parse.y"
4844 { shadow_tag (yyvsp
[-1].ttype
); ;
4847 #line 2772 "objc-parse.y"
4848 { pedwarn ("empty declaration"); ;
4851 #line 2777 "objc-parse.y"
4852 { push_parm_decl (yyvsp
[0].ttype
); ;
4855 #line 2779 "objc-parse.y"
4856 { push_parm_decl (yyvsp
[0].ttype
); ;
4859 #line 2787 "objc-parse.y"
4860 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4862 build_tree_list (prefix_attributes
,
4866 #line 2792 "objc-parse.y"
4867 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4869 build_tree_list (prefix_attributes
,
4873 #line 2797 "objc-parse.y"
4874 { yyval
.ttype
= build_tree_list (build_tree_list (current_declspecs
,
4876 build_tree_list (prefix_attributes
,
4880 #line 2805 "objc-parse.y"
4882 yyval
.ttype
= NULL_TREE
;
4886 #line 2809 "objc-parse.y"
4888 /* oh what a kludge! */
4889 yyval
.ttype
= (tree
)1;
4893 #line 2814 "objc-parse.y"
4899 #line 2818 "objc-parse.y"
4901 /* returns a tree list node generated by get_parm_info */
4902 yyval
.ttype
= yyvsp
[0].ttype
;
4907 #line 2833 "objc-parse.y"
4909 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
4913 #line 2846 "objc-parse.y"
4914 { yyval
.ttype
= get_identifier (token_buffer
); ;
4917 #line 2847 "objc-parse.y"
4918 { yyval
.ttype
= get_identifier (token_buffer
); ;
4921 #line 2848 "objc-parse.y"
4922 { yyval
.ttype
= get_identifier (token_buffer
); ;
4925 #line 2849 "objc-parse.y"
4926 { yyval
.ttype
= get_identifier (token_buffer
); ;
4929 #line 2850 "objc-parse.y"
4930 { yyval
.ttype
= get_identifier (token_buffer
); ;
4933 #line 2851 "objc-parse.y"
4934 { yyval
.ttype
= get_identifier (token_buffer
); ;
4937 #line 2852 "objc-parse.y"
4938 { yyval
.ttype
= get_identifier (token_buffer
); ;
4941 #line 2853 "objc-parse.y"
4942 { yyval
.ttype
= get_identifier (token_buffer
); ;
4945 #line 2854 "objc-parse.y"
4946 { yyval
.ttype
= get_identifier (token_buffer
); ;
4949 #line 2855 "objc-parse.y"
4950 { yyval
.ttype
= get_identifier (token_buffer
); ;
4953 #line 2856 "objc-parse.y"
4954 { yyval
.ttype
= get_identifier (token_buffer
); ;
4957 #line 2857 "objc-parse.y"
4958 { yyval
.ttype
= get_identifier (token_buffer
); ;
4961 #line 2858 "objc-parse.y"
4962 { yyval
.ttype
= get_identifier (token_buffer
); ;
4965 #line 2859 "objc-parse.y"
4966 { yyval
.ttype
= get_identifier (token_buffer
); ;
4969 #line 2860 "objc-parse.y"
4970 { yyval
.ttype
= get_identifier (token_buffer
); ;
4973 #line 2861 "objc-parse.y"
4974 { yyval
.ttype
= get_identifier (token_buffer
); ;
4977 #line 2862 "objc-parse.y"
4978 { yyval
.ttype
= get_identifier (token_buffer
); ;
4981 #line 2863 "objc-parse.y"
4982 { yyval
.ttype
= get_identifier (token_buffer
); ;
4985 #line 2864 "objc-parse.y"
4986 { yyval
.ttype
= get_identifier (token_buffer
); ;
4989 #line 2870 "objc-parse.y"
4991 yyval
.ttype
= build_keyword_decl (yyvsp
[-5].ttype
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
4995 #line 2875 "objc-parse.y"
4997 yyval
.ttype
= build_keyword_decl (yyvsp
[-2].ttype
, NULL_TREE
, yyvsp
[0].ttype
);
5001 #line 2880 "objc-parse.y"
5003 yyval
.ttype
= build_keyword_decl (NULL_TREE
, yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5007 #line 2885 "objc-parse.y"
5009 yyval
.ttype
= build_keyword_decl (NULL_TREE
, NULL_TREE
, yyvsp
[0].ttype
);
5013 #line 2898 "objc-parse.y"
5015 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5019 #line 2906 "objc-parse.y"
5021 if (TREE_CHAIN (yyvsp
[0].ttype
) == NULL_TREE
)
5022 /* just return the expr., remove a level of indirection */
5023 yyval
.ttype
= TREE_VALUE (yyvsp
[0].ttype
);
5025 /* we have a comma expr., we will collapse later */
5026 yyval
.ttype
= yyvsp
[0].ttype
;
5030 #line 2918 "objc-parse.y"
5032 yyval
.ttype
= build_tree_list (yyvsp
[-2].ttype
, yyvsp
[0].ttype
);
5036 #line 2922 "objc-parse.y"
5038 yyval
.ttype
= build_tree_list (NULL_TREE
, yyvsp
[0].ttype
);
5042 #line 2930 "objc-parse.y"
5044 yyval
.ttype
= get_class_reference (yyvsp
[0].ttype
);
5048 #line 2937 "objc-parse.y"
5049 { objc_receiver_context
= 1; ;
5052 #line 2939 "objc-parse.y"
5053 { objc_receiver_context
= 0; ;
5056 #line 2941 "objc-parse.y"
5058 yyval
.ttype
= build_tree_list (yyvsp
[-3].ttype
, yyvsp
[-1].ttype
);
5062 #line 2954 "objc-parse.y"
5064 yyval
.ttype
= chainon (yyvsp
[-1].ttype
, yyvsp
[0].ttype
);
5068 #line 2961 "objc-parse.y"
5070 yyval
.ttype
= build_tree_list (yyvsp
[-1].ttype
, NULL_TREE
);
5074 #line 2965 "objc-parse.y"
5076 yyval
.ttype
= build_tree_list (NULL_TREE
, NULL_TREE
);
5080 #line 2972 "objc-parse.y"
5082 yyval
.ttype
= yyvsp
[-1].ttype
;
5086 #line 2979 "objc-parse.y"
5088 yyval
.ttype
= yyvsp
[-1].ttype
;
5092 #line 2988 "objc-parse.y"
5094 yyval
.ttype
= groktypename (yyvsp
[-1].ttype
);
5098 /* the action file gets copied in in place of this dollarsign */
5099 #line 543 "/usr/share/bison.simple"
5107 #if YYDEBUG != 0 && !defined YYFILE
5110 short *ssp1
= yyss
- 1;
5111 fprintf (stderr
, "state stack now");
5112 while (ssp1
!= yyssp
)
5113 fprintf (stderr
, " %d", *++ssp1
);
5114 fprintf (stderr
, "\n");
5124 yylsp
->first_line
= yylloc
.first_line
;
5125 yylsp
->first_column
= yylloc
.first_column
;
5126 yylsp
->last_line
= (yylsp
-1)->last_line
;
5127 yylsp
->last_column
= (yylsp
-1)->last_column
;
5132 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
5133 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
5137 /* Now "shift" the result of the reduction.
5138 Determine what state that goes to,
5139 based on the state we popped back to
5140 and the rule number reduced by. */
5144 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
5145 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
5146 yystate
= yytable
[yystate
];
5148 yystate
= yydefgoto
[yyn
- YYNTBASE
];
5152 yyerrlab
: /* here on detecting error */
5155 /* If not already recovering from an error, report this error. */
5159 #ifdef YYERROR_VERBOSE
5160 yyn
= yypact
[yystate
];
5162 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
5169 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5170 for (x
= (yyn
< 0 ? -yyn
: 0);
5171 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5172 if (yycheck
[x
+ yyn
] == x
)
5173 size
+= strlen(yytname
[x
]) + 15, count
++;
5174 msg
= (char *) malloc(size
+ 15);
5177 strcpy(msg
, "parse error");
5182 for (x
= (yyn
< 0 ? -yyn
: 0);
5183 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
5184 if (yycheck
[x
+ yyn
] == x
)
5186 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
5187 strcat(msg
, yytname
[x
]);
5196 yyerror ("parse error; also virtual memory exceeded");
5199 #endif /* YYERROR_VERBOSE */
5200 yyerror("parse error");
5204 yyerrlab1
: /* here on error raised explicitly by an action */
5206 if (yyerrstatus
== 3)
5208 /* if just tried and failed to reuse lookahead token after an error, discard it. */
5210 /* return failure if at end of input */
5211 if (yychar
== YYEOF
)
5214 #if YYDEBUG != 0 && !defined YYFILE
5216 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
5222 /* Else will try to reuse lookahead token
5223 after shifting the error token. */
5225 yyerrstatus
= 3; /* Each real token shifted decrements this */
5229 yyerrdefault
: /* current state does not do anything special for the error token. */
5232 /* This is wrong; only states that explicitly want error tokens
5233 should shift them. */
5234 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
5235 if (yyn
) goto yydefault
;
5238 yyerrpop
: /* pop the current state because it cannot handle the error token */
5240 if (yyssp
== yyss
) YYABORT
;
5247 #if YYDEBUG != 0 && !defined YYFILE
5250 short *ssp1
= yyss
- 1;
5251 fprintf (stderr
, "Error: state stack now");
5252 while (ssp1
!= yyssp
)
5253 fprintf (stderr
, " %d", *++ssp1
);
5254 fprintf (stderr
, "\n");
5260 yyn
= yypact
[yystate
];
5265 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
5282 #if YYDEBUG != 0 && !defined YYFILE
5284 fprintf(stderr
, "Shifting error token, ");
5296 /* YYACCEPT comes here. */
5308 /* YYABORT comes here. */
5319 #line 2993 "objc-parse.y"