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