update
[gcc.git] / gcc / cp / parse.c
1
2 /* A Bison parser, made from parse.y
3 by GNU Bison version 1.25
4 */
5
6 #define YYBISON 1 /* Identify Bison output. */
7
8 #define IDENTIFIER 258
9 #define TYPENAME 259
10 #define SELFNAME 260
11 #define PFUNCNAME 261
12 #define SCSPEC 262
13 #define TYPESPEC 263
14 #define CV_QUALIFIER 264
15 #define CONSTANT 265
16 #define STRING 266
17 #define ELLIPSIS 267
18 #define SIZEOF 268
19 #define ENUM 269
20 #define IF 270
21 #define ELSE 271
22 #define WHILE 272
23 #define DO 273
24 #define FOR 274
25 #define SWITCH 275
26 #define CASE 276
27 #define DEFAULT 277
28 #define BREAK 278
29 #define CONTINUE 279
30 #define RETURN 280
31 #define GOTO 281
32 #define ASM_KEYWORD 282
33 #define GCC_ASM_KEYWORD 283
34 #define TYPEOF 284
35 #define ALIGNOF 285
36 #define SIGOF 286
37 #define ATTRIBUTE 287
38 #define EXTENSION 288
39 #define LABEL 289
40 #define REALPART 290
41 #define IMAGPART 291
42 #define AGGR 292
43 #define VISSPEC 293
44 #define DELETE 294
45 #define NEW 295
46 #define THIS 296
47 #define OPERATOR 297
48 #define CXX_TRUE 298
49 #define CXX_FALSE 299
50 #define NAMESPACE 300
51 #define TYPENAME_KEYWORD 301
52 #define USING 302
53 #define LEFT_RIGHT 303
54 #define TEMPLATE 304
55 #define TYPEID 305
56 #define DYNAMIC_CAST 306
57 #define STATIC_CAST 307
58 #define REINTERPRET_CAST 308
59 #define CONST_CAST 309
60 #define SCOPE 310
61 #define EMPTY 311
62 #define PTYPENAME 312
63 #define NSNAME 313
64 #define THROW 314
65 #define ASSIGN 315
66 #define OROR 316
67 #define ANDAND 317
68 #define MIN_MAX 318
69 #define EQCOMPARE 319
70 #define ARITHCOMPARE 320
71 #define LSHIFT 321
72 #define RSHIFT 322
73 #define POINTSAT_STAR 323
74 #define DOT_STAR 324
75 #define UNARY 325
76 #define PLUSPLUS 326
77 #define MINUSMINUS 327
78 #define HYPERUNARY 328
79 #define PAREN_STAR_PAREN 329
80 #define POINTSAT 330
81 #define TRY 331
82 #define CATCH 332
83 #define TYPENAME_ELLIPSIS 333
84 #define PRE_PARSED_FUNCTION_DECL 334
85 #define EXTERN_LANG_STRING 335
86 #define ALL 336
87 #define PRE_PARSED_CLASS_DECL 337
88 #define DEFARG 338
89 #define DEFARG_MARKER 339
90 #define TYPENAME_DEFN 340
91 #define IDENTIFIER_DEFN 341
92 #define PTYPENAME_DEFN 342
93 #define END_OF_LINE 343
94 #define END_OF_SAVED_INPUT 344
95
96 #line 29 "parse.y"
97
98 /* Cause the `yydebug' variable to be defined. */
99 #define YYDEBUG 1
100
101 #include "config.h"
102
103 #include <stdio.h>
104 #include <errno.h>
105
106 #include "tree.h"
107 #include "input.h"
108 #include "flags.h"
109 #include "lex.h"
110 #include "cp-tree.h"
111 #include "output.h"
112 #include "except.h"
113
114 /* Since parsers are distinct for each language, put the language string
115 definition here. (fnf) */
116 char *language_string = "GNU C++";
117
118 extern tree void_list_node;
119 extern struct obstack permanent_obstack;
120
121 #ifndef errno
122 extern int errno;
123 #endif
124
125 extern int end_of_file;
126 extern int current_class_depth;
127
128 /* Like YYERROR but do call yyerror. */
129 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
130
131 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
132 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
133
134 /* Contains the statement keyword (if/while/do) to include in an
135 error message if the user supplies an empty conditional expression. */
136 static char *cond_stmt_keyword;
137
138 static tree empty_parms PROTO((void));
139
140 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
141 int have_extern_spec;
142 int used_extern_spec;
143
144 /* Cons up an empty parameter list. */
145 #ifdef __GNUC__
146 __inline
147 #endif
148 static tree
149 empty_parms ()
150 {
151 tree parms;
152
153 if (strict_prototype
154 || current_class_type != NULL)
155 parms = void_list_node;
156 else
157 parms = NULL_TREE;
158 return parms;
159 }
160
161
162 #line 97 "parse.y"
163 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
164 #line 286 "parse.y"
165
166 /* List of types and structure classes of the current declaration. */
167 static tree current_declspecs = NULL_TREE;
168 /* List of prefix attributes in effect.
169 Prefix attributes are parsed by the reserved_declspecs and declmods
170 rules. They create a list that contains *both* declspecs and attrs. */
171 /* ??? It is not clear yet that all cases where an attribute can now appear in
172 a declspec list have been updated. */
173 static tree prefix_attributes = NULL_TREE;
174
175 /* When defining an aggregate, this is the most recent one being defined. */
176 static tree current_aggr;
177
178 /* Tell yyparse how to print a token's value, if yydebug is set. */
179
180 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
181 extern void yyprint PROTO((FILE *, int, YYSTYPE));
182 extern tree combine_strings PROTO((tree));
183
184 static int
185 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
186 tree declarator;
187 tree specs_attrs;
188 tree attributes;
189 int initialized;
190 tree* decl;
191 {
192 int sm;
193
194 split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
195 if (current_declspecs
196 && TREE_CODE (current_declspecs) != TREE_LIST)
197 current_declspecs = get_decl_list (current_declspecs);
198 if (have_extern_spec && !used_extern_spec)
199 {
200 current_declspecs = decl_tree_cons (NULL_TREE,
201 get_identifier ("extern"),
202 current_declspecs);
203 used_extern_spec = 1;
204 }
205 sm = suspend_momentary ();
206 *decl = start_decl (declarator, current_declspecs, initialized);
207 cplus_decl_attributes (*decl, attributes, prefix_attributes);
208 return sm;
209 }
210 #include <stdio.h>
211
212 #ifndef __cplusplus
213 #ifndef __STDC__
214 #define const
215 #endif
216 #endif
217
218
219
220 #define YYFINAL 1563
221 #define YYFLAG -32768
222 #define YYNTBASE 114
223
224 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 390)
225
226 static const char yytranslate[] = { 0,
227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
230 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
231 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
232 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
233 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
236 95, 2, 113, 70, 2, 2, 2, 2, 2, 2,
237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
238 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
239 2, 2, 59, 69, 111, 89, 2, 2, 2, 2,
240 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
244 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
247 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
251 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
252 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
253 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
254 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
255 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
256 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
257 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
258 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
259 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
260 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
261 106, 107, 108, 109
262 };
263
264 #if YYDEBUG != 0
265 static const short yyprhs[] = { 0,
266 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
267 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
268 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
269 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
270 119, 123, 125, 129, 131, 132, 135, 138, 142, 144,
271 148, 150, 154, 156, 160, 163, 166, 169, 173, 177,
272 180, 183, 186, 189, 192, 194, 196, 198, 199, 201,
273 204, 205, 207, 212, 216, 220, 221, 230, 236, 237,
274 247, 254, 255, 264, 270, 271, 281, 288, 291, 294,
275 296, 299, 301, 308, 313, 320, 325, 328, 330, 333,
276 336, 338, 341, 343, 346, 349, 354, 357, 361, 362,
277 363, 365, 369, 372, 376, 378, 383, 386, 391, 394,
278 399, 402, 404, 406, 408, 410, 412, 414, 416, 418,
279 420, 422, 424, 425, 432, 433, 440, 441, 447, 448,
280 454, 455, 463, 464, 472, 473, 480, 481, 488, 489,
281 490, 495, 500, 502, 507, 509, 511, 512, 514, 516,
282 520, 522, 524, 526, 528, 530, 532, 534, 536, 538,
283 540, 544, 546, 550, 551, 553, 555, 556, 564, 566,
284 568, 572, 577, 581, 582, 586, 588, 592, 596, 600,
285 604, 606, 608, 610, 613, 616, 619, 622, 625, 628,
286 631, 636, 639, 644, 647, 651, 655, 660, 665, 671,
287 677, 684, 687, 692, 698, 701, 704, 708, 712, 716,
288 718, 722, 725, 729, 734, 736, 739, 745, 747, 751,
289 755, 759, 763, 767, 771, 775, 779, 783, 787, 791,
290 795, 799, 803, 807, 811, 815, 819, 823, 829, 833,
291 837, 839, 842, 846, 848, 850, 852, 854, 856, 857,
292 863, 869, 875, 881, 887, 889, 891, 893, 895, 898,
293 901, 905, 910, 915, 917, 919, 921, 925, 927, 929,
294 931, 933, 937, 941, 945, 946, 951, 956, 959, 964,
295 967, 970, 972, 977, 979, 987, 995, 1003, 1011, 1016,
296 1021, 1024, 1027, 1029, 1034, 1037, 1040, 1046, 1050, 1053,
297 1056, 1062, 1066, 1072, 1076, 1081, 1088, 1091, 1093, 1096,
298 1098, 1101, 1103, 1105, 1107, 1110, 1111, 1114, 1117, 1121,
299 1125, 1129, 1132, 1135, 1138, 1140, 1142, 1144, 1147, 1150,
300 1153, 1156, 1158, 1160, 1162, 1164, 1167, 1170, 1174, 1178,
301 1182, 1187, 1189, 1192, 1195, 1198, 1200, 1202, 1204, 1207,
302 1210, 1213, 1215, 1217, 1220, 1223, 1227, 1229, 1232, 1234,
303 1236, 1238, 1243, 1248, 1253, 1258, 1260, 1262, 1264, 1266,
304 1270, 1272, 1276, 1278, 1282, 1283, 1288, 1289, 1296, 1300,
305 1301, 1307, 1310, 1313, 1316, 1317, 1321, 1325, 1326, 1328,
306 1330, 1333, 1340, 1342, 1346, 1347, 1349, 1354, 1361, 1366,
307 1368, 1370, 1372, 1374, 1376, 1380, 1381, 1384, 1386, 1389,
308 1393, 1398, 1400, 1402, 1406, 1411, 1415, 1421, 1423, 1428,
309 1432, 1436, 1437, 1441, 1445, 1449, 1450, 1453, 1456, 1457,
310 1465, 1470, 1471, 1478, 1482, 1485, 1488, 1491, 1492, 1493,
311 1503, 1505, 1506, 1508, 1509, 1511, 1513, 1516, 1519, 1522,
312 1525, 1528, 1531, 1535, 1540, 1544, 1547, 1551, 1552, 1554,
313 1558, 1561, 1564, 1566, 1568, 1569, 1572, 1576, 1578, 1583,
314 1585, 1589, 1591, 1593, 1598, 1603, 1606, 1609, 1613, 1617,
315 1619, 1620, 1622, 1625, 1630, 1634, 1636, 1639, 1642, 1645,
316 1648, 1651, 1654, 1657, 1659, 1662, 1665, 1669, 1672, 1675,
317 1680, 1685, 1688, 1690, 1696, 1701, 1703, 1704, 1706, 1710,
318 1711, 1713, 1717, 1719, 1721, 1723, 1725, 1730, 1735, 1740,
319 1745, 1750, 1754, 1759, 1764, 1769, 1774, 1778, 1780, 1784,
320 1786, 1790, 1793, 1795, 1802, 1803, 1806, 1808, 1811, 1812,
321 1815, 1820, 1825, 1828, 1833, 1837, 1841, 1844, 1847, 1851,
322 1853, 1855, 1858, 1860, 1862, 1865, 1868, 1873, 1878, 1882,
323 1886, 1889, 1891, 1895, 1899, 1902, 1905, 1909, 1911, 1915,
324 1919, 1922, 1925, 1929, 1931, 1936, 1940, 1945, 1949, 1951,
325 1954, 1957, 1960, 1963, 1966, 1968, 1971, 1976, 1981, 1984,
326 1986, 1988, 1990, 1992, 1995, 2000, 2003, 2006, 2009, 2012,
327 2014, 2017, 2020, 2023, 2026, 2030, 2032, 2035, 2039, 2044,
328 2047, 2050, 2053, 2056, 2059, 2062, 2067, 2070, 2072, 2075,
329 2078, 2082, 2084, 2088, 2091, 2095, 2098, 2101, 2105, 2107,
330 2111, 2116, 2120, 2123, 2126, 2128, 2132, 2135, 2138, 2140,
331 2143, 2147, 2149, 2153, 2155, 2162, 2167, 2172, 2176, 2182,
332 2186, 2190, 2194, 2197, 2199, 2201, 2204, 2207, 2210, 2211,
333 2212, 2213, 2215, 2217, 2220, 2224, 2226, 2229, 2230, 2236,
334 2237, 2238, 2245, 2247, 2248, 2253, 2255, 2257, 2259, 2262,
335 2263, 2264, 2271, 2273, 2274, 2275, 2283, 2284, 2285, 2293,
336 2294, 2295, 2296, 2297, 2312, 2313, 2314, 2324, 2325, 2331,
337 2332, 2340, 2341, 2346, 2349, 2352, 2355, 2359, 2366, 2375,
338 2386, 2399, 2404, 2408, 2411, 2414, 2416, 2418, 2419, 2420,
339 2427, 2428, 2429, 2435, 2437, 2440, 2441, 2442, 2443, 2452,
340 2454, 2456, 2460, 2464, 2467, 2470, 2473, 2476, 2479, 2481,
341 2484, 2485, 2487, 2488, 2490, 2492, 2493, 2495, 2497, 2501,
342 2506, 2508, 2512, 2513, 2515, 2517, 2519, 2522, 2525, 2528,
343 2530, 2532, 2535, 2538, 2541, 2544, 2545, 2549, 2551, 2553,
344 2555, 2558, 2561, 2564, 2569, 2572, 2575, 2578, 2581, 2584,
345 2587, 2589, 2592, 2594, 2597, 2599, 2601, 2602, 2603, 2605,
346 2606, 2611, 2614, 2616, 2618, 2622, 2623, 2627, 2631, 2635,
347 2637, 2640, 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664,
348 2667, 2670, 2673, 2676, 2679, 2682, 2685, 2688, 2691, 2694,
349 2697, 2700, 2703, 2706, 2710, 2713, 2716, 2719, 2722, 2726,
350 2729, 2732, 2737, 2742, 2746
351 };
352
353 static const short yyrhs[] = { -1,
354 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
355 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
356 0, 123, 124, 0, 142, 141, 0, 138, 0, 137,
357 0, 121, 94, 208, 110, 61, 0, 129, 59, 117,
358 111, 0, 129, 118, 142, 119, 141, 0, 129, 118,
359 138, 119, 0, 0, 45, 157, 59, 125, 117, 111,
360 0, 0, 45, 59, 126, 117, 111, 0, 45, 157,
361 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
362 61, 0, 120, 124, 0, 47, 300, 0, 47, 314,
363 300, 0, 47, 314, 199, 0, 199, 0, 300, 0,
364 314, 300, 0, 314, 199, 0, 100, 0, 129, 100,
365 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
366 76, 0, 136, 0, 132, 60, 136, 0, 157, 0,
367 0, 257, 133, 0, 46, 133, 0, 130, 257, 133,
368 0, 134, 0, 134, 65, 214, 0, 381, 0, 381,
369 65, 194, 0, 135, 0, 135, 65, 176, 0, 130,
370 124, 0, 130, 1, 0, 225, 61, 0, 218, 224,
371 61, 0, 215, 223, 61, 0, 218, 61, 0, 160,
372 61, 0, 215, 61, 0, 1, 61, 0, 1, 111,
373 0, 61, 0, 209, 0, 153, 0, 0, 152, 0,
374 152, 61, 0, 0, 109, 0, 148, 140, 139, 326,
375 0, 148, 140, 351, 0, 148, 140, 1, 0, 0,
376 305, 5, 94, 144, 372, 110, 287, 384, 0, 305,
377 5, 48, 287, 384, 0, 0, 314, 305, 5, 94,
378 145, 372, 110, 287, 384, 0, 314, 305, 5, 48,
379 287, 384, 0, 0, 305, 172, 94, 146, 372, 110,
380 287, 384, 0, 305, 172, 48, 287, 384, 0, 0,
381 314, 305, 172, 94, 147, 372, 110, 287, 384, 0,
382 314, 305, 172, 48, 287, 384, 0, 215, 212, 0,
383 218, 297, 0, 297, 0, 218, 143, 0, 143, 0,
384 5, 94, 372, 110, 287, 384, 0, 5, 48, 287,
385 384, 0, 172, 94, 372, 110, 287, 384, 0, 172,
386 48, 287, 384, 0, 218, 149, 0, 149, 0, 215,
387 212, 0, 218, 297, 0, 297, 0, 218, 143, 0,
388 143, 0, 25, 3, 0, 151, 242, 0, 151, 94,
389 188, 110, 0, 151, 48, 0, 63, 154, 155, 0,
390 0, 0, 156, 0, 155, 60, 156, 0, 155, 1,
391 0, 94, 188, 110, 0, 48, 0, 158, 94, 188,
392 110, 0, 158, 48, 0, 293, 94, 188, 110, 0,
393 293, 48, 0, 307, 94, 188, 110, 0, 307, 48,
394 0, 3, 0, 4, 0, 5, 0, 57, 0, 58,
395 0, 3, 0, 57, 0, 58, 0, 106, 0, 105,
396 0, 107, 0, 0, 49, 169, 221, 61, 161, 170,
397 0, 0, 49, 169, 215, 212, 162, 170, 0, 0,
398 49, 169, 297, 163, 170, 0, 0, 49, 169, 143,
399 164, 170, 0, 0, 7, 49, 169, 221, 61, 165,
400 170, 0, 0, 7, 49, 169, 215, 212, 166, 170,
401 0, 0, 7, 49, 169, 297, 167, 170, 0, 0,
402 7, 49, 169, 143, 168, 170, 0, 0, 0, 57,
403 75, 174, 173, 0, 4, 75, 174, 173, 0, 172,
404 0, 5, 75, 174, 173, 0, 76, 0, 78, 0,
405 0, 175, 0, 176, 0, 175, 60, 176, 0, 214,
406 0, 194, 0, 80, 0, 79, 0, 87, 0, 88,
407 0, 112, 0, 187, 0, 194, 0, 48, 0, 94,
408 178, 110, 0, 48, 0, 94, 182, 110, 0, 0,
409 182, 0, 1, 0, 0, 362, 212, 226, 235, 65,
410 183, 243, 0, 178, 0, 111, 0, 323, 319, 111,
411 0, 323, 319, 1, 111, 0, 323, 1, 111, 0,
412 0, 59, 186, 184, 0, 335, 0, 194, 60, 194,
413 0, 194, 60, 1, 0, 187, 60, 194, 0, 187,
414 60, 1, 0, 194, 0, 187, 0, 203, 0, 120,
415 193, 0, 81, 193, 0, 71, 193, 0, 89, 193,
416 0, 177, 193, 0, 68, 157, 0, 13, 189, 0,
417 13, 94, 214, 110, 0, 30, 189, 0, 30, 94,
418 214, 110, 0, 205, 286, 0, 205, 286, 191, 0,
419 205, 190, 286, 0, 205, 190, 286, 191, 0, 205,
420 94, 214, 110, 0, 205, 94, 214, 110, 191, 0,
421 205, 190, 94, 214, 110, 0, 205, 190, 94, 214,
422 110, 191, 0, 206, 193, 0, 206, 95, 113, 193,
423 0, 206, 95, 178, 113, 193, 0, 35, 193, 0,
424 36, 193, 0, 94, 188, 110, 0, 59, 188, 111,
425 0, 94, 188, 110, 0, 48, 0, 94, 221, 110,
426 0, 65, 243, 0, 94, 214, 110, 0, 192, 94,
427 214, 110, 0, 189, 0, 192, 189, 0, 192, 59,
428 244, 255, 111, 0, 193, 0, 194, 84, 194, 0,
429 194, 85, 194, 0, 194, 79, 194, 0, 194, 80,
430 194, 0, 194, 81, 194, 0, 194, 82, 194, 0,
431 194, 83, 194, 0, 194, 77, 194, 0, 194, 78,
432 194, 0, 194, 74, 194, 0, 194, 75, 194, 0,
433 194, 76, 194, 0, 194, 73, 194, 0, 194, 72,
434 194, 0, 194, 71, 194, 0, 194, 69, 194, 0,
435 194, 70, 194, 0, 194, 68, 194, 0, 194, 67,
436 194, 0, 194, 66, 367, 63, 194, 0, 194, 65,
437 194, 0, 194, 64, 194, 0, 62, 0, 62, 194,
438 0, 89, 382, 157, 0, 197, 0, 389, 0, 3,
439 0, 57, 0, 58, 0, 0, 6, 75, 196, 174,
440 173, 0, 389, 75, 196, 174, 173, 0, 49, 157,
441 75, 174, 173, 0, 49, 6, 75, 174, 173, 0,
442 49, 389, 75, 174, 173, 0, 195, 0, 4, 0,
443 5, 0, 195, 0, 81, 200, 0, 71, 200, 0,
444 94, 200, 110, 0, 3, 75, 174, 173, 0, 58,
445 75, 175, 173, 0, 299, 0, 195, 0, 201, 0,
446 94, 200, 110, 0, 195, 0, 10, 0, 207, 0,
447 208, 0, 94, 178, 110, 0, 94, 200, 110, 0,
448 94, 1, 110, 0, 0, 94, 204, 327, 110, 0,
449 203, 94, 188, 110, 0, 203, 48, 0, 203, 95,
450 178, 113, 0, 203, 87, 0, 203, 88, 0, 41,
451 0, 9, 94, 188, 110, 0, 303, 0, 51, 75,
452 214, 76, 94, 178, 110, 0, 52, 75, 214, 76,
453 94, 178, 110, 0, 53, 75, 214, 76, 94, 178,
454 110, 0, 54, 75, 214, 76, 94, 178, 110, 0,
455 50, 94, 178, 110, 0, 50, 94, 214, 110, 0,
456 314, 3, 0, 314, 389, 0, 302, 0, 302, 94,
457 188, 110, 0, 302, 48, 0, 210, 198, 0, 210,
458 198, 94, 188, 110, 0, 210, 198, 48, 0, 210,
459 199, 0, 210, 302, 0, 210, 199, 94, 188, 110,
460 0, 210, 199, 48, 0, 210, 302, 94, 188, 110,
461 0, 210, 302, 48, 0, 210, 89, 8, 48, 0,
462 210, 8, 55, 89, 8, 48, 0, 210, 1, 0,
463 40, 0, 314, 40, 0, 39, 0, 314, 206, 0,
464 43, 0, 44, 0, 11, 0, 208, 11, 0, 0,
465 203, 93, 0, 203, 92, 0, 221, 223, 61, 0,
466 215, 223, 61, 0, 218, 224, 61, 0, 215, 61,
467 0, 218, 61, 0, 120, 211, 0, 292, 0, 297,
468 0, 48, 0, 213, 48, 0, 219, 317, 0, 288,
469 317, 0, 221, 317, 0, 219, 0, 288, 0, 219,
470 0, 216, 0, 218, 221, 0, 221, 217, 0, 221,
471 220, 217, 0, 218, 221, 217, 0, 218, 221, 220,
472 0, 218, 221, 220, 217, 0, 7, 0, 217, 222,
473 0, 217, 7, 0, 217, 236, 0, 236, 0, 288,
474 0, 7, 0, 218, 9, 0, 218, 7, 0, 218,
475 236, 0, 236, 0, 221, 0, 288, 221, 0, 221,
476 220, 0, 288, 221, 220, 0, 222, 0, 220, 222,
477 0, 250, 0, 8, 0, 294, 0, 29, 94, 178,
478 110, 0, 29, 94, 214, 110, 0, 31, 94, 178,
479 110, 0, 31, 94, 214, 110, 0, 8, 0, 9,
480 0, 250, 0, 231, 0, 223, 60, 227, 0, 232,
481 0, 224, 60, 227, 0, 233, 0, 225, 60, 227,
482 0, 0, 121, 94, 208, 110, 0, 0, 212, 226,
483 235, 65, 228, 243, 0, 212, 226, 235, 0, 0,
484 226, 235, 65, 230, 243, 0, 226, 235, 0, 212,
485 229, 0, 297, 229, 0, 0, 297, 234, 229, 0,
486 143, 226, 235, 0, 0, 236, 0, 237, 0, 236,
487 237, 0, 32, 94, 94, 238, 110, 110, 0, 239,
488 0, 238, 60, 239, 0, 0, 240, 0, 240, 94,
489 3, 110, 0, 240, 94, 3, 60, 188, 110, 0,
490 240, 94, 188, 110, 0, 157, 0, 7, 0, 8,
491 0, 9, 0, 157, 0, 241, 60, 157, 0, 0,
492 65, 243, 0, 194, 0, 59, 111, 0, 59, 244,
493 111, 0, 59, 244, 60, 111, 0, 1, 0, 243,
494 0, 244, 60, 243, 0, 95, 194, 113, 243, 0,
495 157, 63, 243, 0, 244, 60, 157, 63, 243, 0,
496 99, 0, 245, 140, 139, 326, 0, 245, 140, 351,
497 0, 245, 140, 1, 0, 0, 247, 246, 141, 0,
498 104, 194, 109, 0, 104, 1, 109, 0, 0, 249,
499 248, 0, 249, 1, 0, 0, 14, 157, 59, 251,
500 284, 256, 111, 0, 14, 157, 59, 111, 0, 0,
501 14, 59, 252, 284, 256, 111, 0, 14, 59, 111,
502 0, 14, 157, 0, 14, 312, 0, 46, 307, 0,
503 0, 0, 264, 270, 272, 111, 235, 253, 249, 254,
504 247, 0, 264, 0, 0, 60, 0, 0, 60, 0,
505 37, 0, 257, 7, 0, 257, 8, 0, 257, 9,
506 0, 257, 37, 0, 257, 157, 0, 257, 159, 0,
507 257, 305, 157, 0, 257, 314, 305, 157, 0, 257,
508 314, 157, 0, 257, 171, 0, 257, 305, 171, 0,
509 0, 258, 0, 259, 261, 265, 0, 260, 265, 0,
510 257, 59, 0, 263, 0, 262, 0, 0, 63, 382,
511 0, 63, 382, 266, 0, 267, 0, 266, 60, 382,
512 267, 0, 268, 0, 269, 382, 268, 0, 307, 0,
513 293, 0, 31, 94, 178, 110, 0, 31, 94, 214,
514 110, 0, 38, 382, 0, 7, 382, 0, 269, 38,
515 382, 0, 269, 7, 382, 0, 59, 0, 0, 271,
516 0, 271, 273, 0, 272, 38, 63, 273, 0, 272,
517 38, 63, 0, 274, 0, 273, 274, 0, 275, 61,
518 0, 275, 111, 0, 150, 63, 0, 150, 96, 0,
519 150, 25, 0, 150, 59, 0, 61, 0, 120, 274,
520 0, 130, 274, 0, 130, 215, 61, 0, 215, 276,
521 0, 218, 277, 0, 297, 226, 235, 242, 0, 143,
522 226, 235, 242, 0, 63, 194, 0, 1, 0, 218,
523 149, 226, 235, 242, 0, 149, 226, 235, 242, 0,
524 127, 0, 0, 278, 0, 276, 60, 279, 0, 0,
525 281, 0, 277, 60, 283, 0, 280, 0, 281, 0,
526 282, 0, 283, 0, 292, 226, 235, 242, 0, 4,
527 63, 194, 235, 0, 297, 226, 235, 242, 0, 143,
528 226, 235, 242, 0, 3, 63, 194, 235, 0, 63,
529 194, 235, 0, 292, 226, 235, 242, 0, 4, 63,
530 194, 235, 0, 297, 226, 235, 242, 0, 3, 63,
531 194, 235, 0, 63, 194, 235, 0, 285, 0, 284,
532 60, 285, 0, 157, 0, 157, 65, 194, 0, 362,
533 315, 0, 362, 0, 94, 214, 110, 95, 178, 113,
534 0, 0, 287, 9, 0, 9, 0, 288, 9, 0,
535 0, 289, 178, 0, 289, 94, 188, 110, 0, 289,
536 94, 372, 110, 0, 289, 48, 0, 289, 94, 1,
537 110, 0, 81, 288, 292, 0, 71, 288, 292, 0,
538 81, 292, 0, 71, 292, 0, 313, 287, 292, 0,
539 296, 0, 304, 0, 314, 304, 0, 293, 0, 295,
540 0, 314, 295, 0, 305, 304, 0, 296, 291, 287,
541 384, 0, 296, 95, 290, 113, 0, 296, 95, 113,
542 0, 94, 292, 110, 0, 305, 304, 0, 304, 0,
543 81, 288, 297, 0, 71, 288, 297, 0, 81, 297,
544 0, 71, 297, 0, 313, 287, 297, 0, 202, 0,
545 81, 288, 297, 0, 71, 288, 297, 0, 81, 298,
546 0, 71, 298, 0, 313, 287, 297, 0, 299, 0,
547 202, 291, 287, 384, 0, 94, 298, 110, 0, 202,
548 95, 290, 113, 0, 202, 95, 113, 0, 301, 0,
549 305, 201, 0, 305, 199, 0, 305, 198, 0, 305,
550 195, 0, 305, 198, 0, 301, 0, 314, 301, 0,
551 221, 94, 188, 110, 0, 221, 94, 200, 110, 0,
552 221, 213, 0, 4, 0, 5, 0, 171, 0, 306,
553 0, 305, 306, 0, 305, 49, 311, 55, 0, 4,
554 55, 0, 5, 55, 0, 58, 55, 0, 171, 55,
555 0, 308, 0, 314, 308, 0, 309, 157, 0, 309,
556 171, 0, 309, 311, 0, 309, 49, 311, 0, 310,
557 0, 309, 310, 0, 309, 311, 55, 0, 309, 49,
558 311, 55, 0, 4, 55, 0, 5, 55, 0, 171,
559 55, 0, 57, 55, 0, 3, 55, 0, 58, 55,
560 0, 157, 75, 174, 173, 0, 314, 304, 0, 295,
561 0, 314, 295, 0, 305, 81, 0, 314, 305, 81,
562 0, 55, 0, 81, 287, 315, 0, 81, 287, 0,
563 71, 287, 315, 0, 71, 287, 0, 313, 287, 0,
564 313, 287, 315, 0, 316, 0, 95, 178, 113, 0,
565 316, 95, 290, 113, 0, 81, 288, 317, 0, 81,
566 317, 0, 81, 288, 0, 81, 0, 71, 288, 317,
567 0, 71, 317, 0, 71, 288, 0, 71, 0, 313,
568 287, 0, 313, 287, 317, 0, 318, 0, 94, 317,
569 110, 0, 91, 0, 318, 94, 372, 110, 287, 384,
570 0, 318, 48, 287, 384, 0, 318, 95, 290, 113,
571 0, 318, 95, 113, 0, 94, 373, 110, 287, 384,
572 0, 192, 287, 384, 0, 213, 287, 384, 0, 95,
573 290, 113, 0, 95, 113, 0, 334, 0, 320, 0,
574 319, 334, 0, 319, 320, 0, 1, 61, 0, 0,
575 0, 0, 324, 0, 325, 0, 324, 325, 0, 34,
576 241, 61, 0, 327, 0, 1, 327, 0, 0, 59,
577 328, 321, 184, 322, 0, 0, 0, 15, 330, 321,
578 180, 331, 332, 0, 327, 0, 0, 321, 333, 335,
579 322, 0, 327, 0, 335, 0, 211, 0, 178, 61,
580 0, 0, 0, 329, 16, 336, 332, 337, 322, 0,
581 329, 0, 0, 0, 17, 338, 321, 180, 339, 185,
582 322, 0, 0, 0, 18, 340, 332, 17, 341, 179,
583 61, 0, 0, 0, 0, 0, 19, 342, 94, 365,
584 343, 321, 181, 61, 344, 367, 110, 345, 185, 322,
585 0, 0, 0, 20, 321, 94, 182, 110, 346, 332,
586 347, 322, 0, 0, 21, 194, 63, 348, 334, 0,
587 0, 21, 194, 12, 194, 63, 349, 334, 0, 0,
588 22, 63, 350, 334, 0, 23, 61, 0, 24, 61,
589 0, 25, 61, 0, 25, 178, 61, 0, 121, 366,
590 94, 208, 110, 61, 0, 121, 366, 94, 208, 63,
591 368, 110, 61, 0, 121, 366, 94, 208, 63, 368,
592 63, 368, 110, 61, 0, 121, 366, 94, 208, 63,
593 368, 63, 368, 63, 371, 110, 61, 0, 26, 81,
594 178, 61, 0, 26, 157, 61, 0, 364, 334, 0,
595 364, 111, 0, 61, 0, 354, 0, 0, 0, 96,
596 352, 139, 327, 353, 357, 0, 0, 0, 96, 355,
597 327, 356, 357, 0, 358, 0, 357, 358, 0, 0,
598 0, 0, 97, 359, 321, 363, 360, 327, 361, 322,
599 0, 219, 0, 288, 0, 94, 12, 110, 0, 94,
600 381, 110, 0, 3, 63, 0, 57, 63, 0, 4,
601 63, 0, 5, 63, 0, 367, 61, 0, 211, 0,
602 59, 184, 0, 0, 9, 0, 0, 178, 0, 1,
603 0, 0, 369, 0, 370, 0, 369, 60, 370, 0,
604 11, 94, 178, 110, 0, 11, 0, 371, 60, 11,
605 0, 0, 373, 0, 214, 0, 377, 0, 378, 12,
606 0, 377, 12, 0, 214, 12, 0, 12, 0, 98,
607 0, 377, 98, 0, 214, 98, 0, 377, 63, 0,
608 214, 63, 0, 0, 65, 375, 376, 0, 103, 0,
609 243, 0, 379, 0, 381, 374, 0, 378, 380, 0,
610 378, 383, 0, 378, 383, 65, 243, 0, 377, 60,
611 0, 214, 60, 0, 216, 212, 0, 219, 212, 0,
612 221, 212, 0, 216, 317, 0, 216, 0, 218, 297,
613 0, 381, 0, 381, 374, 0, 379, 0, 214, 0,
614 0, 0, 297, 0, 0, 62, 94, 386, 110, 0,
615 62, 48, 0, 214, 0, 385, 0, 386, 60, 385,
616 0, 0, 81, 287, 387, 0, 71, 287, 387, 0,
617 313, 287, 387, 0, 42, 0, 388, 81, 0, 388,
618 82, 0, 388, 83, 0, 388, 79, 0, 388, 80,
619 0, 388, 71, 0, 388, 69, 0, 388, 70, 0,
620 388, 89, 0, 388, 60, 0, 388, 74, 0, 388,
621 75, 0, 388, 76, 0, 388, 73, 0, 388, 64,
622 0, 388, 65, 0, 388, 77, 0, 388, 78, 0,
623 388, 87, 0, 388, 88, 0, 388, 68, 0, 388,
624 67, 0, 388, 112, 0, 388, 66, 63, 0, 388,
625 72, 0, 388, 92, 0, 388, 84, 0, 388, 48,
626 0, 388, 95, 113, 0, 388, 40, 0, 388, 39,
627 0, 388, 40, 95, 113, 0, 388, 39, 95, 113,
628 0, 388, 362, 387, 0, 388, 1, 0
629 };
630
631 #endif
632
633 #if YYDEBUG != 0
634 static const short yyrline[] = { 0,
635 334, 336, 350, 353, 354, 358, 360, 363, 368, 372,
636 378, 380, 383, 386, 390, 393, 395, 397, 400, 402,
637 405, 408, 410, 412, 414, 416, 418, 420, 426, 430,
638 433, 435, 439, 441, 442, 444, 448, 451, 457, 460,
639 462, 467, 470, 474, 477, 480, 492, 496, 514, 524,
640 526, 528, 530, 532, 545, 554, 564, 566, 568, 572,
641 574, 575, 582, 583, 584, 587, 590, 594, 596, 597,
642 600, 602, 605, 608, 610, 614, 624, 626, 636, 645,
643 647, 657, 666, 668, 678, 687, 689, 701, 709, 716,
644 721, 728, 735, 738, 740, 742, 748, 758, 760, 763,
645 766, 768, 771, 775, 784, 787, 789, 793, 806, 826,
646 829, 831, 832, 835, 842, 848, 850, 852, 854, 856,
647 859, 864, 866, 867, 868, 869, 872, 874, 875, 878,
648 880, 881, 884, 889, 889, 893, 893, 896, 896, 899,
649 899, 903, 903, 908, 908, 911, 911, 914, 916, 919,
650 926, 933, 939, 942, 951, 953, 961, 964, 967, 970,
651 974, 977, 980, 983, 985, 987, 989, 993, 996, 999,
652 1004, 1008, 1013, 1017, 1020, 1022, 1026, 1046, 1053, 1056,
653 1058, 1059, 1060, 1063, 1074, 1083, 1087, 1091, 1094, 1096,
654 1100, 1103, 1106, 1110, 1113, 1115, 1117, 1119, 1126, 1139,
655 1141, 1143, 1145, 1151, 1154, 1157, 1160, 1163, 1167, 1170,
656 1173, 1177, 1179, 1183, 1187, 1189, 1193, 1196, 1203, 1206,
657 1208, 1216, 1228, 1234, 1241, 1243, 1245, 1258, 1261, 1263,
658 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1283,
659 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, 1301, 1305,
660 1307, 1309, 1326, 1329, 1330, 1331, 1332, 1333, 1336, 1339,
661 1342, 1346, 1349, 1351, 1356, 1358, 1359, 1362, 1364, 1366,
662 1368, 1372, 1375, 1379, 1381, 1382, 1383, 1387, 1395, 1396,
663 1397, 1405, 1413, 1421, 1423, 1435, 1465, 1472, 1479, 1481,
664 1490, 1495, 1518, 1562, 1563, 1567, 1571, 1575, 1579, 1581,
665 1585, 1587, 1595, 1597, 1602, 1608, 1612, 1617, 1622, 1624,
666 1629, 1644, 1659, 1670, 1682, 1690, 1699, 1743, 1746, 1750,
667 1753, 1757, 1760, 1765, 1767, 1771, 1784, 1787, 1794, 1801,
668 1806, 1808, 1813, 1815, 1822, 1824, 1828, 1832, 1838, 1842,
669 1845, 1848, 1851, 1861, 1863, 1866, 1870, 1873, 1876, 1879,
670 1882, 1888, 1894, 1896, 1901, 1903, 1912, 1915, 1917, 1920,
671 1926, 1928, 1938, 1942, 1945, 1948, 1953, 1956, 1964, 1966,
672 1968, 1970, 1973, 1976, 1991, 2010, 2013, 2015, 2018, 2020,
673 2023, 2025, 2028, 2030, 2033, 2036, 2040, 2046, 2047, 2058,
674 2065, 2067, 2073, 2077, 2082, 2088, 2089, 2096, 2099, 2103,
675 2106, 2110, 2115, 2118, 2122, 2125, 2127, 2129, 2131, 2138,
676 2140, 2141, 2142, 2146, 2149, 2153, 2156, 2162, 2164, 2167,
677 2170, 2173, 2179, 2182, 2185, 2187, 2189, 2193, 2199, 2207,
678 2209, 2213, 2215, 2220, 2223, 2226, 2228, 2230, 2234, 2238,
679 2243, 2247, 2250, 2255, 2259, 2262, 2265, 2269, 2304, 2310,
680 2319, 2339, 2341, 2344, 2346, 2351, 2353, 2355, 2357, 2359,
681 2363, 2368, 2373, 2379, 2384, 2389, 2391, 2395, 2400, 2403,
682 2410, 2438, 2444, 2446, 2449, 2452, 2454, 2458, 2460, 2464,
683 2490, 2519, 2522, 2523, 2544, 2567, 2569, 2573, 2584, 2598,
684 2687, 2694, 2697, 2705, 2716, 2725, 2729, 2744, 2747, 2752,
685 2754, 2756, 2758, 2760, 2762, 2765, 2767, 2775, 2781, 2783,
686 2786, 2789, 2791, 2802, 2807, 2810, 2815, 2818, 2819, 2830,
687 2833, 2834, 2845, 2847, 2850, 2852, 2855, 2862, 2870, 2877,
688 2883, 2889, 2897, 2901, 2906, 2910, 2913, 2922, 2924, 2928,
689 2931, 2936, 2940, 2945, 2955, 2958, 2962, 2966, 2974, 2979,
690 2985, 2988, 2990, 2992, 2998, 3001, 3003, 3005, 3007, 3011,
691 3014, 3032, 3042, 3044, 3045, 3049, 3054, 3057, 3059, 3061,
692 3063, 3067, 3073, 3076, 3078, 3080, 3082, 3086, 3089, 3092,
693 3094, 3096, 3098, 3102, 3105, 3108, 3110, 3112, 3114, 3121,
694 3132, 3136, 3141, 3145, 3150, 3152, 3156, 3159, 3161, 3165,
695 3167, 3168, 3171, 3173, 3175, 3181, 3196, 3202, 3208, 3222,
696 3224, 3228, 3242, 3244, 3246, 3250, 3256, 3269, 3271, 3275,
697 3286, 3292, 3294, 3295, 3296, 3304, 3309, 3318, 3319, 3323,
698 3326, 3332, 3338, 3341, 3343, 3345, 3347, 3351, 3355, 3359,
699 3362, 3367, 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384,
700 3388, 3392, 3396, 3400, 3401, 3403, 3405, 3407, 3409, 3411,
701 3413, 3415, 3417, 3425, 3427, 3428, 3429, 3432, 3440, 3445,
702 3452, 3454, 3459, 3461, 3464, 3478, 3481, 3484, 3493, 3505,
703 3516, 3536, 3546, 3549, 3557, 3569, 3572, 3575, 3578, 3594,
704 3597, 3608, 3609, 3613, 3628, 3656, 3668, 3682, 3696, 3709,
705 3728, 3746, 3774, 3782, 3803, 3821, 3834, 3835, 3838, 3838,
706 3841, 3841, 3844, 3844, 3850, 3856, 3859, 3864, 3871, 3880,
707 3889, 3898, 3906, 3919, 3921, 3925, 3927, 3930, 3937, 3940,
708 3948, 3964, 3975, 3987, 3989, 3992, 4002, 4012, 4023, 4025,
709 4027, 4030, 4047, 4053, 4061, 4063, 4065, 4069, 4072, 4073,
710 4081, 4085, 4089, 4092, 4093, 4099, 4102, 4105, 4107, 4111,
711 4116, 4119, 4129, 4134, 4135, 4143, 4149, 4154, 4158, 4163,
712 4167, 4171, 4175, 4180, 4191, 4205, 4209, 4212, 4214, 4218,
713 4222, 4225, 4228, 4230, 4234, 4236, 4243, 4250, 4253, 4256,
714 4260, 4264, 4270, 4274, 4279, 4281, 4284, 4289, 4295, 4306,
715 4309, 4311, 4315, 4320, 4322, 4329, 4332, 4334, 4336, 4342,
716 4347, 4350, 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366,
717 4368, 4370, 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386,
718 4388, 4390, 4392, 4394, 4396, 4398, 4400, 4402, 4404, 4406,
719 4408, 4410, 4412, 4415, 4417
720 };
721 #endif
722
723
724 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
725
726 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
727 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
728 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
729 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
730 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
731 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
732 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
733 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
734 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
735 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
736 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
737 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
738 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
739 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
740 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
741 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
742 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
743 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
744 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
745 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
746 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
747 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
748 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
749 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
750 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
751 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
752 "condition","@18","compstmtend","already_scoped_stmt","@19","nontrivial_exprlist",
753 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
754 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
755 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
756 "primary","@20","new","delete","boolean.literal","string","nodecls","object",
757 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
758 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
759 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
760 "initdcl","@21","initdcl0_innards","@22","initdcl0","notype_initdcl0","nomods_initdcl0",
761 "@23","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
762 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
763 "pending_inlines","defarg_again","pending_defargs","structsp","@24","@25","@26",
764 "@27","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
765 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
766 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
767 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
768 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
769 "component_decl_1","components","notype_components","component_declarator0",
770 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
771 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
772 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
773 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
774 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
775 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
776 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
777 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
778 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
779 "absdcl","direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel",
780 "maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
781 "@28","simple_if","@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt",
782 "@32","@33","@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44",
783 "@45","@46","function_try_block","@47","@48","try_block","@49","@50","handler_seq",
784 "handler","@51","@52","@53","type_specifier_seq","handler_args","label_colon",
785 "for.init.statement","maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands",
786 "asm_operand","asm_clobbers","parmlist","complex_parmlist","defarg","@54","defarg1",
787 "parms","parms_comma","named_parm","full_parm","parm","see_typename","bad_parm",
788 "exception_specification_opt","ansi_raise_identifier","ansi_raise_identifiers",
789 "conversion_declarator","operator","operator_name", NULL
790 };
791 #endif
792
793 static const short yyr1[] = { 0,
794 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
795 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
796 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
797 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
798 130, 132, 132, 133, 133, 134, 134, 135, 136, 136,
799 136, 136, 136, 136, 137, 137, 138, 138, 138, 138,
800 138, 138, 138, 138, 138, 139, 139, 140, 140, 140,
801 141, 141, 142, 142, 142, 144, 143, 143, 145, 143,
802 143, 146, 143, 143, 147, 143, 143, 148, 148, 148,
803 148, 148, 149, 149, 149, 149, 150, 150, 150, 150,
804 150, 150, 150, 151, 152, 152, 152, 153, 154, 155,
805 155, 155, 155, 156, 156, 156, 156, 156, 156, 156,
806 156, 157, 157, 157, 157, 157, 158, 158, 158, 159,
807 159, 159, 161, 160, 162, 160, 163, 160, 164, 160,
808 165, 160, 166, 160, 167, 160, 168, 160, 169, 170,
809 171, 171, 171, 172, 173, 173, 174, 174, 175, 175,
810 176, 176, 177, 177, 177, 177, 177, 178, 178, 179,
811 179, 180, 180, 181, 181, 181, 183, 182, 182, 184,
812 184, 184, 184, 186, 185, 185, 187, 187, 187, 187,
813 188, 188, 189, 189, 189, 189, 189, 189, 189, 189,
814 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
815 189, 189, 189, 189, 189, 189, 190, 190, 191, 191,
816 191, 191, 192, 192, 193, 193, 193, 194, 194, 194,
817 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
818 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
819 194, 194, 195, 195, 195, 195, 195, 195, 196, 197,
820 197, 198, 198, 198, 199, 199, 199, 200, 200, 200,
821 200, 201, 201, 202, 202, 202, 202, 203, 203, 203,
822 203, 203, 203, 203, 204, 203, 203, 203, 203, 203,
823 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
824 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
825 203, 203, 203, 203, 203, 203, 203, 205, 205, 206,
826 206, 207, 207, 208, 208, 209, 210, 210, 211, 211,
827 211, 211, 211, 211, 212, 212, 213, 213, 214, 214,
828 214, 214, 214, 215, 215, 216, 216, 216, 216, 216,
829 216, 217, 217, 217, 217, 217, 218, 218, 218, 218,
830 218, 218, 219, 219, 219, 219, 220, 220, 221, 221,
831 221, 221, 221, 221, 221, 222, 222, 222, 223, 223,
832 224, 224, 225, 225, 226, 226, 228, 227, 227, 230,
833 229, 229, 231, 232, 234, 233, 233, 235, 235, 236,
834 236, 237, 238, 238, 239, 239, 239, 239, 239, 240,
835 240, 240, 240, 241, 241, 242, 242, 243, 243, 243,
836 243, 243, 244, 244, 244, 244, 244, 245, 246, 246,
837 246, 247, 247, 248, 248, 249, 249, 249, 251, 250,
838 250, 252, 250, 250, 250, 250, 250, 253, 254, 250,
839 250, 255, 255, 256, 256, 257, 257, 257, 257, 257,
840 258, 259, 260, 260, 260, 260, 260, 261, 262, 262,
841 262, 263, 264, 264, 265, 265, 265, 266, 266, 267,
842 267, 268, 268, 268, 268, 269, 269, 269, 269, 270,
843 271, 272, 272, 272, 272, 273, 273, 274, 274, 274,
844 274, 274, 274, 274, 274, 274, 274, 275, 275, 275,
845 275, 275, 275, 275, 275, 275, 276, 276, 276, 277,
846 277, 277, 278, 278, 279, 279, 280, 280, 281, 281,
847 281, 281, 282, 282, 283, 283, 283, 284, 284, 285,
848 285, 286, 286, 286, 287, 287, 288, 288, 289, 290,
849 291, 291, 291, 291, 292, 292, 292, 292, 292, 292,
850 293, 293, 294, 294, 294, 295, 296, 296, 296, 296,
851 296, 296, 297, 297, 297, 297, 297, 297, 298, 298,
852 298, 298, 298, 298, 299, 299, 299, 299, 299, 299,
853 300, 300, 301, 301, 302, 302, 303, 303, 303, 304,
854 304, 304, 305, 305, 305, 306, 306, 306, 306, 307,
855 307, 308, 308, 308, 308, 309, 309, 309, 309, 310,
856 310, 310, 310, 310, 310, 311, 312, 312, 312, 313,
857 313, 314, 315, 315, 315, 315, 315, 315, 315, 316,
858 316, 317, 317, 317, 317, 317, 317, 317, 317, 317,
859 317, 317, 318, 318, 318, 318, 318, 318, 318, 318,
860 318, 318, 318, 319, 319, 319, 319, 320, 321, 322,
861 323, 323, 324, 324, 325, 326, 326, 328, 327, 330,
862 331, 329, 332, 333, 332, 334, 334, 335, 335, 336,
863 337, 335, 335, 338, 339, 335, 340, 341, 335, 342,
864 343, 344, 345, 335, 346, 347, 335, 348, 335, 349,
865 335, 350, 335, 335, 335, 335, 335, 335, 335, 335,
866 335, 335, 335, 335, 335, 335, 335, 352, 353, 351,
867 355, 356, 354, 357, 357, 359, 360, 361, 358, 362,
868 362, 363, 363, 364, 364, 364, 364, 365, 365, 365,
869 366, 366, 367, 367, 367, 368, 368, 369, 369, 370,
870 371, 371, 372, 372, 372, 373, 373, 373, 373, 373,
871 373, 373, 373, 373, 373, 375, 374, 376, 376, 377,
872 377, 377, 377, 377, 378, 378, 379, 379, 379, 379,
873 379, 379, 380, 380, 381, 381, 382, 383, 383, 384,
874 384, 384, 385, 386, 386, 387, 387, 387, 387, 388,
875 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
876 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
877 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
878 389, 389, 389, 389, 389
879 };
880
881 static const short yyr2[] = { 0,
882 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
883 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
884 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
885 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
886 3, 1, 3, 1, 0, 2, 2, 3, 1, 3,
887 1, 3, 1, 3, 2, 2, 2, 3, 3, 2,
888 2, 2, 2, 2, 1, 1, 1, 0, 1, 2,
889 0, 1, 4, 3, 3, 0, 8, 5, 0, 9,
890 6, 0, 8, 5, 0, 9, 6, 2, 2, 1,
891 2, 1, 6, 4, 6, 4, 2, 1, 2, 2,
892 1, 2, 1, 2, 2, 4, 2, 3, 0, 0,
893 1, 3, 2, 3, 1, 4, 2, 4, 2, 4,
894 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
895 1, 1, 0, 6, 0, 6, 0, 5, 0, 5,
896 0, 7, 0, 7, 0, 6, 0, 6, 0, 0,
897 4, 4, 1, 4, 1, 1, 0, 1, 1, 3,
898 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
899 3, 1, 3, 0, 1, 1, 0, 7, 1, 1,
900 3, 4, 3, 0, 3, 1, 3, 3, 3, 3,
901 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
902 4, 2, 4, 2, 3, 3, 4, 4, 5, 5,
903 6, 2, 4, 5, 2, 2, 3, 3, 3, 1,
904 3, 2, 3, 4, 1, 2, 5, 1, 3, 3,
905 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
906 3, 3, 3, 3, 3, 3, 3, 5, 3, 3,
907 1, 2, 3, 1, 1, 1, 1, 1, 0, 5,
908 5, 5, 5, 5, 1, 1, 1, 1, 2, 2,
909 3, 4, 4, 1, 1, 1, 3, 1, 1, 1,
910 1, 3, 3, 3, 0, 4, 4, 2, 4, 2,
911 2, 1, 4, 1, 7, 7, 7, 7, 4, 4,
912 2, 2, 1, 4, 2, 2, 5, 3, 2, 2,
913 5, 3, 5, 3, 4, 6, 2, 1, 2, 1,
914 2, 1, 1, 1, 2, 0, 2, 2, 3, 3,
915 3, 2, 2, 2, 1, 1, 1, 2, 2, 2,
916 2, 1, 1, 1, 1, 2, 2, 3, 3, 3,
917 4, 1, 2, 2, 2, 1, 1, 1, 2, 2,
918 2, 1, 1, 2, 2, 3, 1, 2, 1, 1,
919 1, 4, 4, 4, 4, 1, 1, 1, 1, 3,
920 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
921 5, 2, 2, 2, 0, 3, 3, 0, 1, 1,
922 2, 6, 1, 3, 0, 1, 4, 6, 4, 1,
923 1, 1, 1, 1, 3, 0, 2, 1, 2, 3,
924 4, 1, 1, 3, 4, 3, 5, 1, 4, 3,
925 3, 0, 3, 3, 3, 0, 2, 2, 0, 7,
926 4, 0, 6, 3, 2, 2, 2, 0, 0, 9,
927 1, 0, 1, 0, 1, 1, 2, 2, 2, 2,
928 2, 2, 3, 4, 3, 2, 3, 0, 1, 3,
929 2, 2, 1, 1, 0, 2, 3, 1, 4, 1,
930 3, 1, 1, 4, 4, 2, 2, 3, 3, 1,
931 0, 1, 2, 4, 3, 1, 2, 2, 2, 2,
932 2, 2, 2, 1, 2, 2, 3, 2, 2, 4,
933 4, 2, 1, 5, 4, 1, 0, 1, 3, 0,
934 1, 3, 1, 1, 1, 1, 4, 4, 4, 4,
935 4, 3, 4, 4, 4, 4, 3, 1, 3, 1,
936 3, 2, 1, 6, 0, 2, 1, 2, 0, 2,
937 4, 4, 2, 4, 3, 3, 2, 2, 3, 1,
938 1, 2, 1, 1, 2, 2, 4, 4, 3, 3,
939 2, 1, 3, 3, 2, 2, 3, 1, 3, 3,
940 2, 2, 3, 1, 4, 3, 4, 3, 1, 2,
941 2, 2, 2, 2, 1, 2, 4, 4, 2, 1,
942 1, 1, 1, 2, 4, 2, 2, 2, 2, 1,
943 2, 2, 2, 2, 3, 1, 2, 3, 4, 2,
944 2, 2, 2, 2, 2, 4, 2, 1, 2, 2,
945 3, 1, 3, 2, 3, 2, 2, 3, 1, 3,
946 4, 3, 2, 2, 1, 3, 2, 2, 1, 2,
947 3, 1, 3, 1, 6, 4, 4, 3, 5, 3,
948 3, 3, 2, 1, 1, 2, 2, 2, 0, 0,
949 0, 1, 1, 2, 3, 1, 2, 0, 5, 0,
950 0, 6, 1, 0, 4, 1, 1, 1, 2, 0,
951 0, 6, 1, 0, 0, 7, 0, 0, 7, 0,
952 0, 0, 0, 14, 0, 0, 9, 0, 5, 0,
953 7, 0, 4, 2, 2, 2, 3, 6, 8, 10,
954 12, 4, 3, 2, 2, 1, 1, 0, 0, 6,
955 0, 0, 5, 1, 2, 0, 0, 0, 8, 1,
956 1, 3, 3, 2, 2, 2, 2, 2, 1, 2,
957 0, 1, 0, 1, 1, 0, 1, 1, 3, 4,
958 1, 3, 0, 1, 1, 1, 2, 2, 2, 1,
959 1, 2, 2, 2, 2, 0, 3, 1, 1, 1,
960 2, 2, 2, 4, 2, 2, 2, 2, 2, 2,
961 1, 2, 1, 2, 1, 1, 0, 0, 1, 0,
962 4, 2, 1, 1, 3, 0, 3, 3, 3, 1,
963 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
964 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
965 2, 2, 2, 3, 2, 2, 2, 2, 3, 2,
966 2, 4, 4, 3, 2
967 };
968
969 static const short yydefact[] = { 3,
970 13, 13, 5, 0, 4, 0, 256, 600, 601, 0,
971 358, 370, 547, 0, 11, 12, 0, 0, 0, 10,
972 456, 810, 0, 0, 0, 149, 632, 257, 258, 65,
973 0, 0, 797, 0, 37, 0, 0, 14, 0, 8,
974 0, 17, 16, 71, 92, 68, 0, 602, 153, 275,
975 254, 276, 578, 0, 345, 0, 344, 363, 0, 383,
976 362, 400, 369, 0, 469, 468, 475, 474, 473, 451,
977 357, 563, 371, 564, 395, 274, 589, 561, 0, 603,
978 545, 0, 0, 255, 63, 64, 157, 606, 157, 607,
979 157, 259, 149, 122, 123, 124, 125, 126, 442, 445,
980 0, 628, 0, 446, 0, 0, 0, 0, 123, 124,
981 125, 126, 24, 0, 0, 0, 0, 0, 0, 0,
982 447, 610, 0, 616, 0, 0, 0, 0, 0, 0,
983 30, 0, 0, 39, 0, 157, 608, 0, 0, 576,
984 0, 0, 0, 575, 0, 0, 0, 0, 275, 0,
985 549, 0, 274, 545, 29, 0, 27, 3, 38, 0,
986 56, 55, 72, 15, 0, 398, 0, 0, 416, 69,
987 61, 609, 549, 0, 545, 62, 0, 0, 0, 88,
988 0, 379, 335, 560, 336, 572, 0, 545, 360, 359,
989 60, 91, 346, 0, 381, 361, 89, 352, 376, 377,
990 347, 365, 367, 356, 378, 0, 57, 401, 457, 458,
991 459, 460, 472, 131, 130, 132, 461, 462, 466, 0,
992 0, 475, 797, 471, 490, 491, 548, 364, 0, 385,
993 601, 0, 630, 153, 593, 594, 590, 566, 604, 0,
994 565, 562, 0, 845, 841, 840, 838, 820, 825, 826,
995 0, 832, 831, 817, 818, 816, 835, 824, 821, 822,
996 823, 827, 828, 814, 815, 811, 812, 813, 837, 829,
997 830, 819, 836, 0, 833, 740, 363, 741, 806, 259,
998 256, 547, 279, 324, 0, 0, 0, 0, 320, 318,
999 292, 322, 323, 0, 0, 0, 0, 0, 258, 251,
1000 0, 0, 164, 163, 0, 165, 166, 0, 0, 167,
1001 0, 0, 158, 159, 0, 225, 0, 228, 162, 278,
1002 193, 0, 0, 280, 281, 0, 161, 342, 363, 343,
1003 595, 303, 294, 0, 0, 0, 0, 157, 0, 444,
1004 0, 439, 0, 629, 627, 0, 168, 169, 0, 0,
1005 0, 405, 3, 22, 0, 624, 620, 621, 623, 625,
1006 622, 122, 123, 124, 0, 125, 126, 612, 613, 617,
1007 614, 611, 266, 267, 0, 265, 33, 34, 0, 592,
1008 591, 32, 31, 41, 0, 358, 139, 0, 0, 363,
1009 137, 0, 0, 574, 0, 573, 253, 270, 0, 582,
1010 269, 0, 581, 0, 277, 586, 0, 0, 13, 0,
1011 149, 9, 9, 0, 397, 399, 104, 75, 109, 728,
1012 0, 67, 66, 74, 107, 0, 0, 105, 70, 588,
1013 0, 0, 553, 0, 800, 0, 558, 0, 557, 0,
1014 0, 0, 0, 545, 398, 393, 0, 59, 549, 545,
1015 571, 0, 349, 350, 0, 58, 394, 354, 353, 355,
1016 348, 368, 385, 384, 463, 467, 465, 0, 470, 476,
1017 0, 0, 366, 396, 545, 76, 0, 0, 0, 0,
1018 545, 82, 546, 577, 601, 631, 153, 0, 0, 834,
1019 839, 365, 545, 545, 0, 545, 844, 157, 0, 0,
1020 0, 200, 0, 0, 202, 215, 216, 0, 0, 0,
1021 0, 0, 252, 199, 196, 195, 197, 0, 0, 0,
1022 0, 0, 278, 0, 0, 0, 194, 155, 156, 272,
1023 0, 198, 0, 0, 226, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, 0, 288, 290, 291,
1026 328, 327, 0, 0, 0, 0, 0, 204, 543, 0,
1027 212, 325, 317, 0, 0, 797, 306, 309, 310, 0,
1028 0, 337, 649, 645, 654, 0, 549, 545, 545, 545,
1029 339, 652, 0, 599, 341, 0, 0, 340, 305, 0,
1030 301, 319, 321, 596, 0, 302, 152, 154, 0, 147,
1031 0, 363, 145, 540, 454, 538, 441, 0, 0, 372,
1032 0, 0, 373, 374, 375, 411, 412, 413, 410, 0,
1033 403, 406, 0, 3, 0, 615, 157, 618, 28, 36,
1034 35, 45, 0, 0, 0, 49, 53, 42, 796, 791,
1035 0, 342, 363, 45, 343, 795, 51, 150, 135, 133,
1036 150, 151, 273, 580, 579, 277, 583, 0, 19, 21,
1037 71, 0, 110, 326, 0, 678, 73, 676, 422, 0,
1038 418, 417, 192, 0, 191, 550, 587, 0, 770, 771,
1039 0, 765, 363, 0, 764, 766, 798, 780, 0, 0,
1040 585, 556, 555, 0, 0, 570, 0, 392, 380, 569,
1041 0, 800, 559, 351, 382, 398, 464, 600, 601, 797,
1042 0, 797, 602, 477, 478, 480, 797, 483, 482, 0,
1043 513, 601, 0, 504, 0, 0, 516, 0, 103, 98,
1044 0, 153, 517, 520, 0, 496, 0, 101, 0, 398,
1045 800, 763, 157, 157, 605, 157, 800, 763, 545, 79,
1046 545, 85, 843, 842, 806, 806, 806, 0, 0, 0,
1047 0, 599, 0, 0, 0, 0, 363, 0, 0, 0,
1048 284, 0, 282, 283, 0, 223, 160, 256, 600, 601,
1049 257, 258, 0, 0, 423, 452, 0, 250, 249, 755,
1050 754, 0, 247, 246, 244, 245, 243, 242, 241, 238,
1051 239, 240, 236, 237, 231, 232, 233, 234, 235, 229,
1052 230, 0, 0, 0, 0, 0, 0, 206, 220, 0,
1053 0, 205, 545, 545, 0, 545, 542, 639, 0, 0,
1054 0, 0, 0, 308, 0, 312, 0, 314, 0, 648,
1055 647, 644, 643, 796, 0, 0, 663, 0, 0, 800,
1056 338, 800, 650, 545, 763, 549, 649, 645, 0, 0,
1057 545, 0, 0, 0, 0, 0, 260, 150, 143, 141,
1058 150, 0, 455, 0, 454, 190, 189, 188, 187, 405,
1059 0, 0, 25, 0, 26, 619, 0, 47, 44, 45,
1060 0, 40, 0, 0, 649, 645, 0, 787, 545, 790,
1061 792, 0, 788, 789, 46, 461, 0, 140, 150, 150,
1062 138, 18, 20, 386, 127, 115, 128, 129, 0, 108,
1063 111, 0, 0, 0, 0, 677, 669, 419, 0, 106,
1064 554, 551, 769, 786, 775, 773, 0, 552, 768, 785,
1065 774, 772, 767, 799, 782, 793, 783, 776, 781, 802,
1066 0, 390, 568, 567, 389, 487, 0, 486, 797, 797,
1067 797, 0, 545, 763, 512, 505, 517, 506, 398, 398,
1068 502, 503, 500, 501, 545, 763, 256, 600, 0, 385,
1069 99, 508, 518, 523, 524, 385, 385, 0, 0, 385,
1070 97, 509, 521, 385, 497, 498, 499, 398, 0, 448,
1071 78, 0, 0, 0, 0, 84, 0, 800, 763, 800,
1072 763, 808, 807, 809, 261, 293, 201, 203, 299, 300,
1073 0, 0, 0, 0, 283, 286, 0, 0, 0, 0,
1074 224, 0, 287, 289, 218, 217, 208, 0, 207, 222,
1075 0, 0, 636, 634, 0, 637, 549, 213, 0, 0,
1076 157, 315, 0, 0, 0, 646, 642, 653, 545, 662,
1077 660, 661, 651, 800, 0, 658, 0, 597, 598, 0,
1078 304, 148, 150, 150, 146, 541, 539, 443, 0, 404,
1079 402, 256, 0, 23, 626, 48, 43, 50, 54, 648,
1080 644, 649, 645, 0, 561, 0, 545, 650, 52, 136,
1081 134, 0, 113, 0, 117, 0, 119, 0, 121, 0,
1082 729, 671, 0, 420, 649, 645, 0, 278, 0, 595,
1083 794, 0, 0, 803, 804, 0, 0, 387, 0, 0,
1084 0, 489, 488, 481, 800, 0, 507, 416, 416, 800,
1085 0, 0, 0, 398, 398, 0, 398, 398, 0, 398,
1086 0, 416, 0, 436, 545, 263, 262, 264, 545, 81,
1087 0, 87, 0, 0, 0, 0, 0, 0, 426, 0,
1088 424, 227, 248, 0, 209, 210, 219, 221, 635, 633,
1089 640, 638, 0, 214, 0, 0, 307, 311, 313, 800,
1090 656, 545, 657, 144, 142, 440, 0, 407, 409, 648,
1091 644, 566, 650, 114, 112, 0, 0, 0, 0, 0,
1092 180, 670, 0, 672, 673, 421, 0, 598, 784, 778,
1093 779, 777, 0, 801, 391, 0, 484, 485, 479, 94,
1094 545, 511, 515, 96, 545, 398, 398, 532, 416, 256,
1095 600, 0, 519, 525, 526, 385, 385, 416, 416, 0,
1096 416, 522, 510, 0, 800, 800, 545, 545, 0, 0,
1097 0, 0, 425, 0, 0, 211, 641, 316, 262, 659,
1098 800, 0, 116, 118, 120, 736, 730, 734, 414, 0,
1099 679, 0, 256, 600, 601, 680, 694, 697, 700, 669,
1100 0, 0, 0, 0, 0, 0, 257, 726, 731, 0,
1101 751, 0, 688, 0, 0, 363, 0, 665, 686, 693,
1102 664, 687, 727, 0, 674, 283, 805, 388, 800, 800,
1103 531, 528, 530, 0, 0, 398, 398, 398, 527, 529,
1104 514, 438, 0, 437, 432, 77, 83, 800, 800, 295,
1105 296, 297, 298, 427, 544, 655, 408, 669, 735, 0,
1106 675, 668, 183, 744, 746, 747, 669, 669, 669, 0,
1107 0, 0, 712, 714, 715, 716, 0, 0, 0, 745,
1108 0, 334, 752, 0, 689, 332, 385, 0, 333, 0,
1109 385, 0, 0, 0, 181, 667, 666, 690, 725, 724,
1110 93, 95, 398, 398, 537, 416, 416, 0, 0, 450,
1111 80, 86, 0, 415, 0, 0, 684, 683, 0, 0,
1112 0, 0, 708, 0, 717, 0, 723, 732, 0, 330,
1113 331, 0, 0, 0, 329, 182, 669, 536, 534, 533,
1114 535, 435, 434, 428, 68, 71, 0, 737, 172, 0,
1115 681, 695, 0, 698, 671, 749, 701, 0, 179, 0,
1116 363, 0, 0, 0, 713, 722, 0, 0, 691, 0,
1117 433, 0, 0, 0, 0, 669, 0, 670, 0, 750,
1118 669, 748, 705, 385, 710, 709, 733, 756, 0, 670,
1119 431, 0, 430, 742, 743, 738, 173, 682, 184, 670,
1120 186, 685, 170, 0, 0, 0, 669, 398, 0, 0,
1121 0, 757, 758, 718, 692, 429, 670, 671, 696, 0,
1122 699, 176, 0, 175, 706, 0, 711, 0, 756, 0,
1123 0, 739, 185, 171, 702, 670, 177, 0, 0, 719,
1124 759, 0, 707, 0, 760, 0, 0, 0, 178, 761,
1125 0, 720, 703, 0, 0, 0, 762, 721, 670, 704,
1126 0, 0, 0
1127 };
1128
1129 static const short yydefgoto[] = { 1561,
1130 409, 2, 410, 160, 670, 311, 165, 3, 4, 38,
1131 634, 353, 737, 375, 40, 738, 385, 645, 898, 646,
1132 647, 648, 42, 43, 421, 168, 164, 44, 739, 752,
1133 1019, 758, 1021, 46, 740, 741, 169, 170, 422, 673,
1134 930, 931, 614, 932, 218, 47, 920, 919, 661, 658,
1135 1084, 1083, 881, 878, 135, 918, 48, 49, 530, 312,
1136 313, 314, 315, 1312, 1505, 1451, 1523, 1460, 1544, 1222,
1137 1500, 1518, 347, 870, 316, 567, 832, 317, 318, 348,
1138 320, 338, 51, 236, 377, 398, 52, 53, 321, 525,
1139 322, 323, 324, 325, 423, 326, 1313, 463, 589, 327,
1140 1314, 55, 201, 651, 328, 202, 503, 203, 181, 194,
1141 59, 445, 464, 1236, 446, 1137, 182, 195, 60, 230,
1142 415, 61, 62, 630, 631, 632, 1290, 428, 795, 796,
1143 1445, 1446, 1410, 1344, 1264, 63, 618, 341, 1164, 1345,
1144 1040, 884, 64, 65, 66, 67, 222, 68, 69, 70,
1145 224, 724, 725, 726, 727, 226, 471, 472, 745, 746,
1146 747, 992, 1002, 993, 1253, 994, 995, 1254, 1255, 615,
1147 616, 568, 860, 330, 431, 432, 175, 183, 72, 73,
1148 74, 184, 185, 152, 76, 131, 331, 332, 333, 78,
1149 334, 80, 729, 122, 123, 124, 479, 104, 81, 335,
1150 837, 838, 855, 592, 1317, 1318, 1417, 1291, 1223, 1224,
1151 1225, 677, 1319, 937, 1320, 1367, 1476, 1419, 1453, 1321,
1152 1322, 1437, 1490, 1368, 1477, 1369, 1479, 1370, 1481, 1542,
1153 1556, 1507, 1536, 1464, 1509, 1424, 424, 674, 1219, 1323,
1154 1381, 1467, 1287, 1288, 1358, 1474, 1517, 1462, 1448, 1324,
1155 1457, 1384, 802, 1511, 1512, 1513, 1551, 694, 695, 959,
1156 1133, 1232, 696, 697, 698, 955, 699, 145, 957, 701,
1157 1135, 1136, 497, 83, 84
1158 };
1159
1160 static const short yypact[] = { 109,
1161 112,-32768,-32768, 5661,-32768, 138, 128, 311, 398, 131,
1162 197,-32768,-32768, 809,-32768,-32768, 115, 166, 209,-32768,
1163 -32768,-32768, 1396, 1537, 1868, 188,-32768, 232, 415,-32768,
1164 2213, 2213,-32768, 4290,-32768, 5661, 237,-32768, 261, 288,
1165 5820,-32768,-32768, 246, 1170, 337, 394, 360,-32768,-32768,
1166 -32768,-32768, 354, 1841,-32768, 4415,-32768, 1632, 495,-32768,
1167 434,-32768,-32768, 1377,-32768,-32768, 406,-32768,-32768, 459,
1168 4536,-32768,-32768,-32768, 116,-32768,-32768,-32768, 829,-32768,
1169 -32768, 295, 6138, 405,-32768,-32768, 9195,-32768, 9195,-32768,
1170 9195,-32768,-32768,-32768, 311, 398, 232, 438, 420, 500,
1171 360,-32768, 790,-32768, 295, 9195, 9195, 472,-32768,-32768,
1172 -32768,-32768,-32768, 49, 522, 498, 570, 610, 532, 540,
1173 -32768,-32768, 1300,-32768, 1104, 311, 398, 224, 232, 438,
1174 -32768, 1288, 1024, 524, 10589, 9195,-32768, 9195, 3028,-32768,
1175 1016, 812, 3028,-32768, 1492, 3559, 3559, 4290, 506, 525,
1176 548, 549, 556,-32768,-32768, 639,-32768, 564,-32768, 3446,
1177 138,-32768,-32768,-32768, 575, 434, 708, 126, 380, 655,
1178 -32768,-32768, 607, 94,-32768,-32768, 4075, 4075, 4612, 932,
1179 641,-32768,-32768, 387,-32768,-32768, 2008,-32768,-32768,-32768,
1180 -32768,-32768, 1632, 646,-32768, 434, 932,-32768,-32768,-32768,
1181 2341, 1632,-32768, 434,-32768, 4846,-32768,-32768,-32768,-32768,
1182 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 360, 1521,
1183 1555, 406,-32768,-32768,-32768,-32768,-32768, 817, 295, 518,
1184 698, 667,-32768, 284,-32768,-32768,-32768,-32768,-32768, 4096,
1185 -32768,-32768, 471,-32768, 634, 640,-32768,-32768,-32768,-32768,
1186 681,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1187 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1188 -32768,-32768,-32768, 638,-32768,-32768, 817, 4536, 624,-32768,
1189 -32768, 661,-32768,-32768, 9810, 9897, 9984, 9984,-32768,-32768,
1190 -32768,-32768,-32768, 669, 686, 690, 692, 696, 438, 9282,
1191 1492, 9984,-32768,-32768, 9984,-32768,-32768, 9984, 7308,-32768,
1192 9984, 446, 719,-32768, 9984,-32768, 9369,-32768, 10640,-32768,
1193 1550, 2689, 9456,-32768, 776, 3663,-32768, 1347, 2424, 2070,
1194 -32768, 289,-32768, 3290, 1813, 446, 446, 9195, 10589,-32768,
1195 1492, 678, 1492,-32768,-32768, 691, 743, 6188, 714, 730,
1196 735, 946, 564,-32768, 224,-32768,-32768,-32768,-32768,-32768,
1197 -32768, 522, 498, 570, 1492, 610, 532, 746, 540,-32768,
1198 824,-32768, 311, 398, 811,-32768,-32768,-32768, 1024,-32768,
1199 -32768,-32768,-32768,-32768, 3860,-32768,-32768, 4846, 5100, 1732,
1200 -32768, 446, 381,-32768, 794,-32768,-32768,-32768, 3028,-32768,
1201 -32768, 3028,-32768, 772,-32768,-32768, 4096, 50, 777, 783,
1202 -32768,-32768,-32768, 639,-32768, 434,-32768,-32768,-32768,-32768,
1203 167,-32768,-32768,-32768,-32768, 7400, 9282,-32768,-32768,-32768,
1204 9282, 796,-32768, 5312, 172, 4572,-32768, 4572,-32768, 4739,
1205 4739, 4612, 797,-32768, 434,-32768, 4846,-32768, 806,-32768,
1206 -32768, 4774, 2341, 1632, 4846,-32768,-32768,-32768,-32768, 434,
1207 2341,-32768, 518,-32768,-32768, 360,-32768, 1521,-32768, 1752,
1208 2763, 62, 817,-32768,-32768,-32768, 853, 858, 882, 863,
1209 -32768,-32768,-32768,-32768, 1119,-32768, 326, 828, 834,-32768,
1210 -32768, 817,-32768,-32768, 800,-32768,-32768, 9195, 9282, 661,
1211 7308,-32768, 349, 7308,-32768,-32768,-32768, 9195, 4671, 4671,
1212 4671, 4671, 10722,-32768,-32768,-32768,-32768, 832, 10071, 10071,
1213 7308, 838, 506, 842, 897, 848,-32768,-32768,-32768,-32768,
1214 9195,-32768, 6933, 7308,-32768, 9282, 9282, 7492, 9282, 9282,
1215 9282, 9282, 9282, 9282, 9282, 9282, 9282, 9282, 9282, 9282,
1216 9282, 9282, 9282, 9282, 9282, 9282, 9282,-32768,-32768,-32768,
1217 -32768,-32768, 9282, 9282, 9282, 9195, 2307, 550, 931, 8131,
1218 -32768,-32768,-32768, 907, 667, 958, 402, 443, 463, 3427,
1219 812,-32768, 2498, 2498,-32768, 2922, 859, 879, 936,-32768,
1220 -32768, 455, 8638, 1163,-32768, 991, 295,-32768,-32768, 9282,
1221 -32768,-32768,-32768,-32768, 60,-32768,-32768,-32768, 446,-32768,
1222 4846, 2428,-32768, 920, 934,-32768,-32768, 1492, 746,-32768,
1223 7860, 7952,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 158,
1224 -32768, 912, 880, 564, 948, 956, 9195,-32768,-32768,-32768,
1225 -32768, 1784, 188, 977, 408, 951, 953,-32768,-32768, 1853,
1226 10645, 1853, 3781, 1377, 6077,-32768, 960,-32768,-32768,-32768,
1227 -32768,-32768,-32768,-32768,-32768, 924,-32768, 975,-32768,-32768,
1228 246, 53, 389, 974, 897,-32768,-32768,-32768,-32768, 6838,
1229 10722,-32768, 743, 940, 6188,-32768,-32768, 952,-32768,-32768,
1230 957, 154, 10382, 965,-32768, 204, 10438, 981, 998, 467,
1231 -32768,-32768,-32768, 4572, 4572,-32768, 4774, 1012,-32768,-32768,
1232 955, 172,-32768, 2341,-32768, 434,-32768, 498, 570,-32768,
1233 992,-32768, 540, 1025,-32768,-32768, 169,-32768,-32768, 1564,
1234 -32768, 1130, 673,-32768, 9282, 10321,-32768, 10321, 312, 312,
1235 228, 499, 2843, 10483, 3949,-32768, 183, 312, 1026, 434,
1236 172, 1134, 9195, 9195,-32768, 9195, 172, 1134,-32768,-32768,
1237 -32768,-32768,-32768,-32768, 632, 632, 632, 446, 980, 982,
1238 9549, 936, 983, 989, 994, 1030, 2824, 1035, 1036, 1040,
1239 -32768, 1009,-32768,-32768, 1019,-32768,-32768, 1059, 563, 682,
1240 215, 335, 9282, 1069,-32768, 1074, 1027, 10722, 10722,-32768,
1241 -32768, 1077, 5227, 5852, 5722, 3615, 2589, 4148, 4801, 3186,
1242 3186, 3186, 2116, 2116, 1161, 1161, 630, 630, 630,-32768,
1243 -32768, 1037, 1039, 1044, 1047, 1054, 4671, 550,-32768, 7400,
1244 9282,-32768,-32768,-32768, 9282,-32768,-32768, 1073, 9984, 1057,
1245 1088, 1107, 1131,-32768, 9282,-32768, 9282,-32768, 9282, 3157,
1246 -32768, 3157,-32768, 133, 1078, 1085,-32768, 1071, 4671, 172,
1247 -32768, 172, 3878,-32768, 1134, 1087, 8830, 8830, 6537, 1091,
1248 9369, 1094, 2560, 1813, 1003, 1099,-32768,-32768,-32768,-32768,
1249 -32768, 9282, 1492, 1101, 934,-32768, 10722,-32768, 10722, 946,
1250 1100, 9636,-32768, 1106,-32768,-32768, 446,-32768,-32768, 1881,
1251 3860,-32768, 4671, 9195, 1705, 1705, 10250,-32768,-32768,-32768,
1252 -32768, 2008,-32768,-32768,-32768, 830, 9282,-32768,-32768,-32768,
1253 -32768,-32768,-32768,-32768, 522,-32768, 610, 532, 9282, 1160,
1254 -32768, 536, 546, 558, 897,-32768,-32768,-32768, 83,-32768,
1255 -32768,-32768,-32768,-32768,-32768,-32768, 8734,-32768,-32768,-32768,
1256 -32768,-32768,-32768,-32768,-32768, 998, 1156,-32768,-32768,-32768,
1257 4671,-32768,-32768,-32768, 1162,-32768, 9195,-32768,-32768,-32768,
1258 -32768, 1339,-32768, 1134, 10722,-32768, 2173,-32768, 434, 434,
1259 -32768,-32768,-32768,-32768,-32768, 1134, 285, 781, 9282, 518,
1260 -32768, 1173,-32768,-32768,-32768, 485, 711, 829, 812, 849,
1261 312, 1174,-32768, 1028,-32768,-32768,-32768, 434, 5160,-32768,
1262 -32768, 1127, 446, 446, 446,-32768, 1139, 172, 1134, 172,
1263 1134,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1264 1146, 1165, 1166, 1169, 924,-32768, 6447, 7400, 7028, 1143,
1265 -32768, 9282,-32768,-32768,-32768,-32768, 391, 1154,-32768,-32768,
1266 1155, 162, 483, 483, 1158, 483,-32768,-32768, 9984, 1261,
1267 9195,-32768, 1172, 1176, 1177,-32768,-32768,-32768,-32768,-32768,
1268 -32768,-32768,-32768, 172, 1178,-32768, 1159,-32768,-32768, 3164,
1269 -32768,-32768,-32768,-32768,-32768, 10722,-32768,-32768, 1168,-32768,
1270 -32768, 217, 1189,-32768,-32768,-32768,-32768,-32768,-32768, 1960,
1271 1960, 2319, 2319, 10250,-32768, 2008,-32768, 2633, 10640,-32768,
1272 -32768, 1190,-32768, 389,-32768, 9282,-32768, 9282,-32768, 9282,
1273 -32768, 76, 7120,-32768, 8923, 8923, 6650, 88, 1191, 317,
1274 -32768, 7400, 7212,-32768,-32768, 223, 7400,-32768, 1192, 1199,
1275 1752,-32768,-32768,-32768, 172, 1200,-32768, 1215, 1215, 172,
1276 1202, 9282, 9282, 5537, 434, 2984, 434, 434, 1317, 434,
1277 3220, 1215, 5489,-32768,-32768,-32768, 1259,-32768,-32768,-32768,
1278 1205,-32768, 1206, 9282, 9282, 9282, 9282, 7400,-32768, 1254,
1279 -32768,-32768, 10722, 9282,-32768, 391,-32768,-32768,-32768,-32768,
1280 -32768,-32768, 1211,-32768, 1277, 446,-32768,-32768,-32768, 172,
1281 -32768,-32768,-32768,-32768,-32768,-32768, 9282,-32768,-32768, 1960,
1282 1960,-32768, 2633,-32768,-32768, 1216, 1217, 1218, 1232, 1492,
1283 -32768,-32768, 6398, 1297,-32768,-32768, 1222, 1656,-32768,-32768,
1284 -32768,-32768, 4671,-32768,-32768, 7400,-32768,-32768,-32768,-32768,
1285 -32768,-32768,-32768,-32768,-32768, 5537, 5537,-32768, 1215, 623,
1286 787, 9282,-32768,-32768,-32768, 518, 518, 1215, 1215, 1119,
1287 1215,-32768,-32768, 5959, 172, 172,-32768,-32768, 1226, 1228,
1288 1229, 1230,-32768, 7400, 1234,-32768,-32768,-32768,-32768,-32768,
1289 172, 1240,-32768,-32768,-32768,-32768, 1232,-32768,-32768, 724,
1290 -32768, 227, 1290, 869, 1070,-32768,-32768,-32768,-32768,-32768,
1291 9282, 1298, 1299, 1306, 9016, 421, 633,-32768,-32768, 9108,
1292 1364, 1315,-32768, 3515, 10544, 3084, 6286,-32768,-32768, 1371,
1293 -32768,-32768,-32768, 8242,-32768, 491,-32768,-32768, 172, 172,
1294 -32768,-32768,-32768, 9282, 9282, 5537, 434, 434,-32768,-32768,
1295 -32768,-32768, 8044,-32768,-32768,-32768,-32768, 172, 172,-32768,
1296 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1492,
1297 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 897, 1294,
1298 1295, 5382,-32768,-32768,-32768,-32768, 1329, 9282, 1330,-32768,
1299 897,-32768,-32768, 1309,-32768,-32768, 518, 750,-32768, 799,
1300 518, 9723, 856, 248,-32768,-32768,-32768,-32768,-32768,-32768,
1301 -32768,-32768, 5537, 5537,-32768, 1215, 1215, 1284, 10676, 1307,
1302 -32768,-32768, 1319,-32768, 561, 561,-32768,-32768, 1394, 6746,
1303 9195, 9282,-32768, 8352,-32768, 1354,-32768,-32768, 639,-32768,
1304 -32768, 10158, 10158, 7584,-32768,-32768, 897,-32768,-32768,-32768,
1305 -32768,-32768,-32768,-32768, 337, 246, 4946,-32768,-32768, 9195,
1306 -32768,-32768, 8544,-32768, 76,-32768,-32768, 1358,-32768, 1312,
1307 121, 4846, 10699, 8352,-32768,-32768, 1232, 81,-32768, 145,
1308 -32768, 1313, 1314, 897, 1316, 897, 8448,-32768, 586,-32768,
1309 -32768,-32768,-32768, 518,-32768,-32768, 1232, 1414, 1366,-32768,
1310 -32768, 167,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1311 -32768,-32768,-32768, 9282, 1368, 7676, 897, 434, 8352, 1343,
1312 161, 1373,-32768,-32768,-32768,-32768,-32768, 76,-32768, 1337,
1313 -32768,-32768, 1378,-32768,-32768, 1375,-32768, 9282, 1414, 1389,
1314 1414,-32768,-32768,-32768,-32768,-32768,-32768, 1348, 179,-32768,
1315 -32768, 7768,-32768, 7400,-32768, 1448, 1400, 1352,-32768,-32768,
1316 260,-32768,-32768, 1453, 1405, 8448,-32768,-32768,-32768,-32768,
1317 1470, 1472,-32768
1318 };
1319
1320 static const short yypgoto[] = {-32768,
1321 1476,-32768, -320,-32768, 1067, 55, 54, 1479,-32768, 320,
1322 -32768,-32768, 339, 1138,-32768, 21,-32768,-32768, -614,-32768,
1323 -32768, 584,-32768, 1326, -668, 44, -660, 1334, 65,-32768,
1324 -32768,-32768,-32768,-32768, 755,-32768,-32768,-32768,-32768,-32768,
1325 -32768, 390, 231,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1326 -32768,-32768,-32768,-32768, 1410, -623, 5509, 160, -100, -62,
1327 1372, -517,-32768, 652,-32768, 90,-32768, -1352,-32768, -1361,
1328 -45,-32768, 1416, 1238, -244,-32768, -785, 3520, 736, 3721,
1329 3203, 1236,-32768, -69, -28, 163, -71, -24,-32768,-32768,
1330 -32768, -304,-32768, -155,-32768,-32768, -1234, -31, -326, 1524,
1331 30, 1239, -109, 45, 229, -180, -4, -82, -658, 202,
1332 -32768, -21, 7,-32768, -195,-32768,-32768,-32768,-32768,-32768,
1333 568, -40, 17,-32768, 622,-32768,-32768, -1011, -390, 840,
1334 -32768,-32768,-32768,-32768,-32768, -54,-32768,-32768,-32768,-32768,
1335 -32768, 642, -359,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1336 1321,-32768, 393, 557,-32768,-32768,-32768,-32768, 519, -692,
1337 -32768,-32768,-32768,-32768,-32768,-32768, 791,-32768, 375, 926,
1338 662, 971, 3646, 24, 27, -437, 1367, 2269, -453,-32768,
1339 6,-32768, 5036, -125, 388, -51, 3595, 1231,-32768, 4683,
1340 1552, 1280, -19, -106,-32768, 1438, -48,-32768, 4383, 2452,
1341 -276,-32768, 2422,-32768,-32768, 245, -869, -957,-32768,-32768,
1342 341, 79, -293,-32768,-32768,-32768,-32768, -1312,-32768, -1184,
1343 -1364,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1344 -32768,-32768,-32768,-32768,-32768,-32768, 102,-32768,-32768,-32768,
1345 -32768,-32768, 106, -1236,-32768,-32768,-32768, -53,-32768,-32768,
1346 -32768,-32768, -1370, 52,-32768, 43,-32768, -713, -539, 626,
1347 -32768,-32768,-32768,-32768, -378,-32768, -376, -151,-32768, -428,
1348 352,-32768, 486,-32768, -217
1349 };
1350
1351
1352 #define YYLAST 10807
1353
1354
1355 static const short yytable[] = { 58,
1356 408, 457, 594, 205, 121, 935, 656, 237, 657, 151,
1357 923, 711, 454, 787, 480, 196, 728, 204, 372, 102,
1358 400, 403, 180, 166, 41, 654, 336, 71, 337, 279,
1359 603, 58, 633, 54, 474, 682, 58, 921, 1012, 915,
1360 502, 505, 1049, 976, 1017, 978, 856, 473, 56, 1458,
1361 1359, 193, 1005, 856, 139, 143, 41, 37, 36, 71,
1362 572, 41, 380, 572, 71, 54, 228, 1122, 45, 237,
1363 54, 470, 535, 392, 371, 1382, 378, 208, 277, 174,
1364 56, 383, 329, 453, 329, 56, 329, 241, 1478, 37,
1365 36, 572, 461, 1480, 37, 36, 492, 1475, 289, 749,
1366 45, 329, 329, 381, 382, 45, 278, 354, -1, 1220,
1367 344, -2, 1501, 355, 27, 237, -90, 606, 459, 462,
1368 192, 151, 151, 151, 1469, 416, 418, 678, 199, 200,
1369 390, 329, 1397, 329, 14, -275, 1242, 1243, 205, 1400,
1370 -90, 433, 1123, 1488, 943, 1491, 205, 205, 492, 858,
1371 1263, 1075, 204, 1524, 151, 58, 1533, 21, 71, 668,
1372 460, 204, 924, 1498, 388, 943, 24, 675, 582, 399,
1373 402, 1548, 750, 205, -90, 970, 772, 174, -90, 389,
1374 483, -275, -275, 71, -326, 1456, 1221, 434, 419, 54,
1375 1489, 1501, 944, 1124, 1525, 945, 150, -268, 85, 387,
1376 436, 438, 87, -326, 56, 92, 971, 419, 106, 582,
1377 174, -90, 208, 944, 771, 949, 945, 890, -796, 933,
1378 208, 420, 205, 1529, 45, 676, 281, 373, 374, 10,
1379 946, 785, 57, 700, 241, 607, 608, 1333, 234, 1465,
1380 420, 1546, 786, 1006, 100, 93, 1339, 1340, 86, 1341,
1381 1359, 946, 981, 114, 1082, 771, 577, 1085, 672, 107,
1382 1146, 1185, 134, 950, 57, 22, 951, 891, 569, 57,
1383 1530, 1188, 1151, 228, 205, 609, 1207, -125, 27, 1486,
1384 28, 299, 1233, 964, 900, 1096, 982, 1362, 1547, 136,
1385 983, 662, 663, 1007, 217, 1110, 1111, 578, 8, 9,
1386 603, 952, 108, 378, 329, 1171, 136, 1173, 1362, 401,
1387 404, 276, 33, 894, 400, 403, 636, 277, 656, 1554,
1388 956, 157, 1011, 984, 1527, 228, 1208, 641, 1016, 856,
1389 156, 481, 1234, 329, 612, 205, 599, 1363, 15, 16,
1390 241, 150, 39, -385, 714, 278, 158, 1152, 196, 204,
1391 640, 129, 130, 368, 163, 155, 659, 480, 1436, 87,
1392 162, 167, 71, 57, -589, 88, 594, 856, 611, 1555,
1393 459, 462, -385, 761, 39, 397, -385, 482, 459, 39,
1394 653, 936, 600, 389, 193, 89, 1099, 159, 57, 137,
1395 462, 925, 718, 719, 1440, 1441, 582, -126, 205, 205,
1396 1276, -549, 487, 610, 416, 644, 205, 856, 655, 462,
1397 -589, -589, 460, 204, 172, 151, 151, 151, 205, 762,
1398 460, 153, -385, 94, 109, 110, -589, 425, 1077, 693,
1399 1371, 1071, 208, 1072, -549, 768, 926, 205, 829, 1050,
1400 531, 716, 771, 27, 426, 927, 928, -549, 173, 844,
1401 465, 467, 90, 709, 171, 830, 528, 655, 529, 1204,
1402 1205, 715, 478, 704, 705, 19, 58, 901, 223, 137,
1403 1005, 524, 91, 427, 8, 485, 208, 111, 112, 280,
1404 -549, 449, 929, 902, 831, 1184, 126, 127, 1413, 138,
1405 846, 483, 137, 329, 71, 845, 329, 1415, 1416, 329,
1406 743, 1378, 864, 329, 777, 777, 777, 777, 877, -335,
1407 848, 15, 16, 569, 960, 744, 329, 225, 728, 343,
1408 1502, 528, 656, 529, 657, 736, 329, 129, 130, 329,
1409 340, 514, 1515, 153, 153, 153, 847, 27, -277, 129,
1410 130, 654, 1519, -335, 15, 16, 985, -335, 865, 866,
1411 276, 486, 357, 833, 206, 207, 849, 205, 342, 1532,
1412 961, 329, 277, 834, 856, 352, 153, 57, 966, 603,
1413 968, 204, 89, 619, 897, 972, 356, 835, 1543, 879,
1414 -335, 653, 629, 1115, -277, -277, 360, 856, 693, 1170,
1415 278, 1172, 986, 1117, 361, 619, 492, 829, 205, 384,
1416 -271, 1560, 241, 401, 404, 1119, 850, 852, 1449, 655,
1417 196, 1506, 204, 652, 830, -268, 655, 88, 908, 1193,
1418 913, 914, 121, 372, 358, -123, 535, 126, 127, 1116,
1419 742, 459, 329, 1503, 405, 126, 127, 89, 205, 1118,
1420 483, 1121, 173, 831, 91, 1201, 193, 1179, 1181, 284,
1421 228, 1120, 204, 934, 1450, 1388, 606, 1393, 406, 205,
1422 933, 914, 652, 524, 359, -584, 524, 1025, 414, 94,
1423 109, 110, 477, 460, -7, 416, 126, 127, 27, 1504,
1424 129, 130, 401, 782, 136, 1334, 27, 728, 129, 130,
1425 1013, 1014, 653, 1015, 493, 1380, 524, 87, 717, 57,
1426 447, 448, 493, 196, 494, 455, 456, 136, 22, 416,
1427 417, 991, 494, 556, 557, 429, 1240, 979, 980, 430,
1428 655, 1244, 205, 111, 112, 772, 1008, 27, 488, 129,
1429 130, 58, 1181, 58, 489, -336, 90, 15, 16, 193,
1430 58, 1229, 1231, 490, -124, 475, 1235, 653, 329, 329,
1431 491, 329, 90, 653, 499, 872, 91, 346, 350, 71,
1432 509, 71, 508, 794, 510, 743, 511, 977, 71, -336,
1433 512, 1280, 91, -336, 743, 655, 1189, 1190, 531, 1192,
1434 744, 655, 744, 1360, 1361, 1471, 572, 1273, 617, 744,
1435 736, 476, 736, 8, 9, 276, 1095, 126, 127, 736,
1436 620, 1492, 621, 126, 127, 842, -336, 990, 1000, 447,
1437 1430, 94, 95, 96, 652, 126, 127, 1141, 1142, 1143,
1438 637, 652, 777, 623, 199, 200, 1052, 153, 153, 153,
1439 14, 7, 8, 231, 10, 88, 1346, 1347, 343, 624,
1440 237, 88, 343, 1153, 625, 1328, 129, 130, 343, 1335,
1441 129, 130, 1356, 21, 777, 89, 129, 130, 455, 1431,
1442 653, 89, 24, 27, 693, 97, 98, 99, 129, 130,
1443 22, 639, 899, -102, 486, 15, 16, 232, 638, 241,
1444 233, 666, 151, 1354, 916, 28, 29, -6, 655, -44,
1445 850, 852, 655, 669, -44, 742, 653, 742, 777, 329,
1446 1401, 1402, 653, 742, 742, -44, 706, -102, 687, 233,
1447 794, -102, 1166, 1167, 1168, 447, 1435, 33, 710, 1411,
1448 1412, 644, 151, 88, 655, 652, 237, 753, 1100, 1101,
1449 655, 1365, 754, 872, 126, 127, 755, 756, 416, 416,
1450 763, 781, 693, 89, -102, 991, 764, 783, 94, 109,
1451 110, 784, 626, 627, 628, 676, 777, 786, 15, 16,
1452 522, 841, 329, -385, 57, 843, 57, 416, 1155, 653,
1453 655, 857, 859, 57, 1157, 1158, 400, 403, 1155, 1160,
1454 652, 653, 1158, 861, 882, 27, 652, 129, 130, 772,
1455 893, -385, -385, 883, 8, 9, -385, 655, 1196, 400,
1456 403, 833, 111, 112, 58, 892, 8, 9, 895, 655,
1457 896, 834, 708, 21, 653, 903, 653, 904, 7, 126,
1458 127, 10, 506, 507, 917, 835, 281, 373, 374, 10,
1459 401, 782, 71, -271, 237, 922, 419, 515, 743, 343,
1460 516, 990, 655, 517, 655, -795, 527, 129, 130, 940,
1461 532, 343, -100, 744, 15, 16, 329, 22, 571, 129,
1462 130, 941, 958, 736, 232, 22, 942, 963, 656, 150,
1463 1473, 233, 28, 29, 948, 1418, 962, 151, 151, 151,
1464 28, 299, 686, 486, 969, 967, -100, 1428, 1009, 1026,
1465 -100, 1027, 1028, 652, 934, 1279, 233, 652, 1029, 653,
1466 151, 151, 151, 1030, 33, 1031, 115, 116, 117, 1129,
1467 1032, 1033, 33, 416, 416, 1034, 416, 416, 1035, 416,
1468 629, -122, 693, -100, 90, 1210, 1211, 655, 1036, 652,
1469 899, 1038, 1366, 1039, 772, 652, 1041, 8, 9, 1042,
1470 386, 12, 13, 1418, 91, 689, 1043, 14, 1210, 1211,
1471 655, 1044, 522, 1549, 1045, 522, 1046, 234, 58, 774,
1472 118, 119, 17, 1047, 18, 19, 759, 1057, 742, 1059,
1473 21, -545, 522, 90, -545, 652, 1060, 973, 1062, 24,
1474 1496, 1061, 1418, 1070, 90, 522, 71, 1068, 27, 801,
1475 129, 130, 743, 91, 1069, 457, 15, 16, 678, 1076,
1476 1078, -385, 652, 1079, 91, 416, 416, 744, 1081, 1091,
1477 861, 1088, 760, 1418, 652, 823, 1094, 736, 1316, 1114,
1478 1132, 840, -545, 974, -545, -545, 1138, -545, 777, -385,
1479 -385, 690, 1156, 1161, 1337, 1338, 1165, 57, -545, 1174,
1480 -545, 553, 554, 555, 556, 557, 71, 652, 1169, 652,
1481 1022, 1023, 1024, 1182, 515, 516, -545, -545, 1175, 1176,
1482 -545, 205, 1177, 1186, 1187, 401, 404, 1315, 1195, 1180,
1483 1191, 1203, -545, 1468, 196, 204, 1311, 1310, 1206, 426,
1484 492, 1197, 1387, 965, 1387, 1198, 1199, 1202, 401, 1227,
1485 281, 373, 374, 10, 153, 416, 416, 416, 1209, 1214,
1486 1228, 1237, 362, 363, 364, 1316, 400, 403, 1238, 1241,
1487 193, 1245, 1316, -626, 1267, 1268, 1274, 1010, 487, 1316,
1488 126, 1260, 742, 1277, 1278, 1283, 1284, 1285, 1286, 22,
1489 1220, 1326, 652, 71, 153, 1350, 232, 1351, 1352, 1353,
1490 71, 115, 718, 719, 28, 299, 1355, 71, 365, 1357,
1491 126, 127, 1364, 1180, 1315, 652, 366, 367, 239, 1374,
1492 1373, 1315, 416, 416, 1310, 343, 1375, 151, 1315, 721,
1493 1311, 1310, 1383, 129, 130, 1385, 33, 1311, 1310, 94,
1494 95, 96, 239, 209, 210, 211, 1398, 1420, 1421, 1425,
1495 1427, 57, 1442, 27, 582, 118, 119, 486, 94, 109,
1496 110, 27, 1429, 129, 130, 1444, 205, 151, 151, 151,
1497 1454, 239, 1447, 212, 1466, 1316, 1461, 583, 1482, 1316,
1498 239, 1483, 1494, 1495, 1510, 1497, 1514, 584, 1521, 329,
1499 1484, 27, 1531, 97, 98, 213, 1528, 585, 1535, 1537,
1500 586, 587, 653, 71, 278, 1461, 1534, 71, 1316, 1540,
1501 1289, 57, 111, 112, 113, 704, 705, 1545, 1550, 1316,
1502 1552, 1553, 1508, 1557, 1315, 1558, 239, 416, 1315, 1562,
1503 655, 1563, 1316, 278, 1310, 1, 71, 1311, 1310, 671,
1504 5, 214, 215, 216, 1097, 412, 1055, 71, 1470, 153,
1505 153, 153, 635, 413, 94, 109, 110, 1315, 1001, 239,
1506 71, 1461, 339, 1215, 1316, 1452, 1311, 1310, 1315, 393,
1507 1559, 1090, 153, 153, 153, 498, 1390, 1311, 1310, 939,
1508 522, 1315, 239, 94, 95, 96, 1089, 1163, 1144, 278,
1509 1311, 1310, 71, 1239, 1003, 1262, 1379, 828, 57, 115,
1510 116, 117, 469, 885, 1087, 57, 1148, 1149, 111, 112,
1511 450, 1316, 57, 1315, 1129, 79, 579, 94, 95, 96,
1512 370, 1396, 1311, 1310, 1325, 103, 115, 718, 719, 343,
1513 1516, 1493, 1487, 1541, 1058, 1162, 132, 97, 98, 71,
1514 1539, 1131, 141, 141, 1327, 141, 0, 79, 0, 0,
1515 1414, 27, 79, 118, 119, 401, 1227, 558, 0, 0,
1516 1315, 0, 515, 516, 0, 187, 0, 79, 0, 1311,
1517 1310, 97, 98, 239, 0, 220, 0, 0, 1139, 0,
1518 118, 119, 103, 650, 0, 0, 0, 0, 0, 349,
1519 351, 0, 0, 243, 103, 0, 559, 560, 198, 199,
1520 200, 561, 562, 563, 564, 14, 0, 0, 57, 276,
1521 0, 0, 57, 0, 0, 0, 103, 0, 0, 0,
1522 0, 0, 0, 19, 684, 0, 0, -277, 21, 0,
1523 0, 691, 650, 0, 239, 652, 0, 24, 276, 132,
1524 0, 57, -277, -277, 132, 0, 79, -277, 0, 0,
1525 141, 0, 57, 395, 141, 0, 0, 141, 141, 141,
1526 0, 0, 0, -277, 0, 57, 0, 7, 8, 9,
1527 10, 79, 0, 13, 0, -277, -277, 0, -277, 0,
1528 -277, 1248, 1249, 0, 1258, 1259, 0, 1261, 187, 187,
1529 187, 0, 0, 0, 276, 0, 769, 57, 198, 199,
1530 200, 0, 0, 0, 0, 14, 22, 239, 0, -277,
1531 -277, 0, 582, -277, 115, 718, 719, 187, 720, 27,
1532 0, 28, 29, 19, 0, -277, 0, 0, 21, 0,
1533 0, 0, 468, 0, 239, 905, 0, 24, 522, 153,
1534 103, 0, 721, 0, 57, 906, 362, 363, 364, 722,
1535 0, 141, 660, 33, 1194, 585, 0, 0, 907, 587,
1536 822, 0, 824, 825, 0, 0, 27, 0, 118, 119,
1537 0, 0, 0, 1331, 1332, 601, 8, 9, 0, 153,
1538 153, 153, 0, 0, 650, 1269, 1270, 1271, 1272, 103,
1539 495, 650, 526, 0, 0, 1275, 0, 876, 27, 0,
1540 366, 367, 683, 7, 8, 9, 10, 0, 0, 683,
1541 0, 289, 602, 0, 22, 7, 8, 9, 10, 239,
1542 515, 516, 0, 0, 0, 0, 0, 27, 0, 129,
1543 130, 126, 127, 103, 0, 239, 0, 580, 0, 495,
1544 495, 596, 22, 94, 109, 110, 0, 209, 210, 211,
1545 79, 0, 0, 0, 22, 27, 0, 28, 29, 0,
1546 582, 176, 0, 1405, 1406, 1407, 132, 27, 649, 28,
1547 29, 177, 128, 0, 683, 0, 0, 212, 0, 0,
1548 0, 178, 27, 905, 129, 130, 0, 0, 0, 33,
1549 132, 0, 0, 906, 179, 650, 103, 111, 112, 187,
1550 103, 33, 0, 585, 0, 0, 907, 587, 0, 0,
1551 141, 0, 0, 141, 0, 0, 1377, 692, 141, 0,
1552 0, 0, 7, 8, 9, 10, 0, 0, 227, 0,
1553 1438, 1439, 0, 0, 0, 0, 0, 0, 683, 0,
1554 683, 683, 0, 0, 0, 0, 0, 187, 0, 187,
1555 650, 187, 187, 187, 0, 0, 650, 0, 187, 0,
1556 0, 22, 0, 187, 0, 0, 187, 582, 683, 0,
1557 7, 8, 9, 10, 27, 683, 28, 29, 0, 0,
1558 0, 0, 79, 0, 770, 0, 0, 773, 0, 1426,
1559 905, 775, 776, 778, 779, 780, 0, 0, 0, 0,
1560 906, 0, 0, 0, 526, 527, 0, 0, 33, 22,
1561 585, 0, 0, 907, 587, 0, 232, 797, 0, 0,
1562 103, 103, 103, 103, 28, 29, 0, 0, 1051, 0,
1563 0, 801, 1459, 8, 9, 1526, 0, 12, 227, 0,
1564 0, 0, 1063, 14, 1064, 522, 1065, 0, 233, 826,
1565 0, 0, 0, 0, 0, 0, 33, 0, 17, 0,
1566 18, 1459, 0, 650, 0, 0, 21, 650, 0, 854,
1567 0, 0, 0, 0, 0, 24, 854, 582, 103, 0,
1568 495, 0, 0, 0, 27, 0, 129, 130, 0, 1093,
1569 0, 0, 580, 0, 495, 495, 0, 596, 0, 650,
1570 583, 0, 0, 0, 873, 650, 0, 0, 875, 0,
1571 584, 0, 239, 0, 239, 1520, 0, 1459, 0, 0,
1572 585, 0, 187, 586, 587, 0, 1112, 515, 516, 0,
1573 0, 0, 0, 0, 0, 987, 988, 9, 10, 1538,
1574 0, 0, 0, 0, 0, 650, 683, 0, 0, 0,
1575 0, 239, 0, 801, 551, 552, 553, 554, 555, 556,
1576 557, 187, 912, 187, 187, 220, 596, 0, 0, 0,
1577 0, 0, 650, 0, 22, 7, 126, 127, 10, 0,
1578 649, 13, 0, 0, 650, 0, 0, 27, 0, 28,
1579 29, 0, 0, 1147, 0, 989, 0, 0, 0, 0,
1580 0, 0, 0, 177, 187, 0, 683, 0, 912, 0,
1581 0, 0, 0, 178, 22, 187, 187, 650, 187, 650,
1582 683, 33, 683, 0, 683, 0, 179, 27, 0, 28,
1583 29, 0, 0, 0, 0, 692, 0, 239, 0, 0,
1584 0, 692, 0, 31, 132, 0, 0, 79, 0, 79,
1585 0, 0, 0, 32, 998, 79, 79, 0, 0, 0,
1586 0, 33, 0, 103, 0, 0, 34, 683, 0, 103,
1587 8, 9, 0, 0, 12, 13, 495, 495, 495, 0,
1588 14, 7, 8, 9, 10, 0, 0, 13, 495, 0,
1589 0, 0, 0, 0, 0, 17, 0, 18, 0, 0,
1590 0, 0, 650, 21, 683, 0, 0, 458, 199, 200,
1591 1048, 0, 24, 1216, 14, 1217, 0, 1218, 0, 239,
1592 22, 27, 683, 129, 130, 650, 582, 0, 0, 0,
1593 0, 0, 19, 27, 0, 28, 29, 21, 103, 0,
1594 0, 0, 797, 0, 0, 239, 24, 0, 692, 1102,
1595 0, 0, 854, 0, 0, 0, 0, 0, 0, 1103,
1596 827, 495, 0, 495, 0, 0, 0, 33, 0, 585,
1597 103, 0, 1104, 587, 495, 0, 103, 0, 873, 873,
1598 873, 0, 0, 0, 649, 1080, 1098, 126, 127, 0,
1599 854, 199, 200, 0, 198, 199, 200, 14, 239, 0,
1600 0, 14, 0, 0, 1282, 437, 439, 443, 0, 0,
1601 0, 0, 103, 0, 103, 82, 187, 187, 1106, 19,
1602 21, 0, 0, 0, 21, 105, 0, 0, 0, 24,
1603 854, 582, 0, 24, 0, 125, 133, 0, 27, 0,
1604 129, 130, 142, 142, 1134, 142, 0, 82, 880, 0,
1605 1140, 0, 82, 0, 583, 0, 0, 692, 1106, 0,
1606 0, 126, 127, 0, 584, 142, 13, 82, 0, 692,
1607 0, 0, 103, 0, 585, 221, 0, 593, 587, 0,
1608 0, 0, 229, 0, 0, 103, 0, 0, 998, 0,
1609 0, 683, 0, 683, 229, 683, 0, 103, 0, 0,
1610 0, 0, 692, 0, 692, 582, 0, 0, 0, 0,
1611 1159, 0, 27, 0, 129, 130, 0, 0, 0, 0,
1612 79, 0, 281, 8, 9, 10, 0, 0, 583, 0,
1613 103, 0, 103, 0, 0, 0, 0, 0, 584, 379,
1614 0, 0, 0, 0, 0, 0, 82, 0, 585, 0,
1615 142, 586, 587, 0, 142, 0, 0, 142, 142, 142,
1616 0, 22, 0, 0, 495, 495, 0, 495, 232, 0,
1617 0, 82, 0, 0, 0, 0, 28, 299, 0, 0,
1618 0, 0, 683, 0, 0, 0, 0, 854, 142, 142,
1619 142, 0, 0, 0, 0, 7, 8, 9, 10, 0,
1620 233, 483, 0, 0, 0, 0, 0, 0, 33, 0,
1621 854, 187, 187, 187, 187, 1106, 0, 142, 0, 187,
1622 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
1623 554, 555, 556, 557, 22, 0, 1106, 1106, 1106, 0,
1624 582, 0, 0, 0, 0, 650, 0, 27, 0, 28,
1625 29, 142, 8, 9, 0, 0, 12, 13, 0, 0,
1626 0, 0, 14, 905, 702, 0, 703, 187, 437, 439,
1627 443, 0, 141, 906, 79, 0, 0, 17, 0, 18,
1628 713, 33, 0, 585, 0, 21, 907, 587, 0, 229,
1629 142, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1630 0, 0, 0, 27, 0, 129, 130, 565, 0, 591,
1631 595, 598, 0, 0, 0, 0, 1134, 0, 0, 0,
1632 0, 187, 187, 731, 187, 7, 8, 732, 10, 386,
1633 12, 13, 0, 229, 0, 0, 14, 581, 0, 142,
1634 142, 597, 566, 0, 103, 0, 605, 0, 0, 0,
1635 82, 17, 0, 18, 19, 20, 0, 0, 0, 21,
1636 -492, 0, 0, 0, 22, 0, 379, 683, 24, 733,
1637 0, 643, 0, 0, 0, 0, 0, 27, 0, 28,
1638 29, 0, 0, 734, 0, 735, 0, 126, 127, 0,
1639 0, 199, 200, 31, 0, 0, 229, 14, 0, 142,
1640 229, 0, 0, 32, 0, 987, 988, 9, 10, 0,
1641 142, 33, 0, 142, 0, 0, 34, 0, 142, 0,
1642 21, 0, 0, 0, 0, 187, 912, 187, 0, 24,
1643 0, 582, 0, -492, 0, 0, 0, 0, 27, 0,
1644 129, 130, 0, 0, 22, 0, 0, 142, 0, 142,
1645 0, 142, 142, 142, 583, 0, 0, 27, 142, 28,
1646 29, 0, 0, 142, 584, 989, 142, 0, 0, 0,
1647 0, 0, 0, 177, 585, 0, 0, 586, 587, 0,
1648 0, 730, 82, 178, 0, 8, 9, 0, 386, 12,
1649 13, 33, 0, 689, 0, 14, 179, 0, 0, 0,
1650 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0,
1651 17, 0, 18, 19, 0, 0, 0, 526, 21, 0,
1652 229, 229, 229, 229, 0, 0, 0, 24, 0, 582,
1653 649, 0, 702, 703, 0, 713, 27, 0, 129, 130,
1654 0, 0, 0, 1106, 1106, 1106, 1250, 1251, 9, 10,
1655 0, 0, 583, 0, 0, 0, 0, 0, 103, 0,
1656 0, 0, 584, 0, 851, 853, 0, 0, 0, 0,
1657 0, 996, 585, 187, 0, 586, 587, 0, 229, 690,
1658 142, 0, 0, 0, 0, 22, 0, 0, 0, 0,
1659 7, 126, 127, 10, 142, 142, 227, 597, 27, 0,
1660 28, 29, 0, 0, 874, 0, 1252, 0, 0, 0,
1661 0, 0, 0, 0, 177, 0, 605, 0, 0, 0,
1662 0, 0, 142, 0, 178, 0, 0, 0, 0, 22,
1663 0, 910, 33, 591, 595, 0, 598, 179, 0, 0,
1664 0, 0, 27, 0, 28, 29, 7, 8, 9, 10,
1665 198, 199, 200, 125, 0, 0, 0, 14, 31, 0,
1666 0, 142, 597, 142, 142, 221, 597, 0, 32, 0,
1667 0, 0, 0, 0, 595, 19, 33, 0, 0, 0,
1668 21, 34, 0, 0, 730, 22, 0, 0, 0, 24,
1669 0, 582, 0, 0, 0, 0, 0, 0, 27, 0,
1670 28, 29, 0, 0, 142, 0, 0, 0, 597, 0,
1671 0, 0, 0, 0, 177, 142, 142, 0, 142, 0,
1672 126, 127, 0, 0, 178, 227, 281, 8, 9, 10,
1673 0, 0, 33, 437, 439, 443, 0, 1392, 0, 0,
1674 0, 0, 0, 0, 133, 0, 0, 82, 0, 82,
1675 0, 0, 0, 0, 999, 82, 82, 0, 595, 0,
1676 0, 0, 0, 229, 582, 22, 50, 0, 0, 229,
1677 0, 27, 232, 129, 130, 443, 142, 142, 142, 0,
1678 28, 299, 1250, 126, 127, 10, 0, 583, 142, 0,
1679 0, 0, 0, 50, 50, 0, 149, 584, 50, 0,
1680 0, 0, 0, 50, 486, 996, 0, 585, 0, 0,
1681 586, 587, 33, 0, 0, 0, 50, 0, 50, 0,
1682 0, 22, 549, 550, 551, 552, 553, 554, 555, 556,
1683 557, 1066, 0, 1067, 27, 0, 28, 29, 229, 0,
1684 0, 235, 1252, 0, 1073, 0, 0, 0, 851, 853,
1685 31, 0, 281, 8, 9, 10, 0, 0, 0, 0,
1686 32, 142, 0, 142, 0, 0, 0, 0, 33, 0,
1687 229, 0, 0, 34, 142, 0, 229, 0, 874, 874,
1688 874, 0, 0, 0, 0, 605, 851, 853, 0, 0,
1689 376, 22, 0, 0, 376, 376, 0, 50, 232, 0,
1690 0, 50, 0, 235, 0, 50, 28, 299, 149, 149,
1691 149, 0, 229, 0, 229, 0, 142, 142, 597, 0,
1692 0, 0, 50, 0, 0, 0, 0, 0, 702, 703,
1693 437, 439, 443, 0, 0, 0, 713, 0, 33, 50,
1694 50, 149, 0, 0, 0, 0, 0, 0, 0, 235,
1695 0, 0, 0, 437, 439, 443, 0, 0, 874, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 50, 0,
1697 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 730, 1256, 229, 0, 0, 999, 281,
1699 126, 127, 10, 0, 0, 0, 0, 229, 0, 0,
1700 0, 0, 50, 0, 0, 0, 6, 0, 7, 8,
1701 9, 10, 11, 12, 13, 0, 0, 0, 0, 14,
1702 82, 0, 0, 0, 0, 0, 0, 0, 22, 0,
1703 229, 0, 229, 0, 17, 232, 18, 19, 702, 703,
1704 0, 713, 21, 28, 299, 0, 0, 22, 0, 0,
1705 0, 24, 0, 0, 411, 0, 0, 0, 0, 0,
1706 27, 0, 28, 29, 142, 142, 30, 142, 0, 0,
1707 0, 523, 0, 0, 0, 33, 31, 7, 8, 9,
1708 10, 1066, 1067, 851, 853, 0, 32, 0, 376, 1073,
1709 0, 0, 0, 0, 33, 0, 235, 0, 0, 34,
1710 0, 50, 0, 0, 0, 0, 851, 853, 0, 0,
1711 0, 142, 142, 142, 142, 597, 22, 376, 0, 142,
1712 0, 7, 126, 127, 10, 730, 0, 13, 0, 27,
1713 0, 28, 29, 0, 0, 1386, 874, 874, 874, 0,
1714 0, 376, 0, 0, 0, 177, 0, 0, 0, 0,
1715 50, 0, 730, 0, 0, 178, 0, 0, 77, 0,
1716 22, 50, 0, 33, 50, 0, 0, 142, 179, 50,
1717 0, 0, 142, 27, 82, 28, 29, 0, 0, 0,
1718 0, 0, 0, 0, 0, 77, 77, 0, 77, 146,
1719 77, 1066, 1067, 0, 1073, 77, 0, 0, 50, 147,
1720 50, 0, 149, 149, 149, 0, 0, 33, 77, 50,
1721 77, 0, 148, 0, 50, 0, 0, 50, 0, 0,
1722 443, 142, 142, 573, 142, 281, 373, 374, 10, 0,
1723 574, 0, 0, 50, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 229, 543, 544, 545, 546, 547,
1725 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
1726 437, 439, 443, 523, 22, 0, 523, 0, 0, 0,
1727 0, 575, 0, 0, 0, 0, 0, 27, 0, 28,
1728 299, 523, 523, 523, 0, 0, 240, 0, 0, 77,
1729 0, 0, 0, 77, 0, 0, 523, 77, 0, 0,
1730 77, 77, 77, 0, 0, 0, 0, 0, 0, 0,
1731 0, 576, 0, 0, 77, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 142, 597, 142, 0, 0,
1733 0, 77, 77, 77, 0, 0, 0, 0, 0, 0,
1734 0, 0, 235, 7, 8, 9, 10, 198, 199, 200,
1735 0, 0, 0, 0, 14, 523, 0, 0, 0, 407,
1736 77, 0, 0, 0, 0, 0, 0, 319, 0, 319,
1737 0, 319, 19, 50, 0, 0, 0, 21, 0, 0,
1738 435, 0, 22, 0, 0, 0, 24, 0, 582, 0,
1739 0, 0, 0, 452, 77, 27, 0, 28, 29, 0,
1740 0, 0, 0, 874, 0, 0, 0, 588, 588, 588,
1741 0, 905, 50, 50, 50, 50, 319, 0, 319, 0,
1742 0, 906, 0, 8, 9, 0, 386, 12, 13, 33,
1743 0, 585, 0, 14, 907, 587, 0, 0, 0, 0,
1744 0, 126, 127, 874, 874, 874, 483, 0, 17, 0,
1745 18, 19, 0, 0, 0, 50, 21, 0, 229, 50,
1746 0, 0, 0, 0, 0, 642, 50, 50, 643, 50,
1747 0, 0, 0, 142, 27, 0, 129, 130, 0, 0,
1748 0, 0, 0, 0, 0, 582, 0, 0, 0, 604,
1749 0, 0, 27, 77, 129, 130, 0, 0, 50, 0,
1750 50, 0, 0, 0, 0, 50, 50, 50, 583, 731,
1751 0, 7, 8, 732, 10, 386, 12, 13, 584, 0,
1752 0, 0, 14, 0, 0, 0, 0, 0, 585, 0,
1753 0, 586, 587, 523, 0, 0, 0, 17, 0, 18,
1754 19, 20, 77, 0, 0, 21, -493, 0, 0, 0,
1755 22, 0, 0, 77, 24, 733, 77, 643, 0, 0,
1756 0, 77, 0, 27, 0, 28, 29, 0, 0, 734,
1757 0, 735, 0, 0, 0, 0, 0, 0, 0, 31,
1758 513, 0, 0, 0, 0, 0, 0, 0, 0, 32,
1759 77, 0, 77, 0, 77, 77, 77, 33, 0, 0,
1760 0, 77, 34, 0, 0, 0, 77, 0, 0, 77,
1761 0, 0, 0, 0, 0, 0, 0, 0, 319, -493,
1762 0, 0, 0, 0, 0, 77, 0, 0, 0, 523,
1763 523, 523, 0, 0, 0, 235, 0, 7, 8, 9,
1764 10, 0, 0, 13, 0, 0, 0, 0, 0, 707,
1765 0, 0, 0, 0, 0, 712, 0, 0, 7, 126,
1766 127, 10, 588, 588, 483, 588, 0, 50, 50, 149,
1767 0, 0, 871, 0, 235, 0, 22, 0, 0, 0,
1768 751, 0, 0, 0, 0, 0, 757, 0, 0, 27,
1769 0, 28, 29, 0, 0, 0, 0, 22, 765, 766,
1770 0, 767, 0, 0, 0, 177, 681, 685, 0, 1128,
1771 27, 0, 28, 29, 685, 178, 0, 0, 0, 0,
1772 0, 0, 0, 33, 0, 0, 31, 0, 179, 588,
1773 0, 588, 588, 0, 588, 604, 32, 0, 0, 50,
1774 0, 0, 0, 0, 33, 0, 0, 0, 0, 34,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 235, 0, 0, 0, 0, 77, 0, 0, 0, 0,
1777 0, 50, 588, 0, 0, 0, 0, 0, 319, 685,
1778 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1779 555, 556, 557, 0, 862, 863, 0, 0, 0, 862,
1780 0, 0, 0, 0, 77, 77, 77, 77, 0, 0,
1781 0, 319, 0, 681, 0, 0, 798, 799, 0, 803,
1782 804, 805, 806, 807, 808, 809, 810, 811, 812, 813,
1783 814, 815, 816, 817, 818, 819, 820, 821, 0, 0,
1784 0, 0, 235, 685, 0, 685, 685, 77, 0, 0,
1785 0, 77, 7, 126, 127, 10, 588, 0, 77, 77,
1786 0, 77, 50, 50, 149, 149, 149, 0, 235, 0,
1787 50, 0, 0, 685, 0, 0, 0, 0, 0, 0,
1788 685, 0, 0, 0, 0, 0, 0, 1128, 1128, 1128,
1789 77, 22, 77, 0, 0, 0, 0, 77, 77, 77,
1790 0, 887, 889, 0, 27, 0, 28, 29, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 319, 50, 0,
1792 146, 0, 0, 50, 0, 50, 0, 0, 0, 588,
1793 147, 588, 0, 0, 0, 0, 0, 0, 33, 0,
1794 0, 0, 588, 148, 0, 0, 871, 871, 871, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 681, 0, 0, 0, 1018, 0, 1020, 0, 0, 0,
1797 0, 0, 50, 50, 0, 50, 154, 7, 8, 9,
1798 10, 189, 12, 190, 588, 588, 588, 0, 14, 0,
1799 0, 0, 0, 0, 0, 0, 188, 0, 0, 0,
1800 0, 0, 0, 17, 0, 18, 19, 0, 0, 0,
1801 0, 21, 0, 0, 0, 975, 22, 0, 0, 0,
1802 24, 0, 0, 0, 0, 0, 871, 0, 604, 27,
1803 0, 28, 29, 319, 319, 191, 319, 0, 1053, 1054,
1804 0, 1056, 0, 0, 0, 31, 0, 0, 0, 0,
1805 0, 685, 0, 0, 0, 32, 0, 0, 0, 77,
1806 77, 77, 0, 33, 0, 0, 0, 0, 34, 1074,
1807 0, 0, 0, 1037, 0, 0, 50, 50, 50, 0,
1808 0, 0, 0, 0, 0, 0, 0, 0, 154, 154,
1809 154, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1810 9, 1130, 0, 12, 227, 0, 0, 0, 0, 14,
1811 681, 685, 0, 0, 1108, 0, 0, 0, 0, 188,
1812 188, 444, 0, 0, 17, 685, 18, 685, 0, 685,
1813 0, 77, 21, 0, 7, 8, 9, 10, 0, 0,
1814 227, 24, 0, 0, 0, 0, 0, 0, 188, 0,
1815 27, 0, 129, 130, 1128, 0, 0, 0, 0, 0,
1816 0, 0, 1086, 77, 0, 0, 0, 0, 0, 0,
1817 0, 0, 685, 22, 7, 8, 9, 10, 1145, 588,
1818 588, 588, 588, 588, 319, 0, 27, 588, 28, 29,
1819 1150, 0, 0, 0, 1128, 1128, 1128, 1109, 0, 0,
1820 0, 0, 177, 0, 871, 871, 871, 0, 0, 685,
1821 0, 0, 178, 22, 0, 0, 0, 0, 0, 0,
1822 33, 496, 0, 0, 50, 179, 27, 685, 28, 29,
1823 0, 0, 0, 0, 8, 9, 0, 0, 12, 13,
1824 0, 0, 440, 0, 14, 0, 0, 0, 0, 0,
1825 0, 0, 441, 0, 77, 77, 77, 77, 77, 17,
1826 33, 18, 77, 0, 0, 442, 0, 21, 0, 1154,
1827 590, 590, 590, 0, 1200, 0, 24, 0, 0, 1130,
1828 1130, 1130, 0, 0, 0, 27, 0, 129, 130, 588,
1829 588, 0, 588, 0, 0, 0, 186, 0, 0, 0,
1830 0, 7, 8, 9, 10, 0, 0, 13, 0, 0,
1831 77, 0, 1213, 0, 0, 77, 0, 77, 681, 681,
1832 0, 238, 1183, 0, 242, 0, 0, 0, 0, 0,
1833 188, 0, 0, 0, 0, 0, 7, 8, 9, 10,
1834 22, 319, 483, 0, 0, 238, 0, 345, 0, 0,
1835 0, 0, 0, 27, 0, 28, 29, 0, 0, 0,
1836 0, 0, 0, 0, 77, 77, 0, 77, 0, 440,
1837 1265, 0, 0, 0, 1266, 22, 0, 0, 188, 441,
1838 188, 0, 444, 444, 444, 0, 0, 33, 27, 188,
1839 28, 29, 442, 0, 188, 0, 685, 188, 685, 0,
1840 685, 0, 0, 681, 177, 0, 0, 1281, 7, 8,
1841 9, 10, 681, 681, 178, 0, 0, 681, 0, 186,
1842 186, 186, 33, 0, 0, 0, 0, 179, 0, 451,
1843 0, 0, 1246, 1247, 546, 547, 548, 549, 550, 551,
1844 552, 553, 554, 555, 556, 557, 1329, 22, 186, 0,
1845 1330, 0, 0, 0, 0, 0, 0, 0, 681, 0,
1846 27, 0, 28, 29, 0, 0, 0, 0, 77, 77,
1847 77, 242, 1348, 1349, 0, 0, 177, 0, 0, 0,
1848 0, 0, 0, 0, 0, 238, 178, 685, 0, 0,
1849 0, 0, 0, 0, 33, 0, 0, 0, 0, 179,
1850 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1851 9, 836, 386, 12, 13, 0, 681, 1472, 0, 14,
1852 0, 0, 0, 0, 0, 590, 590, 0, 590, 0,
1853 0, 0, 1336, 0, 17, 590, 18, 19, 0, 0,
1854 0, 0, 21, 0, 0, 0, 1130, 0, 0, 0,
1855 0, 24, 0, 188, 681, 0, 0, 0, 0, 0,
1856 27, 0, 129, 130, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 238, 242, 0, 0,
1858 0, 1372, 0, 0, 0, 0, 1130, 1130, 1130, 0,
1859 0, 0, 909, 0, 909, 909, 0, 590, 0, 75,
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 1403, 1404, 77, 0, 0, 0,
1862 0, 0, 0, 1409, 0, 0, 140, 144, 0, 0,
1863 186, 75, 0, 0, 0, 909, 75, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 188, 188, 0, 188,
1865 0, 197, 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 8, 9, 0, 189, 12, 190, 0,
1867 0, 0, 685, 14, 0, 0, 0, 0, 186, 0,
1868 186, 0, 186, 186, 186, 188, 0, 0, 17, 186,
1869 18, 19, 0, 0, 186, 0, 21, 186, 0, 0,
1870 0, 0, 1463, 0, 0, 24, 0, 496, 496, 496,
1871 0, 0, 0, 0, 27, 0, 129, 130, 0, 590,
1872 731, 0, 7, 8, 732, 10, 386, 12, 13, 0,
1873 391, 0, 0, 14, 394, 0, 0, 0, 396, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
1875 18, 19, 20, 0, 0, 75, 21, -495, 0, 0,
1876 0, 22, 0, 0, 0, 24, 733, 0, 643, 0,
1877 0, 0, 140, 144, 27, 0, 28, 29, 0, 0,
1878 734, 0, 735, 0, 0, 0, 0, 0, 0, 0,
1879 31, 0, 590, 0, 590, 0, 0, 0, 0, 0,
1880 32, 0, 0, 0, 0, 590, 0, 0, 33, 590,
1881 590, 590, 0, 34, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 681, 0, 0, 0, 0, 0,
1883 -495, 0, 0, 0, 0, 484, 0, 0, 238, 242,
1884 0, 0, 0, 0, 0, 0, 0, 909, 909, 1107,
1885 0, 0, 0, 186, 540, 541, 542, 543, 544, 545,
1886 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
1887 556, 557, 688, 0, 281, 8, 9, 10, 386, 12,
1888 282, 283, 284, 689, 285, 14, 0, 0, 0, 1107,
1889 0, 0, 186, 0, 186, 186, 0, 0, 0, 0,
1890 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
1891 289, 290, 291, 22, 292, 293, 0, 24, 0, 188,
1892 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
1893 0, 0, 0, 300, 613, 186, 0, 0, 0, 301,
1894 0, 0, 302, 0, 0, 0, 186, 186, 0, 186,
1895 303, 304, 305, 1422, 0, 0, 0, 0, 306, 307,
1896 308, 0, 0, 0, 0, 309, 0, 0, 0, 690,
1897 0, 0, 242, 0, 0, 0, 0, 0, 0, 0,
1898 0, -763, 0, 310, 0, 186, 0, 0, 0, 0,
1899 0, 0, 0, 0, 664, 836, 836, 665, 836, 0,
1900 0, 0, 667, 0, 1423, 536, 537, 538, 539, 540,
1901 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
1902 551, 552, 553, 554, 555, 556, 557, 0, 0, 0,
1903 0, 394, 0, 396, 0, 0, 0, 0, 0, 0,
1904 0, 0, 909, 909, 1107, 1107, 1107, 484, 0, 731,
1905 909, 7, 8, 732, 10, 386, 12, 13, 0, 0,
1906 0, 0, 14, 0, 0, 0, 748, 1107, 1107, 1107,
1907 0, 0, 0, 0, 0, 0, 0, 17, 0, 18,
1908 19, 20, 101, 0, 0, 21, -494, 0, 0, 0,
1909 22, 0, 120, 101, 24, 733, 0, 643, 188, 101,
1910 101, 0, 101, 27, 0, 28, 29, 0, 0, 734,
1911 0, 735, 0, 0, 0, 238, 242, 238, 0, 31,
1912 0, 0, 0, 0, 0, 0, 0, 0, 19, 32,
1913 0, 0, 219, 0, 0, 0, 0, 33, 0, 0,
1914 0, 0, 34, 0, 0, 0, 0, 186, 186, 1105,
1915 0, 0, 909, 909, 238, 909, 0, 0, 0, -494,
1916 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
1917 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
1918 556, 557, 0, 0, 0, 0, 0, 0, 0, 1105,
1919 0, 369, 0, 120, 0, 0, 101, 0, 0, 0,
1920 101, 101, 0, 0, 0, 0, 0, 101, 0, 101,
1921 101, 101, 0, 0, 101, 101, 101, 0, 0, 186,
1922 0, 6, 0, 7, 8, 9, 10, 11, 12, 13,
1923 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
1924 451, 0, 0, 0, 0, 0, 911, 15, 16, 17,
1925 0, 18, 19, 20, 0, 0, 188, 21, 188, 0,
1926 0, 0, 22, 0, 0, 23, 24, 25, 0, 26,
1927 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1928 0, 30, 0, 0, 0, 0, 0, 0, 466, 101,
1929 0, 31, 954, 0, 0, 0, 0, 0, 0, 664,
1930 665, 32, 667, 0, 0, 0, 0, 0, 101, 33,
1931 0, 0, 0, 0, 34, 0, 0, 0, 0, 0,
1932 35, 0, 238, 0, 0, 0, 0, 0, 0, 0,
1933 0, 748, 0, 748, 444, 0, 0, 0, 997, 1004,
1934 748, 0, 186, 186, 186, 186, 1105, 101, 1212, 0,
1935 186, 542, 543, 544, 545, 546, 547, 548, 549, 550,
1936 551, 552, 553, 554, 555, 556, 557, 1105, 1105, 1105,
1937 0, 0, 0, 0, 444, 444, 444, 0, 0, 0,
1938 161, 0, 7, 8, 9, 10, 11, 12, 13, 0,
1939 0, 0, 0, 14, 101, 0, 101, 101, 186, 0,
1940 0, 0, 0, 0, 188, 0, 15, 16, 17, 0,
1941 18, 19, 20, 0, 0, 0, 21, 0, 0, 0,
1942 0, 22, 0, 101, 23, 24, 25, 0, 26, 0,
1943 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1944 30, 0, 0, 0, 0, 0, 0, 101, 0, 0,
1945 31, 0, 186, 186, 0, 186, 0, 0, 0, 0,
1946 32, 0, 0, 101, 0, 0, 0, 101, 33, 0,
1947 101, 0, 0, 34, 0, 101, 0, 0, 0, 35,
1948 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
1949 551, 552, 553, 554, 555, 556, 557, 0, 0, 0,
1950 140, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1951 0, 0, 0, 0, 0, 0, 0, 0, 0, 1342,
1952 0, -449, -449, -449, -449, -449, -449, -449, 0, 0,
1953 -449, 0, -449, 0, 0, 0, 101, 0, 723, 0,
1954 0, 0, 0, -449, 0, -449, -449, 0, 0, 0,
1955 -449, 0, 0, 0, 0, -449, 186, 0, 186, 0,
1956 -449, 0, 0, 101, -449, 0, -449, 0, 0, 0,
1957 0, 0, 997, -449, 0, -449, -449, -449, -449, -449,
1958 0, -449, -449, -449, -449, -449, -449, -449, -449, -449,
1959 -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
1960 -449, -449, -449, -449, 748, -449, -449, -449, 0, -449,
1961 -449, -449, -449, -449, -449, 0, -449, -449, 0, 0,
1962 0, 0, 1343, 0, 0, 0, 0, -449, -449, -449,
1963 0, -449, 0, 0, 1105, 0, 0, 101, 0, -357,
1964 8, 9, -357, -357, 12, 227, 0, 0, 101, 101,
1965 14, 101, 101, 0, 0, 0, 0, 0, 0, 0,
1966 0, 0, 0, 0, 0, 17, 0, 18, -357, 0,
1967 0, 0, 0, 21, 1105, 1105, 1105, 0, -357, 0,
1968 0, 0, 24, 0, 582, 0, 0, 0, 0, 0,
1969 0, 27, 0, 129, 130, 394, 396, 0, 244, 0,
1970 0, 8, 9, 484, 186, 12, 13, 583, 0, 0,
1971 120, 14, 0, 0, 0, 0, 0, 584, 0, 0,
1972 0, 0, 219, 0, 0, -357, 17, 585, 18, 0,
1973 586, 587, 0, 0, 21, 0, 245, 246, 0, 0,
1974 0, 723, 0, 24, 0, 247, 0, 0, 0, 0,
1975 0, 1257, 27, 0, 129, 130, 1257, 248, 748, 0,
1976 0, 249, 250, 251, 252, 253, 254, 255, 256, 257,
1977 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
1978 268, 269, 0, 0, 270, 271, 272, 0, 0, 273,
1979 0, 0, 274, 0, 0, 0, 0, 0, 723, 0,
1980 0, 101, 0, 0, 0, 664, 665, 622, 667, 275,
1981 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1982 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1983 555, 556, 557, 101, 101, 101, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 101, 1394, 0, 1293, 1294,
1985 1295, 10, 386, 12, 282, 283, 284, 0, 285, 14,
1986 1296, 0, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
1987 1305, 1306, 15, 16, 17, 286, 18, 19, 20, 0,
1988 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
1989 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
1990 27, 0, 1307, 299, 676, 0, 1308, 300, 0, 0,
1991 1391, 0, 0, 301, 0, 0, 302, 0, 101, 0,
1992 101, 0, 0, 0, 303, 304, 305, 0, 0, 0,
1993 0, 101, 306, 307, 308, 0, 0, 0, 0, 309,
1994 0, 1309, 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 1395, 310, 1292, 0,
1996 1293, 1294, 1295, 10, 386, 12, 282, 283, 284, 0,
1997 285, 14, 1296, 0, 1297, 1298, 1299, 1300, 1301, 1302,
1998 1303, 1304, 1305, 1306, 15, 16, 17, 286, 18, 19,
1999 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2000 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2001 297, 298, 27, 0, 1307, 299, 676, 0, 1308, 300,
2002 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2003 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2004 723, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2005 0, 309, 0, 1309, 0, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 101, 0, 310,
2007 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2008 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
2009 556, 557, 0, 0, 0, 0, 0, 518, 0, 281,
2010 8, 9, 10, 386, 12, 282, 283, 284, 689, 285,
2011 14, 0, 0, 0, 0, 0, 0, 0, 0, 1178,
2012 0, 101, 101, 0, 101, 17, 286, 18, 19, 20,
2013 0, 287, 288, 21, 0, 289, 290, 291, 22, 292,
2014 293, 0, 24, 0, 582, 0, 294, 295, 296, 297,
2015 298, 27, 0, 28, 299, -285, 0, 0, 300, 0,
2016 0, 0, 0, 0, 301, 0, 0, 867, 0, 0,
2017 0, 0, 0, 0, 0, 303, 304, 868, 0, 0,
2018 0, 0, 723, 306, 307, 308, 0, 585, 0, 0,
2019 869, 587, 0, 0, 690, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 310, 723,
2021 518, 0, 7, 8, 9, 10, 386, 12, 282, 283,
2022 284, 689, 285, 14, 0, 0, 0, 101, 0, 101,
2023 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2024 18, 19, 20, 0, 287, 288, 21, 0, 289, 290,
2025 291, 22, 292, 293, 0, 24, 0, 582, 0, 294,
2026 295, 296, 297, 298, 27, 0, 28, 29, -285, 0,
2027 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2028 1125, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2029 1126, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2030 585, 0, 0, 1127, 587, 0, 800, 690, 281, 8,
2031 9, 10, 386, 12, 282, 283, 284, 0, 285, 14,
2032 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 17, 286, 18, 19, 20, 0,
2034 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2035 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2036 27, 0, 28, 299, 1455, 0, -753, 300, 0, 0,
2037 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2038 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2039 0, 0, 306, 307, 308, 0, 0, 0, 679, 309,
2040 788, 789, 790, 10, 0, 12, 500, 283, 284, 0,
2041 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2042 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2043 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2044 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2045 297, 298, 27, 0, 791, 792, 680, 0, 0, 300,
2046 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2047 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2048 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2049 0, 309, 793, 679, 0, 788, 789, 790, 10, 0,
2050 12, 500, 283, 284, 0, 285, 14, 0, 938, 310,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2052 0, 17, 286, 18, 0, 20, 0, 287, 288, 21,
2053 0, 289, 290, 291, 22, 292, 293, 0, 24, 0,
2054 0, 0, 294, 295, 296, 297, 298, 27, 0, 791,
2055 792, 680, 0, 0, 300, 0, 0, 0, 0, 0,
2056 301, 0, 0, 302, 0, 0, 0, 0, 0, 0,
2057 0, 303, 304, 305, 0, 0, 0, 0, 0, 306,
2058 307, 308, 0, 0, 0, 0, 309, 793, 679, 0,
2059 788, 789, 790, 10, 0, 12, 500, 283, 284, 0,
2060 285, 14, 0, 0, 310, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2062 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2063 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2064 297, 298, 27, 0, 791, 792, 680, 0, 0, 300,
2065 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2066 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2067 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2068 679, 309, 788, 789, 790, 10, 0, 12, 500, 283,
2069 284, 0, 285, 14, 0, 0, 0, 0, -453, 310,
2070 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2071 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2072 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2073 295, 296, 297, 298, 27, 0, 791, 792, 680, 0,
2074 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2075 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2076 305, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2077 0, 0, 679, 309, 281, 8, 9, 10, 0, 12,
2078 500, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2079 1226, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2080 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2081 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2082 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2083 680, 0, 0, 300, 0, 0, 0, 0, 0, 301,
2084 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2085 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2086 308, 0, 0, 0, 0, 309, 0, 0, 518, 0,
2087 281, 8, 9, 10, 1230, 12, 282, 283, 284, 0,
2088 285, 14, 0, 310, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2090 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2091 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2092 297, 298, 27, 0, 28, 299, -285, 0, 0, 300,
2093 0, 0, 0, 0, 0, 301, 0, 0, 519, 0,
2094 0, 0, 0, 0, 0, 0, 303, 304, 520, 0,
2095 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2096 679, 521, 281, 8, 9, 10, 0, 12, 500, 283,
2097 284, 0, 285, 14, 0, 0, 0, 0, 0, 310,
2098 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2099 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2100 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2101 295, 296, 297, 298, 27, 0, 28, 299, 680, 0,
2102 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2103 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2104 305, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2105 0, 0, 800, 309, 281, 8, 9, 10, 0, 12,
2106 500, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2107 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2108 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2109 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2110 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2111 0, 0, 0, 300, -753, 0, 0, 0, 0, 301,
2112 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2113 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2114 308, 0, 0, 0, 518, 309, 7, 8, 9, 10,
2115 0, 12, 282, 283, 284, 0, 285, 14, 0, 0,
2116 0, 0, 0, 310, 0, 0, 0, 0, 0, 0,
2117 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2118 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2119 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2120 28, 29, -285, 0, 0, 300, 0, 0, 0, 0,
2121 0, 301, 0, 0, 1432, 0, 0, 0, 0, 0,
2122 0, 0, 303, 304, 1433, 0, 0, 0, 0, 0,
2123 306, 307, 308, 0, 0, 0, 1522, 1434, 281, 8,
2124 9, 10, 0, 12, 282, 283, 284, 0, 285, 14,
2125 0, 0, 0, 0, 0, 310, 0, 0, 0, 0,
2126 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2127 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2128 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2129 27, 0, 28, 299, 0, 0, -174, 300, 0, 0,
2130 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2131 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2132 0, 0, 306, 307, 308, 0, 0, 0, 800, 309,
2133 281, 8, 9, 10, 0, 12, 500, 283, 284, 0,
2134 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2135 0, 0, 0, 0, 0, 0, 17, 286, 18, 0,
2136 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2137 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2138 297, 298, 27, 0, 28, 299, 0, 0, 0, 300,
2139 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2140 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2141 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2142 886, 309, 281, 8, 9, 10, 0, 12, 500, 283,
2143 284, 0, 285, 14, 0, 0, 0, -753, 0, 310,
2144 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2145 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2146 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2147 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2148 0, 300, 0, 0, 0, 0, 0, 301, 0, 0,
2149 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2150 305, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2151 0, 0, 888, 309, 281, 8, 9, 10, 0, 12,
2152 500, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2153 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2154 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2155 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2156 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2157 0, 0, 0, 300, 0, 0, 0, 0, 0, 301,
2158 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2159 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2160 308, 0, 0, 0, 1408, 309, 281, 8, 9, 10,
2161 0, 12, 500, 283, 284, 0, 285, 14, 0, 0,
2162 0, 0, 0, 310, 0, 0, 0, 0, 0, 0,
2163 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2164 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2165 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2166 28, 299, 0, 0, 0, 300, 0, 0, 0, 0,
2167 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2168 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2169 306, 307, 308, 281, 8, 9, 10, 309, 12, 500,
2170 283, 284, 0, 285, 14, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 310, 0, 0, 0, 17,
2172 286, 18, 0, 20, 0, 287, 288, 21, 0, 289,
2173 290, 291, 22, 292, 293, 0, 24, 0, 0, 0,
2174 294, 295, 296, 297, 298, 27, 0, 28, 299, 0,
2175 0, 0, 300, 0, 0, 0, 0, 0, 301, 0,
2176 0, 302, 0, 0, 0, 0, 0, 0, 0, 303,
2177 304, 305, 0, 0, 0, 0, 0, 306, 307, 308,
2178 0, 0, 0, 0, 309, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 310, 839, 1293, 1294, 1295, 10, 386, 12,
2181 282, 283, 284, 0, 285, 14, 1296, 0, 1297, 1298,
2182 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 15, 16,
2183 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
2184 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2185 0, 294, 295, 296, 297, 298, 27, 0, 1307, 299,
2186 676, 0, 1308, 300, 0, 0, 0, 0, 0, 301,
2187 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2188 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2189 308, 0, 0, 0, 0, 309, 0, 1309, 0, 0,
2190 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 1399, 310, 1293, 1294, 1295, 10, 386, 12,
2192 282, 283, 284, 0, 285, 14, 1296, 0, 1297, 1298,
2193 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 15, 16,
2194 17, 286, 18, 19, 20, 0, 287, 288, 21, 0,
2195 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2196 0, 294, 295, 296, 297, 298, 27, 0, 1307, 299,
2197 676, 0, 1308, 300, 0, 0, 0, 0, 0, 301,
2198 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2199 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2200 308, 0, 0, 0, 0, 309, 0, 1309, 0, 0,
2201 1293, 1294, 1295, 10, 386, 12, 282, 283, 284, 0,
2202 285, 14, 1296, 310, 1297, 1298, 1299, 1300, 1301, 1302,
2203 1303, 1304, 1305, 1306, 15, 16, 17, 286, 18, 19,
2204 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2205 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2206 297, 298, 27, 0, 1307, 299, 1499, 0, 1308, 300,
2207 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2208 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2209 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2210 0, 309, 0, 1309, 0, 0, 1293, 1294, 1295, 10,
2211 386, 12, 282, 283, 284, 0, 285, 14, 1296, 310,
2212 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
2213 15, 16, 17, 286, 18, 19, 20, 0, 287, 288,
2214 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2215 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2216 1307, 299, 0, 0, 1308, 300, 0, 0, 0, 0,
2217 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2218 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2219 306, 307, 308, 0, 0, 0, 0, 309, 0, 1309,
2220 281, 8, 9, 10, 386, 12, 282, 283, 284, 689,
2221 285, 14, 0, 0, 0, 310, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 17, 286, 18, 19,
2223 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2224 292, 293, 0, 24, 0, 582, 0, 294, 295, 296,
2225 297, 298, 27, 0, 28, 299, 0, 0, 0, 300,
2226 0, 0, 0, 0, 0, 301, 0, 0, 867, 0,
2227 0, 0, 0, 0, 0, 0, 303, 304, 868, 0,
2228 0, 0, 0, 0, 306, 307, 308, 0, 585, 0,
2229 0, 869, 587, 0, 0, 690, 7, 8, 9, 10,
2230 386, 12, 282, 283, 284, 689, 285, 14, 0, 310,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 17, 286, 18, 19, 20, 0, 287, 288,
2233 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2234 0, 582, 0, 294, 295, 296, 297, 298, 27, 0,
2235 28, 29, 0, 0, 0, 300, 0, 0, 0, 0,
2236 0, 301, 0, 0, 1125, 0, 0, 0, 0, 0,
2237 0, 0, 303, 304, 1126, 0, 0, 0, 0, 0,
2238 306, 307, 308, 0, 585, 0, 0, 1127, 587, 0,
2239 0, 690, 281, 8, 9, 10, 0, 12, 282, 283,
2240 284, 0, 285, 14, 0, 310, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 0, 0, 0, 17, 286,
2242 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2243 291, 22, 292, 293, 0, 24, 0, 582, 0, 294,
2244 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 301, 0, 0,
2246 867, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2247 868, 0, 0, 0, 0, 0, 306, 307, 308, 0,
2248 585, 0, 0, 869, 587, 7, 8, 9, 10, 0,
2249 12, 282, 283, 284, 0, 285, 14, 0, 0, 0,
2250 0, 310, 0, 0, 0, 0, 0, 0, 0, 0,
2251 0, 17, 286, 18, 0, 20, 0, 287, 288, 21,
2252 0, 289, 290, 291, 22, 292, 293, 0, 24, 0,
2253 582, 0, 294, 295, 296, 297, 298, 27, 0, 28,
2254 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 301, 0, 0, 1125, 0, 0, 0, 0, 0, 0,
2256 0, 303, 304, 1126, 0, 0, 0, 0, 0, 306,
2257 307, 308, 0, 585, 0, 0, 1127, 587, 281, 8,
2258 9, 10, 0, 12, 500, 283, 284, 0, 285, 14,
2259 0, 0, 0, 0, 310, 0, 0, 0, 0, 0,
2260 0, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2261 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2262 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2263 27, 0, 28, 299, 0, 0, 1376, 300, 0, 0,
2264 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2265 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2266 0, 0, 306, 307, 308, 0, 0, 0, 0, 309,
2267 281, 8, 9, 10, 386, 12, 282, 283, 284, 0,
2268 285, 14, 0, 0, 0, 0, 0, 310, 0, 0,
2269 0, 0, 0, 0, 0, 0, 17, 286, 18, 19,
2270 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2271 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2272 297, 298, 27, 0, 28, 299, 0, 0, 0, 0,
2273 0, 0, 0, 0, 0, 301, 0, 0, 302, 0,
2274 0, 0, 0, 0, 0, 0, 303, 304, 305, 0,
2275 0, 0, 0, 0, 306, 307, 308, 281, 8, 9,
2276 10, 309, 12, 282, 283, 284, 0, 285, 14, 0,
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 310,
2278 0, 0, 0, 17, 286, 18, 0, 20, 0, 287,
2279 288, 21, 0, 289, 290, 291, 22, 292, 293, 0,
2280 24, 0, 0, 0, 294, 295, 296, 297, 298, 27,
2281 0, 28, 299, 0, 0, 0, 300, 0, 0, 0,
2282 0, 0, 301, 0, 0, 302, 0, 0, 0, 0,
2283 0, 0, 0, 303, 304, 305, 0, 0, 0, 0,
2284 0, 306, 307, 308, 281, 8, 9, 10, 309, 12,
2285 500, 283, 284, 0, 285, 14, 0, 0, 0, 0,
2286 0, 0, 0, 0, 0, 0, 310, 0, 0, 0,
2287 17, 286, 18, 0, 20, 0, 287, 288, 21, 0,
2288 289, 290, 291, 22, 292, 293, 0, 24, 0, 0,
2289 0, 294, 295, 296, 297, 298, 27, 0, 28, 299,
2290 0, 0, 0, 300, 0, 0, 0, 0, 0, 301,
2291 0, 0, 302, 0, 0, 0, 0, 0, 0, 0,
2292 303, 304, 305, 0, 0, 0, 0, 0, 306, 307,
2293 308, 281, 8, 9, 10, 309, 12, 500, 283, 284,
2294 0, 285, 14, 0, 0, 0, 0, 0, 0, 0,
2295 0, 0, 0, 310, 0, 0, 0, 17, 286, 18,
2296 0, 20, 0, 287, 288, 21, 0, 289, 290, 291,
2297 22, 292, 293, 0, 24, 0, 0, 0, 294, 295,
2298 296, 297, 298, 27, 0, 28, 299, 533, 0, 0,
2299 0, 0, 0, 0, 0, 0, 301, 0, 0, 302,
2300 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
2301 0, 0, 0, 0, 0, 306, 307, 308, 281, 8,
2302 9, 10, 534, 12, 500, 283, 284, 0, 285, 14,
2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2304 310, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2305 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2306 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2307 27, 0, 28, 299, 0, 0, 0, 0, 0, 0,
2308 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2309 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2310 0, 0, 306, 307, 308, 0, 0, 0, 0, 309,
2311 570, 281, 8, 9, 10, 0, 12, 500, 283, 284,
2312 0, 285, 14, 0, 0, 0, 0, 310, 0, 0,
2313 0, 0, 0, 0, 0, 0, 0, 17, 286, 18,
2314 0, 20, 0, 287, 288, 21, 0, 289, 290, 291,
2315 22, 292, 293, 0, 24, 0, 0, 0, 294, 295,
2316 296, 297, 298, 27, 0, 28, 299, 0, 0, 0,
2317 300, 0, 0, 0, 0, 0, 301, 0, 0, 519,
2318 0, 0, 0, 0, 0, 0, 0, 303, 304, 520,
2319 0, 0, 0, 0, 0, 306, 307, 308, 1092, 8,
2320 9, 10, 521, 12, 500, 283, 284, 0, 285, 14,
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2322 310, 0, 0, 0, 17, 286, 18, 0, 20, 0,
2323 287, 288, 21, 0, 289, 290, 291, 22, 292, 293,
2324 0, 24, 0, 0, 0, 294, 295, 296, 297, 298,
2325 27, 0, 28, 299, 0, 0, 0, 300, 0, 0,
2326 0, 0, 0, 301, 0, 0, 302, 0, 0, 0,
2327 0, 0, 0, 0, 303, 304, 305, 0, 0, 0,
2328 0, 0, 306, 307, 308, 7, 8, 9, 10, 309,
2329 12, 500, 283, 284, 0, 285, 14, 0, 0, 0,
2330 0, 0, 0, 0, 0, 0, 0, 310, 0, 0,
2331 0, 17, 286, 18, 0, 20, 0, 287, 288, 21,
2332 0, 289, 290, 291, 22, 292, 293, 0, 24, 0,
2333 0, 0, 294, 295, 296, 297, 298, 27, 0, 28,
2334 29, 0, 0, 0, 300, 0, 0, 0, 0, 0,
2335 301, 0, 0, 1432, 0, 0, 0, 0, 0, 0,
2336 0, 303, 304, 1433, 0, 0, 0, 0, 0, 306,
2337 307, 308, 281, 8, 9, 10, 1434, 12, 500, 283,
2338 284, 0, 285, 14, 0, 0, 0, 0, 0, 0,
2339 0, 0, 0, 0, 310, 0, 0, 0, 17, 286,
2340 18, 0, 20, 0, 287, 288, 21, 0, 289, 290,
2341 291, 22, 292, 293, 0, 24, 0, 0, 0, 294,
2342 295, 296, 297, 298, 27, 0, 28, 299, 0, 0,
2343 0, 0, 0, 0, 0, 0, 0, 301, 0, 0,
2344 302, 0, 0, 0, 0, 0, 0, 0, 303, 304,
2345 305, 0, 0, 0, 0, 0, 306, 307, 308, 281,
2346 8, 9, 10, 501, 12, 500, 283, 284, 0, 285,
2347 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 0, 310, 0, 0, 0, 17, 286, 18, 0, 20,
2349 0, 287, 288, 21, 0, 289, 290, 291, 22, 292,
2350 293, 0, 24, 0, 0, 0, 294, 295, 296, 297,
2351 298, 27, 0, 28, 299, 0, 0, 0, 0, 0,
2352 0, 0, 0, 0, 301, 0, 0, 302, 0, 0,
2353 0, 0, 0, 0, 0, 303, 304, 305, 0, 0,
2354 0, 0, 0, 306, 307, 308, 281, 8, 9, 10,
2355 504, 12, 500, 283, 284, 0, 285, 14, 0, 0,
2356 0, 0, 0, 0, 0, 0, 0, 0, 310, 0,
2357 0, 0, 17, 286, 18, 0, 20, 0, 287, 288,
2358 21, 0, 289, 290, 291, 22, 292, 293, 0, 24,
2359 0, 0, 0, 294, 295, 296, 297, 298, 27, 0,
2360 28, 299, 0, 0, 0, 0, 0, 0, 0, 0,
2361 0, 301, 0, 0, 302, 0, 0, 0, 0, 0,
2362 0, 0, 303, 304, 305, 0, 0, 0, 0, 0,
2363 306, 307, 308, 281, 8, 9, 10, 309, 12, 500,
2364 283, 284, 0, 285, 14, 0, 0, 0, 0, 0,
2365 0, 0, 0, 0, 0, 310, 0, 0, 0, 17,
2366 286, 18, 0, 20, 0, 287, 288, 21, 0, 289,
2367 290, 291, 22, 292, 293, 0, 24, 0, 0, 0,
2368 294, 295, 296, 297, 298, 27, 0, 28, 299, 0,
2369 0, 0, 0, 0, 0, 0, 0, 0, 301, 0,
2370 0, 519, 0, 0, 0, 0, 0, 0, 0, 303,
2371 304, 520, 0, 0, 0, 0, 0, 306, 307, 308,
2372 7, 8, 9, 10, 521, 12, 282, 283, 284, 0,
2373 285, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2374 0, 0, 310, 0, 0, 0, 17, 286, 18, 0,
2375 20, 0, 287, 288, 21, 0, 289, 290, 291, 22,
2376 292, 293, 0, 24, 0, 0, 0, 294, 295, 296,
2377 297, 298, 27, 0, 28, 29, 0, 0, 0, 0,
2378 0, 0, 0, 0, 0, 301, 0, 0, 1432, 0,
2379 0, 0, 0, 0, 0, 0, 303, 304, 1433, 0,
2380 0, 0, 0, 0, 306, 307, 308, 0, 0, 0,
2381 0, 1434, 7, 8, 9, 10, 386, 12, 13, 0,
2382 0, 689, 0, 14, 0, 0, 0, 0, 0, 310,
2383 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
2384 18, 19, 0, 0, 0, 0, 21, 0, 0, 0,
2385 0, 22, 0, 0, 0, 24, 0, 582, 0, 0,
2386 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2388 1102, 731, 0, 7, 8, 732, 10, 386, 12, 13,
2389 1103, 0, 0, 0, 14, 0, 0, 0, 33, 0,
2390 585, 0, 0, 1104, 587, 0, 0, 690, 0, 17,
2391 0, 18, 19, 20, 0, 0, 0, 21, 0, 0,
2392 0, 0, 22, 0, 0, 0, 24, 733, 0, 643,
2393 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
2394 0, 734, 0, 735, 7, 8, 9, 10, 198, 199,
2395 200, 31, 0, 0, 0, 14, 0, 0, 0, 0,
2396 0, 32, 0, 0, 0, 0, 0, 0, 0, 33,
2397 0, 0, 0, 19, 34, 0, 0, 0, 21, 0,
2398 0, 0, 0, 22, 0, 0, 0, 24, 0, 582,
2399 0, 0, 0, 0, 0, 0, 27, 0, 28, 29,
2400 7, 8, 9, 10, 386, 12, 13, 0, 0, 953,
2401 0, 14, 905, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 906, 0, 0, 0, 17, 0, 18, 19,
2403 33, 0, 585, 0, 21, 947, 587, 0, 0, 22,
2404 0, 0, 0, 24, 0, 987, 8, 732, 10, 189,
2405 12, 190, 27, 0, 28, 29, 14, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
2407 0, 17, 0, 18, 19, 0, 0, 0, 32, 21,
2408 0, 0, 0, 0, 22, 0, 33, 0, 24, 0,
2409 0, 34, 0, 0, 0, 0, 0, 27, 0, 28,
2410 29, 0, 0, 0, 0, 989, 7, 8, 9, 10,
2411 189, 12, 190, 31, 0, 0, 0, 14, 0, 0,
2412 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
2413 0, 33, 17, 0, 18, 19, 34, 0, 0, 0,
2414 21, 0, 0, 0, 0, 22, 0, 0, 0, 24,
2415 0, 7, 8, 9, 10, 386, 12, 13, 27, 0,
2416 28, 29, 14, 0, 1389, 0, 0, 0, 0, 0,
2417 0, 0, 0, 0, 31, 0, 0, 17, 0, 18,
2418 19, 0, 0, 0, 32, 21, 0, 0, 0, 0,
2419 22, 0, 33, 0, 24, 0, 0, 34, 0, 0,
2420 0, 0, 0, 27, 0, 28, 29, 7, 8, 9,
2421 10, 189, 12, 190, 0, 0, 0, 0, 14, 31,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
2423 0, 0, 0, 17, 0, 18, 19, 33, 0, 0,
2424 0, 21, 34, 0, 0, 0, 22, 0, 0, 0,
2425 24, 0, 0, 0, 0, 0, 0, 0, 0, 27,
2426 0, 28, 29, 536, 537, 538, 539, 540, 541, 542,
2427 543, 544, 545, 546, 547, 31, 549, 550, 551, 552,
2428 553, 554, 555, 556, 557, 32, 0, 0, 0, 0,
2429 0, 0, 0, 33, 0, 0, 0, 0, 34, 536,
2430 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
2431 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2432 557, 1485, 536, 537, 538, 539, 540, 541, 542, 543,
2433 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
2434 554, 555, 556, 557, 1443, 536, 537, 538, 539, 540,
2435 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
2436 551, 552, 553, 554, 555, 556, 557
2437 };
2438
2439 static const short yycheck[] = { 4,
2440 156, 197, 329, 58, 24, 674, 385, 79, 385, 34,
2441 671, 449, 193, 531, 232, 56, 470, 58, 125, 14,
2442 146, 147, 54, 45, 4, 385, 89, 4, 91, 83,
2443 335, 36, 353, 4, 230, 426, 41, 661, 752, 654,
2444 285, 286, 828, 736, 758, 738, 586, 228, 4, 1420,
2445 1287, 56, 745, 593, 31, 32, 36, 4, 4, 36,
2446 11, 41, 132, 11, 41, 36, 71, 937, 4, 141,
2447 41, 223, 317, 136, 123, 1310, 128, 61, 83, 53,
2448 36, 133, 87, 193, 89, 41, 91, 82, 1453, 36,
2449 36, 11, 202, 1455, 41, 41, 277, 1450, 39, 38,
2450 36, 106, 107, 132, 133, 41, 83, 59, 0, 34,
2451 105, 0, 1477, 65, 55, 187, 1, 335, 201, 202,
2452 56, 146, 147, 148, 1437, 166, 1, 421, 8, 9,
2453 135, 136, 1317, 138, 14, 48, 1148, 1149, 193, 1324,
2454 25, 48, 60, 63, 12, 1, 201, 202, 329, 587,
2455 1162, 865, 193, 1506, 179, 160, 1518, 37, 135, 110,
2456 201, 202, 110, 1476, 135, 12, 46, 1, 48, 146,
2457 147, 1542, 111, 228, 59, 7, 503, 151, 63, 135,
2458 9, 94, 95, 160, 59, 1420, 111, 94, 63, 160,
2459 110, 1556, 60, 111, 1507, 63, 34, 110, 61, 135,
2460 177, 178, 75, 59, 160, 75, 38, 63, 94, 48,
2461 184, 96, 196, 60, 94, 12, 63, 60, 65, 673,
2462 204, 96, 277, 63, 160, 59, 3, 4, 5, 6,
2463 98, 525, 4, 62, 229, 336, 337, 1249, 79, 1424,
2464 96, 63, 110, 61, 14, 49, 1258, 1259, 111, 1261,
2465 1487, 98, 25, 23, 878, 94, 326, 881, 414, 94,
2466 974, 1047, 75, 60, 36, 42, 63, 110, 322, 41,
2467 110, 110, 986, 278, 329, 338, 60, 63, 55, 1464,
2468 57, 58, 60, 712, 644, 900, 59, 61, 110, 75,
2469 63, 392, 393, 111, 64, 919, 920, 326, 4, 5,
2470 605, 98, 94, 355, 309, 1019, 75, 1021, 61, 147,
2471 148, 83, 89, 634, 440, 441, 365, 322, 697, 60,
2472 697, 61, 751, 96, 1509, 330, 110, 379, 757, 869,
2473 94, 48, 110, 338, 339, 390, 48, 111, 27, 28,
2474 335, 179, 4, 32, 454, 322, 59, 63, 389, 390,
2475 379, 57, 58, 123, 109, 36, 388, 575, 111, 75,
2476 41, 25, 339, 135, 48, 55, 693, 907, 339, 110,
2477 453, 454, 61, 48, 36, 145, 65, 94, 461, 41,
2478 385, 675, 94, 339, 389, 75, 904, 100, 160, 55,
2479 473, 3, 4, 5, 1406, 1407, 48, 63, 453, 454,
2480 1186, 48, 243, 339, 445, 385, 461, 947, 385, 492,
2481 94, 95, 453, 454, 55, 440, 441, 442, 473, 94,
2482 461, 34, 111, 3, 4, 5, 110, 48, 866, 434,
2483 1300, 860, 416, 862, 48, 498, 48, 492, 48, 830,
2484 60, 463, 94, 55, 65, 57, 58, 94, 95, 48,
2485 220, 221, 55, 447, 61, 65, 76, 434, 78, 1083,
2486 1084, 455, 232, 440, 441, 32, 471, 60, 63, 55,
2487 1163, 309, 75, 94, 4, 5, 460, 57, 58, 75,
2488 94, 95, 94, 76, 94, 95, 4, 5, 1358, 75,
2489 48, 9, 55, 498, 471, 94, 501, 1367, 1368, 504,
2490 471, 81, 48, 508, 509, 510, 511, 512, 609, 25,
2491 48, 27, 28, 567, 48, 471, 521, 59, 972, 49,
2492 1478, 76, 901, 78, 901, 471, 531, 57, 58, 534,
2493 111, 301, 1490, 146, 147, 148, 94, 55, 48, 57,
2494 58, 901, 1500, 59, 27, 28, 48, 63, 94, 95,
2495 322, 81, 55, 71, 60, 61, 94, 612, 59, 1517,
2496 94, 566, 567, 81, 1104, 94, 179, 339, 720, 874,
2497 722, 612, 75, 343, 637, 727, 55, 95, 1536, 611,
2498 96, 586, 352, 48, 94, 95, 55, 1127, 593, 1018,
2499 567, 1020, 94, 48, 55, 365, 777, 48, 653, 76,
2500 110, 1559, 597, 441, 442, 48, 583, 584, 48, 586,
2501 651, 1481, 653, 385, 65, 110, 593, 55, 650, 1057,
2502 652, 653, 642, 730, 55, 63, 871, 4, 5, 94,
2503 471, 714, 637, 48, 110, 4, 5, 75, 693, 94,
2504 9, 935, 95, 94, 75, 1074, 651, 1038, 1039, 11,
2505 655, 94, 693, 673, 94, 1314, 874, 1316, 110, 714,
2506 1114, 693, 434, 501, 55, 110, 504, 768, 94, 3,
2507 4, 5, 6, 714, 111, 716, 4, 5, 55, 94,
2508 57, 58, 520, 521, 75, 63, 55, 1141, 57, 58,
2509 753, 754, 697, 756, 71, 63, 534, 75, 468, 471,
2510 60, 61, 71, 744, 81, 60, 61, 75, 42, 750,
2511 3, 743, 81, 84, 85, 61, 1145, 739, 740, 113,
2512 697, 1150, 777, 57, 58, 1052, 748, 55, 95, 57,
2513 58, 736, 1123, 738, 95, 25, 55, 27, 28, 744,
2514 745, 1132, 1133, 63, 63, 48, 1137, 752, 753, 754,
2515 113, 756, 55, 758, 94, 593, 75, 106, 107, 736,
2516 75, 738, 94, 533, 75, 736, 75, 738, 745, 59,
2517 75, 1200, 75, 63, 745, 752, 1053, 1054, 60, 1056,
2518 736, 758, 738, 60, 61, 1446, 11, 1178, 111, 745,
2519 736, 94, 738, 4, 5, 567, 897, 4, 5, 745,
2520 110, 1470, 60, 4, 5, 575, 96, 743, 744, 60,
2521 61, 3, 4, 5, 586, 4, 5, 969, 970, 971,
2522 75, 593, 827, 110, 8, 9, 831, 440, 441, 442,
2523 14, 3, 4, 5, 6, 55, 1265, 1266, 49, 110,
2524 912, 55, 49, 63, 110, 1236, 57, 58, 49, 63,
2525 57, 58, 1281, 37, 859, 75, 57, 58, 60, 61,
2526 865, 75, 46, 55, 869, 57, 58, 59, 57, 58,
2527 42, 61, 642, 25, 81, 27, 28, 49, 55, 874,
2528 81, 110, 907, 1274, 654, 57, 58, 111, 865, 60,
2529 867, 868, 869, 111, 65, 736, 901, 738, 903, 904,
2530 1329, 1330, 907, 744, 745, 76, 110, 59, 113, 81,
2531 680, 63, 1013, 1014, 1015, 60, 61, 89, 113, 1348,
2532 1349, 901, 947, 55, 901, 697, 998, 75, 905, 906,
2533 907, 63, 75, 771, 4, 5, 55, 75, 979, 980,
2534 113, 110, 947, 75, 96, 977, 113, 110, 3, 4,
2535 5, 110, 7, 8, 9, 59, 961, 110, 27, 28,
2536 309, 55, 967, 32, 736, 8, 738, 1008, 990, 974,
2537 947, 113, 94, 745, 996, 997, 1102, 1103, 1000, 1001,
2538 752, 986, 1004, 48, 65, 55, 758, 57, 58, 1316,
2539 111, 60, 61, 60, 4, 5, 65, 974, 1061, 1125,
2540 1126, 71, 57, 58, 1009, 94, 4, 5, 61, 986,
2541 55, 81, 445, 37, 1019, 65, 1021, 65, 3, 4,
2542 5, 6, 287, 288, 65, 95, 3, 4, 5, 6,
2543 868, 869, 1009, 110, 1106, 61, 63, 302, 1009, 49,
2544 305, 977, 1019, 308, 1021, 65, 311, 57, 58, 110,
2545 315, 49, 25, 1009, 27, 28, 1061, 42, 323, 57,
2546 58, 110, 65, 1009, 49, 42, 110, 113, 1447, 907,
2547 1447, 81, 57, 58, 110, 1369, 65, 1102, 1103, 1104,
2548 57, 58, 431, 81, 60, 94, 59, 1381, 63, 110,
2549 63, 110, 110, 865, 1114, 1196, 81, 869, 110, 1104,
2550 1125, 1126, 1127, 110, 89, 76, 3, 4, 5, 947,
2551 76, 76, 89, 1154, 1155, 76, 1157, 1158, 110, 1160,
2552 890, 63, 1127, 96, 55, 1102, 1103, 1104, 110, 901,
2553 900, 63, 63, 60, 1461, 907, 110, 4, 5, 63,
2554 7, 8, 9, 1437, 75, 12, 110, 14, 1125, 1126,
2555 1127, 113, 501, 1544, 111, 504, 110, 998, 1163, 508,
2556 57, 58, 29, 110, 31, 32, 48, 95, 1009, 113,
2557 37, 9, 521, 55, 12, 947, 89, 48, 48, 46,
2558 1474, 75, 1476, 113, 55, 534, 1163, 110, 55, 538,
2559 57, 58, 1163, 75, 110, 1391, 27, 28, 1492, 113,
2560 110, 32, 974, 110, 75, 1246, 1247, 1163, 110, 110,
2561 48, 111, 94, 1507, 986, 564, 111, 1163, 1223, 60,
2562 65, 570, 60, 94, 62, 63, 65, 65, 1233, 60,
2563 61, 98, 60, 60, 1256, 1257, 110, 1009, 76, 94,
2564 78, 81, 82, 83, 84, 85, 1223, 1019, 110, 1021,
2565 765, 766, 767, 111, 519, 520, 94, 95, 94, 94,
2566 98, 1316, 94, 110, 110, 1103, 1104, 1223, 8, 1039,
2567 113, 113, 110, 1429, 1315, 1316, 1223, 1223, 111, 65,
2568 1461, 110, 1314, 716, 1316, 110, 110, 110, 1126, 1127,
2569 3, 4, 5, 6, 907, 1336, 1337, 1338, 110, 110,
2570 110, 110, 3, 4, 5, 1310, 1432, 1433, 110, 110,
2571 1315, 110, 1317, 55, 110, 110, 63, 750, 1159, 1324,
2572 4, 5, 1163, 113, 48, 110, 110, 110, 97, 42,
2573 34, 110, 1104, 1310, 947, 110, 49, 110, 110, 110,
2574 1317, 3, 4, 5, 57, 58, 113, 1324, 49, 110,
2575 4, 5, 63, 1123, 1310, 1127, 57, 58, 79, 61,
2576 63, 1317, 1403, 1404, 1310, 49, 61, 1392, 1324, 31,
2577 1317, 1317, 9, 57, 58, 61, 89, 1324, 1324, 3,
2578 4, 5, 103, 7, 8, 9, 16, 94, 94, 61,
2579 61, 1163, 109, 55, 48, 57, 58, 81, 3, 4,
2580 5, 55, 94, 57, 58, 99, 1461, 1432, 1433, 1434,
2581 17, 132, 94, 37, 61, 1420, 1421, 71, 61, 1424,
2582 141, 110, 110, 110, 11, 110, 61, 81, 61, 1434,
2583 1462, 55, 60, 57, 58, 59, 94, 91, 61, 65,
2584 94, 95, 1447, 1420, 1421, 1450, 110, 1424, 1453, 61,
2585 1220, 1223, 57, 58, 59, 1432, 1433, 110, 11, 1464,
2586 61, 110, 1484, 11, 1420, 61, 187, 1508, 1424, 0,
2587 1447, 0, 1477, 1450, 1420, 0, 1453, 1424, 1424, 413,
2588 2, 105, 106, 107, 901, 160, 835, 1464, 1445, 1102,
2589 1103, 1104, 355, 160, 3, 4, 5, 1453, 744, 220,
2590 1477, 1506, 93, 1114, 1509, 1416, 1453, 1453, 1464, 138,
2591 1556, 890, 1125, 1126, 1127, 280, 1315, 1464, 1464, 680,
2592 869, 1477, 243, 3, 4, 5, 885, 1009, 972, 1506,
2593 1477, 1477, 1509, 1141, 744, 1161, 1306, 567, 1310, 3,
2594 4, 5, 222, 618, 883, 1317, 979, 980, 57, 58,
2595 184, 1556, 1324, 1509, 1392, 4, 326, 3, 4, 5,
2596 123, 1317, 1509, 1509, 1224, 14, 3, 4, 5, 49,
2597 1492, 1470, 1467, 1531, 839, 1008, 25, 57, 58, 1556,
2598 1529, 956, 31, 32, 1233, 34, -1, 36, -1, -1,
2599 1360, 55, 41, 57, 58, 1433, 1434, 48, -1, -1,
2600 1556, -1, 867, 868, -1, 54, -1, 56, -1, 1556,
2601 1556, 57, 58, 334, -1, 64, -1, -1, 967, -1,
2602 57, 58, 71, 385, -1, -1, -1, -1, -1, 106,
2603 107, -1, -1, 82, 83, -1, 87, 88, 7, 8,
2604 9, 92, 93, 94, 95, 14, -1, -1, 1420, 1421,
2605 -1, -1, 1424, -1, -1, -1, 105, -1, -1, -1,
2606 -1, -1, -1, 32, 427, -1, -1, 12, 37, -1,
2607 -1, 434, 434, -1, 395, 1447, -1, 46, 1450, 128,
2608 -1, 1453, 27, 28, 133, -1, 135, 32, -1, -1,
2609 139, -1, 1464, 142, 143, -1, -1, 146, 147, 148,
2610 -1, -1, -1, 48, -1, 1477, -1, 3, 4, 5,
2611 6, 160, -1, 9, -1, 60, 61, -1, 63, -1,
2612 65, 1154, 1155, -1, 1157, 1158, -1, 1160, 177, 178,
2613 179, -1, -1, -1, 1506, -1, 499, 1509, 7, 8,
2614 9, -1, -1, -1, -1, 14, 42, 468, -1, 94,
2615 95, -1, 48, 98, 3, 4, 5, 206, 7, 55,
2616 -1, 57, 58, 32, -1, 110, -1, -1, 37, -1,
2617 -1, -1, 221, -1, 495, 71, -1, 46, 1127, 1392,
2618 229, -1, 31, -1, 1556, 81, 3, 4, 5, 38,
2619 -1, 240, 61, 89, 1059, 91, -1, -1, 94, 95,
2620 563, -1, 565, 566, -1, -1, 55, -1, 57, 58,
2621 -1, -1, -1, 1246, 1247, 3, 4, 5, -1, 1432,
2622 1433, 1434, -1, -1, 586, 1174, 1175, 1176, 1177, 278,
2623 279, 593, 309, -1, -1, 1184, -1, 600, 55, -1,
2624 57, 58, 427, 3, 4, 5, 6, -1, -1, 434,
2625 -1, 39, 40, -1, 42, 3, 4, 5, 6, 580,
2626 1125, 1126, -1, -1, -1, -1, -1, 55, -1, 57,
2627 58, 4, 5, 322, -1, 596, -1, 326, -1, 328,
2628 329, 330, 42, 3, 4, 5, -1, 7, 8, 9,
2629 339, -1, -1, -1, 42, 55, -1, 57, 58, -1,
2630 48, 61, -1, 1336, 1337, 1338, 355, 55, 385, 57,
2631 58, 71, 45, -1, 499, -1, -1, 37, -1, -1,
2632 -1, 81, 55, 71, 57, 58, -1, -1, -1, 89,
2633 379, -1, -1, 81, 94, 697, 385, 57, 58, 388,
2634 389, 89, -1, 91, -1, -1, 94, 95, -1, -1,
2635 399, -1, -1, 402, -1, -1, 1305, 434, 407, -1,
2636 -1, -1, 3, 4, 5, 6, -1, -1, 9, -1,
2637 1403, 1404, -1, -1, -1, -1, -1, -1, 563, -1,
2638 565, 566, -1, -1, -1, -1, -1, 436, -1, 438,
2639 752, 440, 441, 442, -1, -1, 758, -1, 447, -1,
2640 -1, 42, -1, 452, -1, -1, 455, 48, 593, -1,
2641 3, 4, 5, 6, 55, 600, 57, 58, -1, -1,
2642 -1, -1, 471, -1, 501, -1, -1, 504, -1, 1378,
2643 71, 508, 509, 510, 511, 512, -1, -1, -1, -1,
2644 81, -1, -1, -1, 521, 1310, -1, -1, 89, 42,
2645 91, -1, -1, 94, 95, -1, 49, 534, -1, -1,
2646 509, 510, 511, 512, 57, 58, -1, -1, 831, -1,
2647 -1, 1420, 1421, 4, 5, 1508, -1, 8, 9, -1,
2648 -1, -1, 845, 14, 847, 1434, 849, -1, 81, 566,
2649 -1, -1, -1, -1, -1, -1, 89, -1, 29, -1,
2650 31, 1450, -1, 865, -1, -1, 37, 869, -1, 586,
2651 -1, -1, -1, -1, -1, 46, 593, 48, 567, -1,
2652 569, -1, -1, -1, 55, -1, 57, 58, -1, 892,
2653 -1, -1, 581, -1, 583, 584, -1, 586, -1, 901,
2654 71, -1, -1, -1, 593, 907, -1, -1, 597, -1,
2655 81, -1, 873, -1, 875, 1504, -1, 1506, -1, -1,
2656 91, -1, 611, 94, 95, -1, 929, 1432, 1433, -1,
2657 -1, -1, -1, -1, -1, 3, 4, 5, 6, 1528,
2658 -1, -1, -1, -1, -1, 947, 771, -1, -1, -1,
2659 -1, 912, -1, 1542, 79, 80, 81, 82, 83, 84,
2660 85, 650, 651, 652, 653, 654, 655, -1, -1, -1,
2661 -1, -1, 974, -1, 42, 3, 4, 5, 6, -1,
2662 697, 9, -1, -1, 986, -1, -1, 55, -1, 57,
2663 58, -1, -1, 61, -1, 63, -1, -1, -1, -1,
2664 -1, -1, -1, 71, 693, -1, 831, -1, 697, -1,
2665 -1, -1, -1, 81, 42, 704, 705, 1019, 707, 1021,
2666 845, 89, 847, -1, 849, -1, 94, 55, -1, 57,
2667 58, -1, -1, -1, -1, 752, -1, 998, -1, -1,
2668 -1, 758, -1, 71, 733, -1, -1, 736, -1, 738,
2669 -1, -1, -1, 81, 743, 744, 745, -1, -1, -1,
2670 -1, 89, -1, 752, -1, -1, 94, 892, -1, 758,
2671 4, 5, -1, -1, 8, 9, 765, 766, 767, -1,
2672 14, 3, 4, 5, 6, -1, -1, 9, 777, -1,
2673 -1, -1, -1, -1, -1, 29, -1, 31, -1, -1,
2674 -1, -1, 1104, 37, 929, -1, -1, 7, 8, 9,
2675 827, -1, 46, 1116, 14, 1118, -1, 1120, -1, 1080,
2676 42, 55, 947, 57, 58, 1127, 48, -1, -1, -1,
2677 -1, -1, 32, 55, -1, 57, 58, 37, 827, -1,
2678 -1, -1, 859, -1, -1, 1106, 46, -1, 865, 71,
2679 -1, -1, 869, -1, -1, -1, -1, -1, -1, 81,
2680 94, 850, -1, 852, -1, -1, -1, 89, -1, 91,
2681 859, -1, 94, 95, 863, -1, 865, -1, 867, 868,
2682 869, -1, -1, -1, 901, 874, 903, 4, 5, -1,
2683 907, 8, 9, -1, 7, 8, 9, 14, 1159, -1,
2684 -1, 14, -1, -1, 1207, 177, 178, 179, -1, -1,
2685 -1, -1, 901, -1, 903, 4, 905, 906, 907, 32,
2686 37, -1, -1, -1, 37, 14, -1, -1, -1, 46,
2687 947, 48, -1, 46, -1, 24, 25, -1, 55, -1,
2688 57, 58, 31, 32, 961, 34, -1, 36, 61, -1,
2689 967, -1, 41, -1, 71, -1, -1, 974, 947, -1,
2690 -1, 4, 5, -1, 81, 54, 9, 56, -1, 986,
2691 -1, -1, 961, -1, 91, 64, -1, 94, 95, -1,
2692 -1, -1, 71, -1, -1, 974, -1, -1, 977, -1,
2693 -1, 1116, -1, 1118, 83, 1120, -1, 986, -1, -1,
2694 -1, -1, 1019, -1, 1021, 48, -1, -1, -1, -1,
2695 999, -1, 55, -1, 57, 58, -1, -1, -1, -1,
2696 1009, -1, 3, 4, 5, 6, -1, -1, 71, -1,
2697 1019, -1, 1021, -1, -1, -1, -1, -1, 81, 128,
2698 -1, -1, -1, -1, -1, -1, 135, -1, 91, -1,
2699 139, 94, 95, -1, 143, -1, -1, 146, 147, 148,
2700 -1, 42, -1, -1, 1053, 1054, -1, 1056, 49, -1,
2701 -1, 160, -1, -1, -1, -1, 57, 58, -1, -1,
2702 -1, -1, 1207, -1, -1, -1, -1, 1104, 177, 178,
2703 179, -1, -1, -1, -1, 3, 4, 5, 6, -1,
2704 81, 9, -1, -1, -1, -1, -1, -1, 89, -1,
2705 1127, 1100, 1101, 1102, 1103, 1104, -1, 206, -1, 1108,
2706 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2707 82, 83, 84, 85, 42, -1, 1125, 1126, 1127, -1,
2708 48, -1, -1, -1, -1, 1447, -1, 55, -1, 57,
2709 58, 240, 4, 5, -1, -1, 8, 9, -1, -1,
2710 -1, -1, 14, 71, 436, -1, 438, 1156, 440, 441,
2711 442, -1, 1161, 81, 1163, -1, -1, 29, -1, 31,
2712 452, 89, -1, 91, -1, 37, 94, 95, -1, 278,
2713 279, -1, -1, -1, 46, -1, -1, -1, -1, -1,
2714 -1, -1, -1, 55, -1, 57, 58, 59, -1, 328,
2715 329, 330, -1, -1, -1, -1, 1233, -1, -1, -1,
2716 -1, 1210, 1211, 1, 1213, 3, 4, 5, 6, 7,
2717 8, 9, -1, 322, -1, -1, 14, 326, -1, 328,
2718 329, 330, 94, -1, 1233, -1, 335, -1, -1, -1,
2719 339, 29, -1, 31, 32, 33, -1, -1, -1, 37,
2720 38, -1, -1, -1, 42, -1, 355, 1392, 46, 47,
2721 -1, 49, -1, -1, -1, -1, -1, 55, -1, 57,
2722 58, -1, -1, 61, -1, 63, -1, 4, 5, -1,
2723 -1, 8, 9, 71, -1, -1, 385, 14, -1, 388,
2724 389, -1, -1, 81, -1, 3, 4, 5, 6, -1,
2725 399, 89, -1, 402, -1, -1, 94, -1, 407, -1,
2726 37, -1, -1, -1, -1, 1314, 1315, 1316, -1, 46,
2727 -1, 48, -1, 111, -1, -1, -1, -1, 55, -1,
2728 57, 58, -1, -1, 42, -1, -1, 436, -1, 438,
2729 -1, 440, 441, 442, 71, -1, -1, 55, 447, 57,
2730 58, -1, -1, 452, 81, 63, 455, -1, -1, -1,
2731 -1, -1, -1, 71, 91, -1, -1, 94, 95, -1,
2732 -1, 470, 471, 81, -1, 4, 5, -1, 7, 8,
2733 9, 89, -1, 12, -1, 14, 94, -1, -1, -1,
2734 -1, -1, -1, 1392, -1, -1, -1, -1, -1, -1,
2735 29, -1, 31, 32, -1, -1, -1, 1434, 37, -1,
2736 509, 510, 511, 512, -1, -1, -1, 46, -1, 48,
2737 1447, -1, 704, 705, -1, 707, 55, -1, 57, 58,
2738 -1, -1, -1, 1432, 1433, 1434, 3, 4, 5, 6,
2739 -1, -1, 71, -1, -1, -1, -1, -1, 1447, -1,
2740 -1, -1, 81, -1, 583, 584, -1, -1, -1, -1,
2741 -1, 743, 91, 1462, -1, 94, 95, -1, 567, 98,
2742 569, -1, -1, -1, -1, 42, -1, -1, -1, -1,
2743 3, 4, 5, 6, 583, 584, 9, 586, 55, -1,
2744 57, 58, -1, -1, 593, -1, 63, -1, -1, -1,
2745 -1, -1, -1, -1, 71, -1, 605, -1, -1, -1,
2746 -1, -1, 611, -1, 81, -1, -1, -1, -1, 42,
2747 -1, 650, 89, 652, 653, -1, 655, 94, -1, -1,
2748 -1, -1, 55, -1, 57, 58, 3, 4, 5, 6,
2749 7, 8, 9, 642, -1, -1, -1, 14, 71, -1,
2750 -1, 650, 651, 652, 653, 654, 655, -1, 81, -1,
2751 -1, -1, -1, -1, 693, 32, 89, -1, -1, -1,
2752 37, 94, -1, -1, 673, 42, -1, -1, -1, 46,
2753 -1, 48, -1, -1, -1, -1, -1, -1, 55, -1,
2754 57, 58, -1, -1, 693, -1, -1, -1, 697, -1,
2755 -1, -1, -1, -1, 71, 704, 705, -1, 707, -1,
2756 4, 5, -1, -1, 81, 9, 3, 4, 5, 6,
2757 -1, -1, 89, 905, 906, 907, -1, 94, -1, -1,
2758 -1, -1, -1, -1, 733, -1, -1, 736, -1, 738,
2759 -1, -1, -1, -1, 743, 744, 745, -1, 777, -1,
2760 -1, -1, -1, 752, 48, 42, 4, -1, -1, 758,
2761 -1, 55, 49, 57, 58, 947, 765, 766, 767, -1,
2762 57, 58, 3, 4, 5, 6, -1, 71, 777, -1,
2763 -1, -1, -1, 31, 32, -1, 34, 81, 36, -1,
2764 -1, -1, -1, 41, 81, 977, -1, 91, -1, -1,
2765 94, 95, 89, -1, -1, -1, 54, -1, 56, -1,
2766 -1, 42, 77, 78, 79, 80, 81, 82, 83, 84,
2767 85, 850, -1, 852, 55, -1, 57, 58, 827, -1,
2768 -1, 79, 63, -1, 863, -1, -1, -1, 867, 868,
2769 71, -1, 3, 4, 5, 6, -1, -1, -1, -1,
2770 81, 850, -1, 852, -1, -1, -1, -1, 89, -1,
2771 859, -1, -1, 94, 863, -1, 865, -1, 867, 868,
2772 869, -1, -1, -1, -1, 874, 905, 906, -1, -1,
2773 128, 42, -1, -1, 132, 133, -1, 135, 49, -1,
2774 -1, 139, -1, 141, -1, 143, 57, 58, 146, 147,
2775 148, -1, 901, -1, 903, -1, 905, 906, 907, -1,
2776 -1, -1, 160, -1, -1, -1, -1, -1, 1100, 1101,
2777 1102, 1103, 1104, -1, -1, -1, 1108, -1, 89, 177,
2778 178, 179, -1, -1, -1, -1, -1, -1, -1, 187,
2779 -1, -1, -1, 1125, 1126, 1127, -1, -1, 947, -1,
2780 -1, -1, -1, -1, -1, -1, -1, -1, 206, -1,
2781 -1, -1, 961, -1, -1, -1, -1, -1, -1, -1,
2782 -1, -1, -1, 972, 1156, 974, -1, -1, 977, 3,
2783 4, 5, 6, -1, -1, -1, -1, 986, -1, -1,
2784 -1, -1, 240, -1, -1, -1, 1, -1, 3, 4,
2785 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
2786 1009, -1, -1, -1, -1, -1, -1, -1, 42, -1,
2787 1019, -1, 1021, -1, 29, 49, 31, 32, 1210, 1211,
2788 -1, 1213, 37, 57, 58, -1, -1, 42, -1, -1,
2789 -1, 46, -1, -1, 49, -1, -1, -1, -1, -1,
2790 55, -1, 57, 58, 1053, 1054, 61, 1056, -1, -1,
2791 -1, 309, -1, -1, -1, 89, 71, 3, 4, 5,
2792 6, 1100, 1101, 1102, 1103, -1, 81, -1, 326, 1108,
2793 -1, -1, -1, -1, 89, -1, 334, -1, -1, 94,
2794 -1, 339, -1, -1, -1, -1, 1125, 1126, -1, -1,
2795 -1, 1100, 1101, 1102, 1103, 1104, 42, 355, -1, 1108,
2796 -1, 3, 4, 5, 6, 1114, -1, 9, -1, 55,
2797 -1, 57, 58, -1, -1, 61, 1125, 1126, 1127, -1,
2798 -1, 379, -1, -1, -1, 71, -1, -1, -1, -1,
2799 388, -1, 1141, -1, -1, 81, -1, -1, 4, -1,
2800 42, 399, -1, 89, 402, -1, -1, 1156, 94, 407,
2801 -1, -1, 1161, 55, 1163, 57, 58, -1, -1, -1,
2802 -1, -1, -1, -1, -1, 31, 32, -1, 34, 71,
2803 36, 1210, 1211, -1, 1213, 41, -1, -1, 436, 81,
2804 438, -1, 440, 441, 442, -1, -1, 89, 54, 447,
2805 56, -1, 94, -1, 452, -1, -1, 455, -1, -1,
2806 1392, 1210, 1211, 1, 1213, 3, 4, 5, 6, -1,
2807 8, -1, -1, 471, -1, -1, -1, -1, -1, -1,
2808 -1, -1, -1, -1, 1233, 71, 72, 73, 74, 75,
2809 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2810 1432, 1433, 1434, 501, 42, -1, 504, -1, -1, -1,
2811 -1, 49, -1, -1, -1, -1, -1, 55, -1, 57,
2812 58, 519, 520, 521, -1, -1, 81, -1, -1, 135,
2813 -1, -1, -1, 139, -1, -1, 534, 143, -1, -1,
2814 146, 147, 148, -1, -1, -1, -1, -1, -1, -1,
2815 -1, 89, -1, -1, 160, -1, -1, -1, -1, -1,
2816 -1, -1, -1, -1, -1, 1314, 1315, 1316, -1, -1,
2817 -1, 177, 178, 179, -1, -1, -1, -1, -1, -1,
2818 -1, -1, 580, 3, 4, 5, 6, 7, 8, 9,
2819 -1, -1, -1, -1, 14, 593, -1, -1, -1, 154,
2820 206, -1, -1, -1, -1, -1, -1, 87, -1, 89,
2821 -1, 91, 32, 611, -1, -1, -1, 37, -1, -1,
2822 175, -1, 42, -1, -1, -1, 46, -1, 48, -1,
2823 -1, -1, -1, 188, 240, 55, -1, 57, 58, -1,
2824 -1, -1, -1, 1392, -1, -1, -1, 328, 329, 330,
2825 -1, 71, 650, 651, 652, 653, 136, -1, 138, -1,
2826 -1, 81, -1, 4, 5, -1, 7, 8, 9, 89,
2827 -1, 91, -1, 14, 94, 95, -1, -1, -1, -1,
2828 -1, 4, 5, 1432, 1433, 1434, 9, -1, 29, -1,
2829 31, 32, -1, -1, -1, 693, 37, -1, 1447, 697,
2830 -1, -1, -1, -1, -1, 46, 704, 705, 49, 707,
2831 -1, -1, -1, 1462, 55, -1, 57, 58, -1, -1,
2832 -1, -1, -1, -1, -1, 48, -1, -1, -1, 335,
2833 -1, -1, 55, 339, 57, 58, -1, -1, 736, -1,
2834 738, -1, -1, -1, -1, 743, 744, 745, 71, 1,
2835 -1, 3, 4, 5, 6, 7, 8, 9, 81, -1,
2836 -1, -1, 14, -1, -1, -1, -1, -1, 91, -1,
2837 -1, 94, 95, 771, -1, -1, -1, 29, -1, 31,
2838 32, 33, 388, -1, -1, 37, 38, -1, -1, -1,
2839 42, -1, -1, 399, 46, 47, 402, 49, -1, -1,
2840 -1, 407, -1, 55, -1, 57, 58, -1, -1, 61,
2841 -1, 63, -1, -1, -1, -1, -1, -1, -1, 71,
2842 300, -1, -1, -1, -1, -1, -1, -1, -1, 81,
2843 436, -1, 438, -1, 440, 441, 442, 89, -1, -1,
2844 -1, 447, 94, -1, -1, -1, 452, -1, -1, 455,
2845 -1, -1, -1, -1, -1, -1, -1, -1, 338, 111,
2846 -1, -1, -1, -1, -1, 471, -1, -1, -1, 867,
2847 868, 869, -1, -1, -1, 873, -1, 3, 4, 5,
2848 6, -1, -1, 9, -1, -1, -1, -1, -1, 444,
2849 -1, -1, -1, -1, -1, 450, -1, -1, 3, 4,
2850 5, 6, 583, 584, 9, 586, -1, 905, 906, 907,
2851 -1, -1, 593, -1, 912, -1, 42, -1, -1, -1,
2852 475, -1, -1, -1, -1, -1, 481, -1, -1, 55,
2853 -1, 57, 58, -1, -1, -1, -1, 42, 493, 494,
2854 -1, 496, -1, -1, -1, 71, 426, 427, -1, 947,
2855 55, -1, 57, 58, 434, 81, -1, -1, -1, -1,
2856 -1, -1, -1, 89, -1, -1, 71, -1, 94, 650,
2857 -1, 652, 653, -1, 655, 581, 81, -1, -1, 977,
2858 -1, -1, -1, -1, 89, -1, -1, -1, -1, 94,
2859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2860 998, -1, -1, -1, -1, 611, -1, -1, -1, -1,
2861 -1, 1009, 693, -1, -1, -1, -1, -1, 498, 499,
2862 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2863 83, 84, 85, -1, 589, 590, -1, -1, -1, 594,
2864 -1, -1, -1, -1, 650, 651, 652, 653, -1, -1,
2865 -1, 531, -1, 533, -1, -1, 536, 537, -1, 539,
2866 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2867 550, 551, 552, 553, 554, 555, 556, 557, -1, -1,
2868 -1, -1, 1080, 563, -1, 565, 566, 693, -1, -1,
2869 -1, 697, 3, 4, 5, 6, 777, -1, 704, 705,
2870 -1, 707, 1100, 1101, 1102, 1103, 1104, -1, 1106, -1,
2871 1108, -1, -1, 593, -1, -1, -1, -1, -1, -1,
2872 600, -1, -1, -1, -1, -1, -1, 1125, 1126, 1127,
2873 736, 42, 738, -1, -1, -1, -1, 743, 744, 745,
2874 -1, 621, 622, -1, 55, -1, 57, 58, -1, -1,
2875 -1, -1, -1, -1, -1, -1, -1, 637, 1156, -1,
2876 71, -1, -1, 1161, -1, 1163, -1, -1, -1, 850,
2877 81, 852, -1, -1, -1, -1, -1, -1, 89, -1,
2878 -1, -1, 863, 94, -1, -1, 867, 868, 869, -1,
2879 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2880 680, -1, -1, -1, 759, -1, 761, -1, -1, -1,
2881 -1, -1, 1210, 1211, -1, 1213, 34, 3, 4, 5,
2882 6, 7, 8, 9, 905, 906, 907, -1, 14, -1,
2883 -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
2884 -1, -1, -1, 29, -1, 31, 32, -1, -1, -1,
2885 -1, 37, -1, -1, -1, 735, 42, -1, -1, -1,
2886 46, -1, -1, -1, -1, -1, 947, -1, 874, 55,
2887 -1, 57, 58, 753, 754, 61, 756, -1, 833, 834,
2888 -1, 836, -1, -1, -1, 71, -1, -1, -1, -1,
2889 -1, 771, -1, -1, -1, 81, -1, -1, -1, 905,
2890 906, 907, -1, 89, -1, -1, -1, -1, 94, 864,
2891 -1, -1, -1, 793, -1, -1, 1314, 1315, 1316, -1,
2892 -1, -1, -1, -1, -1, -1, -1, -1, 146, 147,
2893 148, -1, -1, -1, -1, -1, -1, -1, -1, 4,
2894 5, 947, -1, 8, 9, -1, -1, -1, -1, 14,
2895 830, 831, -1, -1, 909, -1, -1, -1, -1, 177,
2896 178, 179, -1, -1, 29, 845, 31, 847, -1, 849,
2897 -1, 977, 37, -1, 3, 4, 5, 6, -1, -1,
2898 9, 46, -1, -1, -1, -1, -1, -1, 206, -1,
2899 55, -1, 57, 58, 1392, -1, -1, -1, -1, -1,
2900 -1, -1, 882, 1009, -1, -1, -1, -1, -1, -1,
2901 -1, -1, 892, 42, 3, 4, 5, 6, 973, 1100,
2902 1101, 1102, 1103, 1104, 904, -1, 55, 1108, 57, 58,
2903 985, -1, -1, -1, 1432, 1433, 1434, 917, -1, -1,
2904 -1, -1, 71, -1, 1125, 1126, 1127, -1, -1, 929,
2905 -1, -1, 81, 42, -1, -1, -1, -1, -1, -1,
2906 89, 279, -1, -1, 1462, 94, 55, 947, 57, 58,
2907 -1, -1, -1, -1, 4, 5, -1, -1, 8, 9,
2908 -1, -1, 71, -1, 14, -1, -1, -1, -1, -1,
2909 -1, -1, 81, -1, 1100, 1101, 1102, 1103, 1104, 29,
2910 89, 31, 1108, -1, -1, 94, -1, 37, -1, 989,
2911 328, 329, 330, -1, 1069, -1, 46, -1, -1, 1125,
2912 1126, 1127, -1, -1, -1, 55, -1, 57, 58, 1210,
2913 1211, -1, 1213, -1, -1, -1, 54, -1, -1, -1,
2914 -1, 3, 4, 5, 6, -1, -1, 9, -1, -1,
2915 1156, -1, 1107, -1, -1, 1161, -1, 1163, 1038, 1039,
2916 -1, 79, 1042, -1, 82, -1, -1, -1, -1, -1,
2917 388, -1, -1, -1, -1, -1, 3, 4, 5, 6,
2918 42, 1061, 9, -1, -1, 103, -1, 105, -1, -1,
2919 -1, -1, -1, 55, -1, 57, 58, -1, -1, -1,
2920 -1, -1, -1, -1, 1210, 1211, -1, 1213, -1, 71,
2921 1165, -1, -1, -1, 1169, 42, -1, -1, 436, 81,
2922 438, -1, 440, 441, 442, -1, -1, 89, 55, 447,
2923 57, 58, 94, -1, 452, -1, 1116, 455, 1118, -1,
2924 1120, -1, -1, 1123, 71, -1, -1, 1202, 3, 4,
2925 5, 6, 1132, 1133, 81, -1, -1, 1137, -1, 177,
2926 178, 179, 89, -1, -1, -1, -1, 94, -1, 187,
2927 -1, -1, 1152, 1153, 74, 75, 76, 77, 78, 79,
2928 80, 81, 82, 83, 84, 85, 1241, 42, 206, -1,
2929 1245, -1, -1, -1, -1, -1, -1, -1, 1178, -1,
2930 55, -1, 57, 58, -1, -1, -1, -1, 1314, 1315,
2931 1316, 229, 1267, 1268, -1, -1, 71, -1, -1, -1,
2932 -1, -1, -1, -1, -1, 243, 81, 1207, -1, -1,
2933 -1, -1, -1, -1, 89, -1, -1, -1, -1, 94,
2934 -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
2935 5, 569, 7, 8, 9, -1, 1236, 12, -1, 14,
2936 -1, -1, -1, -1, -1, 583, 584, -1, 586, -1,
2937 -1, -1, 1252, -1, 29, 593, 31, 32, -1, -1,
2938 -1, -1, 37, -1, -1, -1, 1392, -1, -1, -1,
2939 -1, 46, -1, 611, 1274, -1, -1, -1, -1, -1,
2940 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
2941 -1, -1, -1, -1, -1, -1, 334, 335, -1, -1,
2942 -1, 1301, -1, -1, -1, -1, 1432, 1433, 1434, -1,
2943 -1, -1, 650, -1, 652, 653, -1, 655, -1, 4,
2944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2945 -1, -1, -1, -1, 1334, 1335, 1462, -1, -1, -1,
2946 -1, -1, -1, 1343, -1, -1, 31, 32, -1, -1,
2947 388, 36, -1, -1, -1, 693, 41, -1, -1, -1,
2948 -1, -1, -1, -1, -1, -1, 704, 705, -1, 707,
2949 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
2950 -1, -1, -1, 4, 5, -1, 7, 8, 9, -1,
2951 -1, -1, 1392, 14, -1, -1, -1, -1, 436, -1,
2952 438, -1, 440, 441, 442, 743, -1, -1, 29, 447,
2953 31, 32, -1, -1, 452, -1, 37, 455, -1, -1,
2954 -1, -1, 1422, -1, -1, 46, -1, 765, 766, 767,
2955 -1, -1, -1, -1, 55, -1, 57, 58, -1, 777,
2956 1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
2957 135, -1, -1, 14, 139, -1, -1, -1, 143, -1,
2958 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
2959 31, 32, 33, -1, -1, 160, 37, 38, -1, -1,
2960 -1, 42, -1, -1, -1, 46, 47, -1, 49, -1,
2961 -1, -1, 177, 178, 55, -1, 57, 58, -1, -1,
2962 61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
2963 71, -1, 850, -1, 852, -1, -1, -1, -1, -1,
2964 81, -1, -1, -1, -1, 863, -1, -1, 89, 867,
2965 868, 869, -1, 94, -1, -1, -1, -1, -1, -1,
2966 -1, -1, -1, -1, 1544, -1, -1, -1, -1, -1,
2967 111, -1, -1, -1, -1, 240, -1, -1, 596, 597,
2968 -1, -1, -1, -1, -1, -1, -1, 905, 906, 907,
2969 -1, -1, -1, 611, 68, 69, 70, 71, 72, 73,
2970 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2971 84, 85, 1, -1, 3, 4, 5, 6, 7, 8,
2972 9, 10, 11, 12, 13, 14, -1, -1, -1, 947,
2973 -1, -1, 650, -1, 652, 653, -1, -1, -1, -1,
2974 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
2975 39, 40, 41, 42, 43, 44, -1, 46, -1, 977,
2976 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
2977 -1, -1, -1, 62, 339, 693, -1, -1, -1, 68,
2978 -1, -1, 71, -1, -1, -1, 704, 705, -1, 707,
2979 79, 80, 81, 12, -1, -1, -1, -1, 87, 88,
2980 89, -1, -1, -1, -1, 94, -1, -1, -1, 98,
2981 -1, -1, 730, -1, -1, -1, -1, -1, -1, -1,
2982 -1, 110, -1, 112, -1, 743, -1, -1, -1, -1,
2983 -1, -1, -1, -1, 399, 1053, 1054, 402, 1056, -1,
2984 -1, -1, 407, -1, 63, 64, 65, 66, 67, 68,
2985 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2986 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
2987 -1, 436, -1, 438, -1, -1, -1, -1, -1, -1,
2988 -1, -1, 1100, 1101, 1102, 1103, 1104, 452, -1, 1,
2989 1108, 3, 4, 5, 6, 7, 8, 9, -1, -1,
2990 -1, -1, 14, -1, -1, -1, 471, 1125, 1126, 1127,
2991 -1, -1, -1, -1, -1, -1, -1, 29, -1, 31,
2992 32, 33, 14, -1, -1, 37, 38, -1, -1, -1,
2993 42, -1, 24, 25, 46, 47, -1, 49, 1156, 31,
2994 32, -1, 34, 55, -1, 57, 58, -1, -1, 61,
2995 -1, 63, -1, -1, -1, 873, 874, 875, -1, 71,
2996 -1, -1, -1, -1, -1, -1, -1, -1, 32, 81,
2997 -1, -1, 64, -1, -1, -1, -1, 89, -1, -1,
2998 -1, -1, 94, -1, -1, -1, -1, 905, 906, 907,
2999 -1, -1, 1210, 1211, 912, 1213, -1, -1, -1, 111,
3000 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3001 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3002 84, 85, -1, -1, -1, -1, -1, -1, -1, 947,
3003 -1, 123, -1, 125, -1, -1, 128, -1, -1, -1,
3004 132, 133, -1, -1, -1, -1, -1, 139, -1, 141,
3005 142, 143, -1, -1, 146, 147, 148, -1, -1, 977,
3006 -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
3007 -1, -1, -1, -1, 14, -1, -1, -1, -1, -1,
3008 998, -1, -1, -1, -1, -1, 651, 27, 28, 29,
3009 -1, 31, 32, 33, -1, -1, 1314, 37, 1316, -1,
3010 -1, -1, 42, -1, -1, 45, 46, 47, -1, 49,
3011 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3012 -1, 61, -1, -1, -1, -1, -1, -1, 220, 221,
3013 -1, 71, 697, -1, -1, -1, -1, -1, -1, 704,
3014 705, 81, 707, -1, -1, -1, -1, -1, 240, 89,
3015 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3016 100, -1, 1080, -1, -1, -1, -1, -1, -1, -1,
3017 -1, 736, -1, 738, 1392, -1, -1, -1, 743, 744,
3018 745, -1, 1100, 1101, 1102, 1103, 1104, 279, 1106, -1,
3019 1108, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3020 79, 80, 81, 82, 83, 84, 85, 1125, 1126, 1127,
3021 -1, -1, -1, -1, 1432, 1433, 1434, -1, -1, -1,
3022 1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3023 -1, -1, -1, 14, 326, -1, 328, 329, 1156, -1,
3024 -1, -1, -1, -1, 1462, -1, 27, 28, 29, -1,
3025 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
3026 -1, 42, -1, 355, 45, 46, 47, -1, 49, -1,
3027 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3028 61, -1, -1, -1, -1, -1, -1, 379, -1, -1,
3029 71, -1, 1210, 1211, -1, 1213, -1, -1, -1, -1,
3030 81, -1, -1, 395, -1, -1, -1, 399, 89, -1,
3031 402, -1, -1, 94, -1, 407, -1, -1, -1, 100,
3032 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3033 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
3034 905, 906, -1, -1, -1, -1, -1, -1, -1, -1,
3035 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1,
3036 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3037 12, -1, 14, -1, -1, -1, 468, -1, 470, -1,
3038 -1, -1, -1, 25, -1, 27, 28, -1, -1, -1,
3039 32, -1, -1, -1, -1, 37, 1314, -1, 1316, -1,
3040 42, -1, -1, 495, 46, -1, 48, -1, -1, -1,
3041 -1, -1, 977, 55, -1, 57, 58, 59, 60, 61,
3042 -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3043 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3044 82, 83, 84, 85, 1009, 87, 88, 89, -1, 91,
3045 92, 93, 94, 95, 96, -1, 98, 99, -1, -1,
3046 -1, -1, 104, -1, -1, -1, -1, 109, 110, 111,
3047 -1, 113, -1, -1, 1392, -1, -1, 569, -1, 3,
3048 4, 5, 6, 7, 8, 9, -1, -1, 580, 581,
3049 14, 583, 584, -1, -1, -1, -1, -1, -1, -1,
3050 -1, -1, -1, -1, -1, 29, -1, 31, 32, -1,
3051 -1, -1, -1, 37, 1432, 1433, 1434, -1, 42, -1,
3052 -1, -1, 46, -1, 48, -1, -1, -1, -1, -1,
3053 -1, 55, -1, 57, 58, 1100, 1101, -1, 1, -1,
3054 -1, 4, 5, 1108, 1462, 8, 9, 71, -1, -1,
3055 642, 14, -1, -1, -1, -1, -1, 81, -1, -1,
3056 -1, -1, 654, -1, -1, 89, 29, 91, 31, -1,
3057 94, 95, -1, -1, 37, -1, 39, 40, -1, -1,
3058 -1, 673, -1, 46, -1, 48, -1, -1, -1, -1,
3059 -1, 1156, 55, -1, 57, 58, 1161, 60, 1163, -1,
3060 -1, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3061 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3062 83, 84, -1, -1, 87, 88, 89, -1, -1, 92,
3063 -1, -1, 95, -1, -1, -1, -1, -1, 730, -1,
3064 -1, 733, -1, -1, -1, 1210, 1211, 60, 1213, 112,
3065 -1, 64, 65, 66, 67, 68, 69, 70, 71, 72,
3066 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
3067 83, 84, 85, 765, 766, 767, -1, -1, -1, -1,
3068 -1, -1, -1, -1, -1, 777, 1, -1, 3, 4,
3069 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3070 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3071 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
3072 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3073 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3074 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3075 1315, -1, -1, 68, -1, -1, 71, -1, 850, -1,
3076 852, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3077 -1, 863, 87, 88, 89, -1, -1, -1, -1, 94,
3078 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3079 -1, -1, -1, -1, -1, -1, 111, 112, 1, -1,
3080 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3081 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
3082 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3083 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3084 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3085 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
3086 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3087 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3088 972, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3089 -1, 94, -1, 96, -1, -1, -1, -1, -1, -1,
3090 -1, -1, -1, -1, -1, -1, -1, 999, -1, 112,
3091 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3092 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3093 84, 85, -1, -1, -1, -1, -1, 1, -1, 3,
3094 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3095 14, -1, -1, -1, -1, -1, -1, -1, -1, 113,
3096 -1, 1053, 1054, -1, 1056, 29, 30, 31, 32, 33,
3097 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3098 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3099 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3100 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3101 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3102 -1, -1, 1114, 87, 88, 89, -1, 91, -1, -1,
3103 94, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3104 -1, -1, -1, -1, -1, -1, -1, -1, 112, 1141,
3105 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
3106 11, 12, 13, 14, -1, -1, -1, 1159, -1, 1161,
3107 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3108 31, 32, 33, -1, 35, 36, 37, -1, 39, 40,
3109 41, 42, 43, 44, -1, 46, -1, 48, -1, 50,
3110 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3111 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3112 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3113 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3114 91, -1, -1, 94, 95, -1, 1, 98, 3, 4,
3115 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3116 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3117 -1, -1, -1, -1, 29, 30, 31, 32, 33, -1,
3118 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3119 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3120 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3121 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3122 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3123 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3124 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3125 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3126 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3127 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3128 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3129 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3130 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3131 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3132 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3133 -1, 94, 95, 1, -1, 3, 4, 5, 6, -1,
3134 8, 9, 10, 11, -1, 13, 14, -1, 111, 112,
3135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3136 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3137 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3138 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3139 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3140 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3141 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3142 88, 89, -1, -1, -1, -1, 94, 95, 1, -1,
3143 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3144 13, 14, -1, -1, 112, -1, -1, -1, -1, -1,
3145 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3146 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3147 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3148 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3149 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3150 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3151 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3152 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3153 11, -1, 13, 14, -1, -1, -1, -1, 111, 112,
3154 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3155 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3156 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3157 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3158 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3159 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3160 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3161 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3162 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3163 111, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3164 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3165 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3166 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3167 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3168 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3169 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3170 89, -1, -1, -1, -1, 94, -1, -1, 1, -1,
3171 3, 4, 5, 6, 103, 8, 9, 10, 11, -1,
3172 13, 14, -1, 112, -1, -1, -1, -1, -1, -1,
3173 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3174 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3175 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3176 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3177 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3178 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3179 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3180 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3181 11, -1, 13, 14, -1, -1, -1, -1, -1, 112,
3182 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3183 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3184 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3185 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3186 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3187 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3188 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3189 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3190 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3191 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3192 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3193 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3194 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3195 -1, -1, -1, 62, 63, -1, -1, -1, -1, 68,
3196 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3197 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3198 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3199 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3200 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3201 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3202 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3203 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3204 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3205 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3206 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3207 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3208 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3209 -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3210 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3211 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3212 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3213 55, -1, 57, 58, -1, -1, 61, 62, -1, -1,
3214 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3215 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3216 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3217 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3218 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3219 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3220 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3221 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3222 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3223 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3224 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3225 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3226 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3227 11, -1, 13, 14, -1, -1, -1, 110, -1, 112,
3228 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3229 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3230 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3231 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3232 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3233 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3234 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3235 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3236 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3237 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3238 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3239 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3240 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3241 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3242 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3243 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3244 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3245 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3246 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3247 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3248 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3249 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3250 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3251 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3252 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3253 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3254 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3255 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3256 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3257 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3258 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3259 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3260 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3261 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3262 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
3263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3264 -1, -1, 112, 113, 3, 4, 5, 6, 7, 8,
3265 9, 10, 11, -1, 13, 14, 15, -1, 17, 18,
3266 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3267 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3268 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3269 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3270 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3271 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3272 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3273 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3274 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3275 -1, -1, 111, 112, 3, 4, 5, 6, 7, 8,
3276 9, 10, 11, -1, 13, 14, 15, -1, 17, 18,
3277 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3278 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3279 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3280 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3281 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3282 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3283 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3284 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3285 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3286 13, 14, 15, 112, 17, 18, 19, 20, 21, 22,
3287 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3288 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3289 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3290 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
3291 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3292 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3293 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3294 -1, 94, -1, 96, -1, -1, 3, 4, 5, 6,
3295 7, 8, 9, 10, 11, -1, 13, 14, 15, 112,
3296 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
3297 27, 28, 29, 30, 31, 32, 33, -1, 35, 36,
3298 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3299 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3300 57, 58, -1, -1, 61, 62, -1, -1, -1, -1,
3301 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3302 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3303 87, 88, 89, -1, -1, -1, -1, 94, -1, 96,
3304 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3305 13, 14, -1, -1, -1, 112, -1, -1, -1, -1,
3306 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3307 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3308 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3309 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3310 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3311 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3312 -1, -1, -1, -1, 87, 88, 89, -1, 91, -1,
3313 -1, 94, 95, -1, -1, 98, 3, 4, 5, 6,
3314 7, 8, 9, 10, 11, 12, 13, 14, -1, 112,
3315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3316 -1, -1, 29, 30, 31, 32, 33, -1, 35, 36,
3317 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3318 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3319 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3320 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3321 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3322 87, 88, 89, -1, 91, -1, -1, 94, 95, -1,
3323 -1, 98, 3, 4, 5, 6, -1, 8, 9, 10,
3324 11, -1, 13, 14, -1, 112, -1, -1, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3326 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3327 41, 42, 43, 44, -1, 46, -1, 48, -1, 50,
3328 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3329 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3330 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3331 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3332 91, -1, -1, 94, 95, 3, 4, 5, 6, -1,
3333 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3334 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3335 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3336 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3337 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3338 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3339 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3340 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3341 88, 89, -1, 91, -1, -1, 94, 95, 3, 4,
3342 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3343 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3344 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3345 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3346 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3347 55, -1, 57, 58, -1, -1, 61, 62, -1, -1,
3348 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3349 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3350 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3351 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3352 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3353 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3354 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3355 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3356 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3357 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3358 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3359 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3360 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3362 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3363 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3364 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3365 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3366 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3367 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3368 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3369 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3370 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3371 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3372 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3373 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3374 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3375 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3376 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3377 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3378 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3379 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3380 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3381 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3382 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3383 -1, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3384 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3385 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3386 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3388 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3389 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3390 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3391 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3392 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3393 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3394 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3395 95, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3396 -1, 13, 14, -1, -1, -1, -1, 112, -1, -1,
3397 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3398 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3399 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3400 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3401 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3402 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3403 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3404 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3406 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3407 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3408 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3409 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3410 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3411 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3412 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3413 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3414 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3415 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3416 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3417 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3418 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3419 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3420 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3421 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3422 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3424 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3425 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3426 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3427 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3428 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3429 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3430 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3431 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3433 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3434 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3435 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3436 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3437 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3438 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3439 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3441 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3442 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3443 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3444 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3445 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3446 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3447 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3448 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3449 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3450 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3451 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3452 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3453 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3454 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3455 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3456 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3457 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3458 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3459 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3460 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3461 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3462 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3463 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3464 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3465 -1, 94, 3, 4, 5, 6, 7, 8, 9, -1,
3466 -1, 12, -1, 14, -1, -1, -1, -1, -1, 112,
3467 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
3468 31, 32, -1, -1, -1, -1, 37, -1, -1, -1,
3469 -1, 42, -1, -1, -1, 46, -1, 48, -1, -1,
3470 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3472 71, 1, -1, 3, 4, 5, 6, 7, 8, 9,
3473 81, -1, -1, -1, 14, -1, -1, -1, 89, -1,
3474 91, -1, -1, 94, 95, -1, -1, 98, -1, 29,
3475 -1, 31, 32, 33, -1, -1, -1, 37, -1, -1,
3476 -1, -1, 42, -1, -1, -1, 46, 47, -1, 49,
3477 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3478 -1, 61, -1, 63, 3, 4, 5, 6, 7, 8,
3479 9, 71, -1, -1, -1, 14, -1, -1, -1, -1,
3480 -1, 81, -1, -1, -1, -1, -1, -1, -1, 89,
3481 -1, -1, -1, 32, 94, -1, -1, -1, 37, -1,
3482 -1, -1, -1, 42, -1, -1, -1, 46, -1, 48,
3483 -1, -1, -1, -1, -1, -1, 55, -1, 57, 58,
3484 3, 4, 5, 6, 7, 8, 9, -1, -1, 12,
3485 -1, 14, 71, -1, -1, -1, -1, -1, -1, -1,
3486 -1, -1, 81, -1, -1, -1, 29, -1, 31, 32,
3487 89, -1, 91, -1, 37, 94, 95, -1, -1, 42,
3488 -1, -1, -1, 46, -1, 3, 4, 5, 6, 7,
3489 8, 9, 55, -1, 57, 58, 14, -1, -1, -1,
3490 -1, -1, -1, -1, -1, -1, -1, -1, 71, -1,
3491 -1, 29, -1, 31, 32, -1, -1, -1, 81, 37,
3492 -1, -1, -1, -1, 42, -1, 89, -1, 46, -1,
3493 -1, 94, -1, -1, -1, -1, -1, 55, -1, 57,
3494 58, -1, -1, -1, -1, 63, 3, 4, 5, 6,
3495 7, 8, 9, 71, -1, -1, -1, 14, -1, -1,
3496 -1, -1, -1, 81, -1, -1, -1, -1, -1, -1,
3497 -1, 89, 29, -1, 31, 32, 94, -1, -1, -1,
3498 37, -1, -1, -1, -1, 42, -1, -1, -1, 46,
3499 -1, 3, 4, 5, 6, 7, 8, 9, 55, -1,
3500 57, 58, 14, -1, 61, -1, -1, -1, -1, -1,
3501 -1, -1, -1, -1, 71, -1, -1, 29, -1, 31,
3502 32, -1, -1, -1, 81, 37, -1, -1, -1, -1,
3503 42, -1, 89, -1, 46, -1, -1, 94, -1, -1,
3504 -1, -1, -1, 55, -1, 57, 58, 3, 4, 5,
3505 6, 7, 8, 9, -1, -1, -1, -1, 14, 71,
3506 -1, -1, -1, -1, -1, -1, -1, -1, -1, 81,
3507 -1, -1, -1, 29, -1, 31, 32, 89, -1, -1,
3508 -1, 37, 94, -1, -1, -1, 42, -1, -1, -1,
3509 46, -1, -1, -1, -1, -1, -1, -1, -1, 55,
3510 -1, 57, 58, 64, 65, 66, 67, 68, 69, 70,
3511 71, 72, 73, 74, 75, 71, 77, 78, 79, 80,
3512 81, 82, 83, 84, 85, 81, -1, -1, -1, -1,
3513 -1, -1, -1, 89, -1, -1, -1, -1, 94, 64,
3514 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3515 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3516 85, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3517 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3518 82, 83, 84, 85, 109, 64, 65, 66, 67, 68,
3519 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3520 79, 80, 81, 82, 83, 84, 85
3521 };
3522 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3523 #line 3 "/usr/lib/bison.simple"
3524
3525 /* Skeleton output parser for bison,
3526 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3527
3528 This program is free software; you can redistribute it and/or modify
3529 it under the terms of the GNU General Public License as published by
3530 the Free Software Foundation; either version 2, or (at your option)
3531 any later version.
3532
3533 This program is distributed in the hope that it will be useful,
3534 but WITHOUT ANY WARRANTY; without even the implied warranty of
3535 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3536 GNU General Public License for more details.
3537
3538 You should have received a copy of the GNU General Public License
3539 along with this program; if not, write to the Free Software
3540 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3541
3542 /* As a special exception, when this file is copied by Bison into a
3543 Bison output file, you may use that output file without restriction.
3544 This special exception was added by the Free Software Foundation
3545 in version 1.24 of Bison. */
3546
3547 #ifndef alloca
3548 #ifdef __GNUC__
3549 #define alloca __builtin_alloca
3550 #else /* not GNU C. */
3551 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3552 #include <alloca.h>
3553 #else /* not sparc */
3554 #if defined (MSDOS) && !defined (__TURBOC__)
3555 #include <malloc.h>
3556 #else /* not MSDOS, or __TURBOC__ */
3557 #if defined(_AIX)
3558 #include <malloc.h>
3559 #pragma alloca
3560 #else /* not MSDOS, __TURBOC__, or _AIX */
3561 #ifdef __hpux
3562 #ifdef __cplusplus
3563 extern "C" {
3564 void *alloca (unsigned int);
3565 };
3566 #else /* not __cplusplus */
3567 void *alloca ();
3568 #endif /* not __cplusplus */
3569 #endif /* __hpux */
3570 #endif /* not _AIX */
3571 #endif /* not MSDOS, or __TURBOC__ */
3572 #endif /* not sparc. */
3573 #endif /* not GNU C. */
3574 #endif /* alloca not defined. */
3575
3576 /* This is the parser code that is written into each bison parser
3577 when the %semantic_parser declaration is not specified in the grammar.
3578 It was written by Richard Stallman by simplifying the hairy parser
3579 used when %semantic_parser is specified. */
3580
3581 /* Note: there must be only one dollar sign in this file.
3582 It is replaced by the list of actions, each action
3583 as one case of the switch. */
3584
3585 #define yyerrok (yyerrstatus = 0)
3586 #define yyclearin (yychar = YYEMPTY)
3587 #define YYEMPTY -2
3588 #define YYEOF 0
3589 #define YYACCEPT return(0)
3590 #define YYABORT return(1)
3591 #define YYERROR goto yyerrlab1
3592 /* Like YYERROR except do call yyerror.
3593 This remains here temporarily to ease the
3594 transition to the new meaning of YYERROR, for GCC.
3595 Once GCC version 2 has supplanted version 1, this can go. */
3596 #define YYFAIL goto yyerrlab
3597 #define YYRECOVERING() (!!yyerrstatus)
3598 #define YYBACKUP(token, value) \
3599 do \
3600 if (yychar == YYEMPTY && yylen == 1) \
3601 { yychar = (token), yylval = (value); \
3602 yychar1 = YYTRANSLATE (yychar); \
3603 YYPOPSTACK; \
3604 goto yybackup; \
3605 } \
3606 else \
3607 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3608 while (0)
3609
3610 #define YYTERROR 1
3611 #define YYERRCODE 256
3612
3613 #ifndef YYPURE
3614 #define YYLEX yylex()
3615 #endif
3616
3617 #ifdef YYPURE
3618 #ifdef YYLSP_NEEDED
3619 #ifdef YYLEX_PARAM
3620 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3621 #else
3622 #define YYLEX yylex(&yylval, &yylloc)
3623 #endif
3624 #else /* not YYLSP_NEEDED */
3625 #ifdef YYLEX_PARAM
3626 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3627 #else
3628 #define YYLEX yylex(&yylval)
3629 #endif
3630 #endif /* not YYLSP_NEEDED */
3631 #endif
3632
3633 /* If nonreentrant, generate the variables here */
3634
3635 #ifndef YYPURE
3636
3637 int yychar; /* the lookahead symbol */
3638 YYSTYPE yylval; /* the semantic value of the */
3639 /* lookahead symbol */
3640
3641 #ifdef YYLSP_NEEDED
3642 YYLTYPE yylloc; /* location data for the lookahead */
3643 /* symbol */
3644 #endif
3645
3646 int yynerrs; /* number of parse errors so far */
3647 #endif /* not YYPURE */
3648
3649 #if YYDEBUG != 0
3650 int yydebug; /* nonzero means print parse trace */
3651 /* Since this is uninitialized, it does not stop multiple parsers
3652 from coexisting. */
3653 #endif
3654
3655 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3656
3657 #ifndef YYINITDEPTH
3658 #define YYINITDEPTH 200
3659 #endif
3660
3661 /* YYMAXDEPTH is the maximum size the stacks can grow to
3662 (effective only if the built-in stack extension method is used). */
3663
3664 #if YYMAXDEPTH == 0
3665 #undef YYMAXDEPTH
3666 #endif
3667
3668 #ifndef YYMAXDEPTH
3669 #define YYMAXDEPTH 10000
3670 #endif
3671
3672 /* Prevent warning if -Wstrict-prototypes. */
3673 #ifdef __GNUC__
3674 int yyparse (void);
3675 #endif
3676 \f
3677 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3678 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3679 #else /* not GNU C or C++ */
3680 #ifndef __cplusplus
3681
3682 /* This is the most reliable way to avoid incompatibilities
3683 in available built-in functions on various systems. */
3684 static void
3685 __yy_memcpy (to, from, count)
3686 char *to;
3687 char *from;
3688 int count;
3689 {
3690 register char *f = from;
3691 register char *t = to;
3692 register int i = count;
3693
3694 while (i-- > 0)
3695 *t++ = *f++;
3696 }
3697
3698 #else /* __cplusplus */
3699
3700 /* This is the most reliable way to avoid incompatibilities
3701 in available built-in functions on various systems. */
3702 static void
3703 __yy_memcpy (char *to, char *from, int count)
3704 {
3705 register char *f = from;
3706 register char *t = to;
3707 register int i = count;
3708
3709 while (i-- > 0)
3710 *t++ = *f++;
3711 }
3712
3713 #endif
3714 #endif
3715 \f
3716 #line 196 "/usr/lib/bison.simple"
3717
3718 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3719 into yyparse. The argument should have type void *.
3720 It should actually point to an object.
3721 Grammar actions can access the variable by casting it
3722 to the proper pointer type. */
3723
3724 #ifdef YYPARSE_PARAM
3725 #ifdef __cplusplus
3726 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3727 #define YYPARSE_PARAM_DECL
3728 #else /* not __cplusplus */
3729 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3730 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3731 #endif /* not __cplusplus */
3732 #else /* not YYPARSE_PARAM */
3733 #define YYPARSE_PARAM_ARG
3734 #define YYPARSE_PARAM_DECL
3735 #endif /* not YYPARSE_PARAM */
3736
3737 int
3738 yyparse(YYPARSE_PARAM_ARG)
3739 YYPARSE_PARAM_DECL
3740 {
3741 register int yystate;
3742 register int yyn;
3743 register short *yyssp;
3744 register YYSTYPE *yyvsp;
3745 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3746 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3747
3748 short yyssa[YYINITDEPTH]; /* the state stack */
3749 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3750
3751 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3752 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3753
3754 #ifdef YYLSP_NEEDED
3755 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3756 YYLTYPE *yyls = yylsa;
3757 YYLTYPE *yylsp;
3758
3759 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3760 #else
3761 #define YYPOPSTACK (yyvsp--, yyssp--)
3762 #endif
3763
3764 int yystacksize = YYINITDEPTH;
3765
3766 #ifdef YYPURE
3767 int yychar;
3768 YYSTYPE yylval;
3769 int yynerrs;
3770 #ifdef YYLSP_NEEDED
3771 YYLTYPE yylloc;
3772 #endif
3773 #endif
3774
3775 YYSTYPE yyval; /* the variable used to return */
3776 /* semantic values from the action */
3777 /* routines */
3778
3779 int yylen;
3780
3781 #if YYDEBUG != 0
3782 if (yydebug)
3783 fprintf(stderr, "Starting parse\n");
3784 #endif
3785
3786 yystate = 0;
3787 yyerrstatus = 0;
3788 yynerrs = 0;
3789 yychar = YYEMPTY; /* Cause a token to be read. */
3790
3791 /* Initialize stack pointers.
3792 Waste one element of value and location stack
3793 so that they stay on the same level as the state stack.
3794 The wasted elements are never initialized. */
3795
3796 yyssp = yyss - 1;
3797 yyvsp = yyvs;
3798 #ifdef YYLSP_NEEDED
3799 yylsp = yyls;
3800 #endif
3801
3802 /* Push a new state, which is found in yystate . */
3803 /* In all cases, when you get here, the value and location stacks
3804 have just been pushed. so pushing a state here evens the stacks. */
3805 yynewstate:
3806
3807 *++yyssp = yystate;
3808
3809 if (yyssp >= yyss + yystacksize - 1)
3810 {
3811 /* Give user a chance to reallocate the stack */
3812 /* Use copies of these so that the &'s don't force the real ones into memory. */
3813 YYSTYPE *yyvs1 = yyvs;
3814 short *yyss1 = yyss;
3815 #ifdef YYLSP_NEEDED
3816 YYLTYPE *yyls1 = yyls;
3817 #endif
3818
3819 /* Get the current used size of the three stacks, in elements. */
3820 int size = yyssp - yyss + 1;
3821
3822 #ifdef yyoverflow
3823 /* Each stack pointer address is followed by the size of
3824 the data in use in that stack, in bytes. */
3825 #ifdef YYLSP_NEEDED
3826 /* This used to be a conditional around just the two extra args,
3827 but that might be undefined if yyoverflow is a macro. */
3828 yyoverflow("parser stack overflow",
3829 &yyss1, size * sizeof (*yyssp),
3830 &yyvs1, size * sizeof (*yyvsp),
3831 &yyls1, size * sizeof (*yylsp),
3832 &yystacksize);
3833 #else
3834 yyoverflow("parser stack overflow",
3835 &yyss1, size * sizeof (*yyssp),
3836 &yyvs1, size * sizeof (*yyvsp),
3837 &yystacksize);
3838 #endif
3839
3840 yyss = yyss1; yyvs = yyvs1;
3841 #ifdef YYLSP_NEEDED
3842 yyls = yyls1;
3843 #endif
3844 #else /* no yyoverflow */
3845 /* Extend the stack our own way. */
3846 if (yystacksize >= YYMAXDEPTH)
3847 {
3848 yyerror("parser stack overflow");
3849 return 2;
3850 }
3851 yystacksize *= 2;
3852 if (yystacksize > YYMAXDEPTH)
3853 yystacksize = YYMAXDEPTH;
3854 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3855 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3856 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3857 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3858 #ifdef YYLSP_NEEDED
3859 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3860 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3861 #endif
3862 #endif /* no yyoverflow */
3863
3864 yyssp = yyss + size - 1;
3865 yyvsp = yyvs + size - 1;
3866 #ifdef YYLSP_NEEDED
3867 yylsp = yyls + size - 1;
3868 #endif
3869
3870 #if YYDEBUG != 0
3871 if (yydebug)
3872 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3873 #endif
3874
3875 if (yyssp >= yyss + yystacksize - 1)
3876 YYABORT;
3877 }
3878
3879 #if YYDEBUG != 0
3880 if (yydebug)
3881 fprintf(stderr, "Entering state %d\n", yystate);
3882 #endif
3883
3884 goto yybackup;
3885 yybackup:
3886
3887 /* Do appropriate processing given the current state. */
3888 /* Read a lookahead token if we need one and don't already have one. */
3889 /* yyresume: */
3890
3891 /* First try to decide what to do without reference to lookahead token. */
3892
3893 yyn = yypact[yystate];
3894 if (yyn == YYFLAG)
3895 goto yydefault;
3896
3897 /* Not known => get a lookahead token if don't already have one. */
3898
3899 /* yychar is either YYEMPTY or YYEOF
3900 or a valid token in external form. */
3901
3902 if (yychar == YYEMPTY)
3903 {
3904 #if YYDEBUG != 0
3905 if (yydebug)
3906 fprintf(stderr, "Reading a token: ");
3907 #endif
3908 yychar = YYLEX;
3909 }
3910
3911 /* Convert token to internal form (in yychar1) for indexing tables with */
3912
3913 if (yychar <= 0) /* This means end of input. */
3914 {
3915 yychar1 = 0;
3916 yychar = YYEOF; /* Don't call YYLEX any more */
3917
3918 #if YYDEBUG != 0
3919 if (yydebug)
3920 fprintf(stderr, "Now at end of input.\n");
3921 #endif
3922 }
3923 else
3924 {
3925 yychar1 = YYTRANSLATE(yychar);
3926
3927 #if YYDEBUG != 0
3928 if (yydebug)
3929 {
3930 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3931 /* Give the individual parser a way to print the precise meaning
3932 of a token, for further debugging info. */
3933 #ifdef YYPRINT
3934 YYPRINT (stderr, yychar, yylval);
3935 #endif
3936 fprintf (stderr, ")\n");
3937 }
3938 #endif
3939 }
3940
3941 yyn += yychar1;
3942 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3943 goto yydefault;
3944
3945 yyn = yytable[yyn];
3946
3947 /* yyn is what to do for this token type in this state.
3948 Negative => reduce, -yyn is rule number.
3949 Positive => shift, yyn is new state.
3950 New state is final state => don't bother to shift,
3951 just return success.
3952 0, or most negative number => error. */
3953
3954 if (yyn < 0)
3955 {
3956 if (yyn == YYFLAG)
3957 goto yyerrlab;
3958 yyn = -yyn;
3959 goto yyreduce;
3960 }
3961 else if (yyn == 0)
3962 goto yyerrlab;
3963
3964 if (yyn == YYFINAL)
3965 YYACCEPT;
3966
3967 /* Shift the lookahead token. */
3968
3969 #if YYDEBUG != 0
3970 if (yydebug)
3971 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3972 #endif
3973
3974 /* Discard the token being shifted unless it is eof. */
3975 if (yychar != YYEOF)
3976 yychar = YYEMPTY;
3977
3978 *++yyvsp = yylval;
3979 #ifdef YYLSP_NEEDED
3980 *++yylsp = yylloc;
3981 #endif
3982
3983 /* count tokens shifted since error; after three, turn off error status. */
3984 if (yyerrstatus) yyerrstatus--;
3985
3986 yystate = yyn;
3987 goto yynewstate;
3988
3989 /* Do the default action for the current state. */
3990 yydefault:
3991
3992 yyn = yydefact[yystate];
3993 if (yyn == 0)
3994 goto yyerrlab;
3995
3996 /* Do a reduction. yyn is the number of a rule to reduce with. */
3997 yyreduce:
3998 yylen = yyr2[yyn];
3999 if (yylen > 0)
4000 yyval = yyvsp[1-yylen]; /* implement default value of the action */
4001
4002 #if YYDEBUG != 0
4003 if (yydebug)
4004 {
4005 int i;
4006
4007 fprintf (stderr, "Reducing via rule %d (line %d), ",
4008 yyn, yyrline[yyn]);
4009
4010 /* Print the symbols being reduced, and their result. */
4011 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4012 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4013 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4014 }
4015 #endif
4016
4017
4018 switch (yyn) {
4019
4020 case 2:
4021 #line 337 "parse.y"
4022 {
4023 /* In case there were missing closebraces,
4024 get us back to the global binding level. */
4025 while (! global_bindings_p ())
4026 poplevel (0, 0, 0);
4027 finish_file ();
4028 ;
4029 break;}
4030 case 3:
4031 #line 351 "parse.y"
4032 { yyval.ttype = NULL_TREE; ;
4033 break;}
4034 case 4:
4035 #line 353 "parse.y"
4036 { yyval.ttype = NULL_TREE; ;
4037 break;}
4038 case 5:
4039 #line 355 "parse.y"
4040 { yyval.ttype = NULL_TREE; ;
4041 break;}
4042 case 8:
4043 #line 364 "parse.y"
4044 { have_extern_spec = 1;
4045 used_extern_spec = 0;
4046 yyval.ttype = NULL_TREE; ;
4047 break;}
4048 case 9:
4049 #line 369 "parse.y"
4050 { have_extern_spec = 0; ;
4051 break;}
4052 case 10:
4053 #line 374 "parse.y"
4054 { yyval.itype = pedantic;
4055 pedantic = 0; ;
4056 break;}
4057 case 13:
4058 #line 384 "parse.y"
4059 { if (pending_lang_change) do_pending_lang_change(); ;
4060 break;}
4061 case 14:
4062 #line 386 "parse.y"
4063 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4064 pop_everything (); ;
4065 break;}
4066 case 15:
4067 #line 392 "parse.y"
4068 { if (pending_inlines) do_pending_inlines (); ;
4069 break;}
4070 case 16:
4071 #line 394 "parse.y"
4072 { if (pending_inlines) do_pending_inlines (); ;
4073 break;}
4074 case 17:
4075 #line 396 "parse.y"
4076 { if (pending_inlines) do_pending_inlines (); ;
4077 break;}
4078 case 18:
4079 #line 398 "parse.y"
4080 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4081 assemble_asm (yyvsp[-2].ttype); ;
4082 break;}
4083 case 19:
4084 #line 401 "parse.y"
4085 { pop_lang_context (); ;
4086 break;}
4087 case 20:
4088 #line 403 "parse.y"
4089 { if (pending_inlines) do_pending_inlines ();
4090 pop_lang_context (); ;
4091 break;}
4092 case 21:
4093 #line 406 "parse.y"
4094 { if (pending_inlines) do_pending_inlines ();
4095 pop_lang_context (); ;
4096 break;}
4097 case 22:
4098 #line 409 "parse.y"
4099 { push_namespace (yyvsp[-1].ttype); ;
4100 break;}
4101 case 23:
4102 #line 411 "parse.y"
4103 { pop_namespace (); ;
4104 break;}
4105 case 24:
4106 #line 413 "parse.y"
4107 { push_namespace (NULL_TREE); ;
4108 break;}
4109 case 25:
4110 #line 415 "parse.y"
4111 { pop_namespace (); ;
4112 break;}
4113 case 26:
4114 #line 417 "parse.y"
4115 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4116 break;}
4117 case 27:
4118 #line 419 "parse.y"
4119 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4120 break;}
4121 case 28:
4122 #line 421 "parse.y"
4123 {
4124 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4125 yyvsp[-1].ttype = lastiddecl;
4126 do_using_directive (yyvsp[-1].ttype);
4127 ;
4128 break;}
4129 case 29:
4130 #line 427 "parse.y"
4131 { pedantic = yyvsp[-1].itype; ;
4132 break;}
4133 case 30:
4134 #line 432 "parse.y"
4135 { yyval.ttype = yyvsp[0].ttype; ;
4136 break;}
4137 case 31:
4138 #line 434 "parse.y"
4139 { yyval.ttype = yyvsp[0].ttype; ;
4140 break;}
4141 case 32:
4142 #line 436 "parse.y"
4143 { yyval.ttype = yyvsp[0].ttype; ;
4144 break;}
4145 case 35:
4146 #line 443 "parse.y"
4147 { yyval.ttype = yyvsp[0].ttype; ;
4148 break;}
4149 case 36:
4150 #line 445 "parse.y"
4151 { yyval.ttype = yyvsp[0].ttype; ;
4152 break;}
4153 case 37:
4154 #line 450 "parse.y"
4155 { push_lang_context (yyvsp[0].ttype); ;
4156 break;}
4157 case 38:
4158 #line 452 "parse.y"
4159 { if (current_lang_name != yyvsp[0].ttype)
4160 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4161 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4162 break;}
4163 case 39:
4164 #line 459 "parse.y"
4165 { begin_template_parm_list (); ;
4166 break;}
4167 case 40:
4168 #line 461 "parse.y"
4169 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4170 break;}
4171 case 41:
4172 #line 463 "parse.y"
4173 { begin_specialization();
4174 yyval.ttype = NULL_TREE; ;
4175 break;}
4176 case 42:
4177 #line 469 "parse.y"
4178 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4179 break;}
4180 case 43:
4181 #line 471 "parse.y"
4182 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4183 break;}
4184 case 44:
4185 #line 476 "parse.y"
4186 { yyval.ttype = yyvsp[0].ttype; ;
4187 break;}
4188 case 45:
4189 #line 478 "parse.y"
4190 { yyval.ttype = NULL_TREE; ;
4191 break;}
4192 case 46:
4193 #line 482 "parse.y"
4194 {
4195 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
4196 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4197 sorry ("signature as template type parameter");
4198 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4199 {
4200 pedwarn ("template type parameters must use the keyword `class'");
4201 TREE_PURPOSE (yyval.ttype) = class_type_node;
4202 }
4203 ;
4204 break;}
4205 case 47:
4206 #line 493 "parse.y"
4207 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4208 break;}
4209 case 48:
4210 #line 498 "parse.y"
4211 {
4212 tree decl = build_decl (TYPE_DECL, yyvsp[0].ttype, NULL_TREE);
4213 tree tmpl = build_lang_decl (TEMPLATE_DECL, yyvsp[0].ttype, NULL_TREE);
4214 DECL_TEMPLATE_PARMS (tmpl) = current_template_parms;
4215 DECL_TEMPLATE_RESULT (tmpl) = decl;
4216 SET_DECL_ARTIFICIAL (decl);
4217 end_template_decl ();
4218
4219 if (yyvsp[-1].ttype == signature_type_node)
4220 sorry ("signature as template template parameter");
4221 else if (yyvsp[-1].ttype != class_type_node)
4222 pedwarn ("template template parameters must use the keyword `class'");
4223 yyval.ttype = build_tree_list (class_type_node, tmpl);
4224 ;
4225 break;}
4226 case 49:
4227 #line 523 "parse.y"
4228 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4229 break;}
4230 case 50:
4231 #line 525 "parse.y"
4232 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4233 break;}
4234 case 51:
4235 #line 527 "parse.y"
4236 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4237 break;}
4238 case 52:
4239 #line 529 "parse.y"
4240 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4241 break;}
4242 case 53:
4243 #line 531 "parse.y"
4244 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4245 break;}
4246 case 54:
4247 #line 533 "parse.y"
4248 {
4249 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4250 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4251 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4252 {
4253 error ("invalid default template argument");
4254 yyvsp[0].ttype = error_mark_node;
4255 }
4256 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4257 ;
4258 break;}
4259 case 55:
4260 #line 548 "parse.y"
4261 {
4262 if (yyvsp[-1].ttype)
4263 end_template_decl ();
4264 else
4265 end_specialization ();
4266 ;
4267 break;}
4268 case 56:
4269 #line 556 "parse.y"
4270 {
4271 if (yyvsp[-1].ttype)
4272 end_template_decl ();
4273 else
4274 end_specialization ();
4275 ;
4276 break;}
4277 case 58:
4278 #line 567 "parse.y"
4279 {;
4280 break;}
4281 case 59:
4282 #line 569 "parse.y"
4283 {
4284 note_list_got_semicolon (yyvsp[-2].ftype.t);
4285 ;
4286 break;}
4287 case 60:
4288 #line 573 "parse.y"
4289 { pedwarn ("empty declaration"); ;
4290 break;}
4291 case 62:
4292 #line 576 "parse.y"
4293 {
4294 tree t, attrs;
4295 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4296 shadow_tag (t);
4297 note_list_got_semicolon (yyvsp[-1].ftype.t);
4298 ;
4299 break;}
4300 case 66:
4301 #line 589 "parse.y"
4302 { yyval.itype = 0; ;
4303 break;}
4304 case 67:
4305 #line 591 "parse.y"
4306 { yyval.itype = 1; ;
4307 break;}
4308 case 73:
4309 #line 607 "parse.y"
4310 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4311 break;}
4312 case 74:
4313 #line 609 "parse.y"
4314 { ;
4315 break;}
4316 case 75:
4317 #line 611 "parse.y"
4318 { ;
4319 break;}
4320 case 76:
4321 #line 616 "parse.y"
4322 {
4323 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4324 if (yyvsp[-2].ttype != current_class_type)
4325 {
4326 push_nested_class (yyvsp[-2].ttype, 3);
4327 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4328 }
4329 ;
4330 break;}
4331 case 77:
4332 #line 625 "parse.y"
4333 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4334 break;}
4335 case 78:
4336 #line 627 "parse.y"
4337 {
4338 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4339 if (yyvsp[-4].ttype != current_class_type)
4340 {
4341 push_nested_class (yyvsp[-4].ttype, 3);
4342 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4343 }
4344 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4345 ;
4346 break;}
4347 case 79:
4348 #line 637 "parse.y"
4349 {
4350 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4351 if (yyvsp[-2].ttype != current_class_type)
4352 {
4353 push_nested_class (yyvsp[-2].ttype, 3);
4354 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4355 }
4356 ;
4357 break;}
4358 case 80:
4359 #line 646 "parse.y"
4360 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4361 break;}
4362 case 81:
4363 #line 648 "parse.y"
4364 {
4365 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4366 if (yyvsp[-4].ttype != current_class_type)
4367 {
4368 push_nested_class (yyvsp[-4].ttype, 3);
4369 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4370 }
4371 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4372 ;
4373 break;}
4374 case 82:
4375 #line 658 "parse.y"
4376 {
4377 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4378 if (yyvsp[-2].ttype != current_class_type)
4379 {
4380 push_nested_class (yyvsp[-2].ttype, 3);
4381 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4382 }
4383 ;
4384 break;}
4385 case 83:
4386 #line 667 "parse.y"
4387 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4388 break;}
4389 case 84:
4390 #line 669 "parse.y"
4391 {
4392 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4393 if (yyvsp[-4].ttype != current_class_type)
4394 {
4395 push_nested_class (yyvsp[-4].ttype, 3);
4396 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4397 }
4398 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4399 ;
4400 break;}
4401 case 85:
4402 #line 679 "parse.y"
4403 {
4404 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4405 if (yyvsp[-2].ttype != current_class_type)
4406 {
4407 push_nested_class (yyvsp[-2].ttype, 3);
4408 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4409 }
4410 ;
4411 break;}
4412 case 86:
4413 #line 688 "parse.y"
4414 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4415 break;}
4416 case 87:
4417 #line 690 "parse.y"
4418 {
4419 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4420 if (yyvsp[-4].ttype != current_class_type)
4421 {
4422 push_nested_class (yyvsp[-4].ttype, 3);
4423 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4424 }
4425 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4426 ;
4427 break;}
4428 case 88:
4429 #line 703 "parse.y"
4430 { tree specs, attrs;
4431 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4432 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4433 YYERROR1;
4434 reinit_parse_for_function ();
4435 yyval.ttype = NULL_TREE; ;
4436 break;}
4437 case 89:
4438 #line 710 "parse.y"
4439 { tree specs, attrs;
4440 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4441 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4442 YYERROR1;
4443 reinit_parse_for_function ();
4444 yyval.ttype = NULL_TREE; ;
4445 break;}
4446 case 90:
4447 #line 717 "parse.y"
4448 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4449 YYERROR1;
4450 reinit_parse_for_function ();
4451 yyval.ttype = NULL_TREE; ;
4452 break;}
4453 case 91:
4454 #line 722 "parse.y"
4455 { tree specs, attrs;
4456 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4457 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4458 YYERROR1;
4459 reinit_parse_for_function ();
4460 yyval.ttype = NULL_TREE; ;
4461 break;}
4462 case 92:
4463 #line 729 "parse.y"
4464 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4465 YYERROR1;
4466 reinit_parse_for_function ();
4467 yyval.ttype = NULL_TREE; ;
4468 break;}
4469 case 93:
4470 #line 737 "parse.y"
4471 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4472 break;}
4473 case 94:
4474 #line 739 "parse.y"
4475 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4476 break;}
4477 case 95:
4478 #line 741 "parse.y"
4479 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4480 break;}
4481 case 96:
4482 #line 743 "parse.y"
4483 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4484 break;}
4485 case 97:
4486 #line 750 "parse.y"
4487 { tree specs = strip_attrs (yyvsp[-1].ttype);
4488 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4489 rest_of_mdef:
4490 if (! yyval.ttype)
4491 YYERROR1;
4492 if (yychar == YYEMPTY)
4493 yychar = YYLEX;
4494 reinit_parse_for_method (yychar, yyval.ttype); ;
4495 break;}
4496 case 98:
4497 #line 759 "parse.y"
4498 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4499 break;}
4500 case 99:
4501 #line 761 "parse.y"
4502 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4503 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4504 break;}
4505 case 100:
4506 #line 764 "parse.y"
4507 { tree specs = strip_attrs (yyvsp[-1].ttype);
4508 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4509 break;}
4510 case 101:
4511 #line 767 "parse.y"
4512 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4513 break;}
4514 case 102:
4515 #line 769 "parse.y"
4516 { tree specs = strip_attrs (yyvsp[-1].ttype);
4517 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4518 break;}
4519 case 103:
4520 #line 772 "parse.y"
4521 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4522 break;}
4523 case 104:
4524 #line 777 "parse.y"
4525 {
4526 if (! current_function_parms_stored)
4527 store_parm_decls ();
4528 yyval.ttype = yyvsp[0].ttype;
4529 ;
4530 break;}
4531 case 105:
4532 #line 786 "parse.y"
4533 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4534 break;}
4535 case 106:
4536 #line 788 "parse.y"
4537 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4538 break;}
4539 case 107:
4540 #line 790 "parse.y"
4541 { store_return_init (yyval.ttype, NULL_TREE); ;
4542 break;}
4543 case 108:
4544 #line 795 "parse.y"
4545 {
4546 if (yyvsp[0].itype == 0)
4547 error ("no base initializers given following ':'");
4548 setup_vtbl_ptr ();
4549 /* Always keep the BLOCK node associated with the outermost
4550 pair of curley braces of a function. These are needed
4551 for correct operation of dwarfout.c. */
4552 keep_next_level ();
4553 ;
4554 break;}
4555 case 109:
4556 #line 808 "parse.y"
4557 {
4558 if (! current_function_parms_stored)
4559 store_parm_decls ();
4560
4561 if (DECL_CONSTRUCTOR_P (current_function_decl))
4562 {
4563 /* Make a contour for the initializer list. */
4564 pushlevel (0);
4565 clear_last_expr ();
4566 expand_start_bindings (0);
4567 }
4568 else if (current_class_type == NULL_TREE)
4569 error ("base initializers not allowed for non-member functions");
4570 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4571 error ("only constructors take base initializers");
4572 ;
4573 break;}
4574 case 110:
4575 #line 828 "parse.y"
4576 { yyval.itype = 0; ;
4577 break;}
4578 case 111:
4579 #line 830 "parse.y"
4580 { yyval.itype = 1; ;
4581 break;}
4582 case 114:
4583 #line 837 "parse.y"
4584 {
4585 if (current_class_name)
4586 pedwarn ("anachronistic old style base class initializer");
4587 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4588 ;
4589 break;}
4590 case 115:
4591 #line 843 "parse.y"
4592 {
4593 if (current_class_name)
4594 pedwarn ("anachronistic old style base class initializer");
4595 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4596 ;
4597 break;}
4598 case 116:
4599 #line 849 "parse.y"
4600 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4601 break;}
4602 case 117:
4603 #line 851 "parse.y"
4604 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4605 break;}
4606 case 118:
4607 #line 853 "parse.y"
4608 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4609 break;}
4610 case 119:
4611 #line 855 "parse.y"
4612 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4613 break;}
4614 case 120:
4615 #line 857 "parse.y"
4616 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4617 yyvsp[-1].ttype); ;
4618 break;}
4619 case 121:
4620 #line 860 "parse.y"
4621 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4622 void_type_node); ;
4623 break;}
4624 case 133:
4625 #line 886 "parse.y"
4626 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4627 yyungetc (';', 1); ;
4628 break;}
4629 case 135:
4630 #line 890 "parse.y"
4631 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4632 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4633 break;}
4634 case 137:
4635 #line 894 "parse.y"
4636 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4637 break;}
4638 case 139:
4639 #line 897 "parse.y"
4640 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4641 break;}
4642 case 141:
4643 #line 900 "parse.y"
4644 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4645 yyungetc (';', 1); ;
4646 break;}
4647 case 143:
4648 #line 905 "parse.y"
4649 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4650 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4651 break;}
4652 case 145:
4653 #line 909 "parse.y"
4654 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4655 break;}
4656 case 147:
4657 #line 912 "parse.y"
4658 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4659 break;}
4660 case 149:
4661 #line 917 "parse.y"
4662 { begin_explicit_instantiation(); ;
4663 break;}
4664 case 150:
4665 #line 920 "parse.y"
4666 { end_explicit_instantiation(); ;
4667 break;}
4668 case 151:
4669 #line 928 "parse.y"
4670 {
4671 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4672 if (yyval.ttype != error_mark_node)
4673 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4674 ;
4675 break;}
4676 case 152:
4677 #line 934 "parse.y"
4678 {
4679 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4680 if (yyval.ttype != error_mark_node)
4681 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4682 ;
4683 break;}
4684 case 154:
4685 #line 944 "parse.y"
4686 {
4687 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4688 if (yyval.ttype != error_mark_node)
4689 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4690 ;
4691 break;}
4692 case 156:
4693 #line 954 "parse.y"
4694 {
4695 /* Handle `Class<Class<Type>>' without space in the `>>' */
4696 pedwarn ("`>>' should be `> >' in template class name");
4697 yyungetc ('>', 1);
4698 ;
4699 break;}
4700 case 157:
4701 #line 963 "parse.y"
4702 { yyval.ttype = NULL_TREE; ;
4703 break;}
4704 case 159:
4705 #line 969 "parse.y"
4706 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4707 break;}
4708 case 160:
4709 #line 971 "parse.y"
4710 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4711 break;}
4712 case 161:
4713 #line 976 "parse.y"
4714 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4715 break;}
4716 case 163:
4717 #line 982 "parse.y"
4718 { yyval.code = NEGATE_EXPR; ;
4719 break;}
4720 case 164:
4721 #line 984 "parse.y"
4722 { yyval.code = CONVERT_EXPR; ;
4723 break;}
4724 case 165:
4725 #line 986 "parse.y"
4726 { yyval.code = PREINCREMENT_EXPR; ;
4727 break;}
4728 case 166:
4729 #line 988 "parse.y"
4730 { yyval.code = PREDECREMENT_EXPR; ;
4731 break;}
4732 case 167:
4733 #line 990 "parse.y"
4734 { yyval.code = TRUTH_NOT_EXPR; ;
4735 break;}
4736 case 168:
4737 #line 995 "parse.y"
4738 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4739 break;}
4740 case 170:
4741 #line 1001 "parse.y"
4742 { error ("ANSI C++ forbids an empty condition for `%s'",
4743 cond_stmt_keyword);
4744 yyval.ttype = integer_zero_node; ;
4745 break;}
4746 case 171:
4747 #line 1005 "parse.y"
4748 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4749 break;}
4750 case 172:
4751 #line 1010 "parse.y"
4752 { error ("ANSI C++ forbids an empty condition for `%s'",
4753 cond_stmt_keyword);
4754 yyval.ttype = integer_zero_node; ;
4755 break;}
4756 case 173:
4757 #line 1014 "parse.y"
4758 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4759 break;}
4760 case 174:
4761 #line 1019 "parse.y"
4762 { yyval.ttype = NULL_TREE; ;
4763 break;}
4764 case 175:
4765 #line 1021 "parse.y"
4766 { yyval.ttype = condition_conversion (yyval.ttype); ;
4767 break;}
4768 case 176:
4769 #line 1023 "parse.y"
4770 { yyval.ttype = NULL_TREE; ;
4771 break;}
4772 case 177:
4773 #line 1028 "parse.y"
4774 { {
4775 tree d;
4776 for (d = getdecls (); d; d = TREE_CHAIN (d))
4777 if (TREE_CODE (d) == TYPE_DECL) {
4778 tree s = TREE_TYPE (d);
4779 if (TREE_CODE (s) == RECORD_TYPE)
4780 cp_error ("definition of class `%T' in condition", s);
4781 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4782 cp_error ("definition of enum `%T' in condition", s);
4783 }
4784 }
4785 current_declspecs = yyvsp[-4].ftype.t;
4786 yyvsp[0].itype = suspend_momentary ();
4787 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4788 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4789 /*prefix_attributes*/ NULL_TREE);
4790 ;
4791 break;}
4792 case 178:
4793 #line 1046 "parse.y"
4794 {
4795 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4796 resume_momentary (yyvsp[-2].itype);
4797 yyval.ttype = yyvsp[-1].ttype;
4798 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4799 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4800 ;
4801 break;}
4802 case 184:
4803 #line 1065 "parse.y"
4804 {
4805 if (processing_template_decl)
4806 {
4807 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4808 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4809 add_tree (yyval.ttype);
4810 }
4811 ;
4812 break;}
4813 case 185:
4814 #line 1074 "parse.y"
4815 {
4816 if (processing_template_decl)
4817 {
4818 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4819 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4820 last_tree = yyvsp[-1].ttype;
4821 }
4822 finish_stmt ();
4823 ;
4824 break;}
4825 case 187:
4826 #line 1089 "parse.y"
4827 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4828 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4829 break;}
4830 case 188:
4831 #line 1092 "parse.y"
4832 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4833 build_expr_list (NULL_TREE, error_mark_node)); ;
4834 break;}
4835 case 189:
4836 #line 1095 "parse.y"
4837 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4838 break;}
4839 case 190:
4840 #line 1097 "parse.y"
4841 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4842 break;}
4843 case 191:
4844 #line 1102 "parse.y"
4845 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4846 break;}
4847 case 193:
4848 #line 1108 "parse.y"
4849 { yyval.ttype = yyvsp[0].ttype; ;
4850 break;}
4851 case 194:
4852 #line 1111 "parse.y"
4853 { yyval.ttype = yyvsp[0].ttype;
4854 pedantic = yyvsp[-1].itype; ;
4855 break;}
4856 case 195:
4857 #line 1114 "parse.y"
4858 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4859 break;}
4860 case 196:
4861 #line 1116 "parse.y"
4862 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4863 break;}
4864 case 197:
4865 #line 1118 "parse.y"
4866 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4867 break;}
4868 case 198:
4869 #line 1120 "parse.y"
4870 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4871 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4872 TREE_NEGATED_INT (yyval.ttype) = 1;
4873 overflow_warning (yyval.ttype);
4874 ;
4875 break;}
4876 case 199:
4877 #line 1127 "parse.y"
4878 { tree label = lookup_label (yyvsp[0].ttype);
4879 if (pedantic)
4880 pedwarn ("ANSI C++ forbids `&&'");
4881 if (label == NULL_TREE)
4882 yyval.ttype = null_pointer_node;
4883 else
4884 {
4885 TREE_USED (label) = 1;
4886 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4887 TREE_CONSTANT (yyval.ttype) = 1;
4888 }
4889 ;
4890 break;}
4891 case 200:
4892 #line 1140 "parse.y"
4893 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4894 break;}
4895 case 201:
4896 #line 1142 "parse.y"
4897 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4898 break;}
4899 case 202:
4900 #line 1144 "parse.y"
4901 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4902 break;}
4903 case 203:
4904 #line 1146 "parse.y"
4905 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4906 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4907 break;}
4908 case 204:
4909 #line 1152 "parse.y"
4910 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4911 check_for_new_type ("new", yyvsp[0].ftype); ;
4912 break;}
4913 case 205:
4914 #line 1155 "parse.y"
4915 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4916 check_for_new_type ("new", yyvsp[-1].ftype); ;
4917 break;}
4918 case 206:
4919 #line 1158 "parse.y"
4920 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4921 check_for_new_type ("new", yyvsp[0].ftype); ;
4922 break;}
4923 case 207:
4924 #line 1161 "parse.y"
4925 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4926 check_for_new_type ("new", yyvsp[-1].ftype); ;
4927 break;}
4928 case 208:
4929 #line 1164 "parse.y"
4930 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4931 NULL_TREE, yyvsp[-3].itype);
4932 check_for_new_type ("new", yyvsp[-1].ftype); ;
4933 break;}
4934 case 209:
4935 #line 1168 "parse.y"
4936 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4937 check_for_new_type ("new", yyvsp[-2].ftype); ;
4938 break;}
4939 case 210:
4940 #line 1171 "parse.y"
4941 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4942 check_for_new_type ("new", yyvsp[-1].ftype); ;
4943 break;}
4944 case 211:
4945 #line 1174 "parse.y"
4946 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4947 check_for_new_type ("new", yyvsp[-2].ftype); ;
4948 break;}
4949 case 212:
4950 #line 1178 "parse.y"
4951 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4952 break;}
4953 case 213:
4954 #line 1180 "parse.y"
4955 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4956 if (yychar == YYEMPTY)
4957 yychar = YYLEX; ;
4958 break;}
4959 case 214:
4960 #line 1184 "parse.y"
4961 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4962 if (yychar == YYEMPTY)
4963 yychar = YYLEX; ;
4964 break;}
4965 case 215:
4966 #line 1188 "parse.y"
4967 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4968 break;}
4969 case 216:
4970 #line 1190 "parse.y"
4971 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4972 break;}
4973 case 217:
4974 #line 1195 "parse.y"
4975 { yyval.ttype = yyvsp[-1].ttype; ;
4976 break;}
4977 case 218:
4978 #line 1197 "parse.y"
4979 {
4980 yyval.ttype = yyvsp[-1].ttype;
4981 pedwarn ("old style placement syntax, use () instead");
4982 ;
4983 break;}
4984 case 219:
4985 #line 1205 "parse.y"
4986 { yyval.ttype = yyvsp[-1].ttype; ;
4987 break;}
4988 case 220:
4989 #line 1207 "parse.y"
4990 { yyval.ttype = NULL_TREE; ;
4991 break;}
4992 case 221:
4993 #line 1209 "parse.y"
4994 {
4995 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4996 yyval.ttype = error_mark_node;
4997 ;
4998 break;}
4999 case 222:
5000 #line 1217 "parse.y"
5001 {
5002 if (pedantic)
5003 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5004 if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST)
5005 yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
5006 else
5007 yyval.ttype = yyvsp[0].ttype;
5008 ;
5009 break;}
5010 case 223:
5011 #line 1230 "parse.y"
5012 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5013 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5014 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5015 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5016 break;}
5017 case 224:
5018 #line 1235 "parse.y"
5019 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5020 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5021 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5022 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5023 break;}
5024 case 226:
5025 #line 1244 "parse.y"
5026 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5027 break;}
5028 case 227:
5029 #line 1246 "parse.y"
5030 {
5031 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5032 nreverse (yyvsp[-2].ttype));
5033 if (pedantic)
5034 pedwarn ("ANSI C++ forbids constructor-expressions");
5035 /* Indicate that this was a GNU C constructor expression. */
5036 TREE_HAS_CONSTRUCTOR (init) = 1;
5037
5038 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5039 ;
5040 break;}
5041 case 229:
5042 #line 1262 "parse.y"
5043 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5044 break;}
5045 case 230:
5046 #line 1264 "parse.y"
5047 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5048 break;}
5049 case 231:
5050 #line 1266 "parse.y"
5051 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5052 break;}
5053 case 232:
5054 #line 1268 "parse.y"
5055 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5056 break;}
5057 case 233:
5058 #line 1270 "parse.y"
5059 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5060 break;}
5061 case 234:
5062 #line 1272 "parse.y"
5063 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5064 break;}
5065 case 235:
5066 #line 1274 "parse.y"
5067 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5068 break;}
5069 case 236:
5070 #line 1276 "parse.y"
5071 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5072 break;}
5073 case 237:
5074 #line 1278 "parse.y"
5075 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5076 break;}
5077 case 238:
5078 #line 1280 "parse.y"
5079 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5080 break;}
5081 case 239:
5082 #line 1282 "parse.y"
5083 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5084 break;}
5085 case 240:
5086 #line 1284 "parse.y"
5087 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5088 break;}
5089 case 241:
5090 #line 1286 "parse.y"
5091 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5092 break;}
5093 case 242:
5094 #line 1288 "parse.y"
5095 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5096 break;}
5097 case 243:
5098 #line 1290 "parse.y"
5099 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5100 break;}
5101 case 244:
5102 #line 1292 "parse.y"
5103 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5104 break;}
5105 case 245:
5106 #line 1294 "parse.y"
5107 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5108 break;}
5109 case 246:
5110 #line 1296 "parse.y"
5111 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5112 break;}
5113 case 247:
5114 #line 1298 "parse.y"
5115 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5116 break;}
5117 case 248:
5118 #line 1300 "parse.y"
5119 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5120 break;}
5121 case 249:
5122 #line 1302 "parse.y"
5123 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5124 if (yyval.ttype != error_mark_node)
5125 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5126 break;}
5127 case 250:
5128 #line 1306 "parse.y"
5129 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5130 break;}
5131 case 251:
5132 #line 1308 "parse.y"
5133 { yyval.ttype = build_throw (NULL_TREE); ;
5134 break;}
5135 case 252:
5136 #line 1310 "parse.y"
5137 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5138 break;}
5139 case 253:
5140 #line 1328 "parse.y"
5141 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5142 break;}
5143 case 259:
5144 #line 1337 "parse.y"
5145 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5146 break;}
5147 case 260:
5148 #line 1341 "parse.y"
5149 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5150 break;}
5151 case 261:
5152 #line 1343 "parse.y"
5153 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5154 break;}
5155 case 262:
5156 #line 1348 "parse.y"
5157 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5158 break;}
5159 case 263:
5160 #line 1350 "parse.y"
5161 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5162 break;}
5163 case 264:
5164 #line 1353 "parse.y"
5165 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5166 break;}
5167 case 269:
5168 #line 1365 "parse.y"
5169 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5170 break;}
5171 case 270:
5172 #line 1367 "parse.y"
5173 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5174 break;}
5175 case 271:
5176 #line 1369 "parse.y"
5177 { yyval.ttype = yyvsp[-1].ttype; ;
5178 break;}
5179 case 272:
5180 #line 1374 "parse.y"
5181 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5182 break;}
5183 case 273:
5184 #line 1376 "parse.y"
5185 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5186 break;}
5187 case 277:
5188 #line 1384 "parse.y"
5189 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5190 break;}
5191 case 278:
5192 #line 1389 "parse.y"
5193 {
5194 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5195 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5196 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5197 yyval.ttype = do_identifier (yyval.ttype, 1);
5198 ;
5199 break;}
5200 case 281:
5201 #line 1398 "parse.y"
5202 {
5203 if (processing_template_decl)
5204 push_obstacks (&permanent_obstack, &permanent_obstack);
5205 yyval.ttype = combine_strings (yyval.ttype);
5206 if (processing_template_decl)
5207 pop_obstacks ();
5208 ;
5209 break;}
5210 case 282:
5211 #line 1406 "parse.y"
5212 { char class;
5213 yyval.ttype = yyvsp[-1].ttype;
5214 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5215 if (class == 'e' || class == '1'
5216 || class == '2' || class == '<')
5217 /* This inhibits warnings in truthvalue_conversion. */
5218 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5219 break;}
5220 case 283:
5221 #line 1414 "parse.y"
5222 { char class;
5223 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5224 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5225 if (class == 'e' || class == '1'
5226 || class == '2' || class == '<')
5227 /* This inhibits warnings in truthvalue_conversion. */
5228 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5229 break;}
5230 case 284:
5231 #line 1422 "parse.y"
5232 { yyval.ttype = error_mark_node; ;
5233 break;}
5234 case 285:
5235 #line 1424 "parse.y"
5236 { if (current_function_decl == 0)
5237 {
5238 error ("braced-group within expression allowed only inside a function");
5239 YYERROR;
5240 }
5241 keep_next_level ();
5242 if (!processing_template_decl)
5243 yyval.ttype = expand_start_stmt_expr ();
5244 else
5245 yyval.ttype = NULL_TREE;
5246 ;
5247 break;}
5248 case 286:
5249 #line 1436 "parse.y"
5250 { tree rtl_exp;
5251 if (pedantic)
5252 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5253 if (!processing_template_decl)
5254 {
5255 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5256 /* The statements have side effects, so the
5257 group does. */
5258 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5259 }
5260
5261 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5262 {
5263 /* Make a BIND_EXPR for the BLOCK already made. */
5264 if (processing_template_decl)
5265 yyval.ttype = build (BIND_EXPR, NULL_TREE,
5266 NULL_TREE, last_tree, yyvsp[-1].ttype);
5267 else
5268 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5269 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5270
5271 /* Remove the block from the tree at this point.
5272 It gets put back at the proper place
5273 when the BIND_EXPR is expanded. */
5274 delete_block (yyvsp[-1].ttype);
5275 }
5276 else
5277 yyval.ttype = yyvsp[-1].ttype;
5278 ;
5279 break;}
5280 case 287:
5281 #line 1466 "parse.y"
5282 {
5283 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5284 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5285 && TREE_TYPE (yyval.ttype) != void_type_node)
5286 yyval.ttype = require_complete_type (yyval.ttype);
5287 ;
5288 break;}
5289 case 288:
5290 #line 1473 "parse.y"
5291 {
5292 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5293 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5294 && TREE_TYPE (yyval.ttype) != void_type_node)
5295 yyval.ttype = require_complete_type (yyval.ttype);
5296 ;
5297 break;}
5298 case 289:
5299 #line 1480 "parse.y"
5300 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5301 break;}
5302 case 290:
5303 #line 1482 "parse.y"
5304 { /* If we get an OFFSET_REF, turn it into what it really
5305 means (e.g., a COMPONENT_REF). This way if we've got,
5306 say, a reference to a static member that's being operated
5307 on, we don't end up trying to find a member operator for
5308 the class it's in. */
5309 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5310 yyval.ttype = resolve_offset_ref (yyval.ttype);
5311 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5312 break;}
5313 case 291:
5314 #line 1491 "parse.y"
5315 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5316 yyval.ttype = resolve_offset_ref (yyval.ttype);
5317 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5318 break;}
5319 case 292:
5320 #line 1496 "parse.y"
5321 { if (current_class_ptr)
5322 {
5323 #ifdef WARNING_ABOUT_CCD
5324 TREE_USED (current_class_ptr) = 1;
5325 #endif
5326 yyval.ttype = current_class_ptr;
5327 }
5328 else if (current_function_decl
5329 && DECL_STATIC_FUNCTION_P (current_function_decl))
5330 {
5331 error ("`this' is unavailable for static member functions");
5332 yyval.ttype = error_mark_node;
5333 }
5334 else
5335 {
5336 if (current_function_decl)
5337 error ("invalid use of `this' in non-member function");
5338 else
5339 error ("invalid use of `this' at top level");
5340 yyval.ttype = error_mark_node;
5341 }
5342 ;
5343 break;}
5344 case 293:
5345 #line 1519 "parse.y"
5346 {
5347 tree type = NULL_TREE;
5348 tree id = yyval.ttype;
5349
5350 /* This is a C cast in C++'s `functional' notation. */
5351 if (yyvsp[-1].ttype == error_mark_node)
5352 {
5353 yyval.ttype = error_mark_node;
5354 break;
5355 }
5356 #if 0
5357 if (yyvsp[-1].ttype == NULL_TREE)
5358 {
5359 error ("cannot cast null list to type `%s'",
5360 IDENTIFIER_POINTER (TYPE_NAME (id)));
5361 yyval.ttype = error_mark_node;
5362 break;
5363 }
5364 #endif
5365 #if 0
5366 /* type is not set! (mrs) */
5367 if (type == error_mark_node)
5368 yyval.ttype = error_mark_node;
5369 else
5370 #endif
5371 {
5372 if (id == ridpointers[(int) RID_CONST])
5373 type = build_type_variant (integer_type_node, 1, 0);
5374 else if (id == ridpointers[(int) RID_VOLATILE])
5375 type = build_type_variant (integer_type_node, 0, 1);
5376 #if 0
5377 /* should not be able to get here (mrs) */
5378 else if (id == ridpointers[(int) RID_FRIEND])
5379 {
5380 error ("cannot cast expression to `friend' type");
5381 yyval.ttype = error_mark_node;
5382 break;
5383 }
5384 #endif
5385 else my_friendly_abort (79);
5386 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5387 }
5388 ;
5389 break;}
5390 case 295:
5391 #line 1564 "parse.y"
5392 { tree type = groktypename (yyvsp[-4].ftype.t);
5393 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5394 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5395 break;}
5396 case 296:
5397 #line 1568 "parse.y"
5398 { tree type = groktypename (yyvsp[-4].ftype.t);
5399 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5400 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5401 break;}
5402 case 297:
5403 #line 1572 "parse.y"
5404 { tree type = groktypename (yyvsp[-4].ftype.t);
5405 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5406 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5407 break;}
5408 case 298:
5409 #line 1576 "parse.y"
5410 { tree type = groktypename (yyvsp[-4].ftype.t);
5411 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5412 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5413 break;}
5414 case 299:
5415 #line 1580 "parse.y"
5416 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5417 break;}
5418 case 300:
5419 #line 1582 "parse.y"
5420 { tree type = groktypename (yyvsp[-1].ftype.t);
5421 check_for_new_type ("typeid", yyvsp[-1].ftype);
5422 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5423 break;}
5424 case 301:
5425 #line 1586 "parse.y"
5426 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5427 break;}
5428 case 302:
5429 #line 1588 "parse.y"
5430 {
5431 got_scope = NULL_TREE;
5432 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5433 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5434 else
5435 yyval.ttype = yyvsp[0].ttype;
5436 ;
5437 break;}
5438 case 303:
5439 #line 1596 "parse.y"
5440 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5441 break;}
5442 case 304:
5443 #line 1598 "parse.y"
5444 { if (processing_template_decl)
5445 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5446 else
5447 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5448 break;}
5449 case 305:
5450 #line 1603 "parse.y"
5451 { if (processing_template_decl)
5452 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5453 NULL_TREE, NULL_TREE);
5454 else
5455 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5456 break;}
5457 case 306:
5458 #line 1609 "parse.y"
5459 {
5460 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5461 ;
5462 break;}
5463 case 307:
5464 #line 1613 "parse.y"
5465 {
5466 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5467 NULL_TREE, LOOKUP_NORMAL);
5468 ;
5469 break;}
5470 case 308:
5471 #line 1618 "parse.y"
5472 {
5473 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5474 NULL_TREE, LOOKUP_NORMAL);
5475 ;
5476 break;}
5477 case 309:
5478 #line 1623 "parse.y"
5479 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5480 break;}
5481 case 310:
5482 #line 1625 "parse.y"
5483 { if (processing_template_decl)
5484 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5485 else
5486 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5487 break;}
5488 case 311:
5489 #line 1630 "parse.y"
5490 {
5491 #if 0
5492 /* This is a future direction of this code, but because
5493 build_x_function_call cannot always undo what is done
5494 in build_component_ref entirely yet, we cannot do this. */
5495 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5496 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5497 && TREE_TYPE (yyval.ttype) != void_type_node)
5498 yyval.ttype = require_complete_type (yyval.ttype);
5499 #else
5500 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5501 LOOKUP_NORMAL);
5502 #endif
5503 ;
5504 break;}
5505 case 312:
5506 #line 1645 "parse.y"
5507 {
5508 #if 0
5509 /* This is a future direction of this code, but because
5510 build_x_function_call cannot always undo what is done
5511 in build_component_ref entirely yet, we cannot do this. */
5512 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5513 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5514 && TREE_TYPE (yyval.ttype) != void_type_node)
5515 yyval.ttype = require_complete_type (yyval.ttype);
5516 #else
5517 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5518 LOOKUP_NORMAL);
5519 #endif
5520 ;
5521 break;}
5522 case 313:
5523 #line 1660 "parse.y"
5524 {
5525 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5526 {
5527 warning ("signature name in scope resolution ignored");
5528 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5529 LOOKUP_NORMAL);
5530 }
5531 else
5532 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5533 ;
5534 break;}
5535 case 314:
5536 #line 1671 "parse.y"
5537 {
5538 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5539 {
5540 warning ("signature name in scope resolution ignored");
5541 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5542 LOOKUP_NORMAL);
5543 }
5544 else
5545 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5546 ;
5547 break;}
5548 case 315:
5549 #line 1683 "parse.y"
5550 {
5551 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5552 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5553 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5554 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5555 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5556 ;
5557 break;}
5558 case 316:
5559 #line 1691 "parse.y"
5560 {
5561 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5562 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5563 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5564 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5565 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5566 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5567 ;
5568 break;}
5569 case 317:
5570 #line 1700 "parse.y"
5571 {
5572 yyval.ttype = error_mark_node;
5573 ;
5574 break;}
5575 case 318:
5576 #line 1745 "parse.y"
5577 { yyval.itype = 0; ;
5578 break;}
5579 case 319:
5580 #line 1747 "parse.y"
5581 { got_scope = NULL_TREE; yyval.itype = 1; ;
5582 break;}
5583 case 320:
5584 #line 1752 "parse.y"
5585 { yyval.itype = 0; ;
5586 break;}
5587 case 321:
5588 #line 1754 "parse.y"
5589 { got_scope = NULL_TREE; yyval.itype = 1; ;
5590 break;}
5591 case 322:
5592 #line 1759 "parse.y"
5593 { yyval.ttype = boolean_true_node; ;
5594 break;}
5595 case 323:
5596 #line 1761 "parse.y"
5597 { yyval.ttype = boolean_false_node; ;
5598 break;}
5599 case 325:
5600 #line 1768 "parse.y"
5601 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5602 break;}
5603 case 326:
5604 #line 1773 "parse.y"
5605 {
5606 if (! current_function_parms_stored)
5607 store_parm_decls ();
5608 setup_vtbl_ptr ();
5609 /* Always keep the BLOCK node associated with the outermost
5610 pair of curley braces of a function. These are needed
5611 for correct operation of dwarfout.c. */
5612 keep_next_level ();
5613 ;
5614 break;}
5615 case 327:
5616 #line 1786 "parse.y"
5617 { got_object = TREE_TYPE (yyval.ttype); ;
5618 break;}
5619 case 328:
5620 #line 1788 "parse.y"
5621 {
5622 yyval.ttype = build_x_arrow (yyval.ttype);
5623 got_object = TREE_TYPE (yyval.ttype);
5624 ;
5625 break;}
5626 case 329:
5627 #line 1796 "parse.y"
5628 {
5629 resume_momentary (yyvsp[-1].itype);
5630 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5631 note_got_semicolon (yyvsp[-2].ftype.t);
5632 ;
5633 break;}
5634 case 330:
5635 #line 1802 "parse.y"
5636 {
5637 resume_momentary (yyvsp[-1].itype);
5638 note_list_got_semicolon (yyvsp[-2].ftype.t);
5639 ;
5640 break;}
5641 case 331:
5642 #line 1807 "parse.y"
5643 { resume_momentary (yyvsp[-1].itype); ;
5644 break;}
5645 case 332:
5646 #line 1809 "parse.y"
5647 {
5648 shadow_tag (yyvsp[-1].ftype.t);
5649 note_list_got_semicolon (yyvsp[-1].ftype.t);
5650 ;
5651 break;}
5652 case 333:
5653 #line 1814 "parse.y"
5654 { warning ("empty declaration"); ;
5655 break;}
5656 case 334:
5657 #line 1816 "parse.y"
5658 { pedantic = yyvsp[-1].itype; ;
5659 break;}
5660 case 337:
5661 #line 1830 "parse.y"
5662 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5663 NULL_TREE, NULL_TREE); ;
5664 break;}
5665 case 338:
5666 #line 1833 "parse.y"
5667 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5668 NULL_TREE); ;
5669 break;}
5670 case 339:
5671 #line 1840 "parse.y"
5672 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5673 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5674 break;}
5675 case 340:
5676 #line 1843 "parse.y"
5677 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5678 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5679 break;}
5680 case 341:
5681 #line 1846 "parse.y"
5682 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5683 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5684 break;}
5685 case 342:
5686 #line 1849 "parse.y"
5687 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5688 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5689 break;}
5690 case 343:
5691 #line 1852 "parse.y"
5692 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5693 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5694 break;}
5695 case 346:
5696 #line 1868 "parse.y"
5697 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5698 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5699 break;}
5700 case 347:
5701 #line 1871 "parse.y"
5702 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5703 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5704 break;}
5705 case 348:
5706 #line 1874 "parse.y"
5707 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5708 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5709 break;}
5710 case 349:
5711 #line 1877 "parse.y"
5712 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5713 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5714 break;}
5715 case 350:
5716 #line 1880 "parse.y"
5717 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5718 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5719 break;}
5720 case 351:
5721 #line 1883 "parse.y"
5722 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5723 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5724 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5725 break;}
5726 case 352:
5727 #line 1890 "parse.y"
5728 { if (extra_warnings)
5729 warning ("`%s' is not at beginning of declaration",
5730 IDENTIFIER_POINTER (yyval.ttype));
5731 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5732 break;}
5733 case 353:
5734 #line 1895 "parse.y"
5735 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5736 break;}
5737 case 354:
5738 #line 1897 "parse.y"
5739 { if (extra_warnings)
5740 warning ("`%s' is not at beginning of declaration",
5741 IDENTIFIER_POINTER (yyvsp[0].ttype));
5742 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5743 break;}
5744 case 355:
5745 #line 1902 "parse.y"
5746 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5747 break;}
5748 case 356:
5749 #line 1904 "parse.y"
5750 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5751 break;}
5752 case 357:
5753 #line 1914 "parse.y"
5754 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5755 break;}
5756 case 358:
5757 #line 1916 "parse.y"
5758 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5759 break;}
5760 case 359:
5761 #line 1918 "parse.y"
5762 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5763 TREE_STATIC (yyval.ttype) = 1; ;
5764 break;}
5765 case 360:
5766 #line 1921 "parse.y"
5767 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5768 warning ("`%s' is not at beginning of declaration",
5769 IDENTIFIER_POINTER (yyvsp[0].ttype));
5770 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5771 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5772 break;}
5773 case 361:
5774 #line 1927 "parse.y"
5775 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5776 break;}
5777 case 362:
5778 #line 1929 "parse.y"
5779 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5780 break;}
5781 case 363:
5782 #line 1940 "parse.y"
5783 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5784 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5785 break;}
5786 case 364:
5787 #line 1943 "parse.y"
5788 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5789 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5790 break;}
5791 case 365:
5792 #line 1946 "parse.y"
5793 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5794 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5795 break;}
5796 case 366:
5797 #line 1949 "parse.y"
5798 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5799 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5800 break;}
5801 case 367:
5802 #line 1955 "parse.y"
5803 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5804 break;}
5805 case 368:
5806 #line 1957 "parse.y"
5807 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5808 break;}
5809 case 370:
5810 #line 1967 "parse.y"
5811 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5812 break;}
5813 case 371:
5814 #line 1969 "parse.y"
5815 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5816 break;}
5817 case 372:
5818 #line 1971 "parse.y"
5819 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5820 yyval.ftype.new_type_flag = 0; ;
5821 break;}
5822 case 373:
5823 #line 1974 "parse.y"
5824 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5825 yyval.ftype.new_type_flag = 0; ;
5826 break;}
5827 case 374:
5828 #line 1977 "parse.y"
5829 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5830
5831 yyval.ftype.new_type_flag = 0;
5832 if (IS_AGGR_TYPE (type))
5833 {
5834 sorry ("sigof type specifier");
5835 yyval.ftype.t = type;
5836 }
5837 else
5838 {
5839 error ("`sigof' applied to non-aggregate expression");
5840 yyval.ftype.t = error_mark_node;
5841 }
5842 ;
5843 break;}
5844 case 375:
5845 #line 1992 "parse.y"
5846 { tree type = groktypename (yyvsp[-1].ftype.t);
5847
5848 yyval.ftype.new_type_flag = 0;
5849 if (IS_AGGR_TYPE (type))
5850 {
5851 sorry ("sigof type specifier");
5852 yyval.ftype.t = type;
5853 }
5854 else
5855 {
5856 error("`sigof' applied to non-aggregate type");
5857 yyval.ftype.t = error_mark_node;
5858 }
5859 ;
5860 break;}
5861 case 376:
5862 #line 2012 "parse.y"
5863 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5864 break;}
5865 case 377:
5866 #line 2014 "parse.y"
5867 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5868 break;}
5869 case 385:
5870 #line 2035 "parse.y"
5871 { yyval.ttype = NULL_TREE; ;
5872 break;}
5873 case 386:
5874 #line 2037 "parse.y"
5875 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5876 break;}
5877 case 387:
5878 #line 2042 "parse.y"
5879 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5880 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5881 break;}
5882 case 388:
5883 #line 2046 "parse.y"
5884 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5885 break;}
5886 case 389:
5887 #line 2048 "parse.y"
5888 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5889 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5890 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5891 break;}
5892 case 390:
5893 #line 2060 "parse.y"
5894 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype,
5895 yyvsp[-1].ttype, 1, &yyval.ttype); ;
5896 break;}
5897 case 391:
5898 #line 2065 "parse.y"
5899 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5900 yyval.itype = yyvsp[-2].itype; ;
5901 break;}
5902 case 392:
5903 #line 2068 "parse.y"
5904 { tree d;
5905 yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
5906 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5907 break;}
5908 case 393:
5909 #line 2075 "parse.y"
5910 { yyval.itype = yyvsp[0].itype; ;
5911 break;}
5912 case 394:
5913 #line 2079 "parse.y"
5914 { yyval.itype = yyvsp[0].itype; ;
5915 break;}
5916 case 395:
5917 #line 2084 "parse.y"
5918 { /* Set things up as initdcl0_innards expects. */
5919 yyval.ttype = yyvsp[0].ttype;
5920 yyvsp[0].ttype = NULL_TREE; ;
5921 break;}
5922 case 396:
5923 #line 2088 "parse.y"
5924 {;
5925 break;}
5926 case 397:
5927 #line 2090 "parse.y"
5928 { tree d;
5929 parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d); ;
5930 break;}
5931 case 398:
5932 #line 2098 "parse.y"
5933 { yyval.ttype = NULL_TREE; ;
5934 break;}
5935 case 399:
5936 #line 2100 "parse.y"
5937 { yyval.ttype = yyvsp[0].ttype; ;
5938 break;}
5939 case 400:
5940 #line 2105 "parse.y"
5941 { yyval.ttype = yyvsp[0].ttype; ;
5942 break;}
5943 case 401:
5944 #line 2107 "parse.y"
5945 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5946 break;}
5947 case 402:
5948 #line 2112 "parse.y"
5949 { yyval.ttype = yyvsp[-2].ttype; ;
5950 break;}
5951 case 403:
5952 #line 2117 "parse.y"
5953 { yyval.ttype = yyvsp[0].ttype; ;
5954 break;}
5955 case 404:
5956 #line 2119 "parse.y"
5957 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5958 break;}
5959 case 405:
5960 #line 2124 "parse.y"
5961 { yyval.ttype = NULL_TREE; ;
5962 break;}
5963 case 406:
5964 #line 2126 "parse.y"
5965 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5966 break;}
5967 case 407:
5968 #line 2128 "parse.y"
5969 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5970 break;}
5971 case 408:
5972 #line 2130 "parse.y"
5973 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5974 break;}
5975 case 409:
5976 #line 2132 "parse.y"
5977 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5978 break;}
5979 case 414:
5980 #line 2148 "parse.y"
5981 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5982 break;}
5983 case 415:
5984 #line 2150 "parse.y"
5985 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5986 break;}
5987 case 416:
5988 #line 2155 "parse.y"
5989 { yyval.ttype = NULL_TREE; ;
5990 break;}
5991 case 417:
5992 #line 2157 "parse.y"
5993 { yyval.ttype = yyvsp[0].ttype; ;
5994 break;}
5995 case 419:
5996 #line 2165 "parse.y"
5997 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5998 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5999 break;}
6000 case 420:
6001 #line 2168 "parse.y"
6002 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6003 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6004 break;}
6005 case 421:
6006 #line 2171 "parse.y"
6007 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6008 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6009 break;}
6010 case 422:
6011 #line 2174 "parse.y"
6012 { yyval.ttype = NULL_TREE; ;
6013 break;}
6014 case 423:
6015 #line 2181 "parse.y"
6016 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6017 break;}
6018 case 424:
6019 #line 2183 "parse.y"
6020 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6021 break;}
6022 case 425:
6023 #line 2186 "parse.y"
6024 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6025 break;}
6026 case 426:
6027 #line 2188 "parse.y"
6028 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6029 break;}
6030 case 427:
6031 #line 2190 "parse.y"
6032 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6033 break;}
6034 case 428:
6035 #line 2195 "parse.y"
6036 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6037 NULL_TREE, 1);
6038 reinit_parse_for_function (); ;
6039 break;}
6040 case 429:
6041 #line 2201 "parse.y"
6042 {
6043 int nested = (hack_decl_function_context
6044 (current_function_decl) != NULL_TREE);
6045 finish_function (lineno, (int)yyvsp[-1].itype, nested);
6046 process_next_inline (yyvsp[-3].ttype);
6047 ;
6048 break;}
6049 case 430:
6050 #line 2208 "parse.y"
6051 { process_next_inline (yyvsp[-2].ttype); ;
6052 break;}
6053 case 431:
6054 #line 2210 "parse.y"
6055 { process_next_inline (yyvsp[-2].ttype); ;
6056 break;}
6057 case 434:
6058 #line 2222 "parse.y"
6059 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6060 break;}
6061 case 435:
6062 #line 2224 "parse.y"
6063 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6064 break;}
6065 case 437:
6066 #line 2229 "parse.y"
6067 { do_pending_defargs (); ;
6068 break;}
6069 case 438:
6070 #line 2231 "parse.y"
6071 { do_pending_defargs (); ;
6072 break;}
6073 case 439:
6074 #line 2236 "parse.y"
6075 { yyvsp[0].itype = suspend_momentary ();
6076 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6077 break;}
6078 case 440:
6079 #line 2239 "parse.y"
6080 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6081 yyval.ftype.new_type_flag = 1;
6082 resume_momentary ((int) yyvsp[-4].itype);
6083 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6084 break;}
6085 case 441:
6086 #line 2244 "parse.y"
6087 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6088 yyval.ftype.new_type_flag = 1;
6089 check_for_missing_semicolon (yyval.ftype.t); ;
6090 break;}
6091 case 442:
6092 #line 2248 "parse.y"
6093 { yyvsp[0].itype = suspend_momentary ();
6094 yyval.ttype = start_enum (make_anon_name ()); ;
6095 break;}
6096 case 443:
6097 #line 2251 "parse.y"
6098 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6099 resume_momentary ((int) yyvsp[-5].itype);
6100 check_for_missing_semicolon (yyvsp[-3].ttype);
6101 yyval.ftype.new_type_flag = 1; ;
6102 break;}
6103 case 444:
6104 #line 2256 "parse.y"
6105 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6106 yyval.ftype.new_type_flag = 1;
6107 check_for_missing_semicolon (yyval.ftype.t); ;
6108 break;}
6109 case 445:
6110 #line 2260 "parse.y"
6111 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6112 yyval.ftype.new_type_flag = 0; ;
6113 break;}
6114 case 446:
6115 #line 2263 "parse.y"
6116 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6117 yyval.ftype.new_type_flag = 0; ;
6118 break;}
6119 case 447:
6120 #line 2266 "parse.y"
6121 { yyval.ftype.t = yyvsp[0].ttype;
6122 yyval.ftype.new_type_flag = 0; ;
6123 break;}
6124 case 448:
6125 #line 2271 "parse.y"
6126 {
6127 int semi;
6128
6129 yyval.ttype = yyvsp[-4].ttype;
6130 #if 0
6131 /* Need to rework class nesting in the
6132 presence of nested classes, etc. */
6133 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
6134 #endif
6135 if (yychar == YYEMPTY)
6136 yychar = YYLEX;
6137 semi = yychar == ';';
6138 /* finish_struct nukes this anyway; if
6139 finish_exception does too, then it can go. */
6140 if (semi)
6141 note_got_semicolon (yyvsp[-4].ttype);
6142
6143 if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
6144 ;
6145 else
6146 {
6147 yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6148 if (semi) note_got_semicolon (yyval.ttype);
6149 }
6150
6151 pop_obstacks ();
6152
6153 if (! semi)
6154 check_for_missing_semicolon (yyvsp[-4].ttype);
6155 if (current_scope () == current_function_decl)
6156 do_pending_defargs ();
6157 ;
6158 break;}
6159 case 449:
6160 #line 2304 "parse.y"
6161 {
6162 if (pending_inlines
6163 && current_scope () == current_function_decl)
6164 do_pending_inlines ();
6165 ;
6166 break;}
6167 case 450:
6168 #line 2310 "parse.y"
6169 {
6170 yyval.ftype.t = yyvsp[-3].ttype;
6171 yyval.ftype.new_type_flag = 1;
6172 if (current_class_type == NULL_TREE)
6173 clear_inline_text_obstack ();
6174
6175 /* Undo the begin_tree in left_curly. */
6176 end_tree ();
6177 ;
6178 break;}
6179 case 451:
6180 #line 2320 "parse.y"
6181 {
6182 yyval.ftype.new_type_flag = 0;
6183 if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6184 {
6185 cp_error ("%T is not a class type", yyvsp[0].ttype);
6186 yyval.ftype.t = error_mark_node;
6187 }
6188 else
6189 {
6190 yyval.ftype.t = yyvsp[0].ttype;
6191 /* struct B: public A; is not accepted by the WP grammar. */
6192 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6193 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6194 cp_error ("base clause without member specification for `%#T'",
6195 yyval.ftype.t);
6196 }
6197 ;
6198 break;}
6199 case 455:
6200 #line 2347 "parse.y"
6201 { if (pedantic && !in_system_header)
6202 pedwarn ("comma at end of enumerator list"); ;
6203 break;}
6204 case 457:
6205 #line 2354 "parse.y"
6206 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6207 break;}
6208 case 458:
6209 #line 2356 "parse.y"
6210 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6211 break;}
6212 case 459:
6213 #line 2358 "parse.y"
6214 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6215 break;}
6216 case 460:
6217 #line 2360 "parse.y"
6218 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6219 break;}
6220 case 461:
6221 #line 2365 "parse.y"
6222 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6223 break;}
6224 case 462:
6225 #line 2370 "parse.y"
6226 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6227 break;}
6228 case 463:
6229 #line 2375 "parse.y"
6230 {
6231 current_aggr = yyvsp[-2].ttype;
6232 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6233 ;
6234 break;}
6235 case 464:
6236 #line 2380 "parse.y"
6237 {
6238 current_aggr = yyvsp[-3].ttype;
6239 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6240 ;
6241 break;}
6242 case 465:
6243 #line 2385 "parse.y"
6244 {
6245 current_aggr = yyvsp[-2].ttype;
6246 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6247 ;
6248 break;}
6249 case 466:
6250 #line 2390 "parse.y"
6251 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6252 break;}
6253 case 467:
6254 #line 2392 "parse.y"
6255 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6256 break;}
6257 case 468:
6258 #line 2397 "parse.y"
6259 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6260 break;}
6261 case 469:
6262 #line 2402 "parse.y"
6263 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6264 break;}
6265 case 470:
6266 #line 2405 "parse.y"
6267 {
6268 yyval.ttype = yyvsp[-1].ttype;
6269 if (yyvsp[0].ttype)
6270 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6271 ;
6272 break;}
6273 case 471:
6274 #line 2411 "parse.y"
6275 {
6276 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6277 if (TREE_INT_CST_LOW (current_aggr) == union_type
6278 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6279 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6280 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6281 && TREE_INT_CST_LOW (current_aggr) != union_type)
6282 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6283 if (yyvsp[0].ttype)
6284 {
6285 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6286 {
6287 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6288 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6289 {
6290 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6291 if (processing_template_decl)
6292 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6293 }
6294 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6295 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6296 }
6297 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6298 }
6299 ;
6300 break;}
6301 case 472:
6302 #line 2440 "parse.y"
6303 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6304 yyungetc ('{', 1); ;
6305 break;}
6306 case 475:
6307 #line 2451 "parse.y"
6308 { yyval.ttype = NULL_TREE; ;
6309 break;}
6310 case 476:
6311 #line 2453 "parse.y"
6312 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6313 break;}
6314 case 477:
6315 #line 2455 "parse.y"
6316 { yyval.ttype = yyvsp[0].ttype; ;
6317 break;}
6318 case 479:
6319 #line 2461 "parse.y"
6320 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6321 break;}
6322 case 480:
6323 #line 2466 "parse.y"
6324 {
6325 tree type = TREE_TYPE (yyvsp[0].ttype);
6326 if (! is_aggr_type (type, 1))
6327 yyval.ttype = NULL_TREE;
6328 else if (current_aggr == signature_type_node
6329 && (! type) && (! IS_SIGNATURE (type)))
6330 {
6331 error ("class name not allowed as base signature");
6332 yyval.ttype = NULL_TREE;
6333 }
6334 else if (current_aggr == signature_type_node)
6335 {
6336 sorry ("signature inheritance, base type `%s' ignored",
6337 IDENTIFIER_POINTER (yyval.ttype));
6338 yyval.ttype = build_tree_list (access_public_node, type);
6339 }
6340 else if (type && IS_SIGNATURE (type))
6341 {
6342 error ("signature name not allowed as base class");
6343 yyval.ttype = NULL_TREE;
6344 }
6345 else
6346 yyval.ttype = build_tree_list (access_default_node, type);
6347 ;
6348 break;}
6349 case 481:
6350 #line 2491 "parse.y"
6351 {
6352 tree type = TREE_TYPE (yyvsp[0].ttype);
6353 if (current_aggr == signature_type_node)
6354 error ("access and source specifiers not allowed in signature");
6355 if (! IS_AGGR_TYPE (type))
6356 yyval.ttype = NULL_TREE;
6357 else if (current_aggr == signature_type_node
6358 && (! type) && (! IS_SIGNATURE (type)))
6359 {
6360 error ("class name not allowed as base signature");
6361 yyval.ttype = NULL_TREE;
6362 }
6363 else if (current_aggr == signature_type_node)
6364 {
6365 sorry ("signature inheritance, base type `%s' ignored",
6366 IDENTIFIER_POINTER (yyval.ttype));
6367 yyval.ttype = build_tree_list (access_public_node, type);
6368 }
6369 else if (type && IS_SIGNATURE (type))
6370 {
6371 error ("signature name not allowed as base class");
6372 yyval.ttype = NULL_TREE;
6373 }
6374 else
6375 yyval.ttype = build_tree_list (yyval.ttype, type);
6376 ;
6377 break;}
6378 case 482:
6379 #line 2521 "parse.y"
6380 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6381 break;}
6382 case 484:
6383 #line 2524 "parse.y"
6384 {
6385 if (current_aggr == signature_type_node)
6386 {
6387 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6388 {
6389 sorry ("`sigof' as base signature specifier");
6390 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6391 }
6392 else
6393 {
6394 error ("`sigof' applied to non-aggregate expression");
6395 yyval.ttype = error_mark_node;
6396 }
6397 }
6398 else
6399 {
6400 error ("`sigof' in struct or class declaration");
6401 yyval.ttype = error_mark_node;
6402 }
6403 ;
6404 break;}
6405 case 485:
6406 #line 2545 "parse.y"
6407 {
6408 if (current_aggr == signature_type_node)
6409 {
6410 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6411 {
6412 sorry ("`sigof' as base signature specifier");
6413 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6414 }
6415 else
6416 {
6417 error ("`sigof' applied to non-aggregate expression");
6418 yyval.ttype = error_mark_node;
6419 }
6420 }
6421 else
6422 {
6423 error ("`sigof' in struct or class declaration");
6424 yyval.ttype = error_mark_node;
6425 }
6426 ;
6427 break;}
6428 case 487:
6429 #line 2570 "parse.y"
6430 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6431 cp_error ("`%D' access", yyvsp[-1].ttype);
6432 yyval.ttype = access_default_virtual_node; ;
6433 break;}
6434 case 488:
6435 #line 2574 "parse.y"
6436 {
6437 if (yyvsp[-2].ttype != access_default_virtual_node)
6438 error ("multiple access specifiers");
6439 else if (yyvsp[-1].ttype == access_public_node)
6440 yyval.ttype = access_public_virtual_node;
6441 else if (yyvsp[-1].ttype == access_protected_node)
6442 yyval.ttype = access_protected_virtual_node;
6443 else /* $2 == access_private_node */
6444 yyval.ttype = access_private_virtual_node;
6445 ;
6446 break;}
6447 case 489:
6448 #line 2585 "parse.y"
6449 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6450 cp_error ("`%D' access", yyvsp[-1].ttype);
6451 else if (yyval.ttype == access_public_node)
6452 yyval.ttype = access_public_virtual_node;
6453 else if (yyval.ttype == access_protected_node)
6454 yyval.ttype = access_protected_virtual_node;
6455 else if (yyval.ttype == access_private_node)
6456 yyval.ttype = access_private_virtual_node;
6457 else
6458 error ("multiple `virtual' specifiers");
6459 ;
6460 break;}
6461 case 490:
6462 #line 2600 "parse.y"
6463 { tree t = yyvsp[-1].ttype;
6464 push_obstacks_nochange ();
6465 end_temporary_allocation ();
6466
6467 if (t == error_mark_node
6468 || ! IS_AGGR_TYPE (t))
6469 {
6470 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6471 pushtag (make_anon_name (), t, 0);
6472 }
6473 if (TYPE_SIZE (t))
6474 duplicate_tag_error (t);
6475 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6476 {
6477 t = make_lang_type (TREE_CODE (t));
6478 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6479 yyvsp[-1].ttype = t;
6480 }
6481 if (processing_template_decl && TYPE_CONTEXT (t)
6482 && ! current_class_type)
6483 push_template_decl (TYPE_STUB_DECL (t));
6484 pushclass (t, 0);
6485 TYPE_BEING_DEFINED (t) = 1;
6486 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6487 {
6488 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6489 && TYPE_SIZE (t) == NULL_TREE)
6490 {
6491 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6492 if (processing_template_decl)
6493 push_template_decl (TYPE_MAIN_DECL (t));
6494 }
6495 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6496 cp_error ("specialization after instantiation of `%T'", t);
6497 }
6498 /* Reset the interface data, at the earliest possible
6499 moment, as it might have been set via a class foo;
6500 before. */
6501 /* Don't change signatures. */
6502 if (! IS_SIGNATURE (t))
6503 {
6504 extern tree pending_vtables;
6505 int needs_writing;
6506 tree name = TYPE_IDENTIFIER (t);
6507
6508 if (! ANON_AGGRNAME_P (name))
6509 {
6510 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6511 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6512 (t, interface_unknown);
6513 }
6514
6515 /* Record how to set the access of this class's
6516 virtual functions. If write_virtuals == 2 or 3, then
6517 inline virtuals are ``extern inline''. */
6518 switch (write_virtuals)
6519 {
6520 case 0:
6521 case 1:
6522 needs_writing = 1;
6523 break;
6524 case 2:
6525 needs_writing = !! value_member (name, pending_vtables);
6526 break;
6527 case 3:
6528 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6529 && CLASSTYPE_INTERFACE_KNOWN (t);
6530 break;
6531 default:
6532 needs_writing = 0;
6533 }
6534 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6535 }
6536 #if 0
6537 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6538 if (t && IDENTIFIER_TEMPLATE (t))
6539 overload_template_name (t, 1);
6540 #endif
6541 reset_specialization();
6542
6543 /* In case this is a local class within a template
6544 function, we save the current tree structure so
6545 that we can get it back later. */
6546 begin_tree ();
6547 ;
6548 break;}
6549 case 491:
6550 #line 2689 "parse.y"
6551 {
6552 yyval.ttype = build_self_reference ();
6553 ;
6554 break;}
6555 case 492:
6556 #line 2696 "parse.y"
6557 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6558 break;}
6559 case 493:
6560 #line 2698 "parse.y"
6561 {
6562 if (current_aggr == signature_type_node)
6563 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6564 else
6565 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6566 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6567 ;
6568 break;}
6569 case 494:
6570 #line 2706 "parse.y"
6571 {
6572 tree visspec = yyvsp[-2].ttype;
6573
6574 if (current_aggr == signature_type_node)
6575 {
6576 error ("access specifier not allowed in signature");
6577 visspec = access_public_node;
6578 }
6579 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6580 ;
6581 break;}
6582 case 495:
6583 #line 2717 "parse.y"
6584 {
6585 if (current_aggr == signature_type_node)
6586 error ("access specifier not allowed in signature");
6587 ;
6588 break;}
6589 case 496:
6590 #line 2727 "parse.y"
6591 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6592 ;
6593 break;}
6594 case 497:
6595 #line 2730 "parse.y"
6596 { /* In pushdecl, we created a reverse list of names
6597 in this binding level. Make sure that the chain
6598 of what we're trying to add isn't the item itself
6599 (which can happen with what pushdecl's doing). */
6600 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6601 {
6602 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6603 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6604 else
6605 yyval.ttype = yyvsp[0].ttype;
6606 }
6607 ;
6608 break;}
6609 case 498:
6610 #line 2746 "parse.y"
6611 { ;
6612 break;}
6613 case 499:
6614 #line 2748 "parse.y"
6615 { error ("missing ';' before right brace");
6616 yyungetc ('}', 0); ;
6617 break;}
6618 case 500:
6619 #line 2753 "parse.y"
6620 { yyval.ttype = finish_method (yyval.ttype); ;
6621 break;}
6622 case 501:
6623 #line 2755 "parse.y"
6624 { yyval.ttype = finish_method (yyval.ttype); ;
6625 break;}
6626 case 502:
6627 #line 2757 "parse.y"
6628 { yyval.ttype = finish_method (yyval.ttype); ;
6629 break;}
6630 case 503:
6631 #line 2759 "parse.y"
6632 { yyval.ttype = finish_method (yyval.ttype); ;
6633 break;}
6634 case 504:
6635 #line 2761 "parse.y"
6636 { yyval.ttype = NULL_TREE; ;
6637 break;}
6638 case 505:
6639 #line 2763 "parse.y"
6640 { yyval.ttype = yyvsp[0].ttype;
6641 pedantic = yyvsp[-1].itype; ;
6642 break;}
6643 case 506:
6644 #line 2766 "parse.y"
6645 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6646 break;}
6647 case 507:
6648 #line 2768 "parse.y"
6649 {
6650 shadow_tag (yyvsp[-1].ftype.t);
6651 note_list_got_semicolon (yyvsp[-1].ftype.t);
6652 yyval.ttype = finish_member_template_decl (yyvsp[-2].ttype, yyvsp[-1].ftype.t);
6653 ;
6654 break;}
6655 case 508:
6656 #line 2780 "parse.y"
6657 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6658 break;}
6659 case 509:
6660 #line 2782 "parse.y"
6661 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6662 break;}
6663 case 510:
6664 #line 2784 "parse.y"
6665 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6666 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6667 break;}
6668 case 511:
6669 #line 2787 "parse.y"
6670 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6671 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6672 break;}
6673 case 512:
6674 #line 2790 "parse.y"
6675 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6676 break;}
6677 case 513:
6678 #line 2792 "parse.y"
6679 { yyval.ttype = NULL_TREE; ;
6680 break;}
6681 case 514:
6682 #line 2803 "parse.y"
6683 { tree specs, attrs;
6684 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6685 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6686 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6687 break;}
6688 case 515:
6689 #line 2808 "parse.y"
6690 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6691 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6692 break;}
6693 case 516:
6694 #line 2811 "parse.y"
6695 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6696 break;}
6697 case 517:
6698 #line 2817 "parse.y"
6699 { yyval.ttype = NULL_TREE; ;
6700 break;}
6701 case 519:
6702 #line 2820 "parse.y"
6703 {
6704 /* In this context, void_type_node encodes
6705 friends. They have been recorded elsewhere. */
6706 if (yyval.ttype == void_type_node)
6707 yyval.ttype = yyvsp[0].ttype;
6708 else
6709 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6710 ;
6711 break;}
6712 case 520:
6713 #line 2832 "parse.y"
6714 { yyval.ttype = NULL_TREE; ;
6715 break;}
6716 case 522:
6717 #line 2835 "parse.y"
6718 {
6719 /* In this context, void_type_node encodes
6720 friends. They have been recorded elsewhere. */
6721 if (yyval.ttype == void_type_node)
6722 yyval.ttype = yyvsp[0].ttype;
6723 else
6724 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6725 ;
6726 break;}
6727 case 527:
6728 #line 2857 "parse.y"
6729 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6730 &prefix_attributes);
6731 yyvsp[-4].ttype = current_declspecs;
6732 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6733 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6734 break;}
6735 case 528:
6736 #line 2863 "parse.y"
6737 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6738 &prefix_attributes);
6739 yyvsp[-4].ttype = current_declspecs;
6740 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6741 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6742 break;}
6743 case 529:
6744 #line 2872 "parse.y"
6745 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6746 &prefix_attributes);
6747 yyvsp[-4].ttype = current_declspecs;
6748 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6749 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6750 break;}
6751 case 530:
6752 #line 2878 "parse.y"
6753 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6754 &prefix_attributes);
6755 yyvsp[-4].ttype = current_declspecs;
6756 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6757 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6758 break;}
6759 case 531:
6760 #line 2884 "parse.y"
6761 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6762 &prefix_attributes);
6763 yyvsp[-4].ttype = current_declspecs;
6764 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6765 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6766 break;}
6767 case 532:
6768 #line 2890 "parse.y"
6769 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6770 &prefix_attributes);
6771 yyvsp[-3].ttype = current_declspecs;
6772 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6773 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6774 break;}
6775 case 533:
6776 #line 2899 "parse.y"
6777 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6778 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6779 break;}
6780 case 534:
6781 #line 2902 "parse.y"
6782 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6783 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6784 break;}
6785 case 535:
6786 #line 2908 "parse.y"
6787 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6788 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6789 break;}
6790 case 536:
6791 #line 2911 "parse.y"
6792 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6793 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6794 break;}
6795 case 537:
6796 #line 2914 "parse.y"
6797 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6798 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6799 break;}
6800 case 539:
6801 #line 2925 "parse.y"
6802 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6803 break;}
6804 case 540:
6805 #line 2930 "parse.y"
6806 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6807 break;}
6808 case 541:
6809 #line 2932 "parse.y"
6810 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6811 break;}
6812 case 542:
6813 #line 2938 "parse.y"
6814 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6815 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6816 break;}
6817 case 543:
6818 #line 2941 "parse.y"
6819 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6820 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6821 break;}
6822 case 544:
6823 #line 2946 "parse.y"
6824 {
6825 if (pedantic)
6826 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6827 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6828 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6829 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6830 ;
6831 break;}
6832 case 545:
6833 #line 2957 "parse.y"
6834 { yyval.ttype = NULL_TREE; ;
6835 break;}
6836 case 546:
6837 #line 2959 "parse.y"
6838 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6839 break;}
6840 case 547:
6841 #line 2964 "parse.y"
6842 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6843 yyval.ftype.new_type_flag = 0; ;
6844 break;}
6845 case 548:
6846 #line 2967 "parse.y"
6847 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6848 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6849 break;}
6850 case 549:
6851 #line 2976 "parse.y"
6852 { yyval.itype = suspend_momentary (); ;
6853 break;}
6854 case 550:
6855 #line 2981 "parse.y"
6856 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6857 break;}
6858 case 551:
6859 #line 2987 "parse.y"
6860 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6861 break;}
6862 case 552:
6863 #line 2989 "parse.y"
6864 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6865 break;}
6866 case 553:
6867 #line 2991 "parse.y"
6868 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6869 break;}
6870 case 554:
6871 #line 2993 "parse.y"
6872 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6873 break;}
6874 case 555:
6875 #line 3000 "parse.y"
6876 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6877 break;}
6878 case 556:
6879 #line 3002 "parse.y"
6880 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6881 break;}
6882 case 557:
6883 #line 3004 "parse.y"
6884 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6885 break;}
6886 case 558:
6887 #line 3006 "parse.y"
6888 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6889 break;}
6890 case 559:
6891 #line 3008 "parse.y"
6892 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6893 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6894 ;
6895 break;}
6896 case 561:
6897 #line 3016 "parse.y"
6898 {
6899 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6900 {
6901 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6902 if (current_class_type
6903 && TYPE_BEING_DEFINED (current_class_type)
6904 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6905 {
6906 /* Remember that this name has been used in the class
6907 definition, as per [class.scope0] */
6908 pushdecl_class_level (yyval.ttype);
6909 }
6910 }
6911 else
6912 yyval.ttype = yyvsp[0].ttype;
6913 ;
6914 break;}
6915 case 562:
6916 #line 3033 "parse.y"
6917 {
6918 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6919 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6920 else
6921 yyval.ttype = yyvsp[0].ttype;
6922 got_scope = NULL_TREE;
6923 ;
6924 break;}
6925 case 565:
6926 #line 3046 "parse.y"
6927 { yyval.ttype = yyvsp[0].ttype; ;
6928 break;}
6929 case 566:
6930 #line 3051 "parse.y"
6931 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6932 break;}
6933 case 567:
6934 #line 3056 "parse.y"
6935 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6936 break;}
6937 case 568:
6938 #line 3058 "parse.y"
6939 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6940 break;}
6941 case 569:
6942 #line 3060 "parse.y"
6943 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6944 break;}
6945 case 570:
6946 #line 3062 "parse.y"
6947 { yyval.ttype = yyvsp[-1].ttype; ;
6948 break;}
6949 case 571:
6950 #line 3064 "parse.y"
6951 { push_nested_class (yyvsp[-1].ttype, 3);
6952 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6953 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6954 break;}
6955 case 573:
6956 #line 3075 "parse.y"
6957 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6958 break;}
6959 case 574:
6960 #line 3077 "parse.y"
6961 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6962 break;}
6963 case 575:
6964 #line 3079 "parse.y"
6965 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6966 break;}
6967 case 576:
6968 #line 3081 "parse.y"
6969 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6970 break;}
6971 case 577:
6972 #line 3083 "parse.y"
6973 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6974 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6975 ;
6976 break;}
6977 case 579:
6978 #line 3091 "parse.y"
6979 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6980 break;}
6981 case 580:
6982 #line 3093 "parse.y"
6983 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6984 break;}
6985 case 581:
6986 #line 3095 "parse.y"
6987 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6988 break;}
6989 case 582:
6990 #line 3097 "parse.y"
6991 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6992 break;}
6993 case 583:
6994 #line 3099 "parse.y"
6995 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6996 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6997 ;
6998 break;}
6999 case 585:
7000 #line 3107 "parse.y"
7001 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7002 break;}
7003 case 586:
7004 #line 3109 "parse.y"
7005 { yyval.ttype = yyvsp[-1].ttype; ;
7006 break;}
7007 case 587:
7008 #line 3111 "parse.y"
7009 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7010 break;}
7011 case 588:
7012 #line 3113 "parse.y"
7013 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7014 break;}
7015 case 589:
7016 #line 3115 "parse.y"
7017 { if (OP0 (yyval.ttype) != current_class_type)
7018 {
7019 push_nested_class (OP0 (yyval.ttype), 3);
7020 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7021 }
7022 ;
7023 break;}
7024 case 590:
7025 #line 3122 "parse.y"
7026 { got_scope = NULL_TREE;
7027 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7028 if (yyvsp[-1].ttype != current_class_type)
7029 {
7030 push_nested_class (yyvsp[-1].ttype, 3);
7031 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7032 }
7033 ;
7034 break;}
7035 case 591:
7036 #line 3134 "parse.y"
7037 { got_scope = NULL_TREE;
7038 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7039 break;}
7040 case 592:
7041 #line 3137 "parse.y"
7042 { got_scope = NULL_TREE;
7043 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7044 break;}
7045 case 593:
7046 #line 3143 "parse.y"
7047 { got_scope = NULL_TREE;
7048 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7049 break;}
7050 case 594:
7051 #line 3146 "parse.y"
7052 { got_scope = NULL_TREE;
7053 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7054 break;}
7055 case 596:
7056 #line 3153 "parse.y"
7057 { yyval.ttype = yyvsp[0].ttype; ;
7058 break;}
7059 case 597:
7060 #line 3158 "parse.y"
7061 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7062 break;}
7063 case 598:
7064 #line 3160 "parse.y"
7065 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7066 break;}
7067 case 599:
7068 #line 3162 "parse.y"
7069 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7070 break;}
7071 case 604:
7072 #line 3174 "parse.y"
7073 { yyval.ttype = yyvsp[0].ttype; ;
7074 break;}
7075 case 605:
7076 #line 3176 "parse.y"
7077 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7078 break;}
7079 case 606:
7080 #line 3183 "parse.y"
7081 {
7082 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7083 {
7084 yyval.ttype = lastiddecl;
7085 /* Remember that this name has been used in the class
7086 definition, as per [class.scope0] */
7087 if (current_class_type
7088 && TYPE_BEING_DEFINED (current_class_type)
7089 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7090 pushdecl_class_level (yyval.ttype);
7091 }
7092 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7093 ;
7094 break;}
7095 case 607:
7096 #line 3197 "parse.y"
7097 {
7098 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7099 yyval.ttype = lastiddecl;
7100 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7101 ;
7102 break;}
7103 case 608:
7104 #line 3203 "parse.y"
7105 {
7106 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7107 yyval.ttype = lastiddecl;
7108 got_scope = yyval.ttype;
7109 ;
7110 break;}
7111 case 609:
7112 #line 3209 "parse.y"
7113 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7114 break;}
7115 case 611:
7116 #line 3225 "parse.y"
7117 { yyval.ttype = yyvsp[0].ttype; ;
7118 break;}
7119 case 612:
7120 #line 3230 "parse.y"
7121 {
7122 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7123 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7124 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7125 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7126 else
7127 {
7128 yyval.ttype = yyvsp[0].ttype;
7129 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7130 yyval.ttype = TREE_TYPE (yyval.ttype);
7131 }
7132 ;
7133 break;}
7134 case 613:
7135 #line 3243 "parse.y"
7136 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
7137 break;}
7138 case 614:
7139 #line 3245 "parse.y"
7140 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7141 break;}
7142 case 615:
7143 #line 3247 "parse.y"
7144 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
7145 break;}
7146 case 616:
7147 #line 3252 "parse.y"
7148 {
7149 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7150 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7151 ;
7152 break;}
7153 case 617:
7154 #line 3257 "parse.y"
7155 {
7156 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7157 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7158 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7159 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7160 else
7161 {
7162 yyval.ttype = yyvsp[0].ttype;
7163 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7164 yyval.ttype = TREE_TYPE (yyval.ttype);
7165 }
7166 ;
7167 break;}
7168 case 618:
7169 #line 3270 "parse.y"
7170 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
7171 break;}
7172 case 619:
7173 #line 3272 "parse.y"
7174 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7175 break;}
7176 case 620:
7177 #line 3277 "parse.y"
7178 {
7179 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7180 yyvsp[-1].ttype = lastiddecl;
7181
7182 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype));
7183
7184 if (yyval.ttype == error_mark_node)
7185 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7186 ;
7187 break;}
7188 case 621:
7189 #line 3287 "parse.y"
7190 {
7191 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7192 yyval.ttype = lastiddecl;
7193 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7194 ;
7195 break;}
7196 case 622:
7197 #line 3293 "parse.y"
7198 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7199 break;}
7200 case 625:
7201 #line 3297 "parse.y"
7202 {
7203 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7204 yyval.ttype = lastiddecl;
7205 got_scope = yyval.ttype;
7206 ;
7207 break;}
7208 case 626:
7209 #line 3306 "parse.y"
7210 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7211 break;}
7212 case 627:
7213 #line 3311 "parse.y"
7214 {
7215 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7216 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7217 else
7218 yyval.ttype = yyvsp[0].ttype;
7219 got_scope = NULL_TREE;
7220 ;
7221 break;}
7222 case 629:
7223 #line 3320 "parse.y"
7224 { yyval.ttype = yyvsp[0].ttype; ;
7225 break;}
7226 case 630:
7227 #line 3325 "parse.y"
7228 { got_scope = NULL_TREE; ;
7229 break;}
7230 case 631:
7231 #line 3327 "parse.y"
7232 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7233 break;}
7234 case 632:
7235 #line 3334 "parse.y"
7236 { got_scope = void_type_node; ;
7237 break;}
7238 case 633:
7239 #line 3340 "parse.y"
7240 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7241 break;}
7242 case 634:
7243 #line 3342 "parse.y"
7244 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7245 break;}
7246 case 635:
7247 #line 3344 "parse.y"
7248 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7249 break;}
7250 case 636:
7251 #line 3346 "parse.y"
7252 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7253 break;}
7254 case 637:
7255 #line 3348 "parse.y"
7256 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7257 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7258 ;
7259 break;}
7260 case 638:
7261 #line 3352 "parse.y"
7262 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7263 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7264 ;
7265 break;}
7266 case 640:
7267 #line 3361 "parse.y"
7268 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7269 break;}
7270 case 641:
7271 #line 3363 "parse.y"
7272 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7273 break;}
7274 case 642:
7275 #line 3369 "parse.y"
7276 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7277 break;}
7278 case 643:
7279 #line 3371 "parse.y"
7280 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7281 break;}
7282 case 644:
7283 #line 3373 "parse.y"
7284 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7285 break;}
7286 case 645:
7287 #line 3375 "parse.y"
7288 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7289 break;}
7290 case 646:
7291 #line 3377 "parse.y"
7292 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7293 break;}
7294 case 647:
7295 #line 3379 "parse.y"
7296 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7297 break;}
7298 case 648:
7299 #line 3381 "parse.y"
7300 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7301 break;}
7302 case 649:
7303 #line 3383 "parse.y"
7304 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7305 break;}
7306 case 650:
7307 #line 3385 "parse.y"
7308 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7309 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7310 ;
7311 break;}
7312 case 651:
7313 #line 3389 "parse.y"
7314 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7315 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7316 ;
7317 break;}
7318 case 653:
7319 #line 3398 "parse.y"
7320 { yyval.ttype = yyvsp[-1].ttype; ;
7321 break;}
7322 case 655:
7323 #line 3402 "parse.y"
7324 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7325 break;}
7326 case 656:
7327 #line 3404 "parse.y"
7328 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7329 break;}
7330 case 657:
7331 #line 3406 "parse.y"
7332 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7333 break;}
7334 case 658:
7335 #line 3408 "parse.y"
7336 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7337 break;}
7338 case 659:
7339 #line 3410 "parse.y"
7340 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7341 break;}
7342 case 660:
7343 #line 3412 "parse.y"
7344 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7345 break;}
7346 case 661:
7347 #line 3414 "parse.y"
7348 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7349 break;}
7350 case 662:
7351 #line 3416 "parse.y"
7352 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7353 break;}
7354 case 663:
7355 #line 3418 "parse.y"
7356 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7357 break;}
7358 case 669:
7359 #line 3442 "parse.y"
7360 { do_pushlevel (); ;
7361 break;}
7362 case 670:
7363 #line 3447 "parse.y"
7364 { yyval.ttype = do_poplevel (); ;
7365 break;}
7366 case 672:
7367 #line 3455 "parse.y"
7368 { if (pedantic)
7369 pedwarn ("ANSI C++ forbids label declarations"); ;
7370 break;}
7371 case 675:
7372 #line 3466 "parse.y"
7373 { tree link;
7374 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7375 {
7376 tree label = shadow_label (TREE_VALUE (link));
7377 C_DECLARED_LABEL_FLAG (label) = 1;
7378 declare_nonlocal_label (label);
7379 }
7380 ;
7381 break;}
7382 case 676:
7383 #line 3480 "parse.y"
7384 {;
7385 break;}
7386 case 678:
7387 #line 3486 "parse.y"
7388 {
7389 if (processing_template_decl)
7390 {
7391 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7392 add_tree (yyval.ttype);
7393 }
7394 ;
7395 break;}
7396 case 679:
7397 #line 3494 "parse.y"
7398 {
7399 if (processing_template_decl)
7400 {
7401 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7402 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7403 last_tree = yyvsp[-3].ttype;
7404 }
7405 yyval.ttype = yyvsp[0].ttype;
7406 ;
7407 break;}
7408 case 680:
7409 #line 3507 "parse.y"
7410 {
7411 if (processing_template_decl)
7412 {
7413 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7414 NULL_TREE);
7415 add_tree (yyval.ttype);
7416 }
7417 cond_stmt_keyword = "if";
7418 ;
7419 break;}
7420 case 681:
7421 #line 3517 "parse.y"
7422 {
7423 if (processing_template_decl)
7424 {
7425 if (last_tree != yyvsp[-2].ttype)
7426 {
7427 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7428 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7429 last_tree = yyvsp[-2].ttype;
7430 }
7431 else
7432 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7433 }
7434 else
7435 {
7436 emit_line_note (input_filename, lineno);
7437 expand_start_cond (yyvsp[0].ttype, 0);
7438 }
7439 ;
7440 break;}
7441 case 682:
7442 #line 3536 "parse.y"
7443 {
7444 if (processing_template_decl)
7445 {
7446 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7447 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7448 yyval.ttype = last_tree = yyvsp[-4].ttype;
7449 }
7450 ;
7451 break;}
7452 case 683:
7453 #line 3548 "parse.y"
7454 { finish_stmt (); ;
7455 break;}
7456 case 684:
7457 #line 3550 "parse.y"
7458 {
7459 if (processing_template_decl)
7460 {
7461 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7462 add_tree (yyval.ttype);
7463 }
7464 ;
7465 break;}
7466 case 685:
7467 #line 3558 "parse.y"
7468 {
7469 if (processing_template_decl)
7470 {
7471 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7472 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7473 last_tree = yyvsp[-2].ttype;
7474 }
7475 yyval.ttype = yyvsp[0].ttype;
7476 ;
7477 break;}
7478 case 686:
7479 #line 3571 "parse.y"
7480 { finish_stmt (); ;
7481 break;}
7482 case 688:
7483 #line 3577 "parse.y"
7484 { finish_stmt (); ;
7485 break;}
7486 case 689:
7487 #line 3579 "parse.y"
7488 {
7489 tree expr = yyvsp[-1].ttype;
7490 if (! processing_template_decl)
7491 {
7492 emit_line_note (input_filename, lineno);
7493 /* Do default conversion if safe and possibly important,
7494 in case within ({...}). */
7495 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7496 && lvalue_p (expr))
7497 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7498 expr = default_conversion (expr);
7499 }
7500 cplus_expand_expr_stmt (expr);
7501 clear_momentary ();
7502 finish_stmt (); ;
7503 break;}
7504 case 690:
7505 #line 3595 "parse.y"
7506 { if (! processing_template_decl) expand_start_else (); ;
7507 break;}
7508 case 691:
7509 #line 3597 "parse.y"
7510 {
7511 if (processing_template_decl)
7512 {
7513 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7514 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7515 last_tree = yyvsp[-3].ttype;
7516 }
7517 else
7518 expand_end_cond ();
7519 ;
7520 break;}
7521 case 692:
7522 #line 3608 "parse.y"
7523 { finish_stmt (); ;
7524 break;}
7525 case 693:
7526 #line 3610 "parse.y"
7527 { if (! processing_template_decl) expand_end_cond ();
7528 do_poplevel ();
7529 finish_stmt (); ;
7530 break;}
7531 case 694:
7532 #line 3614 "parse.y"
7533 {
7534 if (processing_template_decl)
7535 {
7536 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7537 add_tree (yyval.ttype);
7538 }
7539 else
7540 {
7541 emit_nop ();
7542 emit_line_note (input_filename, lineno);
7543 expand_start_loop (1);
7544 }
7545 cond_stmt_keyword = "while";
7546 ;
7547 break;}
7548 case 695:
7549 #line 3629 "parse.y"
7550 {
7551 if (processing_template_decl)
7552 {
7553 if (last_tree != yyvsp[-2].ttype)
7554 {
7555 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7556 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7557 last_tree = yyvsp[-2].ttype;
7558 }
7559 else
7560 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7561 }
7562 else
7563 {
7564 emit_line_note (input_filename, lineno);
7565 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7566 }
7567
7568 /* If the condition wasn't a declaration, clear out the
7569 block we made for it and start a new one here so the
7570 optimization in expand_end_loop will work. */
7571 if (getdecls () == NULL_TREE)
7572 {
7573 do_poplevel ();
7574 do_pushlevel ();
7575 }
7576 ;
7577 break;}
7578 case 696:
7579 #line 3657 "parse.y"
7580 {
7581 if (processing_template_decl)
7582 {
7583 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7584 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7585 last_tree = yyvsp[-5].ttype;
7586 }
7587 else
7588 expand_end_loop ();
7589 finish_stmt ();
7590 ;
7591 break;}
7592 case 697:
7593 #line 3669 "parse.y"
7594 {
7595 if (processing_template_decl)
7596 {
7597 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7598 add_tree (yyval.ttype);
7599 }
7600 else
7601 {
7602 emit_nop ();
7603 emit_line_note (input_filename, lineno);
7604 expand_start_loop_continue_elsewhere (1);
7605 }
7606 ;
7607 break;}
7608 case 698:
7609 #line 3683 "parse.y"
7610 {
7611 if (processing_template_decl)
7612 {
7613 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7614 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7615 last_tree = yyvsp[-2].ttype;
7616 }
7617 else
7618 {
7619 expand_loop_continue_here ();
7620 cond_stmt_keyword = "do";
7621 }
7622 ;
7623 break;}
7624 case 699:
7625 #line 3697 "parse.y"
7626 {
7627 if (processing_template_decl)
7628 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7629 else
7630 {
7631 emit_line_note (input_filename, lineno);
7632 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7633 expand_end_loop ();
7634 }
7635 clear_momentary ();
7636 finish_stmt ();
7637 ;
7638 break;}
7639 case 700:
7640 #line 3710 "parse.y"
7641 { if (processing_template_decl)
7642 {
7643 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7644 NULL_TREE, NULL_TREE);
7645 add_tree (yyval.ttype);
7646 }
7647 else
7648 emit_line_note (input_filename, lineno);
7649 if (flag_new_for_scope > 0)
7650 {
7651 /* Conditionalize .pushlevel */
7652 pushlevel (0);
7653 note_level_for_for ();
7654 clear_last_expr ();
7655 push_momentary ();
7656 expand_start_bindings (0);
7657 }
7658 ;
7659 break;}
7660 case 701:
7661 #line 3729 "parse.y"
7662 {
7663 if (processing_template_decl)
7664 {
7665 if (last_tree != yyvsp[-2].ttype)
7666 {
7667 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7668 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7669 last_tree = yyvsp[-2].ttype;
7670 }
7671 }
7672 else
7673 {
7674 emit_nop ();
7675 emit_line_note (input_filename, lineno);
7676 expand_start_loop_continue_elsewhere (1);
7677 }
7678 ;
7679 break;}
7680 case 702:
7681 #line 3747 "parse.y"
7682 {
7683 if (processing_template_decl)
7684 {
7685 if (last_tree != yyvsp[-6].ttype)
7686 {
7687 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7688 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7689 last_tree = yyvsp[-6].ttype;
7690 }
7691 else
7692 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7693 }
7694 else
7695 {
7696 emit_line_note (input_filename, lineno);
7697 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7698 }
7699
7700 /* If the condition wasn't a declaration, clear out the
7701 block we made for it and start a new one here so the
7702 optimization in expand_end_loop will work. */
7703 if (getdecls () == NULL_TREE)
7704 {
7705 do_poplevel ();
7706 do_pushlevel ();
7707 }
7708 ;
7709 break;}
7710 case 703:
7711 #line 3777 "parse.y"
7712 {
7713 if (processing_template_decl)
7714 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7715 push_momentary ();
7716 ;
7717 break;}
7718 case 704:
7719 #line 3783 "parse.y"
7720 {
7721 if (processing_template_decl)
7722 {
7723 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7724 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7725 last_tree = yyvsp[-12].ttype;
7726 }
7727 else
7728 {
7729 emit_line_note (input_filename, lineno);
7730 expand_loop_continue_here ();
7731 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7732 expand_end_loop ();
7733 }
7734 pop_momentary ();
7735 if (flag_new_for_scope > 0)
7736 {
7737 do_poplevel ();
7738 }
7739 finish_stmt (); ;
7740 break;}
7741 case 705:
7742 #line 3804 "parse.y"
7743 {
7744 if (processing_template_decl)
7745 {
7746 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7747 add_tree (yyval.ttype);
7748 }
7749 else
7750 {
7751 emit_line_note (input_filename, lineno);
7752 c_expand_start_case (yyvsp[-1].ttype);
7753 }
7754 push_switch ();
7755 /* Don't let the tree nodes for $4 be discarded by
7756 clear_momentary during the parsing of the next stmt. */
7757 push_momentary ();
7758 ;
7759 break;}
7760 case 706:
7761 #line 3821 "parse.y"
7762 {
7763 if (processing_template_decl)
7764 {
7765 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7766 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7767 last_tree = yyvsp[-1].ttype;
7768 }
7769 else
7770 expand_end_case (yyvsp[-3].ttype);
7771 pop_momentary ();
7772 pop_switch ();
7773 ;
7774 break;}
7775 case 707:
7776 #line 3834 "parse.y"
7777 { finish_stmt (); ;
7778 break;}
7779 case 708:
7780 #line 3836 "parse.y"
7781 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7782 break;}
7783 case 710:
7784 #line 3839 "parse.y"
7785 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7786 break;}
7787 case 712:
7788 #line 3842 "parse.y"
7789 { do_case (NULL_TREE, NULL_TREE); ;
7790 break;}
7791 case 714:
7792 #line 3845 "parse.y"
7793 { emit_line_note (input_filename, lineno);
7794 if (processing_template_decl)
7795 add_tree (build_min_nt (BREAK_STMT));
7796 else if ( ! expand_exit_something ())
7797 error ("break statement not within loop or switch"); ;
7798 break;}
7799 case 715:
7800 #line 3851 "parse.y"
7801 { emit_line_note (input_filename, lineno);
7802 if (processing_template_decl)
7803 add_tree (build_min_nt (CONTINUE_STMT));
7804 else if (! expand_continue_loop (0))
7805 error ("continue statement not within a loop"); ;
7806 break;}
7807 case 716:
7808 #line 3857 "parse.y"
7809 { emit_line_note (input_filename, lineno);
7810 c_expand_return (NULL_TREE); ;
7811 break;}
7812 case 717:
7813 #line 3860 "parse.y"
7814 { emit_line_note (input_filename, lineno);
7815 c_expand_return (yyvsp[-1].ttype);
7816 finish_stmt ();
7817 ;
7818 break;}
7819 case 718:
7820 #line 3865 "parse.y"
7821 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7822 emit_line_note (input_filename, lineno);
7823 expand_asm (yyvsp[-2].ttype);
7824 finish_stmt ();
7825 ;
7826 break;}
7827 case 719:
7828 #line 3872 "parse.y"
7829 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7830 emit_line_note (input_filename, lineno);
7831 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7832 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7833 input_filename, lineno);
7834 finish_stmt ();
7835 ;
7836 break;}
7837 case 720:
7838 #line 3881 "parse.y"
7839 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7840 emit_line_note (input_filename, lineno);
7841 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7842 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7843 input_filename, lineno);
7844 finish_stmt ();
7845 ;
7846 break;}
7847 case 721:
7848 #line 3891 "parse.y"
7849 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7850 emit_line_note (input_filename, lineno);
7851 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7852 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7853 input_filename, lineno);
7854 finish_stmt ();
7855 ;
7856 break;}
7857 case 722:
7858 #line 3899 "parse.y"
7859 {
7860 if (processing_template_decl)
7861 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7862 else
7863 { emit_line_note (input_filename, lineno);
7864 expand_computed_goto (yyvsp[-1].ttype); }
7865 ;
7866 break;}
7867 case 723:
7868 #line 3907 "parse.y"
7869 {
7870 if (processing_template_decl)
7871 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7872 else
7873 {
7874 tree decl;
7875 emit_line_note (input_filename, lineno);
7876 decl = lookup_label (yyvsp[-1].ttype);
7877 TREE_USED (decl) = 1;
7878 expand_goto (decl);
7879 }
7880 ;
7881 break;}
7882 case 724:
7883 #line 3920 "parse.y"
7884 { finish_stmt (); ;
7885 break;}
7886 case 725:
7887 #line 3922 "parse.y"
7888 { error ("label must be followed by statement");
7889 yyungetc ('}', 0);
7890 finish_stmt (); ;
7891 break;}
7892 case 726:
7893 #line 3926 "parse.y"
7894 { finish_stmt (); ;
7895 break;}
7896 case 728:
7897 #line 3932 "parse.y"
7898 {
7899 if (! current_function_parms_stored)
7900 store_parm_decls ();
7901 expand_start_early_try_stmts ();
7902 ;
7903 break;}
7904 case 729:
7905 #line 3938 "parse.y"
7906 { expand_start_all_catch (); ;
7907 break;}
7908 case 730:
7909 #line 3940 "parse.y"
7910 {
7911 int nested = (hack_decl_function_context
7912 (current_function_decl) != NULL_TREE);
7913 expand_end_all_catch ();
7914 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7915 ;
7916 break;}
7917 case 731:
7918 #line 3950 "parse.y"
7919 {
7920 if (processing_template_decl)
7921 {
7922 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7923 NULL_TREE);
7924 add_tree (yyval.ttype);
7925 }
7926 else
7927 {
7928 emit_line_note (input_filename, lineno);
7929 expand_start_try_stmts ();
7930 }
7931 ;
7932 break;}
7933 case 732:
7934 #line 3964 "parse.y"
7935 {
7936 if (processing_template_decl)
7937 {
7938 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7939 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7940 last_tree = yyvsp[-1].ttype;
7941 }
7942 else
7943 expand_start_all_catch ();
7944 ;
7945 break;}
7946 case 733:
7947 #line 3975 "parse.y"
7948 {
7949 if (processing_template_decl)
7950 {
7951 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7952 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7953 last_tree = yyvsp[-3].ttype;
7954 }
7955 else
7956 expand_end_all_catch ();
7957 ;
7958 break;}
7959 case 736:
7960 #line 3994 "parse.y"
7961 {
7962 if (processing_template_decl)
7963 {
7964 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7965 NULL_TREE);
7966 add_tree (yyval.ttype);
7967 }
7968 ;
7969 break;}
7970 case 737:
7971 #line 4003 "parse.y"
7972 {
7973 if (processing_template_decl)
7974 {
7975 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7976 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7977 last_tree = yyvsp[-2].ttype;
7978 }
7979 ;
7980 break;}
7981 case 738:
7982 #line 4012 "parse.y"
7983 {
7984 if (processing_template_decl)
7985 {
7986 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7987 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7988 last_tree = yyvsp[-4].ttype;
7989 }
7990 else
7991 expand_end_catch_block ();
7992 ;
7993 break;}
7994 case 742:
7995 #line 4032 "parse.y"
7996 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7997 break;}
7998 case 743:
7999 #line 4048 "parse.y"
8000 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
8001 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
8002 TREE_VALUE (yyvsp[-1].ftype.t)); ;
8003 break;}
8004 case 744:
8005 #line 4055 "parse.y"
8006 { tree label;
8007 do_label:
8008 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
8009 if (label && ! minimal_parse_mode)
8010 expand_label (label);
8011 ;
8012 break;}
8013 case 745:
8014 #line 4062 "parse.y"
8015 { goto do_label; ;
8016 break;}
8017 case 746:
8018 #line 4064 "parse.y"
8019 { goto do_label; ;
8020 break;}
8021 case 747:
8022 #line 4066 "parse.y"
8023 { goto do_label; ;
8024 break;}
8025 case 748:
8026 #line 4071 "parse.y"
8027 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
8028 break;}
8029 case 750:
8030 #line 4074 "parse.y"
8031 { if (pedantic)
8032 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
8033 ;
8034 break;}
8035 case 751:
8036 #line 4083 "parse.y"
8037 { emit_line_note (input_filename, lineno);
8038 yyval.ttype = NULL_TREE; ;
8039 break;}
8040 case 752:
8041 #line 4086 "parse.y"
8042 { emit_line_note (input_filename, lineno); ;
8043 break;}
8044 case 753:
8045 #line 4091 "parse.y"
8046 { yyval.ttype = NULL_TREE; ;
8047 break;}
8048 case 755:
8049 #line 4094 "parse.y"
8050 { yyval.ttype = NULL_TREE; ;
8051 break;}
8052 case 756:
8053 #line 4101 "parse.y"
8054 { yyval.ttype = NULL_TREE; ;
8055 break;}
8056 case 759:
8057 #line 4108 "parse.y"
8058 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8059 break;}
8060 case 760:
8061 #line 4113 "parse.y"
8062 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8063 break;}
8064 case 761:
8065 #line 4118 "parse.y"
8066 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8067 break;}
8068 case 762:
8069 #line 4120 "parse.y"
8070 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8071 break;}
8072 case 763:
8073 #line 4131 "parse.y"
8074 {
8075 yyval.ttype = empty_parms();
8076 ;
8077 break;}
8078 case 765:
8079 #line 4136 "parse.y"
8080 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8081 TREE_PARMLIST (yyval.ttype) = 1;
8082 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8083 break;}
8084 case 766:
8085 #line 4145 "parse.y"
8086 {
8087 yyval.ttype = chainon (yyval.ttype, void_list_node);
8088 TREE_PARMLIST (yyval.ttype) = 1;
8089 ;
8090 break;}
8091 case 767:
8092 #line 4150 "parse.y"
8093 {
8094 TREE_PARMLIST (yyval.ttype) = 1;
8095 ;
8096 break;}
8097 case 768:
8098 #line 4155 "parse.y"
8099 {
8100 TREE_PARMLIST (yyval.ttype) = 1;
8101 ;
8102 break;}
8103 case 769:
8104 #line 4159 "parse.y"
8105 {
8106 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8107 TREE_PARMLIST (yyval.ttype) = 1;
8108 ;
8109 break;}
8110 case 770:
8111 #line 4164 "parse.y"
8112 {
8113 yyval.ttype = NULL_TREE;
8114 ;
8115 break;}
8116 case 771:
8117 #line 4168 "parse.y"
8118 {
8119 TREE_PARMLIST (yyval.ttype) = 1;
8120 ;
8121 break;}
8122 case 772:
8123 #line 4172 "parse.y"
8124 {
8125 TREE_PARMLIST (yyval.ttype) = 1;
8126 ;
8127 break;}
8128 case 773:
8129 #line 4176 "parse.y"
8130 {
8131 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8132 TREE_PARMLIST (yyval.ttype) = 1;
8133 ;
8134 break;}
8135 case 774:
8136 #line 4181 "parse.y"
8137 {
8138 /* This helps us recover from really nasty
8139 parse errors, for example, a missing right
8140 parenthesis. */
8141 yyerror ("possibly missing ')'");
8142 yyval.ttype = chainon (yyval.ttype, void_list_node);
8143 TREE_PARMLIST (yyval.ttype) = 1;
8144 yyungetc (':', 0);
8145 yychar = ')';
8146 ;
8147 break;}
8148 case 775:
8149 #line 4192 "parse.y"
8150 {
8151 /* This helps us recover from really nasty
8152 parse errors, for example, a missing right
8153 parenthesis. */
8154 yyerror ("possibly missing ')'");
8155 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8156 TREE_PARMLIST (yyval.ttype) = 1;
8157 yyungetc (':', 0);
8158 yychar = ')';
8159 ;
8160 break;}
8161 case 776:
8162 #line 4207 "parse.y"
8163 { maybe_snarf_defarg (); ;
8164 break;}
8165 case 777:
8166 #line 4209 "parse.y"
8167 { yyval.ttype = yyvsp[0].ttype; ;
8168 break;}
8169 case 780:
8170 #line 4220 "parse.y"
8171 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8172 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8173 break;}
8174 case 781:
8175 #line 4223 "parse.y"
8176 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8177 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8178 break;}
8179 case 782:
8180 #line 4226 "parse.y"
8181 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8182 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8183 break;}
8184 case 783:
8185 #line 4229 "parse.y"
8186 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8187 break;}
8188 case 784:
8189 #line 4231 "parse.y"
8190 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8191 break;}
8192 case 786:
8193 #line 4237 "parse.y"
8194 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8195 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8196 break;}
8197 case 787:
8198 #line 4247 "parse.y"
8199 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8200 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8201 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8202 break;}
8203 case 788:
8204 #line 4251 "parse.y"
8205 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8206 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8207 break;}
8208 case 789:
8209 #line 4254 "parse.y"
8210 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8211 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8212 break;}
8213 case 790:
8214 #line 4257 "parse.y"
8215 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8216 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8217 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8218 break;}
8219 case 791:
8220 #line 4261 "parse.y"
8221 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8222 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8223 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8224 break;}
8225 case 792:
8226 #line 4265 "parse.y"
8227 { tree specs = strip_attrs (yyvsp[-1].ttype);
8228 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8229 yyval.ftype.new_type_flag = 0; ;
8230 break;}
8231 case 793:
8232 #line 4272 "parse.y"
8233 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8234 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8235 break;}
8236 case 794:
8237 #line 4275 "parse.y"
8238 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8239 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8240 break;}
8241 case 797:
8242 #line 4286 "parse.y"
8243 { see_typename (); ;
8244 break;}
8245 case 798:
8246 #line 4291 "parse.y"
8247 {
8248 error ("type specifier omitted for parameter");
8249 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8250 ;
8251 break;}
8252 case 799:
8253 #line 4296 "parse.y"
8254 {
8255 error ("type specifier omitted for parameter");
8256 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8257 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8258 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8259 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8260 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8261 ;
8262 break;}
8263 case 800:
8264 #line 4308 "parse.y"
8265 { yyval.ttype = NULL_TREE; ;
8266 break;}
8267 case 801:
8268 #line 4310 "parse.y"
8269 { yyval.ttype = yyvsp[-1].ttype; ;
8270 break;}
8271 case 802:
8272 #line 4312 "parse.y"
8273 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8274 break;}
8275 case 803:
8276 #line 4317 "parse.y"
8277 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8278 break;}
8279 case 805:
8280 #line 4323 "parse.y"
8281 {
8282 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8283 yyval.ttype = yyvsp[0].ttype;
8284 ;
8285 break;}
8286 case 806:
8287 #line 4331 "parse.y"
8288 { yyval.ttype = NULL_TREE; ;
8289 break;}
8290 case 807:
8291 #line 4333 "parse.y"
8292 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8293 break;}
8294 case 808:
8295 #line 4335 "parse.y"
8296 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8297 break;}
8298 case 809:
8299 #line 4337 "parse.y"
8300 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8301 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8302 ;
8303 break;}
8304 case 810:
8305 #line 4344 "parse.y"
8306 { got_scope = NULL_TREE; ;
8307 break;}
8308 case 811:
8309 #line 4349 "parse.y"
8310 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8311 break;}
8312 case 812:
8313 #line 4351 "parse.y"
8314 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8315 break;}
8316 case 813:
8317 #line 4353 "parse.y"
8318 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8319 break;}
8320 case 814:
8321 #line 4355 "parse.y"
8322 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8323 break;}
8324 case 815:
8325 #line 4357 "parse.y"
8326 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8327 break;}
8328 case 816:
8329 #line 4359 "parse.y"
8330 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8331 break;}
8332 case 817:
8333 #line 4361 "parse.y"
8334 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8335 break;}
8336 case 818:
8337 #line 4363 "parse.y"
8338 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8339 break;}
8340 case 819:
8341 #line 4365 "parse.y"
8342 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8343 break;}
8344 case 820:
8345 #line 4367 "parse.y"
8346 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8347 break;}
8348 case 821:
8349 #line 4369 "parse.y"
8350 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8351 break;}
8352 case 822:
8353 #line 4371 "parse.y"
8354 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8355 break;}
8356 case 823:
8357 #line 4373 "parse.y"
8358 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8359 break;}
8360 case 824:
8361 #line 4375 "parse.y"
8362 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8363 break;}
8364 case 825:
8365 #line 4377 "parse.y"
8366 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8367 break;}
8368 case 826:
8369 #line 4379 "parse.y"
8370 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8371 break;}
8372 case 827:
8373 #line 4381 "parse.y"
8374 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8375 break;}
8376 case 828:
8377 #line 4383 "parse.y"
8378 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8379 break;}
8380 case 829:
8381 #line 4385 "parse.y"
8382 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8383 break;}
8384 case 830:
8385 #line 4387 "parse.y"
8386 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8387 break;}
8388 case 831:
8389 #line 4389 "parse.y"
8390 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8391 break;}
8392 case 832:
8393 #line 4391 "parse.y"
8394 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8395 break;}
8396 case 833:
8397 #line 4393 "parse.y"
8398 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8399 break;}
8400 case 834:
8401 #line 4395 "parse.y"
8402 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8403 break;}
8404 case 835:
8405 #line 4397 "parse.y"
8406 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8407 break;}
8408 case 836:
8409 #line 4399 "parse.y"
8410 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8411 break;}
8412 case 837:
8413 #line 4401 "parse.y"
8414 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8415 break;}
8416 case 838:
8417 #line 4403 "parse.y"
8418 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8419 break;}
8420 case 839:
8421 #line 4405 "parse.y"
8422 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8423 break;}
8424 case 840:
8425 #line 4407 "parse.y"
8426 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8427 break;}
8428 case 841:
8429 #line 4409 "parse.y"
8430 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8431 break;}
8432 case 842:
8433 #line 4411 "parse.y"
8434 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8435 break;}
8436 case 843:
8437 #line 4413 "parse.y"
8438 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8439 break;}
8440 case 844:
8441 #line 4416 "parse.y"
8442 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8443 break;}
8444 case 845:
8445 #line 4418 "parse.y"
8446 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8447 break;}
8448 }
8449 /* the action file gets copied in in place of this dollarsign */
8450 #line 498 "/usr/lib/bison.simple"
8451 \f
8452 yyvsp -= yylen;
8453 yyssp -= yylen;
8454 #ifdef YYLSP_NEEDED
8455 yylsp -= yylen;
8456 #endif
8457
8458 #if YYDEBUG != 0
8459 if (yydebug)
8460 {
8461 short *ssp1 = yyss - 1;
8462 fprintf (stderr, "state stack now");
8463 while (ssp1 != yyssp)
8464 fprintf (stderr, " %d", *++ssp1);
8465 fprintf (stderr, "\n");
8466 }
8467 #endif
8468
8469 *++yyvsp = yyval;
8470
8471 #ifdef YYLSP_NEEDED
8472 yylsp++;
8473 if (yylen == 0)
8474 {
8475 yylsp->first_line = yylloc.first_line;
8476 yylsp->first_column = yylloc.first_column;
8477 yylsp->last_line = (yylsp-1)->last_line;
8478 yylsp->last_column = (yylsp-1)->last_column;
8479 yylsp->text = 0;
8480 }
8481 else
8482 {
8483 yylsp->last_line = (yylsp+yylen-1)->last_line;
8484 yylsp->last_column = (yylsp+yylen-1)->last_column;
8485 }
8486 #endif
8487
8488 /* Now "shift" the result of the reduction.
8489 Determine what state that goes to,
8490 based on the state we popped back to
8491 and the rule number reduced by. */
8492
8493 yyn = yyr1[yyn];
8494
8495 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8496 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8497 yystate = yytable[yystate];
8498 else
8499 yystate = yydefgoto[yyn - YYNTBASE];
8500
8501 goto yynewstate;
8502
8503 yyerrlab: /* here on detecting error */
8504
8505 if (! yyerrstatus)
8506 /* If not already recovering from an error, report this error. */
8507 {
8508 ++yynerrs;
8509
8510 #ifdef YYERROR_VERBOSE
8511 yyn = yypact[yystate];
8512
8513 if (yyn > YYFLAG && yyn < YYLAST)
8514 {
8515 int size = 0;
8516 char *msg;
8517 int x, count;
8518
8519 count = 0;
8520 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8521 for (x = (yyn < 0 ? -yyn : 0);
8522 x < (sizeof(yytname) / sizeof(char *)); x++)
8523 if (yycheck[x + yyn] == x)
8524 size += strlen(yytname[x]) + 15, count++;
8525 msg = (char *) malloc(size + 15);
8526 if (msg != 0)
8527 {
8528 strcpy(msg, "parse error");
8529
8530 if (count < 5)
8531 {
8532 count = 0;
8533 for (x = (yyn < 0 ? -yyn : 0);
8534 x < (sizeof(yytname) / sizeof(char *)); x++)
8535 if (yycheck[x + yyn] == x)
8536 {
8537 strcat(msg, count == 0 ? ", expecting `" : " or `");
8538 strcat(msg, yytname[x]);
8539 strcat(msg, "'");
8540 count++;
8541 }
8542 }
8543 yyerror(msg);
8544 free(msg);
8545 }
8546 else
8547 yyerror ("parse error; also virtual memory exceeded");
8548 }
8549 else
8550 #endif /* YYERROR_VERBOSE */
8551 yyerror("parse error");
8552 }
8553
8554 goto yyerrlab1;
8555 yyerrlab1: /* here on error raised explicitly by an action */
8556
8557 if (yyerrstatus == 3)
8558 {
8559 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8560
8561 /* return failure if at end of input */
8562 if (yychar == YYEOF)
8563 YYABORT;
8564
8565 #if YYDEBUG != 0
8566 if (yydebug)
8567 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8568 #endif
8569
8570 yychar = YYEMPTY;
8571 }
8572
8573 /* Else will try to reuse lookahead token
8574 after shifting the error token. */
8575
8576 yyerrstatus = 3; /* Each real token shifted decrements this */
8577
8578 goto yyerrhandle;
8579
8580 yyerrdefault: /* current state does not do anything special for the error token. */
8581
8582 #if 0
8583 /* This is wrong; only states that explicitly want error tokens
8584 should shift them. */
8585 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8586 if (yyn) goto yydefault;
8587 #endif
8588
8589 yyerrpop: /* pop the current state because it cannot handle the error token */
8590
8591 if (yyssp == yyss) YYABORT;
8592 yyvsp--;
8593 yystate = *--yyssp;
8594 #ifdef YYLSP_NEEDED
8595 yylsp--;
8596 #endif
8597
8598 #if YYDEBUG != 0
8599 if (yydebug)
8600 {
8601 short *ssp1 = yyss - 1;
8602 fprintf (stderr, "Error: state stack now");
8603 while (ssp1 != yyssp)
8604 fprintf (stderr, " %d", *++ssp1);
8605 fprintf (stderr, "\n");
8606 }
8607 #endif
8608
8609 yyerrhandle:
8610
8611 yyn = yypact[yystate];
8612 if (yyn == YYFLAG)
8613 goto yyerrdefault;
8614
8615 yyn += YYTERROR;
8616 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8617 goto yyerrdefault;
8618
8619 yyn = yytable[yyn];
8620 if (yyn < 0)
8621 {
8622 if (yyn == YYFLAG)
8623 goto yyerrpop;
8624 yyn = -yyn;
8625 goto yyreduce;
8626 }
8627 else if (yyn == 0)
8628 goto yyerrpop;
8629
8630 if (yyn == YYFINAL)
8631 YYACCEPT;
8632
8633 #if YYDEBUG != 0
8634 if (yydebug)
8635 fprintf(stderr, "Shifting error token, ");
8636 #endif
8637
8638 *++yyvsp = yylval;
8639 #ifdef YYLSP_NEEDED
8640 *++yylsp = yylloc;
8641 #endif
8642
8643 yystate = yyn;
8644 goto yynewstate;
8645 }
8646 #line 4421 "parse.y"
8647
8648
8649 #ifdef SPEW_DEBUG
8650 const char *
8651 debug_yytranslate (value)
8652 int value;
8653 {
8654 return yytname[YYTRANSLATE (value)];
8655 }
8656
8657 #endif