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