]> gcc.gnu.org Git - gcc.git/blob - gcc/cp/parse.c
decl.c: Lose arg_looking_for_template.
[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 /* FSF LOCAL dje prefix attributes */
129 extern tree strip_attrs PROTO((tree));
130 /* END FSF LOCAL */
131
132 /* Like YYERROR but do call yyerror. */
133 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
134
135 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
136 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
137
138 /* Contains the statement keyword (if/while/do) to include in an
139 error message if the user supplies an empty conditional expression. */
140 static char *cond_stmt_keyword;
141
142 static tree empty_parms PROTO((void));
143
144 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
145 int have_extern_spec;
146 int used_extern_spec;
147
148 /* Cons up an empty parameter list. */
149 #ifdef __GNUC__
150 __inline
151 #endif
152 static tree
153 empty_parms ()
154 {
155 tree parms;
156
157 if (strict_prototype
158 || current_class_type != NULL)
159 parms = void_list_node;
160 else
161 parms = NULL_TREE;
162 return parms;
163 }
164
165
166 #line 101 "parse.y"
167 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
168 #line 290 "parse.y"
169
170 /* List of types and structure classes of the current declaration. */
171 static tree current_declspecs = NULL_TREE;
172 /* List of prefix attributes in effect.
173 Prefix attributes are parsed by the reserved_declspecs and declmods
174 rules. They create a list that contains *both* declspecs and attrs. */
175 /* ??? It is not clear yet that all cases where an attribute can now appear in
176 a declspec list have been updated. */
177 static tree prefix_attributes = NULL_TREE;
178
179 /* When defining an aggregate, this is the most recent one being defined. */
180 static tree current_aggr;
181
182 /* Tell yyparse how to print a token's value, if yydebug is set. */
183
184 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
185 extern void yyprint PROTO((FILE *, int, YYSTYPE));
186 extern tree combine_strings PROTO((tree));
187 #include <stdio.h>
188
189 #ifndef __cplusplus
190 #ifndef __STDC__
191 #define const
192 #endif
193 #endif
194
195
196
197 #define YYFINAL 1552
198 #define YYFLAG -32768
199 #define YYNTBASE 114
200
201 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 389)
202
203 static const char yytranslate[] = { 0,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
207 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
208 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
210 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 95, 2, 113, 70, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
216 2, 2, 59, 69, 111, 89, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
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, 1, 2, 3, 4, 5,
230 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
231 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
232 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
233 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
234 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
235 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
236 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
237 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
238 106, 107, 108, 109
239 };
240
241 #if YYDEBUG != 0
242 static const short yyprhs[] = { 0,
243 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
244 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
245 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
246 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
247 119, 123, 125, 129, 131, 132, 135, 138, 142, 144,
248 148, 150, 154, 156, 160, 163, 166, 169, 173, 177,
249 180, 183, 186, 189, 192, 194, 196, 198, 199, 201,
250 204, 205, 207, 212, 216, 220, 221, 230, 236, 237,
251 247, 254, 255, 264, 270, 271, 281, 288, 291, 294,
252 296, 299, 301, 308, 313, 320, 325, 328, 330, 333,
253 336, 338, 341, 343, 346, 349, 352, 357, 360, 364,
254 365, 366, 368, 372, 375, 379, 381, 386, 389, 394,
255 397, 402, 405, 407, 409, 411, 413, 415, 417, 419,
256 421, 423, 425, 427, 428, 435, 436, 443, 444, 450,
257 451, 457, 458, 466, 467, 475, 476, 483, 484, 491,
258 492, 493, 498, 503, 505, 510, 512, 514, 515, 517,
259 519, 523, 525, 527, 529, 531, 533, 535, 537, 539,
260 541, 543, 547, 549, 553, 554, 556, 558, 559, 567,
261 569, 571, 575, 580, 584, 585, 589, 591, 595, 599,
262 603, 607, 609, 611, 613, 616, 619, 622, 625, 628,
263 631, 634, 639, 642, 647, 650, 654, 658, 663, 668,
264 674, 680, 687, 690, 695, 701, 704, 707, 711, 715,
265 719, 721, 725, 728, 732, 737, 739, 742, 748, 750,
266 754, 758, 762, 766, 770, 774, 778, 782, 786, 790,
267 794, 798, 802, 806, 810, 814, 818, 822, 826, 832,
268 836, 840, 842, 845, 849, 851, 853, 855, 857, 859,
269 860, 866, 872, 878, 884, 890, 892, 894, 896, 898,
270 901, 904, 908, 913, 918, 920, 922, 924, 928, 930,
271 932, 934, 936, 940, 944, 948, 949, 954, 959, 962,
272 967, 970, 973, 975, 980, 982, 990, 998, 1006, 1014,
273 1019, 1024, 1027, 1030, 1032, 1037, 1040, 1043, 1049, 1053,
274 1056, 1059, 1065, 1069, 1075, 1079, 1084, 1091, 1094, 1096,
275 1099, 1101, 1104, 1106, 1108, 1110, 1113, 1114, 1117, 1120,
276 1124, 1128, 1132, 1135, 1138, 1141, 1143, 1145, 1147, 1150,
277 1153, 1156, 1159, 1161, 1163, 1165, 1167, 1170, 1173, 1177,
278 1181, 1185, 1190, 1192, 1195, 1198, 1201, 1203, 1205, 1207,
279 1210, 1213, 1216, 1218, 1220, 1223, 1226, 1230, 1232, 1235,
280 1237, 1239, 1241, 1246, 1251, 1256, 1261, 1263, 1265, 1267,
281 1269, 1273, 1275, 1279, 1281, 1285, 1286, 1291, 1292, 1299,
282 1303, 1304, 1311, 1315, 1316, 1323, 1327, 1328, 1335, 1339,
283 1340, 1342, 1344, 1347, 1354, 1356, 1360, 1361, 1363, 1368,
284 1375, 1380, 1382, 1384, 1386, 1388, 1390, 1394, 1395, 1398,
285 1400, 1403, 1407, 1412, 1414, 1416, 1420, 1425, 1432, 1436,
286 1442, 1444, 1449, 1453, 1457, 1458, 1462, 1466, 1470, 1471,
287 1474, 1477, 1478, 1486, 1491, 1492, 1499, 1503, 1506, 1509,
288 1512, 1513, 1514, 1524, 1526, 1527, 1529, 1530, 1532, 1534,
289 1537, 1540, 1543, 1546, 1549, 1552, 1556, 1561, 1565, 1568,
290 1572, 1573, 1575, 1579, 1582, 1585, 1587, 1589, 1590, 1593,
291 1597, 1599, 1604, 1606, 1610, 1612, 1614, 1619, 1624, 1627,
292 1630, 1634, 1638, 1640, 1641, 1643, 1646, 1651, 1655, 1657,
293 1660, 1663, 1666, 1669, 1672, 1675, 1678, 1680, 1683, 1686,
294 1689, 1694, 1699, 1702, 1704, 1710, 1715, 1717, 1720, 1721,
295 1723, 1727, 1728, 1730, 1734, 1736, 1738, 1740, 1742, 1747,
296 1752, 1757, 1762, 1767, 1771, 1776, 1781, 1786, 1791, 1795,
297 1797, 1801, 1803, 1807, 1810, 1812, 1819, 1820, 1823, 1825,
298 1828, 1829, 1832, 1837, 1842, 1845, 1850, 1854, 1858, 1861,
299 1864, 1868, 1870, 1872, 1875, 1877, 1879, 1882, 1885, 1890,
300 1895, 1899, 1903, 1906, 1908, 1912, 1916, 1919, 1922, 1926,
301 1928, 1932, 1936, 1939, 1942, 1946, 1948, 1953, 1957, 1962,
302 1966, 1968, 1971, 1974, 1977, 1980, 1983, 1985, 1988, 1993,
303 1998, 2001, 2003, 2005, 2007, 2009, 2012, 2015, 2018, 2021,
304 2024, 2026, 2029, 2032, 2034, 2037, 2040, 2043, 2046, 2049,
305 2052, 2055, 2058, 2060, 2063, 2066, 2070, 2072, 2076, 2079,
306 2083, 2086, 2089, 2093, 2095, 2099, 2104, 2108, 2111, 2114,
307 2116, 2120, 2123, 2126, 2128, 2131, 2135, 2137, 2141, 2143,
308 2150, 2155, 2160, 2164, 2170, 2174, 2178, 2182, 2185, 2187,
309 2189, 2192, 2195, 2198, 2199, 2200, 2201, 2203, 2205, 2208,
310 2212, 2214, 2217, 2218, 2224, 2225, 2226, 2233, 2235, 2236,
311 2241, 2243, 2245, 2247, 2250, 2251, 2252, 2259, 2261, 2262,
312 2263, 2271, 2272, 2273, 2281, 2282, 2283, 2284, 2285, 2300,
313 2301, 2302, 2312, 2313, 2319, 2320, 2328, 2329, 2334, 2337,
314 2340, 2343, 2347, 2354, 2363, 2374, 2387, 2392, 2396, 2399,
315 2402, 2404, 2406, 2407, 2408, 2415, 2416, 2417, 2423, 2425,
316 2428, 2429, 2430, 2431, 2440, 2442, 2444, 2448, 2452, 2455,
317 2458, 2461, 2464, 2467, 2469, 2472, 2473, 2475, 2476, 2478,
318 2480, 2481, 2483, 2485, 2489, 2494, 2496, 2500, 2501, 2503,
319 2505, 2507, 2510, 2513, 2516, 2518, 2520, 2523, 2526, 2529,
320 2532, 2533, 2537, 2539, 2541, 2543, 2546, 2549, 2552, 2557,
321 2560, 2563, 2566, 2569, 2572, 2575, 2577, 2580, 2582, 2585,
322 2587, 2589, 2590, 2591, 2593, 2594, 2599, 2602, 2604, 2606,
323 2610, 2611, 2615, 2619, 2623, 2625, 2628, 2631, 2634, 2637,
324 2640, 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664, 2667,
325 2670, 2673, 2676, 2679, 2682, 2685, 2688, 2691, 2694, 2698,
326 2701, 2704, 2707, 2710, 2714, 2717, 2720, 2725, 2730, 2734
327 };
328
329 static const short yyrhs[] = { -1,
330 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
331 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
332 0, 123, 124, 0, 142, 141, 0, 138, 0, 137,
333 0, 121, 94, 208, 110, 61, 0, 129, 59, 117,
334 111, 0, 129, 118, 142, 119, 141, 0, 129, 118,
335 138, 119, 0, 0, 45, 157, 59, 125, 117, 111,
336 0, 0, 45, 59, 126, 117, 111, 0, 45, 157,
337 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
338 61, 0, 120, 124, 0, 47, 300, 0, 47, 313,
339 300, 0, 47, 313, 199, 0, 199, 0, 300, 0,
340 313, 300, 0, 313, 199, 0, 100, 0, 129, 100,
341 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
342 76, 0, 136, 0, 132, 60, 136, 0, 157, 0,
343 0, 257, 133, 0, 46, 133, 0, 130, 257, 133,
344 0, 134, 0, 134, 65, 214, 0, 380, 0, 380,
345 65, 194, 0, 135, 0, 135, 65, 176, 0, 130,
346 124, 0, 130, 1, 0, 225, 61, 0, 218, 224,
347 61, 0, 215, 223, 61, 0, 218, 61, 0, 160,
348 61, 0, 215, 61, 0, 1, 61, 0, 1, 111,
349 0, 61, 0, 209, 0, 153, 0, 0, 152, 0,
350 152, 61, 0, 0, 109, 0, 148, 140, 139, 325,
351 0, 148, 140, 350, 0, 148, 140, 1, 0, 0,
352 305, 5, 94, 144, 371, 110, 287, 383, 0, 305,
353 5, 48, 287, 383, 0, 0, 313, 305, 5, 94,
354 145, 371, 110, 287, 383, 0, 313, 305, 5, 48,
355 287, 383, 0, 0, 305, 172, 94, 146, 371, 110,
356 287, 383, 0, 305, 172, 48, 287, 383, 0, 0,
357 313, 305, 172, 94, 147, 371, 110, 287, 383, 0,
358 313, 305, 172, 48, 287, 383, 0, 215, 212, 0,
359 218, 297, 0, 297, 0, 218, 143, 0, 143, 0,
360 5, 94, 371, 110, 287, 383, 0, 5, 48, 287,
361 383, 0, 172, 94, 371, 110, 287, 383, 0, 172,
362 48, 287, 383, 0, 218, 149, 0, 149, 0, 215,
363 212, 0, 218, 297, 0, 297, 0, 218, 143, 0,
364 143, 0, 130, 150, 0, 25, 3, 0, 151, 242,
365 0, 151, 94, 188, 110, 0, 151, 48, 0, 63,
366 154, 155, 0, 0, 0, 156, 0, 155, 60, 156,
367 0, 155, 1, 0, 94, 188, 110, 0, 48, 0,
368 158, 94, 188, 110, 0, 158, 48, 0, 293, 94,
369 188, 110, 0, 293, 48, 0, 307, 94, 188, 110,
370 0, 307, 48, 0, 3, 0, 4, 0, 5, 0,
371 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
372 106, 0, 105, 0, 107, 0, 0, 49, 169, 221,
373 61, 161, 170, 0, 0, 49, 169, 215, 212, 162,
374 170, 0, 0, 49, 169, 297, 163, 170, 0, 0,
375 49, 169, 143, 164, 170, 0, 0, 7, 49, 169,
376 221, 61, 165, 170, 0, 0, 7, 49, 169, 215,
377 212, 166, 170, 0, 0, 7, 49, 169, 297, 167,
378 170, 0, 0, 7, 49, 169, 143, 168, 170, 0,
379 0, 0, 57, 75, 174, 173, 0, 4, 75, 174,
380 173, 0, 172, 0, 5, 75, 174, 173, 0, 76,
381 0, 78, 0, 0, 175, 0, 176, 0, 175, 60,
382 176, 0, 214, 0, 194, 0, 80, 0, 79, 0,
383 87, 0, 88, 0, 112, 0, 187, 0, 194, 0,
384 48, 0, 94, 178, 110, 0, 48, 0, 94, 182,
385 110, 0, 0, 182, 0, 1, 0, 0, 361, 212,
386 226, 235, 65, 183, 243, 0, 178, 0, 111, 0,
387 322, 318, 111, 0, 322, 318, 1, 111, 0, 322,
388 1, 111, 0, 0, 59, 186, 184, 0, 334, 0,
389 194, 60, 194, 0, 194, 60, 1, 0, 187, 60,
390 194, 0, 187, 60, 1, 0, 194, 0, 187, 0,
391 203, 0, 120, 193, 0, 81, 193, 0, 71, 193,
392 0, 89, 193, 0, 177, 193, 0, 68, 157, 0,
393 13, 189, 0, 13, 94, 214, 110, 0, 30, 189,
394 0, 30, 94, 214, 110, 0, 205, 286, 0, 205,
395 286, 191, 0, 205, 190, 286, 0, 205, 190, 286,
396 191, 0, 205, 94, 214, 110, 0, 205, 94, 214,
397 110, 191, 0, 205, 190, 94, 214, 110, 0, 205,
398 190, 94, 214, 110, 191, 0, 206, 193, 0, 206,
399 95, 113, 193, 0, 206, 95, 178, 113, 193, 0,
400 35, 193, 0, 36, 193, 0, 94, 188, 110, 0,
401 59, 188, 111, 0, 94, 188, 110, 0, 48, 0,
402 94, 221, 110, 0, 65, 243, 0, 94, 214, 110,
403 0, 192, 94, 214, 110, 0, 189, 0, 192, 189,
404 0, 192, 59, 244, 255, 111, 0, 193, 0, 194,
405 84, 194, 0, 194, 85, 194, 0, 194, 79, 194,
406 0, 194, 80, 194, 0, 194, 81, 194, 0, 194,
407 82, 194, 0, 194, 83, 194, 0, 194, 77, 194,
408 0, 194, 78, 194, 0, 194, 74, 194, 0, 194,
409 75, 194, 0, 194, 76, 194, 0, 194, 73, 194,
410 0, 194, 72, 194, 0, 194, 71, 194, 0, 194,
411 69, 194, 0, 194, 70, 194, 0, 194, 68, 194,
412 0, 194, 67, 194, 0, 194, 66, 366, 63, 194,
413 0, 194, 65, 194, 0, 194, 64, 194, 0, 62,
414 0, 62, 194, 0, 89, 381, 157, 0, 197, 0,
415 388, 0, 3, 0, 57, 0, 58, 0, 0, 6,
416 75, 196, 174, 173, 0, 388, 75, 196, 174, 173,
417 0, 49, 157, 75, 174, 173, 0, 49, 6, 75,
418 174, 173, 0, 49, 388, 75, 174, 173, 0, 195,
419 0, 4, 0, 5, 0, 195, 0, 81, 200, 0,
420 71, 200, 0, 94, 200, 110, 0, 3, 75, 174,
421 173, 0, 58, 75, 175, 173, 0, 299, 0, 195,
422 0, 201, 0, 94, 200, 110, 0, 195, 0, 10,
423 0, 207, 0, 208, 0, 94, 178, 110, 0, 94,
424 200, 110, 0, 94, 1, 110, 0, 0, 94, 204,
425 326, 110, 0, 203, 94, 188, 110, 0, 203, 48,
426 0, 203, 95, 178, 113, 0, 203, 87, 0, 203,
427 88, 0, 41, 0, 9, 94, 188, 110, 0, 303,
428 0, 51, 75, 214, 76, 94, 178, 110, 0, 52,
429 75, 214, 76, 94, 178, 110, 0, 53, 75, 214,
430 76, 94, 178, 110, 0, 54, 75, 214, 76, 94,
431 178, 110, 0, 50, 94, 178, 110, 0, 50, 94,
432 214, 110, 0, 313, 3, 0, 313, 388, 0, 302,
433 0, 302, 94, 188, 110, 0, 302, 48, 0, 210,
434 198, 0, 210, 198, 94, 188, 110, 0, 210, 198,
435 48, 0, 210, 199, 0, 210, 302, 0, 210, 199,
436 94, 188, 110, 0, 210, 199, 48, 0, 210, 302,
437 94, 188, 110, 0, 210, 302, 48, 0, 210, 89,
438 8, 48, 0, 210, 8, 55, 89, 8, 48, 0,
439 210, 1, 0, 40, 0, 313, 40, 0, 39, 0,
440 313, 206, 0, 43, 0, 44, 0, 11, 0, 208,
441 11, 0, 0, 203, 93, 0, 203, 92, 0, 221,
442 223, 61, 0, 215, 223, 61, 0, 218, 224, 61,
443 0, 215, 61, 0, 218, 61, 0, 120, 211, 0,
444 292, 0, 297, 0, 48, 0, 213, 48, 0, 219,
445 316, 0, 288, 316, 0, 221, 316, 0, 219, 0,
446 288, 0, 219, 0, 216, 0, 218, 221, 0, 221,
447 217, 0, 221, 220, 217, 0, 218, 221, 217, 0,
448 218, 221, 220, 0, 218, 221, 220, 217, 0, 7,
449 0, 217, 222, 0, 217, 7, 0, 217, 236, 0,
450 236, 0, 288, 0, 7, 0, 218, 9, 0, 218,
451 7, 0, 218, 236, 0, 236, 0, 221, 0, 288,
452 221, 0, 221, 220, 0, 288, 221, 220, 0, 222,
453 0, 220, 222, 0, 250, 0, 8, 0, 294, 0,
454 29, 94, 178, 110, 0, 29, 94, 214, 110, 0,
455 31, 94, 178, 110, 0, 31, 94, 214, 110, 0,
456 8, 0, 9, 0, 250, 0, 227, 0, 223, 60,
457 229, 0, 231, 0, 224, 60, 229, 0, 233, 0,
458 225, 60, 229, 0, 0, 121, 94, 208, 110, 0,
459 0, 212, 226, 235, 65, 228, 243, 0, 212, 226,
460 235, 0, 0, 212, 226, 235, 65, 230, 243, 0,
461 212, 226, 235, 0, 0, 297, 226, 235, 65, 232,
462 243, 0, 297, 226, 235, 0, 0, 297, 226, 235,
463 65, 234, 243, 0, 297, 226, 235, 0, 0, 236,
464 0, 237, 0, 236, 237, 0, 32, 94, 94, 238,
465 110, 110, 0, 239, 0, 238, 60, 239, 0, 0,
466 240, 0, 240, 94, 3, 110, 0, 240, 94, 3,
467 60, 188, 110, 0, 240, 94, 188, 110, 0, 157,
468 0, 7, 0, 8, 0, 9, 0, 157, 0, 241,
469 60, 157, 0, 0, 65, 243, 0, 194, 0, 59,
470 111, 0, 59, 244, 111, 0, 59, 244, 60, 111,
471 0, 1, 0, 243, 0, 244, 60, 243, 0, 95,
472 194, 113, 243, 0, 244, 60, 21, 194, 63, 243,
473 0, 157, 63, 243, 0, 244, 60, 157, 63, 243,
474 0, 99, 0, 245, 140, 139, 325, 0, 245, 140,
475 350, 0, 245, 140, 1, 0, 0, 247, 246, 141,
476 0, 104, 194, 109, 0, 104, 1, 109, 0, 0,
477 249, 248, 0, 249, 1, 0, 0, 14, 157, 59,
478 251, 284, 256, 111, 0, 14, 157, 59, 111, 0,
479 0, 14, 59, 252, 284, 256, 111, 0, 14, 59,
480 111, 0, 14, 157, 0, 14, 311, 0, 46, 307,
481 0, 0, 0, 264, 270, 272, 111, 235, 253, 249,
482 254, 247, 0, 264, 0, 0, 60, 0, 0, 60,
483 0, 37, 0, 257, 7, 0, 257, 8, 0, 257,
484 9, 0, 257, 37, 0, 257, 157, 0, 257, 159,
485 0, 257, 305, 157, 0, 257, 313, 305, 157, 0,
486 257, 313, 157, 0, 257, 171, 0, 257, 305, 171,
487 0, 0, 258, 0, 259, 261, 265, 0, 260, 265,
488 0, 257, 59, 0, 263, 0, 262, 0, 0, 63,
489 381, 0, 63, 381, 266, 0, 267, 0, 266, 60,
490 381, 267, 0, 268, 0, 269, 381, 268, 0, 307,
491 0, 293, 0, 31, 94, 178, 110, 0, 31, 94,
492 214, 110, 0, 38, 381, 0, 7, 381, 0, 269,
493 38, 381, 0, 269, 7, 381, 0, 59, 0, 0,
494 271, 0, 271, 273, 0, 272, 38, 63, 273, 0,
495 272, 38, 63, 0, 274, 0, 273, 274, 0, 275,
496 61, 0, 275, 111, 0, 150, 63, 0, 150, 96,
497 0, 150, 25, 0, 150, 59, 0, 61, 0, 120,
498 274, 0, 215, 276, 0, 218, 277, 0, 297, 226,
499 235, 242, 0, 143, 226, 235, 242, 0, 63, 194,
500 0, 1, 0, 218, 149, 226, 235, 242, 0, 149,
501 226, 235, 242, 0, 127, 0, 130, 275, 0, 0,
502 278, 0, 276, 60, 279, 0, 0, 281, 0, 277,
503 60, 283, 0, 280, 0, 281, 0, 282, 0, 283,
504 0, 292, 226, 235, 242, 0, 4, 63, 194, 235,
505 0, 297, 226, 235, 242, 0, 143, 226, 235, 242,
506 0, 3, 63, 194, 235, 0, 63, 194, 235, 0,
507 292, 226, 235, 242, 0, 4, 63, 194, 235, 0,
508 297, 226, 235, 242, 0, 3, 63, 194, 235, 0,
509 63, 194, 235, 0, 285, 0, 284, 60, 285, 0,
510 157, 0, 157, 65, 194, 0, 361, 314, 0, 361,
511 0, 94, 214, 110, 95, 178, 113, 0, 0, 287,
512 9, 0, 9, 0, 288, 9, 0, 0, 289, 178,
513 0, 289, 94, 188, 110, 0, 289, 94, 371, 110,
514 0, 289, 48, 0, 289, 94, 1, 110, 0, 81,
515 288, 292, 0, 71, 288, 292, 0, 81, 292, 0,
516 71, 292, 0, 312, 287, 292, 0, 296, 0, 304,
517 0, 313, 304, 0, 293, 0, 295, 0, 313, 295,
518 0, 305, 304, 0, 296, 291, 287, 383, 0, 296,
519 95, 290, 113, 0, 296, 95, 113, 0, 94, 292,
520 110, 0, 305, 304, 0, 304, 0, 81, 288, 297,
521 0, 71, 288, 297, 0, 81, 297, 0, 71, 297,
522 0, 312, 287, 297, 0, 202, 0, 81, 288, 297,
523 0, 71, 288, 297, 0, 81, 298, 0, 71, 298,
524 0, 312, 287, 297, 0, 299, 0, 202, 291, 287,
525 383, 0, 94, 298, 110, 0, 202, 95, 290, 113,
526 0, 202, 95, 113, 0, 301, 0, 305, 201, 0,
527 305, 199, 0, 305, 198, 0, 305, 195, 0, 305,
528 198, 0, 301, 0, 313, 301, 0, 221, 94, 188,
529 110, 0, 221, 94, 200, 110, 0, 221, 213, 0,
530 4, 0, 5, 0, 171, 0, 306, 0, 305, 306,
531 0, 4, 55, 0, 5, 55, 0, 58, 55, 0,
532 171, 55, 0, 308, 0, 313, 308, 0, 309, 157,
533 0, 310, 0, 309, 310, 0, 4, 55, 0, 5,
534 55, 0, 171, 55, 0, 57, 55, 0, 3, 55,
535 0, 58, 55, 0, 313, 304, 0, 295, 0, 313,
536 295, 0, 305, 81, 0, 313, 305, 81, 0, 55,
537 0, 81, 287, 314, 0, 81, 287, 0, 71, 287,
538 314, 0, 71, 287, 0, 312, 287, 0, 312, 287,
539 314, 0, 315, 0, 95, 178, 113, 0, 315, 95,
540 290, 113, 0, 81, 288, 316, 0, 81, 316, 0,
541 81, 288, 0, 81, 0, 71, 288, 316, 0, 71,
542 316, 0, 71, 288, 0, 71, 0, 312, 287, 0,
543 312, 287, 316, 0, 317, 0, 94, 316, 110, 0,
544 91, 0, 317, 94, 371, 110, 287, 383, 0, 317,
545 48, 287, 383, 0, 317, 95, 290, 113, 0, 317,
546 95, 113, 0, 94, 372, 110, 287, 383, 0, 192,
547 287, 383, 0, 213, 287, 383, 0, 95, 290, 113,
548 0, 95, 113, 0, 333, 0, 319, 0, 318, 333,
549 0, 318, 319, 0, 1, 61, 0, 0, 0, 0,
550 323, 0, 324, 0, 323, 324, 0, 34, 241, 61,
551 0, 326, 0, 1, 326, 0, 0, 59, 327, 320,
552 184, 321, 0, 0, 0, 15, 329, 320, 180, 330,
553 331, 0, 326, 0, 0, 320, 332, 334, 321, 0,
554 326, 0, 334, 0, 211, 0, 178, 61, 0, 0,
555 0, 328, 16, 335, 331, 336, 321, 0, 328, 0,
556 0, 0, 17, 337, 320, 180, 338, 185, 321, 0,
557 0, 0, 18, 339, 331, 17, 340, 179, 61, 0,
558 0, 0, 0, 0, 19, 341, 94, 364, 342, 320,
559 181, 61, 343, 366, 110, 344, 185, 321, 0, 0,
560 0, 20, 320, 94, 182, 110, 345, 331, 346, 321,
561 0, 0, 21, 194, 63, 347, 333, 0, 0, 21,
562 194, 12, 194, 63, 348, 333, 0, 0, 22, 63,
563 349, 333, 0, 23, 61, 0, 24, 61, 0, 25,
564 61, 0, 25, 178, 61, 0, 121, 365, 94, 208,
565 110, 61, 0, 121, 365, 94, 208, 63, 367, 110,
566 61, 0, 121, 365, 94, 208, 63, 367, 63, 367,
567 110, 61, 0, 121, 365, 94, 208, 63, 367, 63,
568 367, 63, 370, 110, 61, 0, 26, 81, 178, 61,
569 0, 26, 157, 61, 0, 363, 333, 0, 363, 111,
570 0, 61, 0, 353, 0, 0, 0, 96, 351, 139,
571 326, 352, 356, 0, 0, 0, 96, 354, 326, 355,
572 356, 0, 357, 0, 356, 357, 0, 0, 0, 0,
573 97, 358, 320, 362, 359, 326, 360, 321, 0, 219,
574 0, 288, 0, 94, 12, 110, 0, 94, 380, 110,
575 0, 3, 63, 0, 57, 63, 0, 4, 63, 0,
576 5, 63, 0, 366, 61, 0, 211, 0, 59, 184,
577 0, 0, 9, 0, 0, 178, 0, 1, 0, 0,
578 368, 0, 369, 0, 368, 60, 369, 0, 11, 94,
579 178, 110, 0, 11, 0, 370, 60, 11, 0, 0,
580 372, 0, 214, 0, 376, 0, 377, 12, 0, 376,
581 12, 0, 214, 12, 0, 12, 0, 98, 0, 376,
582 98, 0, 214, 98, 0, 376, 63, 0, 214, 63,
583 0, 0, 65, 374, 375, 0, 103, 0, 243, 0,
584 378, 0, 380, 373, 0, 377, 379, 0, 377, 382,
585 0, 377, 382, 65, 243, 0, 376, 60, 0, 214,
586 60, 0, 216, 212, 0, 219, 212, 0, 221, 212,
587 0, 216, 316, 0, 216, 0, 218, 297, 0, 380,
588 0, 380, 373, 0, 378, 0, 214, 0, 0, 0,
589 297, 0, 0, 62, 94, 385, 110, 0, 62, 48,
590 0, 214, 0, 384, 0, 385, 60, 384, 0, 0,
591 81, 287, 386, 0, 71, 287, 386, 0, 312, 287,
592 386, 0, 42, 0, 387, 81, 0, 387, 82, 0,
593 387, 83, 0, 387, 79, 0, 387, 80, 0, 387,
594 71, 0, 387, 69, 0, 387, 70, 0, 387, 89,
595 0, 387, 60, 0, 387, 74, 0, 387, 75, 0,
596 387, 76, 0, 387, 73, 0, 387, 64, 0, 387,
597 65, 0, 387, 77, 0, 387, 78, 0, 387, 87,
598 0, 387, 88, 0, 387, 68, 0, 387, 67, 0,
599 387, 112, 0, 387, 66, 63, 0, 387, 72, 0,
600 387, 92, 0, 387, 84, 0, 387, 48, 0, 387,
601 95, 113, 0, 387, 40, 0, 387, 39, 0, 387,
602 40, 95, 113, 0, 387, 39, 95, 113, 0, 387,
603 361, 386, 0, 387, 1, 0
604 };
605
606 #endif
607
608 #if YYDEBUG != 0
609 static const short yyrline[] = { 0,
610 311, 313, 327, 330, 331, 335, 337, 340, 345, 349,
611 355, 357, 360, 363, 367, 370, 372, 374, 377, 379,
612 382, 385, 387, 389, 391, 393, 395, 397, 403, 407,
613 410, 412, 416, 418, 419, 421, 425, 428, 434, 437,
614 439, 444, 447, 451, 454, 457, 469, 473, 491, 501,
615 503, 505, 507, 509, 522, 531, 541, 544, 546, 550,
616 552, 553, 560, 561, 562, 565, 568, 572, 574, 575,
617 578, 580, 583, 586, 588, 592, 602, 604, 614, 623,
618 625, 635, 644, 646, 656, 665, 667, 679, 687, 694,
619 699, 706, 713, 716, 718, 720, 726, 736, 738, 741,
620 744, 746, 749, 751, 755, 764, 767, 769, 773, 786,
621 806, 809, 811, 812, 815, 822, 828, 830, 832, 834,
622 836, 839, 844, 846, 847, 848, 849, 852, 854, 855,
623 858, 860, 861, 864, 869, 869, 873, 873, 876, 876,
624 879, 879, 883, 883, 888, 888, 891, 891, 894, 896,
625 899, 906, 913, 919, 922, 931, 933, 941, 944, 947,
626 950, 954, 957, 960, 963, 965, 967, 969, 973, 976,
627 979, 984, 988, 993, 997, 1000, 1002, 1006, 1026, 1033,
628 1036, 1038, 1039, 1040, 1043, 1054, 1063, 1067, 1071, 1074,
629 1076, 1080, 1083, 1086, 1090, 1093, 1095, 1097, 1099, 1106,
630 1119, 1121, 1123, 1125, 1131, 1134, 1137, 1140, 1143, 1147,
631 1150, 1153, 1157, 1159, 1163, 1167, 1169, 1173, 1176, 1183,
632 1186, 1188, 1196, 1205, 1211, 1218, 1220, 1222, 1235, 1238,
633 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256, 1258,
634 1260, 1262, 1264, 1266, 1268, 1270, 1272, 1274, 1276, 1278,
635 1282, 1284, 1286, 1303, 1306, 1307, 1308, 1309, 1310, 1313,
636 1316, 1319, 1323, 1326, 1328, 1333, 1335, 1336, 1339, 1341,
637 1343, 1345, 1349, 1352, 1356, 1358, 1359, 1360, 1364, 1372,
638 1373, 1374, 1382, 1390, 1398, 1400, 1412, 1442, 1449, 1456,
639 1458, 1467, 1472, 1495, 1539, 1540, 1544, 1548, 1552, 1556,
640 1558, 1562, 1564, 1572, 1574, 1579, 1585, 1589, 1594, 1599,
641 1601, 1606, 1621, 1636, 1647, 1659, 1667, 1676, 1720, 1723,
642 1727, 1730, 1734, 1737, 1742, 1744, 1748, 1761, 1764, 1771,
643 1778, 1783, 1785, 1790, 1792, 1799, 1801, 1805, 1809, 1815,
644 1819, 1822, 1825, 1828, 1838, 1840, 1843, 1847, 1850, 1853,
645 1856, 1859, 1865, 1871, 1873, 1878, 1880, 1889, 1892, 1894,
646 1897, 1903, 1905, 1915, 1919, 1922, 1925, 1930, 1933, 1941,
647 1943, 1945, 1947, 1950, 1953, 1968, 1987, 1990, 1992, 1995,
648 1997, 2000, 2002, 2005, 2007, 2010, 2013, 2017, 2036, 2038,
649 2058, 2064, 2065, 2071, 2080, 2082, 2092, 2101, 2103, 2115,
650 2118, 2122, 2125, 2129, 2134, 2137, 2141, 2144, 2146, 2148,
651 2150, 2157, 2159, 2160, 2161, 2165, 2168, 2172, 2175, 2181,
652 2183, 2186, 2189, 2192, 2198, 2201, 2204, 2206, 2208, 2210,
653 2214, 2220, 2228, 2230, 2234, 2236, 2241, 2244, 2247, 2249,
654 2251, 2255, 2259, 2264, 2268, 2271, 2276, 2280, 2283, 2286,
655 2290, 2325, 2331, 2340, 2360, 2362, 2365, 2367, 2372, 2374,
656 2376, 2378, 2380, 2384, 2389, 2394, 2400, 2405, 2410, 2412,
657 2416, 2421, 2424, 2431, 2459, 2465, 2467, 2470, 2473, 2475,
658 2479, 2481, 2485, 2511, 2540, 2543, 2544, 2565, 2588, 2590,
659 2594, 2620, 2629, 2718, 2725, 2728, 2736, 2747, 2756, 2760,
660 2775, 2778, 2783, 2785, 2787, 2789, 2791, 2793, 2798, 2804,
661 2806, 2809, 2812, 2814, 2825, 2830, 2833, 2835, 2840, 2843,
662 2844, 2855, 2858, 2859, 2870, 2872, 2875, 2877, 2880, 2887,
663 2895, 2902, 2908, 2914, 2922, 2926, 2931, 2935, 2938, 2947,
664 2949, 2953, 2956, 2961, 2965, 2970, 2980, 2983, 2987, 2991,
665 2999, 3004, 3010, 3013, 3015, 3017, 3023, 3026, 3028, 3030,
666 3032, 3036, 3039, 3057, 3067, 3069, 3070, 3074, 3079, 3082,
667 3084, 3086, 3088, 3092, 3098, 3101, 3103, 3105, 3107, 3111,
668 3114, 3117, 3119, 3121, 3123, 3127, 3130, 3133, 3135, 3137,
669 3139, 3146, 3157, 3161, 3166, 3170, 3175, 3177, 3181, 3184,
670 3186, 3190, 3192, 3193, 3196, 3198, 3204, 3219, 3225, 3231,
671 3245, 3247, 3251, 3267, 3273, 3288, 3299, 3305, 3307, 3308,
672 3309, 3317, 3326, 3327, 3331, 3334, 3340, 3346, 3349, 3351,
673 3353, 3355, 3359, 3363, 3367, 3370, 3375, 3378, 3380, 3382,
674 3384, 3386, 3388, 3390, 3392, 3396, 3400, 3404, 3408, 3409,
675 3411, 3413, 3415, 3417, 3419, 3421, 3423, 3425, 3433, 3435,
676 3436, 3437, 3440, 3448, 3453, 3460, 3462, 3467, 3469, 3472,
677 3486, 3489, 3492, 3501, 3513, 3524, 3544, 3554, 3557, 3565,
678 3577, 3580, 3583, 3586, 3602, 3605, 3616, 3617, 3621, 3636,
679 3655, 3667, 3681, 3695, 3708, 3727, 3745, 3764, 3772, 3793,
680 3811, 3824, 3825, 3828, 3828, 3831, 3831, 3834, 3834, 3840,
681 3846, 3849, 3854, 3861, 3870, 3879, 3888, 3896, 3909, 3911,
682 3915, 3917, 3920, 3927, 3930, 3938, 3954, 3965, 3977, 3979,
683 3982, 3992, 4002, 4013, 4015, 4017, 4020, 4037, 4043, 4051,
684 4053, 4055, 4059, 4062, 4063, 4071, 4075, 4079, 4082, 4083,
685 4089, 4092, 4095, 4097, 4101, 4106, 4109, 4119, 4124, 4125,
686 4133, 4139, 4144, 4148, 4153, 4157, 4161, 4165, 4170, 4181,
687 4195, 4199, 4202, 4204, 4208, 4212, 4215, 4218, 4220, 4224,
688 4226, 4233, 4240, 4243, 4246, 4250, 4254, 4260, 4264, 4269,
689 4271, 4274, 4279, 4285, 4296, 4299, 4301, 4305, 4310, 4312,
690 4319, 4322, 4324, 4326, 4332, 4337, 4340, 4342, 4344, 4346,
691 4348, 4350, 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366,
692 4368, 4370, 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386,
693 4388, 4390, 4392, 4394, 4396, 4398, 4400, 4402, 4405, 4407
694 };
695 #endif
696
697
698 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
699
700 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
701 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
702 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
703 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
704 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
705 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
706 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
707 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
708 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
709 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
710 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
711 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
712 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
713 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
714 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
715 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
716 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
717 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
718 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
719 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
720 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
721 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
722 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
723 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
724 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
725 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
726 "condition","@18","compstmtend","already_scoped_stmt","@19","nontrivial_exprlist",
727 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
728 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
729 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
730 "primary","@20","new","delete","boolean.literal","string","nodecls","object",
731 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
732 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
733 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
734 "initdcl0","@21","initdcl","@22","notype_initdcl0","@23","nomods_initdcl0","@24",
735 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
736 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
737 "pending_inlines","defarg_again","pending_defargs","structsp","@25","@26","@27",
738 "@28","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
739 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
740 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
741 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
742 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
743 "component_decl_1","components","notype_components","component_declarator0",
744 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
745 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
746 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
747 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
748 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
749 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
750 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
751 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
752 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
753 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
754 "label_decls","label_decl","compstmt_or_error","compstmt","@29","simple_if",
755 "@30","@31","implicitly_scoped_stmt","@32","stmt","simple_stmt","@33","@34",
756 "@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47",
757 "function_try_block","@48","@49","try_block","@50","@51","handler_seq","handler",
758 "@52","@53","@54","type_specifier_seq","handler_args","label_colon","for.init.statement",
759 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
760 "asm_clobbers","parmlist","complex_parmlist","defarg","@55","defarg1","parms",
761 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
762 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
763 "operator_name", NULL
764 };
765 #endif
766
767 static const short yyr1[] = { 0,
768 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
769 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
770 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
771 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
772 130, 132, 132, 133, 133, 134, 134, 135, 136, 136,
773 136, 136, 136, 136, 137, 137, 138, 138, 138, 138,
774 138, 138, 138, 138, 138, 139, 139, 140, 140, 140,
775 141, 141, 142, 142, 142, 144, 143, 143, 145, 143,
776 143, 146, 143, 143, 147, 143, 143, 148, 148, 148,
777 148, 148, 149, 149, 149, 149, 150, 150, 150, 150,
778 150, 150, 150, 150, 151, 152, 152, 152, 153, 154,
779 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
780 156, 156, 157, 157, 157, 157, 157, 158, 158, 158,
781 159, 159, 159, 161, 160, 162, 160, 163, 160, 164,
782 160, 165, 160, 166, 160, 167, 160, 168, 160, 169,
783 170, 171, 171, 171, 172, 173, 173, 174, 174, 175,
784 175, 176, 176, 177, 177, 177, 177, 177, 178, 178,
785 179, 179, 180, 180, 181, 181, 181, 183, 182, 182,
786 184, 184, 184, 184, 186, 185, 185, 187, 187, 187,
787 187, 188, 188, 189, 189, 189, 189, 189, 189, 189,
788 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
789 189, 189, 189, 189, 189, 189, 189, 190, 190, 191,
790 191, 191, 191, 192, 192, 193, 193, 193, 194, 194,
791 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
792 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
793 194, 194, 194, 195, 195, 195, 195, 195, 195, 196,
794 197, 197, 198, 198, 198, 199, 199, 199, 200, 200,
795 200, 200, 201, 201, 202, 202, 202, 202, 203, 203,
796 203, 203, 203, 203, 203, 204, 203, 203, 203, 203,
797 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
798 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
799 203, 203, 203, 203, 203, 203, 203, 203, 205, 205,
800 206, 206, 207, 207, 208, 208, 209, 210, 210, 211,
801 211, 211, 211, 211, 211, 212, 212, 213, 213, 214,
802 214, 214, 214, 214, 215, 215, 216, 216, 216, 216,
803 216, 216, 217, 217, 217, 217, 217, 218, 218, 218,
804 218, 218, 218, 219, 219, 219, 219, 220, 220, 221,
805 221, 221, 221, 221, 221, 221, 222, 222, 222, 223,
806 223, 224, 224, 225, 225, 226, 226, 228, 227, 227,
807 230, 229, 229, 232, 231, 231, 234, 233, 233, 235,
808 235, 236, 236, 237, 238, 238, 239, 239, 239, 239,
809 239, 240, 240, 240, 240, 241, 241, 242, 242, 243,
810 243, 243, 243, 243, 244, 244, 244, 244, 244, 244,
811 245, 246, 246, 246, 247, 247, 248, 248, 249, 249,
812 249, 251, 250, 250, 252, 250, 250, 250, 250, 250,
813 253, 254, 250, 250, 255, 255, 256, 256, 257, 257,
814 257, 257, 257, 258, 259, 260, 260, 260, 260, 260,
815 261, 262, 262, 262, 263, 264, 264, 265, 265, 265,
816 266, 266, 267, 267, 268, 268, 268, 268, 269, 269,
817 269, 269, 270, 271, 272, 272, 272, 272, 273, 273,
818 274, 274, 274, 274, 274, 274, 274, 274, 275, 275,
819 275, 275, 275, 275, 275, 275, 275, 275, 276, 276,
820 276, 277, 277, 277, 278, 278, 279, 279, 280, 280,
821 281, 281, 281, 281, 282, 282, 283, 283, 283, 284,
822 284, 285, 285, 286, 286, 286, 287, 287, 288, 288,
823 289, 290, 291, 291, 291, 291, 292, 292, 292, 292,
824 292, 292, 293, 293, 294, 294, 294, 295, 296, 296,
825 296, 296, 296, 296, 297, 297, 297, 297, 297, 297,
826 298, 298, 298, 298, 298, 298, 299, 299, 299, 299,
827 299, 299, 300, 300, 301, 301, 302, 302, 303, 303,
828 303, 304, 304, 304, 305, 305, 306, 306, 306, 306,
829 307, 307, 308, 309, 309, 310, 310, 310, 310, 310,
830 310, 311, 311, 311, 312, 312, 313, 314, 314, 314,
831 314, 314, 314, 314, 315, 315, 316, 316, 316, 316,
832 316, 316, 316, 316, 316, 316, 316, 317, 317, 317,
833 317, 317, 317, 317, 317, 317, 317, 317, 318, 318,
834 318, 318, 319, 320, 321, 322, 322, 323, 323, 324,
835 325, 325, 327, 326, 329, 330, 328, 331, 332, 331,
836 333, 333, 334, 334, 335, 336, 334, 334, 337, 338,
837 334, 339, 340, 334, 341, 342, 343, 344, 334, 345,
838 346, 334, 347, 334, 348, 334, 349, 334, 334, 334,
839 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
840 334, 334, 351, 352, 350, 354, 355, 353, 356, 356,
841 358, 359, 360, 357, 361, 361, 362, 362, 363, 363,
842 363, 363, 364, 364, 364, 365, 365, 366, 366, 366,
843 367, 367, 368, 368, 369, 370, 370, 371, 371, 371,
844 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
845 374, 373, 375, 375, 376, 376, 376, 376, 376, 377,
846 377, 378, 378, 378, 378, 378, 378, 379, 379, 380,
847 380, 381, 382, 382, 383, 383, 383, 384, 385, 385,
848 386, 386, 386, 386, 387, 388, 388, 388, 388, 388,
849 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
850 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
851 388, 388, 388, 388, 388, 388, 388, 388, 388, 388
852 };
853
854 static const short yyr2[] = { 0,
855 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
856 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
857 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
858 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
859 3, 1, 3, 1, 0, 2, 2, 3, 1, 3,
860 1, 3, 1, 3, 2, 2, 2, 3, 3, 2,
861 2, 2, 2, 2, 1, 1, 1, 0, 1, 2,
862 0, 1, 4, 3, 3, 0, 8, 5, 0, 9,
863 6, 0, 8, 5, 0, 9, 6, 2, 2, 1,
864 2, 1, 6, 4, 6, 4, 2, 1, 2, 2,
865 1, 2, 1, 2, 2, 2, 4, 2, 3, 0,
866 0, 1, 3, 2, 3, 1, 4, 2, 4, 2,
867 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
868 1, 1, 1, 0, 6, 0, 6, 0, 5, 0,
869 5, 0, 7, 0, 7, 0, 6, 0, 6, 0,
870 0, 4, 4, 1, 4, 1, 1, 0, 1, 1,
871 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
872 1, 3, 1, 3, 0, 1, 1, 0, 7, 1,
873 1, 3, 4, 3, 0, 3, 1, 3, 3, 3,
874 3, 1, 1, 1, 2, 2, 2, 2, 2, 2,
875 2, 4, 2, 4, 2, 3, 3, 4, 4, 5,
876 5, 6, 2, 4, 5, 2, 2, 3, 3, 3,
877 1, 3, 2, 3, 4, 1, 2, 5, 1, 3,
878 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
879 3, 3, 3, 3, 3, 3, 3, 3, 5, 3,
880 3, 1, 2, 3, 1, 1, 1, 1, 1, 0,
881 5, 5, 5, 5, 5, 1, 1, 1, 1, 2,
882 2, 3, 4, 4, 1, 1, 1, 3, 1, 1,
883 1, 1, 3, 3, 3, 0, 4, 4, 2, 4,
884 2, 2, 1, 4, 1, 7, 7, 7, 7, 4,
885 4, 2, 2, 1, 4, 2, 2, 5, 3, 2,
886 2, 5, 3, 5, 3, 4, 6, 2, 1, 2,
887 1, 2, 1, 1, 1, 2, 0, 2, 2, 3,
888 3, 3, 2, 2, 2, 1, 1, 1, 2, 2,
889 2, 2, 1, 1, 1, 1, 2, 2, 3, 3,
890 3, 4, 1, 2, 2, 2, 1, 1, 1, 2,
891 2, 2, 1, 1, 2, 2, 3, 1, 2, 1,
892 1, 1, 4, 4, 4, 4, 1, 1, 1, 1,
893 3, 1, 3, 1, 3, 0, 4, 0, 6, 3,
894 0, 6, 3, 0, 6, 3, 0, 6, 3, 0,
895 1, 1, 2, 6, 1, 3, 0, 1, 4, 6,
896 4, 1, 1, 1, 1, 1, 3, 0, 2, 1,
897 2, 3, 4, 1, 1, 3, 4, 6, 3, 5,
898 1, 4, 3, 3, 0, 3, 3, 3, 0, 2,
899 2, 0, 7, 4, 0, 6, 3, 2, 2, 2,
900 0, 0, 9, 1, 0, 1, 0, 1, 1, 2,
901 2, 2, 2, 2, 2, 3, 4, 3, 2, 3,
902 0, 1, 3, 2, 2, 1, 1, 0, 2, 3,
903 1, 4, 1, 3, 1, 1, 4, 4, 2, 2,
904 3, 3, 1, 0, 1, 2, 4, 3, 1, 2,
905 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
906 4, 4, 2, 1, 5, 4, 1, 2, 0, 1,
907 3, 0, 1, 3, 1, 1, 1, 1, 4, 4,
908 4, 4, 4, 3, 4, 4, 4, 4, 3, 1,
909 3, 1, 3, 2, 1, 6, 0, 2, 1, 2,
910 0, 2, 4, 4, 2, 4, 3, 3, 2, 2,
911 3, 1, 1, 2, 1, 1, 2, 2, 4, 4,
912 3, 3, 2, 1, 3, 3, 2, 2, 3, 1,
913 3, 3, 2, 2, 3, 1, 4, 3, 4, 3,
914 1, 2, 2, 2, 2, 2, 1, 2, 4, 4,
915 2, 1, 1, 1, 1, 2, 2, 2, 2, 2,
916 1, 2, 2, 1, 2, 2, 2, 2, 2, 2,
917 2, 2, 1, 2, 2, 3, 1, 3, 2, 3,
918 2, 2, 3, 1, 3, 4, 3, 2, 2, 1,
919 3, 2, 2, 1, 2, 3, 1, 3, 1, 6,
920 4, 4, 3, 5, 3, 3, 3, 2, 1, 1,
921 2, 2, 2, 0, 0, 0, 1, 1, 2, 3,
922 1, 2, 0, 5, 0, 0, 6, 1, 0, 4,
923 1, 1, 1, 2, 0, 0, 6, 1, 0, 0,
924 7, 0, 0, 7, 0, 0, 0, 0, 14, 0,
925 0, 9, 0, 5, 0, 7, 0, 4, 2, 2,
926 2, 3, 6, 8, 10, 12, 4, 3, 2, 2,
927 1, 1, 0, 0, 6, 0, 0, 5, 1, 2,
928 0, 0, 0, 8, 1, 1, 3, 3, 2, 2,
929 2, 2, 2, 1, 2, 0, 1, 0, 1, 1,
930 0, 1, 1, 3, 4, 1, 3, 0, 1, 1,
931 1, 2, 2, 2, 1, 1, 2, 2, 2, 2,
932 0, 3, 1, 1, 1, 2, 2, 2, 4, 2,
933 2, 2, 2, 2, 2, 1, 2, 1, 2, 1,
934 1, 0, 0, 1, 0, 4, 2, 1, 1, 3,
935 0, 3, 3, 3, 1, 2, 2, 2, 2, 2,
936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
938 2, 2, 2, 3, 2, 2, 4, 4, 3, 2
939 };
940
941 static const short yydefact[] = { 3,
942 13, 13, 5, 0, 4, 0, 257, 602, 603, 0,
943 359, 371, 549, 0, 11, 12, 0, 0, 0, 10,
944 459, 805, 0, 0, 0, 150, 627, 258, 259, 65,
945 0, 0, 792, 0, 37, 0, 0, 14, 0, 8,
946 0, 17, 16, 71, 92, 68, 0, 604, 154, 276,
947 255, 277, 580, 0, 346, 0, 345, 364, 0, 384,
948 363, 402, 370, 0, 472, 471, 478, 477, 476, 454,
949 358, 565, 372, 566, 90, 275, 591, 563, 0, 605,
950 547, 0, 0, 256, 63, 64, 158, 607, 158, 608,
951 158, 260, 150, 123, 124, 125, 126, 127, 445, 448,
952 0, 623, 0, 449, 0, 0, 0, 0, 124, 125,
953 126, 127, 24, 0, 0, 0, 0, 0, 0, 0,
954 450, 611, 0, 614, 0, 0, 0, 0, 0, 0,
955 30, 0, 0, 39, 0, 158, 609, 0, 0, 578,
956 0, 0, 0, 577, 0, 0, 0, 0, 276, 0,
957 551, 0, 275, 547, 29, 0, 27, 3, 38, 0,
958 56, 55, 72, 15, 0, 0, 418, 69, 61, 610,
959 551, 0, 547, 62, 0, 0, 0, 88, 0, 380,
960 336, 562, 337, 574, 0, 547, 361, 360, 60, 91,
961 347, 0, 382, 362, 89, 353, 377, 378, 348, 366,
962 368, 357, 379, 0, 57, 403, 460, 461, 462, 463,
963 475, 132, 131, 133, 464, 465, 469, 0, 0, 478,
964 792, 474, 493, 494, 550, 365, 0, 0, 400, 603,
965 0, 625, 154, 595, 596, 592, 568, 606, 0, 567,
966 564, 0, 840, 836, 835, 833, 815, 820, 821, 0,
967 827, 826, 812, 813, 811, 830, 819, 816, 817, 818,
968 822, 823, 809, 810, 806, 807, 808, 832, 824, 825,
969 814, 831, 0, 828, 735, 364, 736, 801, 260, 257,
970 549, 280, 325, 0, 0, 0, 0, 321, 319, 293,
971 323, 324, 0, 0, 0, 0, 0, 259, 252, 0,
972 0, 165, 164, 0, 166, 167, 0, 0, 168, 0,
973 0, 159, 160, 0, 226, 0, 229, 163, 279, 194,
974 0, 0, 281, 282, 0, 162, 343, 364, 344, 597,
975 304, 295, 0, 0, 0, 0, 158, 0, 447, 0,
976 442, 624, 622, 0, 169, 170, 0, 0, 0, 407,
977 3, 22, 0, 620, 616, 617, 619, 621, 618, 123,
978 124, 125, 126, 127, 613, 615, 612, 267, 268, 0,
979 266, 33, 34, 0, 594, 593, 32, 31, 41, 0,
980 359, 140, 0, 0, 364, 138, 0, 0, 576, 0,
981 575, 254, 271, 0, 584, 270, 0, 583, 0, 278,
982 588, 0, 0, 13, 0, 150, 9, 9, 105, 75,
983 110, 723, 0, 67, 66, 74, 108, 0, 0, 106,
984 70, 590, 0, 0, 555, 0, 795, 0, 560, 0,
985 559, 0, 0, 0, 0, 547, 400, 0, 59, 551,
986 547, 573, 0, 350, 351, 0, 58, 400, 355, 354,
987 356, 349, 369, 386, 385, 466, 470, 468, 0, 473,
988 479, 0, 0, 367, 0, 399, 401, 547, 76, 0,
989 0, 0, 547, 82, 548, 579, 603, 626, 154, 0,
990 0, 829, 834, 366, 547, 547, 0, 547, 839, 158,
991 0, 0, 0, 201, 0, 0, 203, 216, 217, 0,
992 0, 0, 0, 0, 253, 200, 197, 196, 198, 0,
993 0, 0, 0, 0, 279, 0, 0, 0, 195, 156,
994 157, 273, 0, 199, 0, 0, 227, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
997 291, 292, 329, 328, 0, 0, 0, 0, 0, 205,
998 545, 0, 213, 326, 318, 0, 792, 307, 310, 311,
999 0, 0, 338, 644, 640, 649, 0, 551, 547, 547,
1000 547, 340, 647, 0, 601, 342, 0, 0, 341, 306,
1001 0, 302, 320, 322, 598, 0, 303, 153, 155, 0,
1002 148, 0, 364, 146, 542, 457, 540, 444, 0, 373,
1003 0, 0, 374, 375, 376, 413, 414, 415, 412, 0,
1004 405, 408, 0, 3, 0, 28, 36, 35, 45, 0,
1005 0, 0, 49, 53, 42, 791, 786, 0, 343, 364,
1006 45, 344, 790, 51, 151, 136, 134, 151, 152, 274,
1007 582, 581, 278, 585, 0, 19, 21, 71, 111, 327,
1008 0, 673, 73, 671, 424, 0, 420, 419, 193, 0,
1009 192, 552, 589, 0, 765, 766, 0, 760, 364, 0,
1010 759, 761, 793, 775, 0, 0, 587, 558, 557, 0,
1011 0, 572, 0, 390, 381, 571, 0, 795, 561, 352,
1012 383, 396, 400, 467, 602, 603, 792, 0, 792, 604,
1013 480, 481, 483, 792, 486, 485, 0, 514, 603, 0,
1014 507, 0, 0, 517, 0, 103, 98, 0, 154, 519,
1015 522, 0, 499, 0, 101, 0, 400, 0, 397, 795,
1016 758, 158, 158, 158, 795, 758, 547, 79, 547, 85,
1017 838, 837, 801, 801, 801, 0, 0, 0, 0, 601,
1018 0, 0, 0, 0, 364, 0, 0, 0, 285, 0,
1019 283, 284, 0, 224, 161, 257, 602, 603, 258, 259,
1020 0, 0, 425, 455, 0, 251, 250, 750, 749, 0,
1021 248, 247, 245, 246, 244, 243, 242, 239, 240, 241,
1022 237, 238, 232, 233, 234, 235, 236, 230, 231, 0,
1023 0, 0, 0, 0, 0, 207, 221, 0, 0, 206,
1024 547, 547, 0, 547, 544, 634, 0, 0, 0, 0,
1025 309, 0, 313, 0, 315, 0, 643, 642, 639, 638,
1026 791, 0, 0, 658, 0, 0, 795, 339, 795, 645,
1027 547, 758, 551, 644, 640, 0, 0, 547, 0, 0,
1028 0, 0, 0, 261, 151, 144, 142, 151, 0, 458,
1029 0, 457, 191, 190, 189, 188, 407, 0, 0, 25,
1030 0, 26, 47, 44, 45, 0, 40, 0, 0, 644,
1031 640, 0, 782, 547, 785, 787, 0, 783, 784, 46,
1032 464, 0, 141, 151, 151, 139, 18, 20, 128, 116,
1033 129, 130, 0, 109, 112, 0, 0, 0, 0, 672,
1034 664, 421, 0, 107, 556, 553, 764, 781, 770, 768,
1035 0, 554, 763, 780, 769, 767, 762, 794, 777, 788,
1036 778, 771, 776, 797, 0, 388, 570, 569, 394, 393,
1037 490, 0, 489, 792, 792, 792, 0, 547, 758, 513,
1038 508, 104, 518, 400, 400, 505, 506, 503, 504, 547,
1039 758, 257, 602, 0, 386, 99, 509, 520, 525, 526,
1040 386, 386, 0, 0, 386, 97, 510, 523, 386, 500,
1041 501, 502, 400, 0, 451, 387, 0, 78, 0, 0,
1042 0, 0, 84, 0, 795, 758, 795, 758, 803, 802,
1043 804, 262, 294, 202, 204, 300, 301, 0, 0, 0,
1044 0, 284, 287, 0, 0, 0, 0, 225, 0, 288,
1045 290, 219, 218, 209, 0, 208, 223, 0, 0, 631,
1046 629, 0, 632, 551, 214, 0, 0, 316, 0, 0,
1047 0, 641, 637, 648, 547, 657, 655, 656, 646, 795,
1048 0, 653, 0, 599, 600, 0, 305, 149, 151, 151,
1049 147, 543, 541, 446, 0, 406, 404, 257, 0, 23,
1050 48, 43, 50, 54, 643, 639, 644, 640, 0, 563,
1051 0, 547, 645, 52, 137, 135, 0, 114, 0, 118,
1052 0, 120, 0, 122, 0, 724, 666, 0, 422, 644,
1053 640, 0, 279, 0, 597, 789, 0, 0, 798, 799,
1054 0, 0, 0, 391, 0, 0, 0, 492, 491, 484,
1055 795, 0, 418, 418, 795, 0, 0, 0, 400, 400,
1056 0, 400, 400, 0, 400, 0, 418, 0, 439, 398,
1057 547, 264, 263, 265, 547, 81, 0, 87, 0, 0,
1058 0, 0, 0, 0, 429, 0, 0, 426, 228, 249,
1059 0, 210, 211, 220, 222, 630, 628, 635, 633, 0,
1060 215, 0, 308, 312, 314, 795, 651, 547, 652, 145,
1061 143, 443, 0, 409, 411, 643, 639, 568, 645, 115,
1062 113, 0, 0, 0, 0, 0, 181, 665, 0, 667,
1063 668, 423, 0, 600, 779, 773, 774, 772, 0, 796,
1064 389, 395, 0, 487, 488, 482, 94, 547, 512, 516,
1065 96, 547, 400, 400, 534, 418, 257, 602, 0, 521,
1066 527, 528, 386, 386, 418, 418, 0, 418, 524, 511,
1067 0, 795, 795, 547, 547, 0, 0, 0, 0, 427,
1068 0, 0, 0, 212, 636, 317, 654, 795, 0, 117,
1069 119, 121, 731, 725, 729, 416, 0, 674, 0, 257,
1070 602, 603, 675, 689, 692, 695, 664, 0, 0, 0,
1071 0, 0, 0, 258, 721, 726, 0, 746, 0, 683,
1072 0, 0, 364, 0, 660, 681, 688, 659, 682, 722,
1073 0, 669, 284, 800, 392, 795, 795, 533, 530, 532,
1074 0, 0, 400, 400, 400, 529, 531, 515, 441, 0,
1075 440, 435, 77, 83, 795, 795, 296, 297, 298, 299,
1076 0, 430, 546, 650, 410, 664, 730, 0, 670, 663,
1077 184, 739, 741, 742, 664, 664, 664, 0, 0, 0,
1078 707, 709, 710, 711, 0, 0, 0, 740, 0, 335,
1079 747, 0, 684, 333, 386, 0, 334, 0, 386, 0,
1080 0, 0, 182, 662, 661, 685, 720, 719, 93, 95,
1081 400, 400, 539, 418, 418, 0, 0, 453, 80, 86,
1082 428, 0, 417, 0, 0, 679, 678, 0, 0, 0,
1083 0, 703, 0, 712, 0, 718, 727, 0, 331, 332,
1084 0, 0, 0, 330, 183, 664, 538, 536, 535, 537,
1085 438, 437, 431, 68, 71, 0, 732, 173, 0, 676,
1086 690, 0, 693, 666, 744, 696, 0, 180, 0, 364,
1087 0, 0, 0, 708, 717, 0, 0, 686, 0, 436,
1088 0, 0, 0, 0, 664, 0, 665, 0, 745, 664,
1089 743, 700, 386, 705, 704, 728, 751, 0, 665, 434,
1090 0, 433, 737, 738, 733, 174, 677, 185, 665, 187,
1091 680, 171, 0, 0, 0, 664, 400, 0, 0, 0,
1092 752, 753, 713, 687, 432, 665, 666, 691, 0, 694,
1093 177, 0, 176, 701, 0, 706, 0, 751, 0, 0,
1094 734, 186, 172, 697, 665, 178, 0, 0, 714, 754,
1095 0, 702, 0, 755, 0, 0, 0, 179, 756, 0,
1096 715, 698, 0, 0, 0, 757, 716, 665, 699, 0,
1097 0, 0
1098 };
1099
1100 static const short yydefgoto[] = { 1550,
1101 404, 2, 405, 160, 657, 310, 228, 3, 4, 38,
1102 624, 351, 724, 370, 40, 725, 380, 632, 883, 633,
1103 634, 635, 42, 43, 413, 166, 164, 44, 726, 741,
1104 1006, 746, 1008, 46, 727, 728, 167, 168, 414, 659,
1105 914, 915, 605, 916, 216, 47, 905, 904, 648, 645,
1106 1070, 1069, 868, 865, 135, 903, 48, 49, 522, 311,
1107 312, 313, 314, 1299, 1494, 1440, 1512, 1449, 1533, 1208,
1108 1489, 1507, 345, 857, 315, 559, 820, 316, 317, 346,
1109 319, 337, 51, 235, 372, 393, 52, 53, 320, 517,
1110 321, 322, 323, 324, 415, 325, 1300, 454, 580, 326,
1111 1301, 55, 199, 638, 327, 200, 495, 201, 179, 192,
1112 59, 437, 180, 1122, 455, 1223, 193, 1123, 60, 997,
1113 466, 61, 62, 620, 621, 622, 1277, 420, 783, 784,
1114 1434, 1435, 1398, 1331, 1251, 63, 609, 340, 1149, 1332,
1115 1027, 871, 64, 65, 66, 67, 220, 68, 69, 70,
1116 222, 711, 712, 713, 714, 224, 462, 463, 732, 733,
1117 734, 977, 987, 978, 1240, 979, 980, 1241, 1242, 606,
1118 607, 560, 847, 329, 423, 424, 173, 181, 72, 73,
1119 74, 182, 183, 152, 76, 131, 330, 331, 332, 78,
1120 333, 80, 716, 122, 123, 124, 104, 81, 334, 825,
1121 826, 842, 583, 1304, 1305, 1406, 1278, 1209, 1210, 1211,
1122 663, 1306, 921, 1307, 1355, 1465, 1408, 1442, 1308, 1309,
1123 1426, 1479, 1356, 1466, 1357, 1468, 1358, 1470, 1531, 1545,
1124 1496, 1525, 1453, 1498, 1413, 416, 660, 1205, 1310, 1369,
1125 1456, 1274, 1275, 1346, 1463, 1506, 1451, 1437, 1311, 1446,
1126 1372, 790, 1500, 1501, 1502, 1540, 680, 681, 943, 1118,
1127 1218, 682, 683, 684, 939, 685, 145, 941, 687, 1120,
1128 1121, 489, 83, 84
1129 };
1130
1131 static const short yypact[] = { 81,
1132 98,-32768,-32768, 5542,-32768, 180, 55, 184, 269, 124,
1133 59,-32768,-32768, 1447,-32768,-32768, 42, 232, 243,-32768,
1134 -32768,-32768, 1477, 647, 1059, 161,-32768, 296, 307,-32768,
1135 2186, 2186,-32768, 4882,-32768, 5542, 261,-32768, 402, 29,
1136 10110,-32768,-32768, 314,-32768, 462, 490, 516,-32768,-32768,
1137 -32768,-32768, 175, 978,-32768, 2303,-32768, 1948, 280,-32768,
1138 543,-32768,-32768, 1152,-32768,-32768, 538,-32768,-32768, 530,
1139 3742,-32768,-32768,-32768, 1483,-32768,-32768,-32768, 709,-32768,
1140 -32768, 729, 7746, 573,-32768,-32768, 9078,-32768, 9078,-32768,
1141 9078,-32768,-32768,-32768, 184, 269, 296, 563, 542, 604,
1142 516,-32768, 729,-32768, 729, 9078, 9078, 580,-32768,-32768,
1143 -32768,-32768,-32768, 687, 612, 549, 587, 654, 629, 638,
1144 -32768,-32768, 1237,-32768, 1259, 184, 269, 1745, 296, 563,
1145 -32768, 2873, 875, 620, 10275, 9078,-32768, 9078, 2442,-32768,
1146 1270, 1017, 2442,-32768, 1298, 3365, 3365, 4882, 590, 601,
1147 623, 626, 651,-32768,-32768, 746,-32768, 658,-32768, 4414,
1148 180,-32768,-32768,-32768, 779, 147, 327, 717,-32768,-32768,
1149 678, 214,-32768,-32768, 3555, 3555, 5044, 1483, 353,-32768,
1150 -32768, 183,-32768,-32768, 2894,-32768,-32768,-32768,-32768,-32768,
1151 1948, 456,-32768, 543, 1483,-32768,-32768,-32768, 2130, 1948,
1152 -32768, 543,-32768, 5077,-32768,-32768,-32768,-32768,-32768,-32768,
1153 -32768,-32768,-32768,-32768,-32768,-32768, 516, 1552, 1552, 538,
1154 -32768,-32768,-32768,-32768,-32768, 689, 729, 703, 543, 140,
1155 1700,-32768, 253,-32768,-32768,-32768,-32768,-32768, 3732,-32768,
1156 -32768, 331,-32768, 732, 736,-32768,-32768,-32768,-32768, 782,
1157 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1158 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1159 -32768,-32768, 728,-32768,-32768, 689, 3742, 574,-32768,-32768,
1160 756,-32768,-32768, 9693, 9780, 9867, 9867,-32768,-32768,-32768,
1161 -32768,-32768, 762, 787, 794, 796, 800, 563, 9165, 1298,
1162 9867,-32768,-32768, 9867,-32768,-32768, 9867, 7310,-32768, 9867,
1163 400, 836,-32768, 9867,-32768, 9252,-32768, 5717,-32768, 1780,
1164 2174, 9339,-32768, 879, 2803,-32768, 1287, 4058, 3815,-32768,
1165 315,-32768, 2998, 1368, 400, 400, 9078, 10275,-32768, 1298,
1166 788,-32768,-32768, 791, 843, 5934, 803, 804, 808, 1884,
1167 658,-32768, 1745,-32768,-32768,-32768,-32768,-32768,-32768, 612,
1168 549, 587, 654, 629,-32768,-32768,-32768, 184, 269, 860,
1169 -32768,-32768,-32768, 875,-32768,-32768,-32768,-32768,-32768, 5296,
1170 -32768,-32768, 5077, 2550, 2067,-32768, 400, 599,-32768, 362,
1171 -32768,-32768,-32768, 2442,-32768,-32768, 2442,-32768, 821,-32768,
1172 -32768, 3732, 69, 818, 827,-32768,-32768,-32768,-32768,-32768,
1173 -32768,-32768, 74,-32768,-32768,-32768,-32768, 7402, 9165,-32768,
1174 -32768,-32768, 9165, 831,-32768, 6638, 146, 3836,-32768, 3836,
1175 -32768, 4313, 4313, 5044, 835,-32768, 543, 5077,-32768, 844,
1176 -32768,-32768, 4665, 2130, 1948, 5077,-32768, 543,-32768,-32768,
1177 543, 2130,-32768, 421,-32768,-32768, 516,-32768, 1552,-32768,
1178 1970, 3278, 7, 689, 746, 882, 543,-32768,-32768, 884,
1179 888, 890,-32768,-32768,-32768,-32768, 433,-32768, 333, 856,
1180 857,-32768,-32768, 689,-32768,-32768, 413,-32768,-32768, 9078,
1181 9165, 756, 7310,-32768, 367, 7310,-32768,-32768,-32768, 9078,
1182 4421, 4421, 4421, 4421, 10521,-32768,-32768,-32768,-32768, 861,
1183 9954, 9954, 7310, 864, 590, 868, 921, 876,-32768,-32768,
1184 -32768,-32768, 9078,-32768, 7119, 7310,-32768, 9165, 9165, 5814,
1185 9165, 9165, 9165, 9165, 9165, 9165, 9165, 9165, 9165, 9165,
1186 9165, 9165, 9165, 9165, 9165, 9165, 9165, 9165, 9165,-32768,
1187 -32768,-32768,-32768,-32768, 9165, 9165, 9165, 9078, 1983, 497,
1188 302, 8110,-32768,-32768,-32768, 930, 983, 388, 397, 399,
1189 3089, 1017,-32768, 526, 526,-32768, 3623, 880, 904, 955,
1190 -32768,-32768, 345, 6155, 1530,-32768, 726, 729,-32768,-32768,
1191 9165,-32768,-32768,-32768,-32768, 182,-32768,-32768,-32768, 400,
1192 -32768, 5077, 2651,-32768, 941, 948,-32768,-32768, 1298,-32768,
1193 7839, 7931,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 80,
1194 -32768, 917, 903, 658, 956,-32768,-32768,-32768, 1167, 161,
1195 979, 212, 960, 962,-32768,-32768, 3452, 10331, 3452, 2877,
1196 1152, 6277,-32768, 965,-32768,-32768,-32768,-32768,-32768,-32768,
1197 -32768,-32768, 928,-32768, 970,-32768,-32768, 314, 789, 981,
1198 921,-32768,-32768,-32768,-32768, 6840, 10521,-32768, 843, 937,
1199 5934,-32768,-32768, 938,-32768,-32768, 943, 309, 5611, 947,
1200 -32768, 201, 5401, 995, 996, 442,-32768,-32768,-32768, 3836,
1201 3836,-32768, 4665, 1001,-32768,-32768, 958, 146,-32768, 2130,
1202 -32768, 1008, 543,-32768, 549, 587,-32768, 986,-32768, 638,
1203 1022,-32768,-32768, 218,-32768,-32768, 1626,-32768, 459, 1085,
1204 -32768, 9165, 10169,-32768, 5213, 300, 300, 256, 453, 2430,
1205 10230, 3562,-32768, 192, 300, 1021, 543, 71,-32768, 146,
1206 1892, 9078, 9078, 9078, 146, 1892,-32768,-32768,-32768,-32768,
1207 -32768,-32768, 751, 751, 751, 400, 982, 984, 9432, 955,
1208 989, 992, 1002, 1015, 4671, 1043, 1045, 1049,-32768, 1016,
1209 -32768,-32768, 1027,-32768,-32768, 1064, 448, 501, 41, 483,
1210 9165, 1069,-32768, 1081, 1035, 10521, 10521,-32768,-32768, 1086,
1211 10539, 4480, 8135, 10450, 1988, 5956, 5437, 2324, 2324, 2324,
1212 2166, 2166, 1171, 1171, 719, 719, 719,-32768,-32768, 1040,
1213 1038, 1041, 1048, 1052, 4421, 497,-32768, 7402, 9165,-32768,
1214 -32768,-32768, 9165,-32768,-32768, 1068, 9867, 1051, 1076, 1119,
1215 -32768, 9165,-32768, 9165,-32768, 9165, 1630,-32768, 1630,-32768,
1216 142, 1058, 1067,-32768, 1062, 4421, 146,-32768, 146, 1735,
1217 -32768, 1892, 1066, 8713, 8713, 6044, 1071, 9252, 1072, 3131,
1218 1368, 772, 1073,-32768,-32768,-32768,-32768,-32768, 9165, 1298,
1219 1074, 948,-32768, 10521,-32768, 10521, 1884, 1077, 9519,-32768,
1220 1079,-32768,-32768,-32768, 1409, 5296,-32768, 4421, 9078, 2627,
1221 2627, 3999,-32768,-32768,-32768,-32768, 2894,-32768,-32768,-32768,
1222 778, 9165,-32768,-32768,-32768,-32768,-32768,-32768, 612,-32768,
1223 654, 629, 9165, 1118,-32768, 472, 492, 496, 921,-32768,
1224 -32768,-32768, 64,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1225 8617,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 996,
1226 1128,-32768,-32768,-32768, 4421,-32768,-32768,-32768,-32768, 1135,
1227 -32768, 9078,-32768,-32768,-32768,-32768, 1065,-32768, 1892, 10521,
1228 -32768,-32768,-32768, 543, 543,-32768,-32768,-32768,-32768,-32768,
1229 1892, 391, 750, 9165, 421,-32768, 1143,-32768,-32768,-32768,
1230 540, 830, 709, 1017, 909, 300, 1146,-32768, 933,-32768,
1231 -32768,-32768, 543, 3928,-32768,-32768, 7402,-32768, 1098, 400,
1232 400, 400,-32768, 1102, 146, 1892, 146, 1892,-32768,-32768,
1233 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1120, 1123, 1124,
1234 1129, 928,-32768, 10407, 7402, 6935, 1117,-32768, 9165,-32768,
1235 -32768,-32768,-32768, 622, 1121,-32768,-32768, 1126, 91, 554,
1236 554, 1116, 554,-32768,-32768, 9867, 1226,-32768, 1127, 1133,
1237 1137,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 146,
1238 1138,-32768, 1132,-32768,-32768, 3213,-32768,-32768,-32768,-32768,
1239 -32768, 10521,-32768,-32768, 1159,-32768,-32768, 200, 1161,-32768,
1240 -32768,-32768,-32768,-32768, 2700, 2700, 2991, 2991, 3999,-32768,
1241 2894,-32768, 3119, 5717,-32768,-32768, 1162,-32768, 789,-32768,
1242 9165,-32768, 9165,-32768, 9165,-32768, 61, 7027,-32768, 8806,
1243 8806, 6542, 411, 1170, 578,-32768, 7402, 7214,-32768,-32768,
1244 220, 7402, 7402,-32768, 1174, 1178, 1970,-32768,-32768,-32768,
1245 146, 1179, 1212, 1212, 146, 1180, 9165, 9165, 5896, 543,
1246 4772, 543, 543, 819, 543, 4781, 1212, 4583,-32768,-32768,
1247 -32768,-32768,-32768,-32768,-32768,-32768, 1187,-32768, 1189, 9165,
1248 9165, 9165, 9165, 7402,-32768, 9165, 1247,-32768,-32768, 10521,
1249 9165,-32768, 622,-32768,-32768,-32768,-32768,-32768,-32768, 1198,
1250 -32768, 1265,-32768,-32768,-32768, 146,-32768,-32768,-32768,-32768,
1251 -32768,-32768, 9165,-32768,-32768, 2700, 2700,-32768, 3119,-32768,
1252 -32768, 1204, 1210, 1211, 1227, 1298,-32768,-32768, 6448, 1292,
1253 -32768,-32768, 1220, 1785,-32768,-32768,-32768,-32768, 4421,-32768,
1254 -32768,-32768, 7402,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1255 -32768,-32768, 5896, 5896,-32768, 1212, 410, 865, 9165,-32768,
1256 -32768,-32768, 421, 421, 1212, 1212, 433, 1212,-32768,-32768,
1257 6337, 146, 146,-32768,-32768, 1221, 1224, 1228, 1230,-32768,
1258 10476, 7402, 1235,-32768,-32768,-32768,-32768, 146, 1231,-32768,
1259 -32768,-32768,-32768, 1227,-32768,-32768, 760,-32768, 234, 1273,
1260 887, 891,-32768,-32768,-32768,-32768,-32768, 9165, 1274, 1272,
1261 1282, 8899, 611, 485,-32768,-32768, 8991, 1343, 1293,-32768,
1262 1556, 4998, 10376, 4203,-32768,-32768, 1345,-32768,-32768,-32768,
1263 8221,-32768, 792,-32768,-32768, 146, 146,-32768,-32768,-32768,
1264 9165, 9165, 5896, 543, 543,-32768,-32768,-32768,-32768, 8023,
1265 -32768,-32768,-32768,-32768, 146, 146,-32768,-32768,-32768,-32768,
1266 7402,-32768,-32768,-32768,-32768,-32768,-32768, 1298,-32768,-32768,
1267 -32768,-32768,-32768,-32768,-32768,-32768, 921, 1271, 1280, 4110,
1268 -32768,-32768,-32768,-32768, 1303, 9165, 1314,-32768, 921,-32768,
1269 -32768, 1283,-32768,-32768, 421, 775,-32768, 834, 421, 9606,
1270 846, 257,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1271 5896, 5896,-32768, 1212, 1212, 1267, 10429, 1281,-32768,-32768,
1272 -32768, 1289,-32768, 582, 582,-32768,-32768, 1369, 6748, 9078,
1273 9165,-32768, 8331,-32768, 1324,-32768,-32768, 746,-32768,-32768,
1274 10041, 10041, 7494,-32768,-32768, 921,-32768,-32768,-32768,-32768,
1275 -32768,-32768,-32768, 462, 314, 4328,-32768,-32768, 9078,-32768,
1276 -32768, 8523,-32768, 61,-32768,-32768, 1326,-32768, 1284, 113,
1277 5077, 10499, 8331,-32768,-32768, 1227, 79,-32768, 170,-32768,
1278 1285, 1286, 921, 1290, 921, 8427,-32768, 596,-32768,-32768,
1279 -32768,-32768, 421,-32768,-32768, 1227, 1381, 1332,-32768,-32768,
1280 74,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1281 -32768,-32768, 9165, 1336, 7586, 921, 543, 8331, 1307, 31,
1282 1344,-32768,-32768,-32768,-32768,-32768, 61,-32768, 1301,-32768,
1283 -32768, 1354,-32768,-32768, 1359,-32768, 9165, 1381, 1372, 1381,
1284 -32768,-32768,-32768,-32768,-32768,-32768, 1319, 33,-32768,-32768,
1285 7678,-32768, 7402,-32768, 1426, 1380, 1333,-32768,-32768, 286,
1286 -32768,-32768, 1431, 1383, 8427,-32768,-32768,-32768,-32768, 1445,
1287 1456,-32768
1288 };
1289
1290 static const short yypgoto[] = {-32768,
1291 1458,-32768, -331,-32768, 1039, 21, 35, 1457,-32768, 76,
1292 -32768,-32768, 650, 1108,-32768, 6,-32768,-32768, -583,-32768,
1293 -32768, 586,-32768, 1304, -645, 39, -655, 1315, 194,-32768,
1294 -32768,-32768,-32768,-32768, 745, 753,-32768,-32768,-32768,-32768,
1295 -32768, 384, 160,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1296 -32768,-32768,-32768,-32768, 1392, -430, 5232, 40, -184, -62,
1297 1348, -485,-32768, 1160,-32768, 85,-32768, -1313,-32768, -1334,
1298 -53,-32768, 1223, 1327, -250,-32768, -747, 2265, -59, 3990,
1299 3265, 1214,-32768, -46, -60, 720, -48, -33,-32768,-32768,
1300 -32768, -304,-32768, -149,-32768,-32768, -1213, -52, -315, 1263,
1301 0, 1193, -145, 56, 87, -165, -4, -94, -556, 193,
1302 -32768, -70,-32768,-32768, 195,-32768,-32768,-32768,-32768,-32768,
1303 699, -42, -10,-32768, 630,-32768,-32768, -385, 16, 833,
1304 -32768,-32768,-32768,-32768,-32768, 20,-32768,-32768,-32768,-32768,
1305 -32768, 631, -357,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1306 1294,-32768, 385, 560,-32768,-32768,-32768,-32768, 524, -679,
1307 795,-32768,-32768,-32768,-32768,-32768, 790,-32768, 378, 916,
1308 657, 969, 1545, 18, 15, -416, 1356, 109, -433,-32768,
1309 95,-32768, 5034, -135, -1, -85, 3708, 1225,-32768, 4847,
1310 1533, 135, -16, -107,-32768, 1422,-32768, 4307, 2386, -333,
1311 -32768, 1973,-32768,-32768, 242, -900, -1235,-32768,-32768, 341,
1312 89, -350,-32768,-32768,-32768,-32768, -1327,-32768, -1204, -1377,
1313 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1314 -32768,-32768,-32768,-32768,-32768, 93,-32768,-32768,-32768,-32768,
1315 -32768, 112, -1218,-32768,-32768,-32768, -64,-32768,-32768,-32768,
1316 -32768, -1345, 54,-32768, 57,-32768, -529, -507, 639,-32768,
1317 -32768,-32768,-32768, -374,-32768, -371, -181,-32768, 1846, 365,
1318 -32768, 111,-32768, -214
1319 };
1320
1321
1322 #define YYLAST 10624
1323
1324
1325 static const short yytable[] = { 58,
1326 151, 178, 908, 54, 229, 643, 403, 121, 644, 41,
1327 395, 398, 585, 194, 919, 202, 472, 367, 278, 623,
1328 1107, 71, 641, 697, 36, 445, 335, 715, 336, 594,
1329 236, 58, 153, 494, 497, 54, 58, 775, 37, 461,
1330 54, 41, 373, 961, 736, 444, 41, 378, 139, 143,
1331 206, 191, 990, 71, 452, 1347, 36, 900, 71, 56,
1332 464, 36, 664, 1447, 1467, 527, 226, 172, 1036, 843,
1333 37, 376, 377, 387, 661, 37, 843, 203, 276, 564,
1334 -1, 564, 328, 1370, 328, 375, 328, 158, 1490, 564,
1335 57, 56, 236, 1518, 1206, 1535, 56, -2, 1458, 1385,
1336 277, 328, 328, -126, 450, 453, 1388, 93, 102, 1469,
1337 484, 155, 151, 151, 151, 136, 162, 737, 233, 597,
1338 197, 198, 57, 1108, 448, 1464, 14, 57, 159, 87,
1339 385, 328, 662, 328, 383, 106, 236, 1487, 573, 877,
1340 1519, 1477, 1536, 151, 153, 153, 153, 410, 202, 21,
1341 598, 599, 71, 927, 475, 58, 451, 202, 24, 54,
1342 573, 845, 484, 394, 397, 172, 773, 1490, 1514, 275,
1343 1480, 1207, 1522, 100, 1109, 153, 240, 71, 655, 760,
1344 996, 1513, 114, 206, 759, 1537, 467, 468, 1478, 878,
1345 384, 206, 428, 430, 90, 1445, 172, 45, 92, 342,
1346 1175, 928, 649, 650, 929, -327, 759, 686, 1454, 411,
1347 203, 999, 933, 238, 91, 56, 1004, 906, 203, 203,
1348 288, 57, -551, 215, 955, 917, 498, 499, -327, 45,
1349 -551, 1491, 411, 469, 45, 134, 27, 238, 88, 930,
1350 85, 507, 412, 1504, 508, 203, 57, 509, 1475, 190,
1351 519, 774, 991, 1508, 524, 956, 561, 1347, 89, 1193,
1352 934, 425, 563, 935, 569, 412, 238, 373, -551, 171,
1353 1521, 886, 226, 885, 600, 238, -551, 440, 568, 1219,
1354 966, 479, 365, 429, 431, 435, 1172, 887, 628, 1532,
1355 86, 594, 881, 1516, 1350, 203, 395, 398, 936, 700,
1356 473, 1081, 992, 328, 392, 126, 127, 426, 643, 1194,
1357 920, 940, 1549, 627, 967, 738, 276, 1350, 968, 238,
1358 927, 240, 1061, 90, 226, 107, 15, 16, 382, 1220,
1359 646, -386, 328, 603, 8, 477, 108, 602, 277, 204,
1360 205, 194, 202, 91, 1351, 1543, 474, 203, 843, 450,
1361 453, 969, 238, 45, 156, 71, 27, 450, 129, 130,
1362 -386, 137, 590, 585, -386, 126, 127, 1425, 928, 453,
1363 136, 929, 821, -791, 417, 640, 238, 456, 458, 191,
1364 749, 138, 822, 703, 843, 631, 1359, 129, 130, 453,
1365 471, 418, 851, 384, 467, 1544, 823, 642, 151, 151,
1366 151, 451, 202, 1084, 203, 467, 930, 275, 591, 451,
1367 -386, 478, 438, 439, 573, 864, 126, 127, 129, 130,
1368 419, 679, 163, 843, 57, 1264, 750, 756, 240, 1132,
1369 153, 153, 153, 668, 1068, 831, 1063, 1071, 852, 853,
1370 206, 1136, 478, 642, 833, 1402, 835, 15, 16, 690,
1371 691, 507, 508, 1137, 1404, 1405, 206, 58, -276, 506,
1372 759, 730, 157, 203, 203, 87, 639, 238, 990, 129,
1373 130, 203, 1321, 1095, 1096, 520, 1157, 521, 1159, 71,
1374 747, 832, 723, 203, 87, 328, 165, 90, 328, 944,
1375 834, 328, 836, 232, 561, 328, 765, 765, 765, 765,
1376 970, 729, 88, 203, -276, -276, 958, 91, 328, 619,
1377 -124, 643, 639, 90, 644, 446, 447, 731, 328, 1100,
1378 -269, 328, 89, 715, 238, 951, 748, 953, 641, 126,
1379 127, 601, 957, 91, 13, 945, 688, 137, 689, 1102,
1380 429, 431, 435, 1104, 817, -127, 971, 1368, 57, 866,
1381 169, 699, 959, 328, 276, 90, 594, 126, 127, 136,
1382 202, 818, 475, -125, -336, 1101, 15, 16, 1106, 1495,
1383 170, 1012, 640, 573, 19, 91, 277, 126, 127, 679,
1384 27, 843, 129, 130, 893, 1103, 898, 899, 223, 1105,
1385 819, 837, 839, 238, 642, 194, 574, 202, -336, 484,
1386 221, 642, -336, 355, 843, 450, 575, 527, 27, 367,
1387 129, 130, 121, 94, 109, 110, 576, 137, 704, 577,
1388 578, 238, 203, 89, 821, -591, 899, 1180, 27, 1438,
1389 129, 130, 695, 191, 822, -336, 202, 226, 1190, 1191,
1390 701, 356, 918, 1492, 485, 275, 597, 279, 823, 115,
1391 116, 117, 339, 39, 486, 964, 965, 451, 523, 203,
1392 467, 91, 341, 639, 993, 917, 354, 111, 112, 817,
1393 639, -591, -591, 350, 520, 1439, 521, 976, 640, 1000,
1394 1001, 1002, 240, 358, 782, 39, 818, -591, 194, 1493,
1395 39, 1366, 359, 715, 467, 379, 197, 198, 203, -269,
1396 642, 27, 14, 118, 119, 238, 1176, 1177, 357, 1179,
1397 400, 7, 8, 230, 10, 819, 1171, 171, 58, 203,
1398 58, 238, 730, 760, 730, 21, 191, 58, 136, 8,
1399 9, 730, 8, 9, 24, 401, 640, 328, 328, 328,
1400 71, 640, 71, 723, 1376, 352, 1381, 1229, 1230, 71,
1401 22, 353, 723, 150, 126, 127, 283, 231, 642, 475,
1402 -586, 1250, 729, 642, 729, 28, 29, 1045, -7, 639,
1403 729, 729, 1127, 1128, 1129, 8, 9, 421, 731, 1460,
1404 731, 409, 129, 130, 203, 129, 130, 731, 884, 232,
1405 422, 909, 705, 706, 507, 508, 465, 33, 688, 689,
1406 901, 699, 548, 549, 88, 27, 232, 129, 130, 57,
1407 765, 57, 1138, 1481, 1039, 1152, 1153, 1154, 57, 1348,
1408 1349, 485, 126, 1247, 89, 782, 480, 639, 129, 130,
1409 481, 486, 639, 1037, 438, 1419, 910, -44, 981, -278,
1410 483, 765, -44, 27, 482, 911, 912, 640, 236, 491,
1411 1320, 679, 478, -44, -337, 500, 15, 16, 151, 1326,
1412 1327, 501, 1328, 1009, 1010, 1011, 396, 399, 502, 642,
1413 503, 837, 839, 642, 504, 129, 130, 280, 368, 369,
1414 10, 640, 913, 765, 328, -278, -278, 640, -337, 564,
1415 153, 631, -337, 446, 1420, 523, 150, 151, 608, 478,
1416 610, -272, 611, 642, 1140, 438, 1424, 1085, 1086, 642,
1417 1142, 1143, 613, 614, 1140, 1145, 22, 615, 1143, 88,
1418 626, 467, 467, 975, 985, -337, 679, 1322, -6, 153,
1419 653, 28, 298, -102, 236, 15, 16, 656, 639, 89,
1420 765, 88, 639, 673, 692, 90, 739, 328, 642, 1353,
1421 467, 395, 398, 1354, 640, 240, 696, -100, 742, 15,
1422 16, 89, 743, 33, 744, 91, 640, -102, 751, 752,
1423 769, -102, 639, 771, 395, 398, 642, 772, 639, 662,
1424 7, 8, 9, 10, 829, 774, 1181, 760, 642, 58,
1425 830, -100, 844, 730, 238, -100, 238, 846, 429, 431,
1426 435, 640, 848, 640, -102, 869, 1407, 870, 1429, 1430,
1427 879, 71, 1150, 880, 723, 21, 882, 639, 1417, 22,
1428 126, 127, 233, 642, 888, 642, 889, 516, -100, 902,
1429 907, 238, 27, 729, 28, 29, 619, -272, 174, 435,
1430 1165, 1168, 236, 411, 884, 639, 924, 925, 175, 731,
1431 507, 508, 926, 151, 151, 151, 932, 639, 176, -790,
1432 942, 643, 126, 127, 1462, 946, 33, 115, 705, 706,
1433 947, 177, 949, 129, 130, 1407, 151, 151, 151, 952,
1434 57, 954, 918, 994, 640, 153, 153, 153, 126, 127,
1435 1018, 1013, 639, 1014, 639, 708, 467, 467, 1015, 467,
1436 467, 1016, 467, 128, 1196, 1197, 642, 679, 153, 153,
1437 153, 1017, 1485, 27, 1407, 129, 130, 238, 1019, 27,
1438 1020, 118, 119, 1168, 1021, 1022, -123, 1196, 1197, 642,
1439 664, 1025, 1215, 1217, 760, 694, 1023, 1221, 1222, 27,
1440 1026, 129, 130, 58, 1028, 1407, 702, 730, 1029, 1030,
1441 1031, 1032, 396, 399, 94, 95, 96, 1033, 207, 208,
1442 209, 1034, 1044, 1046, 1047, 71, 1048, 1054, 723, 360,
1443 361, 362, 1324, 1325, 1056, 639, 1055, 1099, 1062, 1260,
1444 1064, 1065, 1067, 479, 1074, 1167, 1077, 729, 210, 1080,
1445 467, 467, 1117, 688, 689, 429, 431, 435, 639, 1124,
1446 238, 699, 1141, 731, 1303, 1146, 27, 1151, 97, 98,
1447 211, 1155, 516, 1160, 765, 516, 1161, 1162, 429, 431,
1448 435, 27, 1163, 363, 364, 238, 71, 1169, 1178, 1297,
1449 1173, 396, 770, 1182, 57, 1174, 1183, 519, 1315, 360,
1450 361, 362, 1184, 1298, 1189, 516, 1185, 1188, 1375, 1243,
1451 1375, 545, 546, 547, 548, 549, 212, 213, 214, 194,
1452 202, 115, 116, 117, 1302, 344, 348, 1167, 1457, 1192,
1453 1195, 1200, 7, 126, 127, 10, 418, 1342, 238, 1214,
1454 467, 467, 467, 1224, 484, 395, 398, 1225, 1228, 1232,
1455 126, 127, 1303, 363, 364, 57, 1254, 191, 1255, 1303,
1456 94, 109, 110, 859, 688, 689, 1303, 699, 448, 1262,
1457 1265, 22, 1266, 1270, 71, 118, 119, 1297, 231, 1271,
1458 1272, 71, 203, 1273, 1297, 1206, 28, 29, 71, 1313,
1459 1337, 1297, 1362, 1338, 573, 1352, 1361, 1339, 1298, 1340,
1460 1345, 27, 1363, 129, 130, 1298, 151, 1343, 467, 467,
1461 232, 1371, 1302, 1373, 111, 112, 1401, 574, 33, 1302,
1462 1386, 507, 508, 1414, 1409, 1276, 1302, 575, 347, 349,
1463 592, 8, 9, 1410, 1416, 1431, 1418, 576, 153, 1433,
1464 577, 578, 1436, 57, 1455, 1443, 1471, 151, 151, 151,
1465 57, 1499, 1503, 1472, 1483, 1484, 1510, 57, 1473, 1486,
1466 1517, 950, 1497, 1520, 1303, 1450, 288, 593, 1303, 22,
1467 1523, 94, 109, 110, 1524, 207, 208, 209, 328, 153,
1468 153, 153, 27, 1526, 129, 130, 71, 277, 1534, 1297,
1469 71, 640, 1529, 1297, 1450, 995, 1539, 1303, 690, 691,
1470 1541, 1546, 1542, 1547, 1551, 210, 658, 1298, 1303, 94,
1471 95, 96, 1367, 642, 467, 1552, 277, 1, 5, 71,
1472 625, 1303, 1297, 407, 1302, 111, 112, 514, 1302, 203,
1473 71, 1082, 1459, 1297, 408, 986, 1298, 962, 859, 94,
1474 109, 110, 1201, 71, 338, 388, 1297, 1298, 435, 1441,
1475 1450, 1548, 490, 1303, 1378, 57, 275, 1302, 923, 57,
1476 1298, 27, 1075, 97, 98, 99, 1076, 1403, 1302, 15,
1477 16, 1226, 277, 460, -386, 71, 1130, 1148, 1297, 963,
1478 988, 1302, 639, 1249, 872, 275, 1073, 816, 57, 429,
1479 431, 435, 1298, 111, 112, 113, 79, 441, -547, 57,
1480 1303, -547, -386, -386, 366, 1384, 103, -386, 1538, 570,
1481 1312, 1482, 57, 1302, 94, 95, 96, 132, 7, 8,
1482 9, 10, 71, 141, 141, 1297, 141, 1476, 79, 1505,
1483 518, 1528, 637, 79, 396, 770, 1530, 848, 1116, 1298,
1484 0, 275, 672, 1314, 57, 0, 185, 0, 79, -547,
1485 0, -547, -547, 0, -547, 0, 218, 22, 0, 0,
1486 1302, 0, 0, 103, 0, -547, 0, -547, 97, 98,
1487 27, 150, 28, 29, 242, 103, 1374, 0, 637, 0,
1488 0, 0, 0, -547, -547, 239, 175, -547, 115, 705,
1489 706, 57, 0, 126, 127, 0, 176, 103, 225, -547,
1490 0, 669, 636, 0, 33, 0, 0, 0, 669, 177,
1491 1114, 0, 514, 0, 0, 514, 0, 0, 0, 762,
1492 132, 0, 1133, 1134, 0, 132, 0, 79, 0, 0,
1493 0, 141, 514, 0, 390, 141, 0, 573, 141, 141,
1494 141, 0, 118, 119, 27, 514, 129, 130, 678, 789,
1495 0, 1147, 79, 0, 0, 0, 0, 0, 402, 0,
1496 574, 0, 94, 109, 110, 470, 0, 185, 185, 185,
1497 575, 0, 0, 669, 0, 811, 0, 427, 0, 0,
1498 576, 828, 0, 577, 578, 0, 0, 0, 0, 0,
1499 443, 0, 0, 0, 0, 0, 185, 0, 126, 127,
1500 0, 22, 0, 475, 0, 670, 0, 280, 368, 369,
1501 10, 459, 677, 0, 0, 758, 111, 112, 761, 103,
1502 0, 0, 763, 764, 766, 767, 768, 0, 0, 637,
1503 0, 141, 0, 0, 0, 518, 637, 669, 0, 669,
1504 669, 0, 573, 0, 0, 0, 22, 0, 785, 27,
1505 0, 129, 130, 0, 0, 0, -278, 0, 0, 27,
1506 0, 28, 298, 0, 0, 574, 669, 396, 399, 103,
1507 487, -278, -278, 669, 0, 575, -278, 757, 0, 0,
1508 814, 0, 0, 0, 0, 576, 0, 550, 577, 578,
1509 396, 1213, -278, 33, 0, 0, 0, 1235, 1236, 841,
1510 1245, 1246, 0, 1248, -278, -278, 841, -278, 0, -278,
1511 0, 0, 0, 103, 0, 0, 0, 571, 0, 487,
1512 487, 587, 0, 0, 0, 0, 551, 552, 0, 0,
1513 79, 553, 554, 555, 556, 637, 0, 0, -278, -278,
1514 0, 810, -278, 812, 813, 132, 94, 109, 110, 0,
1515 616, 617, 618, 0, -278, 8, 9, 0, 381, 12,
1516 13, 0, 0, 675, 0, 14, 132, 0, 0, 0,
1517 0, 0, 103, 0, 0, 185, 103, 863, 0, 0,
1518 17, 0, 18, 19, 0, 0, 141, 0, 21, 141,
1519 0, 1318, 1319, 637, 141, 0, 0, 24, 637, 0,
1520 111, 112, 0, 0, 0, 636, 27, 0, 129, 130,
1521 0, 0, 0, 0, 196, 197, 198, 0, 0, 0,
1522 185, 14, 185, 0, 185, 185, 185, 0, 0, 0,
1523 185, 0, 115, 705, 706, 185, 707, 0, 185, 19,
1524 693, 669, 1042, 0, 21, 698, 8, 9, 0, 676,
1525 12, 13, 0, 24, 79, 0, 14, 0, 0, 0,
1526 708, 0, 0, 678, 0, 0, 0, 709, 678, 0,
1527 0, 17, 740, 18, 0, 514, 0, 745, 0, 21,
1528 0, 1393, 1394, 1395, 27, 0, 118, 119, 24, 753,
1529 754, 0, 755, 103, 103, 103, 103, 27, 0, 129,
1530 130, 669, 0, 0, 637, 0, 0, 0, 637, 0,
1531 0, 0, 0, 0, 669, 0, 669, 0, 669, 536,
1532 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
1533 547, 548, 549, 196, 197, 198, 815, 1035, 637, 0,
1534 14, 0, 0, 0, 637, 0, 0, 0, 0, 1427,
1535 1428, 103, 0, 487, 0, 0, 0, 0, 19, 1114,
1536 0, 669, 0, 21, 571, 0, 487, 487, 785, 587,
1537 0, 1125, 24, 0, 678, 0, 860, 0, 841, 0,
1538 862, 0, 0, 637, 849, 850, 0, 647, 0, 849,
1539 0, 0, 0, 0, 185, 669, 449, 197, 198, 0,
1540 0, 396, 1213, 14, 0, 1038, 0, 0, 636, 0,
1541 1083, 637, 0, 669, 841, 0, 0, 0, 1049, 0,
1542 1050, 19, 1051, 637, 0, 0, 21, 0, 0, 185,
1543 897, 185, 185, 218, 587, 24, 0, 8, 9, 0,
1544 0, 12, 13, 0, 0, 0, 0, 14, 7, 126,
1545 127, 10, 0, 841, 13, 1515, 0, 0, 637, 0,
1546 637, 0, 17, 0, 18, 1079, 0, 1119, 0, 0,
1547 21, 185, 0, 0, 1126, 897, 0, 0, 0, 24,
1548 0, 678, 185, 185, 0, 185, 0, 22, 27, 0,
1549 129, 130, 557, 678, 0, 0, 0, 0, 0, 1097,
1550 27, 0, 28, 29, 543, 544, 545, 546, 547, 548,
1551 549, 0, 132, 0, 0, 79, 31, 79, 0, 0,
1552 0, 0, 983, 79, 79, 0, 32, 558, 678, 0,
1553 678, 514, 0, 103, 33, 0, 0, 0, 103, 34,
1554 0, 637, 0, 0, 0, 487, 487, 487, 0, 0,
1555 0, 1005, 0, 1007, 0, 0, 0, 487, 0, 582,
1556 586, 589, 0, 0, 637, 7, 8, 9, 10, 187,
1557 12, 188, 0, 0, 0, 0, 14, 0, 0, 1256,
1558 1257, 1258, 1259, 669, 0, 669, 0, 669, 0, 0,
1559 1263, 17, 0, 18, 19, 0, 0, 0, 0, 21,
1560 0, 0, 0, 0, 22, 0, 0, 103, 24, 0,
1561 0, 841, 0, 0, 0, 0, 0, 27, 0, 28,
1562 29, 0, 0, 189, 0, 1040, 1041, 0, 1043, 487,
1563 0, 487, 0, 31, 841, 0, 0, 0, 103, 0,
1564 0, 0, 487, 32, 103, 0, 860, 860, 860, 82,
1565 0, 33, 0, 1066, 0, 1060, 34, 0, 0, 105,
1566 541, 542, 543, 544, 545, 546, 547, 548, 549, 125,
1567 133, 0, 0, 0, 0, 669, 142, 142, 103, 142,
1568 103, 82, 185, 185, 1091, 0, 82, 1202, 0, 1203,
1569 0, 1204, 972, 973, 9, 10, 0, 0, 1093, 142,
1570 0, 82, 0, 0, 7, 126, 127, 10, 0, 219,
1571 225, 1365, 0, 0, 0, 0, 227, 0, 0, 0,
1572 0, 0, 0, 1091, 0, 0, 0, 0, 227, 0,
1573 0, 22, 0, 0, 0, 0, 0, 103, 0, 0,
1574 0, 1119, 0, 22, 27, 0, 28, 29, 0, 0,
1575 0, 103, 974, 0, 0, 0, 27, 0, 28, 29,
1576 175, 0, 1131, 103, 0, 0, 0, 0, 0, 0,
1577 176, 0, 31, 374, 1135, 0, 1144, 0, 33, 1269,
1578 82, 0, 32, 177, 142, 1415, 79, 0, 142, 0,
1579 33, 142, 142, 142, 0, 34, 0, 0, 103, 0,
1580 103, 0, 0, 948, 0, 82, 838, 840, 0, 0,
1581 0, 0, 0, 8, 9, 0, 187, 12, 188, 0,
1582 142, 142, 142, 14, 0, 0, 0, 0, 789, 1448,
1583 0, 0, 487, 487, 0, 487, 0, 0, 17, 0,
1584 18, 19, 514, 0, 0, 998, 21, 0, 0, 142,
1585 1003, 579, 579, 579, 0, 24, 0, 0, 1448, 1186,
1586 0, 0, 669, 0, 27, 0, 129, 130, 0, 895,
1587 0, 582, 586, 0, 589, 0, 0, 185, 185, 185,
1588 185, 1091, 0, 0, 142, 185, 0, 0, 637, 7,
1589 8, 9, 10, 0, 0, 13, 1199, 0, 0, 0,
1590 0, 0, 1091, 1091, 1091, 0, 0, 0, 0, 0,
1591 0, 586, 1509, 0, 1448, 0, 0, 196, 197, 198,
1592 0, 0, 227, 142, 14, 0, 0, 0, 22, 0,
1593 0, 0, 0, 185, 573, 0, 1527, 0, 141, 0,
1594 79, 27, 19, 28, 29, 518, 0, 21, 0, 0,
1595 789, 0, 1057, 0, 1058, 1252, 24, 890, 636, 1253,
1596 0, 0, 7, 8, 9, 10, 227, 891, 225, 0,
1597 572, 867, 142, 142, 588, 33, 0, 576, 0, 596,
1598 892, 578, 0, 82, 0, 0, 0, 0, 185, 185,
1599 0, 185, 1268, 0, 0, 0, 0, 586, 374, 0,
1600 0, 22, 0, 0, 0, 0, 0, 573, 0, 0,
1601 0, 103, 0, 0, 27, 0, 28, 29, 0, 0,
1602 0, 0, 0, 0, 0, 227, 0, 0, 142, 227,
1603 890, 0, 1316, 0, 0, 0, 1317, 0, 0, 142,
1604 891, 0, 142, 0, 0, 0, 0, 142, 33, 0,
1605 576, 0, 0, 892, 578, 0, 0, 0, 1335, 1336,
1606 0, 0, 0, 565, 0, 280, 368, 369, 10, 1052,
1607 566, 1053, 0, 142, 0, 142, 0, 142, 142, 142,
1608 0, 0, 1059, 142, 0, 0, 838, 840, 142, 0,
1609 0, 142, 0, 185, 897, 185, 0, 0, 579, 579,
1610 0, 579, 0, 0, 22, 0, 717, 82, 858, 0,
1611 1156, 231, 1158, 0, 0, 0, 0, 27, 0, 28,
1612 298, 0, 838, 840, 0, 0, 0, 0, 0, 0,
1613 0, 0, 0, 0, 0, 280, 368, 369, 10, 7,
1614 8, 9, 10, 196, 197, 198, 227, 227, 227, 227,
1615 14, 567, 0, 0, 0, 0, 7, 8, 9, 10,
1616 0, 579, 0, 579, 579, 1187, 579, 0, 19, 0,
1617 0, 0, 1091, 21, 22, 0, 0, 0, 22, 0,
1618 0, 231, 24, 0, 573, 0, 0, 0, 0, 28,
1619 298, 27, 0, 28, 29, 22, 0, 0, 0, 0,
1620 0, 0, 231, 579, 227, 0, 142, 890, 0, 0,
1621 28, 29, 0, 1091, 1091, 1091, 0, 891, 0, 142,
1622 142, 33, 588, 0, 0, 33, 0, 576, 103, 861,
1623 892, 578, 0, 0, 232, 0, 1227, 0, 0, 0,
1624 1231, 596, 33, 185, 0, 0, 0, 142, 0, 0,
1625 0, 0, 0, 7, 8, 9, 10, 0, 0, 13,
1626 280, 8, 9, 10, 0, 0, 0, 0, 0, 0,
1627 0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
1628 0, 0, 142, 588, 142, 142, 219, 588, 0, 579,
1629 0, 1267, 22, 0, 0, 0, 0, 0, 573, 22,
1630 0, 0, 0, 0, 717, 27, 231, 28, 29, 0,
1631 0, 0, 0, 0, 28, 298, 0, 1052, 1053, 838,
1632 840, 1087, 0, 0, 142, 1059, 0, 0, 588, 0,
1633 0, 1088, 0, 0, 0, 142, 142, 0, 142, 33,
1634 0, 576, 838, 840, 1089, 578, 33, 0, 0, 0,
1635 0, 280, 126, 127, 10, 0, 0, 1333, 1334, 0,
1636 0, 579, 0, 579, 0, 133, 0, 0, 82, 0,
1637 82, 0, 0, 1344, 579, 984, 82, 82, 858, 858,
1638 858, 7, 8, 9, 10, 0, 227, 475, 0, 0,
1639 22, 227, 0, 280, 8, 9, 10, 231, 142, 142,
1640 142, 0, 0, 0, 0, 28, 298, 0, 0, 0,
1641 142, 0, 0, 0, 579, 579, 579, 0, 0, 0,
1642 22, 1389, 1390, 0, 0, 0, 573, 0, 1052, 1053,
1643 0, 1059, 22, 27, 0, 28, 29, 33, 0, 231,
1644 1399, 1400, 0, 0, 0, 0, 0, 28, 298, 890,
1645 0, 0, 0, 0, 0, 858, 0, 0, 0, 891,
1646 227, 0, 0, 0, 0, 0, 0, 33, 0, 576,
1647 0, 232, 892, 578, 0, 280, 8, 9, 10, 33,
1648 0, 0, 142, 0, 142, 0, 0, 0, 0, 0,
1649 0, 227, 0, 0, 0, 142, 0, 227, 0, 861,
1650 861, 861, 0, 0, 0, 0, 596, 0, 0, 0,
1651 0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
1652 0, 231, 0, 0, 0, 0, 0, 0, 50, 28,
1653 298, 227, 0, 227, 0, 142, 142, 588, 718, 0,
1654 7, 8, 719, 10, 381, 12, 13, 0, 0, 0,
1655 0, 14, 0, 478, 0, 50, 50, 0, 149, 0,
1656 50, 33, 0, 0, 0, 50, 17, 0, 18, 19,
1657 20, 0, 0, 0, 21, -495, 861, 0, 50, 22,
1658 50, 0, 0, 24, 720, 0, 630, 0, 0, 0,
1659 227, 0, 27, 0, 28, 29, 0, 0, 721, 0,
1660 722, 0, 717, 234, 227, 0, 0, 0, 31, 579,
1661 579, 579, 579, 579, 0, 0, 227, 579, 32, 0,
1662 0, 0, 0, 0, 0, 0, 33, 7, 126, 127,
1663 10, 34, 0, 13, 858, 858, 858, 0, 0, 82,
1664 0, 0, 0, 0, 0, 0, 0, 0, -495, 0,
1665 0, 227, 371, 227, 0, 0, 371, 371, 0, 50,
1666 0, 0, 0, 50, 0, 234, 22, 50, 0, 0,
1667 149, 149, 149, 0, 0, 0, 0, 0, 0, 27,
1668 0, 28, 29, 0, 50, 142, 142, 0, 142, 0,
1669 0, 0, 0, 0, 0, 146, 0, 0, 0, 50,
1670 50, 149, 0, 0, 0, 147, 0, 0, 0, 234,
1671 0, 0, 0, 33, 7, 8, 9, 10, 148, 0,
1672 579, 579, 0, 579, 0, 0, 0, 0, 50, 0,
1673 142, 142, 142, 142, 588, 0, 0, 0, 142, 0,
1674 0, 0, 0, 0, 717, 0, 0, 0, 0, 0,
1675 0, 0, 0, 22, 0, 861, 861, 861, 0, 573,
1676 0, 0, 0, 50, 0, 0, 27, 0, 28, 29,
1677 0, 0, 717, 0, 0, 0, 0, 0, 0, 0,
1678 0, 0, 890, 0, 0, 0, 142, 0, 0, 0,
1679 0, 142, 891, 82, 0, 0, 0, 0, 0, 0,
1680 33, 0, 576, 0, 0, 892, 578, 0, 0, 0,
1681 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
1682 10, 0, 718, 13, 7, 8, 719, 10, 381, 12,
1683 13, 0, 515, 0, 0, 14, 0, 0, 0, 0,
1684 0, 142, 142, 0, 142, 0, 0, 0, 0, 371,
1685 17, 0, 18, 19, 20, 0, 22, 234, 21, -496,
1686 0, 0, 50, 22, 227, 0, 0, 24, 720, 27,
1687 630, 28, 29, 0, 0, 0, 27, 371, 28, 29,
1688 0, 0, 721, 0, 722, 175, 8, 9, 0, 381,
1689 12, 13, 31, 0, 675, 176, 14, 0, 371, 0,
1690 0, 0, 32, 33, 0, 0, 0, 50, 177, 0,
1691 33, 17, 0, 18, 19, 34, 0, 0, 50, 21,
1692 0, 50, 0, 0, 0, 0, 50, 0, 24, 0,
1693 573, 0, -496, 0, 0, 0, 0, 27, 0, 129,
1694 130, 0, 0, 0, 0, 0, 142, 588, 142, 0,
1695 0, 0, 50, 574, 50, 0, 149, 149, 149, 0,
1696 0, 0, 50, 575, 0, 0, 0, 50, 0, 0,
1697 50, 77, 0, 576, 0, 0, 577, 578, 0, 0,
1698 676, 0, 0, 0, 0, 0, 50, 0, 0, 0,
1699 0, 0, 0, 0, 7, 126, 127, 10, 77, 77,
1700 475, 77, 0, 77, 0, 8, 9, 0, 77, 12,
1701 225, 0, 0, 0, 0, 14, 0, 515, 0, 0,
1702 515, 77, 0, 77, 0, 861, 0, 0, 0, 0,
1703 17, 0, 18, 22, 0, 515, 515, 515, 21, 0,
1704 0, 0, 0, 0, 0, 0, 27, 24, 28, 29,
1705 515, 0, 0, 0, 0, 0, 27, 0, 129, 130,
1706 0, 0, 31, 0, 0, 0, 861, 861, 861, 0,
1707 0, 0, 32, 0, 0, 0, 0, 0, 8, 9,
1708 33, 227, 12, 225, 0, 34, 0, 0, 14, 0,
1709 0, 0, 0, 0, 0, 234, 142, 0, 7, 8,
1710 9, 10, 77, 17, 225, 18, 77, 0, 515, 0,
1711 77, 21, 0, 77, 77, 77, 0, 0, 0, 0,
1712 24, 0, 573, 0, 0, 0, 50, 77, 0, 27,
1713 0, 129, 130, 0, 0, 0, 0, 22, 0, 0,
1714 0, 0, 77, 77, 77, 574, 0, 0, 0, 0,
1715 27, 0, 28, 29, 0, 575, 0, 0, 0, 0,
1716 0, 50, 50, 50, 50, 576, 175, 0, 577, 578,
1717 0, 77, 0, 0, 0, 0, 176, 0, 0, 0,
1718 0, 0, 0, 0, 33, 0, 0, 0, 718, 177,
1719 7, 8, 719, 10, 381, 12, 13, 0, 0, 0,
1720 0, 14, 0, 50, 0, 0, 77, 50, 0, 0,
1721 0, 0, 0, 0, 50, 50, 17, 50, 18, 19,
1722 20, 0, 0, 0, 21, -498, 0, 0, 0, 22,
1723 0, 0, 0, 24, 720, 0, 630, 0, 0, 0,
1724 0, 0, 27, 0, 28, 29, 0, 50, 721, 50,
1725 722, 0, 0, 0, 50, 50, 50, 0, 31, 0,
1726 0, 7, 8, 9, 10, 381, 12, 13, 32, 0,
1727 675, 0, 14, 0, 0, 0, 33, 0, 0, 0,
1728 0, 34, 0, 515, 0, 0, 0, 17, 0, 18,
1729 19, 0, 0, 0, 0, 21, 0, 0, -498, 0,
1730 22, 595, 0, 0, 24, 77, 573, 0, 0, 0,
1731 0, 0, 0, 27, 0, 28, 29, 0, 0, 0,
1732 0, 126, 127, 0, 0, 197, 198, 0, 0, 1087,
1733 0, 14, 0, 0, 0, 0, 318, 0, 318, 1088,
1734 318, 0, 0, 0, 0, 0, 0, 33, 0, 576,
1735 77, 0, 1089, 578, 21, 0, 676, 0, 0, 0,
1736 0, 77, 0, 24, 77, 573, 0, 0, 0, 77,
1737 0, 0, 27, 0, 129, 130, 0, 0, 515, 515,
1738 515, 1411, 0, 0, 234, 318, 0, 318, 574, 0,
1739 0, 0, 0, 0, 0, 77, 0, 77, 575, 77,
1740 77, 77, 0, 0, 0, 77, 0, 0, 576, 0,
1741 77, 584, 578, 77, 50, 50, 149, 0, 0, 0,
1742 0, 234, 0, 0, 0, 0, 0, 0, 0, 77,
1743 0, 0, 1412, 528, 529, 530, 531, 532, 533, 534,
1744 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1745 545, 546, 547, 548, 549, 1113, 0, 0, 0, 0,
1746 0, 0, 0, 1382, 0, 1280, 1281, 1282, 10, 381,
1747 12, 281, 282, 283, 0, 284, 14, 1283, 0, 1284,
1748 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 15,
1749 16, 17, 285, 18, 19, 20, 0, 286, 287, 21,
1750 0, 288, 289, 290, 22, 291, 292, 234, 24, 0,
1751 0, 0, 293, 294, 295, 296, 297, 27, 50, 1294,
1752 298, 662, 0, 1295, 299, 0, 0, 0, 0, 0,
1753 300, 0, 0, 301, 0, 0, 0, 0, 0, 595,
1754 0, 302, 303, 304, 0, 0, 0, 0, 505, 305,
1755 306, 307, 0, 0, 0, 0, 308, 0, 1296, 0,
1756 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1757 0, 0, 0, 1383, 309, 7, 8, 9, 10, 0,
1758 0, 13, 0, 0, 0, 0, 318, 0, 0, 0,
1759 234, 8, 9, 0, 381, 12, 13, 0, 0, 1461,
1760 154, 14, 0, 0, 77, 77, 77, 77, 0, 50,
1761 50, 149, 149, 149, 22, 234, 17, 50, 18, 19,
1762 186, 0, 0, 0, 21, 0, 0, 27, 0, 28,
1763 29, 0, 0, 24, 1113, 1113, 1113, 0, 0, 0,
1764 0, 0, 27, 432, 129, 130, 77, 0, 0, 0,
1765 77, 0, 0, 433, 0, 0, 0, 77, 77, 0,
1766 77, 33, 0, 0, 0, 50, 434, 667, 671, 0,
1767 50, 0, 50, 0, 6, 671, 7, 8, 9, 10,
1768 11, 12, 13, 0, 8, 9, 0, 14, 12, 13,
1769 77, 0, 77, 0, 14, 0, 0, 77, 77, 77,
1770 0, 0, 17, 0, 18, 19, 0, 0, 0, 17,
1771 21, 18, 154, 154, 154, 22, 0, 21, 0, 24,
1772 50, 50, 406, 50, 0, 0, 24, 0, 27, 0,
1773 28, 29, 0, 0, 30, 27, 0, 129, 130, 318,
1774 671, 186, 186, 436, 31, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
1776 0, 0, 33, 0, 0, 0, 0, 34, 0, 0,
1777 186, 0, 318, 0, 667, 0, 0, 786, 787, 0,
1778 791, 792, 793, 794, 795, 796, 797, 798, 799, 800,
1779 801, 802, 803, 804, 805, 806, 807, 808, 809, 0,
1780 0, 0, 0, 0, 671, 0, 671, 671, 533, 534,
1781 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1782 545, 546, 547, 548, 549, 50, 50, 50, 595, 0,
1783 0, 0, 0, 671, 0, 0, 0, 0, 0, 0,
1784 671, 0, 0, 718, 488, 7, 8, 719, 10, 381,
1785 12, 13, 0, 0, 0, 0, 14, 77, 77, 77,
1786 874, 876, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 17, 0, 18, 19, 20, 0, 0, 0, 21,
1788 -497, 0, 0, 0, 22, 0, 0, 0, 24, 720,
1789 0, 630, 0, 581, 581, 581, 0, 27, 1115, 28,
1790 29, 0, 0, 721, 1113, 722, 0, 0, 0, 0,
1791 0, 0, 0, 31, 0, 667, 0, 0, 0, 0,
1792 0, 0, 0, 32, 0, 0, 0, 7, 8, 9,
1793 10, 33, 0, 475, 126, 127, 34, 0, 197, 198,
1794 0, 0, 0, 0, 14, 1113, 1113, 1113, 0, 186,
1795 0, 0, 0, -497, 0, 0, 0, 0, 0, 0,
1796 0, 77, 0, 0, 0, 0, 22, 21, 0, 0,
1797 0, 960, 0, 0, 0, 50, 24, 0, 573, 27,
1798 0, 28, 29, 0, 0, 27, 0, 129, 130, 0,
1799 0, 318, 318, 318, 186, 175, 186, 0, 436, 436,
1800 436, 574, 0, 0, 186, 176, 0, 0, 671, 186,
1801 0, 575, 186, 33, 0, 0, 0, 0, 177, 0,
1802 0, 576, 0, 0, 577, 578, 0, 0, 0, 0,
1803 1024, 0, 0, 0, 1237, 1238, 9, 10, 0, 0,
1804 0, 0, 0, 1237, 126, 127, 10, 0, 0, 0,
1805 0, 0, 77, 77, 77, 77, 77, 0, 0, 0,
1806 77, 0, 0, 0, 0, 0, 0, 667, 671, 0,
1807 0, 0, 0, 22, 0, 0, 0, 1115, 1115, 1115,
1808 0, 671, 22, 671, 0, 671, 27, 0, 28, 29,
1809 0, 0, 0, 0, 1239, 27, 0, 28, 29, 0,
1810 0, 0, 175, 1239, 0, 0, 0, 0, 77, 0,
1811 0, 31, 176, 77, 0, 77, 0, 0, 1072, 0,
1812 33, 32, 0, 0, 0, 177, 0, 824, 671, 33,
1813 0, 0, 0, 0, 34, 0, 0, 0, 318, 0,
1814 581, 581, 0, 581, 7, 126, 127, 10, 0, 0,
1815 581, 1094, 0, 0, 0, 0, 0, 0, 0, 0,
1816 184, 0, 671, 77, 77, 0, 77, 0, 186, 0,
1817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1818 671, 0, 0, 22, 0, 237, 0, 0, 241, 0,
1819 0, 0, 0, 0, 0, 0, 27, 0, 28, 29,
1820 0, 0, 0, 894, 0, 894, 894, 0, 581, 237,
1821 0, 343, 146, 0, 0, 0, 0, 0, 0, 0,
1822 0, 0, 147, 1139, 0, 0, 0, 0, 0, 0,
1823 33, 0, 0, 0, 0, 148, 0, 0, 0, 0,
1824 0, 0, 0, 0, 0, 894, 667, 0, 0, 0,
1825 0, 0, 0, 0, 0, 0, 186, 186, 0, 186,
1826 7, 8, 9, 10, 187, 12, 188, 0, 77, 77,
1827 77, 14, 0, 0, 667, 667, 0, 0, 1170, 0,
1828 0, 184, 184, 184, 0, 0, 17, 0, 18, 19,
1829 0, 442, 0, 0, 21, 0, 186, 75, 0, 22,
1830 0, 0, 0, 24, 0, 0, 7, 8, 9, 10,
1831 184, 0, 27, 0, 28, 29, 0, 0, 1377, 488,
1832 488, 488, 0, 0, 140, 144, 0, 0, 31, 75,
1833 0, 581, 0, 241, 75, 0, 0, 0, 32, 7,
1834 8, 9, 10, 0, 0, 22, 33, 1115, 237, 195,
1835 671, 34, 671, 0, 671, 0, 0, 667, 27, 0,
1836 28, 29, 0, 0, 0, 0, 667, 667, 0, 0,
1837 0, 667, 667, 0, 432, 0, 0, 0, 22, 0,
1838 0, 0, 0, 0, 433, 0, 1233, 1234, 1115, 1115,
1839 1115, 27, 33, 28, 29, 0, 0, 434, 0, 0,
1840 0, 0, 0, 581, 0, 581, 0, 175, 0, 0,
1841 0, 0, 0, 667, 0, 1261, 581, 176, 77, 0,
1842 581, 581, 581, 0, 0, 33, 0, 0, 386, 0,
1843 177, 0, 389, 0, 0, 0, 391, 0, 0, 237,
1844 241, 0, 671, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 75, 0, 0, 894, 894, 1092, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0, 140, 144,
1847 0, 0, 667, 718, 0, 7, 8, 719, 10, 381,
1848 12, 13, 0, 0, 0, 0, 14, 0, 1323, 184,
1849 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0,
1850 0, 17, 0, 18, 19, 101, 0, 0, 0, 21,
1851 0, 667, 0, 0, 22, 120, 101, 0, 24, 720,
1852 0, 630, 101, 101, 0, 101, 0, 27, 0, 28,
1853 29, 0, 476, 0, 184, 722, 184, 1360, 184, 184,
1854 184, 0, 0, 31, 184, 0, 0, 0, 0, 184,
1855 0, 0, 184, 32, 0, 217, 0, 0, 0, 8,
1856 9, 33, 381, 12, 13, 0, 34, 0, 0, 14,
1857 1391, 1392, 0, 0, 0, 0, 0, 0, 0, 1397,
1858 0, 0, 0, 0, 17, 0, 18, 19, 0, 0,
1859 667, 0, 21, 0, 0, 0, 0, 0, 0, 0,
1860 0, 629, 0, 0, 630, 0, 824, 824, 0, 824,
1861 27, 0, 129, 130, 120, 0, 120, 0, 0, 101,
1862 0, 0, 0, 101, 101, 0, 0, 0, 0, 671,
1863 101, 604, 101, 101, 101, 0, 0, 101, 101, 101,
1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 894, 894, 1092, 1092, 1092, 0, 0, 0, 894,
1866 1452, 0, 0, 7, 8, 9, 10, 381, 12, 13,
1867 0, 0, 937, 0, 14, 0, 1092, 1092, 1092, 0,
1868 0, 0, 0, 0, 0, 0, 0, 651, 0, 17,
1869 652, 18, 19, 237, 241, 654, 0, 21, 0, 0,
1870 0, 0, 22, 0, 0, 0, 24, 186, 184, 457,
1871 101, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1872 0, 389, 0, 391, 0, 0, 0, 0, 0, 0,
1873 101, 31, 0, 0, 0, 0, 476, 0, 0, 0,
1874 0, 32, 0, 184, 0, 184, 184, 0, 0, 33,
1875 0, 0, 0, 0, 34, 735, 0, 0, 0, 0,
1876 0, 0, 894, 894, 0, 894, 0, 0, 0, 101,
1877 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
1878 548, 549, 667, 0, 0, 184, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 184, 184, 0, 184,
1880 0, 0, 6, 0, 7, 8, 9, 10, 11, 12,
1881 13, 0, 0, 0, 0, 14, 101, 0, 101, 101,
1882 0, 0, 0, 241, 0, 0, 0, 0, 15, 16,
1883 17, 0, 18, 19, 20, 0, 184, 0, 21, 0,
1884 0, 0, 0, 22, 101, 0, 23, 24, 25, 0,
1885 26, 0, 0, 0, 0, 0, 27, 0, 28, 29,
1886 0, 0, 30, 0, 0, 101, 0, 186, 0, 186,
1887 0, 0, 31, 7, 8, 9, 10, 196, 197, 198,
1888 0, 101, 32, 0, 14, 101, 0, 0, 101, 0,
1889 33, 0, 0, 101, 0, 34, 0, 0, 0, 0,
1890 0, 35, 19, 0, 0, 0, 0, 21, 0, 0,
1891 0, 0, 22, 0, 0, 0, 24, 0, 573, 0,
1892 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1893 0, 896, 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 890, 0, 0, 0, 0, 436, 0, 0, 0,
1895 101, 891, 710, 0, 0, 0, 0, 0, 0, 33,
1896 0, 576, 0, 0, 931, 578, 237, 241, 237, 0,
1897 0, 0, 0, 0, 0, 0, 938, 0, 101, 0,
1898 0, 0, 0, 651, 652, 0, 654, 436, 436, 436,
1899 0, 0, 0, 0, 0, 0, 184, 184, 1090, 0,
1900 0, 0, 0, 237, 0, 0, 0, 0, 0, 0,
1901 0, 0, 0, 0, 0, 0, 735, 186, 735, 0,
1902 0, 0, 0, 982, 989, 735, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 1090, 0, 0,
1904 528, 529, 530, 531, 532, 533, 534, 535, 536, 537,
1905 538, 539, 101, 541, 542, 543, 544, 545, 546, 547,
1906 548, 549, 101, 101, 0, 101, 101, 0, 0, 0,
1907 0, 0, 0, 0, 788, 0, 280, 8, 9, 10,
1908 0, 12, 492, 282, 283, 0, 284, 14, 0, 442,
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910 0, 0, 17, 285, 18, 0, 20, 0, 286, 287,
1911 21, 0, 288, 289, 290, 22, 291, 292, 0, 24,
1912 120, 0, 0, 293, 294, 295, 296, 297, 27, 0,
1913 28, 298, 217, 0, 0, 299, -748, 0, 0, 0,
1914 0, 300, 0, 0, 301, 0, 0, 0, 0, 0,
1915 710, 0, 302, 303, 304, 0, 0, 0, 0, 0,
1916 305, 306, 307, 0, 0, 0, 0, 308, 0, 0,
1917 0, 0, 237, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 140, 144, 309, 0, 19, 0, 0,
1919 0, 184, 184, 184, 184, 1090, 0, 1198, 0, 184,
1920 0, 0, 0, 0, 0, 0, 0, 0, 710, 0,
1921 0, 101, 0, 0, 0, 0, 1090, 1090, 1090, 528,
1922 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
1923 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
1924 549, 0, 0, 0, 101, 101, 101, 184, 0, 0,
1925 0, 0, 0, 612, 0, 0, 101, 528, 529, 530,
1926 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
1927 541, 542, 543, 544, 545, 546, 547, 548, 549, 0,
1928 0, 0, 0, 0, 0, 0, 0, 735, 537, 538,
1929 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
1930 549, 0, 184, 184, 510, 184, 280, 8, 9, 10,
1931 381, 12, 281, 282, 283, 675, 284, 14, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0, 101, 0,
1933 101, 0, 17, 285, 18, 19, 20, 0, 286, 287,
1934 21, 101, 288, 289, 290, 22, 291, 292, 0, 24,
1935 0, 573, 0, 293, 294, 295, 296, 297, 27, 0,
1936 28, 298, -286, 0, 0, 299, 0, 0, 0, 0,
1937 0, 300, 0, 0, 854, 0, 0, 0, 389, 391,
1938 0, 0, 302, 303, 855, 0, 476, 0, 0, 0,
1939 305, 306, 307, 0, 576, 0, 0, 856, 578, 0,
1940 0, 676, 0, 0, 0, 0, 0, 184, 0, 184,
1941 0, 0, 0, 0, 0, 309, 0, 280, 8, 9,
1942 10, 381, 12, 281, 282, 283, 675, 284, 14, 0,
1943 0, 0, 0, 0, 1244, 0, 0, 0, 0, 1244,
1944 0, 735, 0, 17, 285, 18, 19, 20, 710, 286,
1945 287, 21, 0, 288, 289, 290, 22, 291, 292, 0,
1946 24, 0, 573, 0, 293, 294, 295, 296, 297, 27,
1947 0, 28, 298, 0, 0, 101, 299, 0, 0, 0,
1948 0, 0, 300, 0, 0, 854, 1090, 0, 0, 651,
1949 652, 0, 654, 302, 303, 855, 0, 0, 0, 0,
1950 0, 305, 306, 307, 0, 576, 0, 0, 856, 578,
1951 0, 0, 676, 0, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 309, 1090, 1090, 1090,
1953 0, 101, 101, 0, 101, 0, 0, 0, 0, -358,
1954 8, 9, -358, -358, 12, 225, 0, 0, 0, 0,
1955 14, 0, 0, 0, 0, 0, 0, 184, 0, 0,
1956 0, 0, 0, 0, 0, 17, 0, 18, -358, 0,
1957 0, 0, 0, 21, 0, 0, 0, 0, -358, 0,
1958 0, 0, 24, 0, 573, 0, 0, 0, 0, 0,
1959 710, 27, 0, 129, 130, 1379, 0, 1329, 0, -452,
1960 -452, -452, -452, -452, -452, -452, 0, 574, -452, 0,
1961 -452, 0, 0, 0, 0, 0, 0, 575, 710, 0,
1962 0, -452, 0, -452, -452, -358, 0, 576, -452, 0,
1963 577, 578, 0, -452, 0, 101, 0, 101, -452, 0,
1964 0, 0, -452, 0, -452, 0, 0, 0, 0, 0,
1965 0, -452, 0, -452, -452, -452, -452, -452, 0, -452,
1966 -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
1967 -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
1968 -452, -452, 0, -452, -452, -452, 0, -452, -452, -452,
1969 -452, -452, -452, 0, -452, -452, 0, 0, 0, 0,
1970 1330, 0, 0, 0, 0, -452, -452, -452, 1279, -452,
1971 1280, 1281, 1282, 10, 381, 12, 281, 282, 283, 0,
1972 284, 14, 1283, 0, 1284, 1285, 1286, 1287, 1288, 1289,
1973 1290, 1291, 1292, 1293, 15, 16, 17, 285, 18, 19,
1974 20, 0, 286, 287, 21, 0, 288, 289, 290, 22,
1975 291, 292, 0, 24, 0, 0, 0, 293, 294, 295,
1976 296, 297, 27, 0, 1294, 298, 662, 0, 1295, 299,
1977 0, 0, 0, 0, 0, 300, 0, 0, 301, 0,
1978 0, 0, 0, 0, 0, 0, 302, 303, 304, 0,
1979 0, 0, 0, 0, 305, 306, 307, 0, 0, 0,
1980 0, 308, 510, 1296, 7, 8, 9, 10, 381, 12,
1981 281, 282, 283, 675, 284, 14, 0, 0, 0, 309,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 17, 285, 18, 19, 20, 0, 286, 287, 21, 0,
1984 288, 289, 290, 22, 291, 292, 0, 24, 0, 573,
1985 0, 293, 294, 295, 296, 297, 27, 0, 28, 29,
1986 -286, 0, 0, 299, 0, 0, 0, 0, 0, 300,
1987 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0,
1988 302, 303, 1111, 0, 0, 0, 0, 0, 305, 306,
1989 307, 0, 576, 0, 0, 1112, 578, 0, 674, 676,
1990 280, 8, 9, 10, 381, 12, 281, 282, 283, 675,
1991 284, 14, 0, 309, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 17, 285, 18, 19,
1993 20, 0, 286, 287, 21, 0, 288, 289, 290, 22,
1994 291, 292, 0, 24, 0, 0, 0, 293, 294, 295,
1995 296, 297, 27, 0, 28, 298, 0, 0, 0, 299,
1996 0, 0, 0, 0, 0, 300, 0, 0, 301, 0,
1997 0, 0, 0, 0, 0, 0, 302, 303, 304, 0,
1998 0, 0, 0, 0, 305, 306, 307, 0, 0, 0,
1999 0, 308, 0, 0, 0, 676, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, -758, 788, 309,
2001 280, 8, 9, 10, 381, 12, 281, 282, 283, 0,
2002 284, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 0, 0, 0, 17, 285, 18, 19,
2004 20, 0, 286, 287, 21, 0, 288, 289, 290, 22,
2005 291, 292, 0, 24, 0, 0, 0, 293, 294, 295,
2006 296, 297, 27, 0, 28, 298, 1444, 0, -748, 299,
2007 0, 0, 0, 0, 0, 300, 0, 0, 301, 0,
2008 0, 0, 0, 0, 0, 0, 302, 303, 304, 0,
2009 0, 0, 0, 0, 305, 306, 307, 0, 0, 0,
2010 665, 308, 776, 777, 778, 10, 0, 12, 492, 282,
2011 283, 0, 284, 14, 0, 0, 0, 0, 0, 309,
2012 0, 0, 0, 0, 0, 0, 0, 0, 17, 285,
2013 18, 0, 20, 0, 286, 287, 21, 0, 288, 289,
2014 290, 22, 291, 292, 0, 24, 0, 0, 0, 293,
2015 294, 295, 296, 297, 27, 0, 779, 780, 666, 0,
2016 0, 299, 0, 0, 0, 0, 0, 300, 0, 0,
2017 301, 0, 0, 0, 0, 0, 0, 0, 302, 303,
2018 304, 0, 0, 0, 0, 0, 305, 306, 307, 0,
2019 0, 0, 0, 308, 781, 665, 0, 776, 777, 778,
2020 10, 0, 12, 492, 282, 283, 0, 284, 14, 0,
2021 922, 309, 0, 0, 0, 1166, 0, 0, 0, 0,
2022 0, 0, 0, 17, 285, 18, 0, 20, 0, 286,
2023 287, 21, 0, 288, 289, 290, 22, 291, 292, 0,
2024 24, 0, 0, 0, 293, 294, 295, 296, 297, 27,
2025 0, 779, 780, 666, 0, 0, 299, 0, 0, 0,
2026 0, 0, 300, 0, 0, 301, 0, 0, 0, 0,
2027 0, 0, 0, 302, 303, 304, 0, 0, 0, 0,
2028 0, 305, 306, 307, 0, 0, 0, 665, 308, 776,
2029 777, 778, 10, 0, 12, 492, 282, 283, 0, 284,
2030 14, 0, 0, 0, 0, -456, 309, 1166, 0, 0,
2031 0, 0, 0, 0, 0, 17, 285, 18, 0, 20,
2032 0, 286, 287, 21, 0, 288, 289, 290, 22, 291,
2033 292, 0, 24, 0, 0, 0, 293, 294, 295, 296,
2034 297, 27, 0, 779, 780, 666, 0, 0, 299, 0,
2035 0, 0, 0, 0, 300, 0, 0, 301, 0, 0,
2036 0, 0, 0, 0, 0, 302, 303, 304, 0, 0,
2037 0, 0, 0, 305, 306, 307, 0, 0, 0, 665,
2038 308, 776, 777, 778, 10, 0, 12, 492, 282, 283,
2039 0, 284, 14, 0, 0, 0, 0, 1212, 309, 0,
2040 0, 0, 0, 0, 0, 0, 0, 17, 285, 18,
2041 0, 20, 0, 286, 287, 21, 0, 288, 289, 290,
2042 22, 291, 292, 0, 24, 0, 0, 0, 293, 294,
2043 295, 296, 297, 27, 0, 779, 780, 666, 0, 0,
2044 299, 0, 0, 0, 0, 0, 300, 0, 0, 301,
2045 0, 0, 0, 0, 0, 0, 0, 302, 303, 304,
2046 0, 0, 0, 0, 0, 305, 306, 307, 0, 0,
2047 0, 0, 308, 781, 665, 0, 280, 8, 9, 10,
2048 0, 12, 492, 282, 283, 0, 284, 14, 0, 0,
2049 309, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2050 0, 0, 17, 285, 18, 0, 20, 0, 286, 287,
2051 21, 0, 288, 289, 290, 22, 291, 292, 0, 24,
2052 0, 0, 0, 293, 294, 295, 296, 297, 27, 0,
2053 28, 298, 666, 0, 0, 299, 0, 0, 0, 0,
2054 0, 300, 0, 0, 301, 0, 0, 0, 0, 0,
2055 0, 0, 302, 303, 304, 0, 0, 0, 0, 0,
2056 305, 306, 307, 0, 0, 0, 0, 308, 0, 0,
2057 510, 0, 280, 8, 9, 10, 1216, 12, 281, 282,
2058 283, 0, 284, 14, 0, 309, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 17, 285,
2060 18, 0, 20, 0, 286, 287, 21, 0, 288, 289,
2061 290, 22, 291, 292, 0, 24, 0, 0, 0, 293,
2062 294, 295, 296, 297, 27, 0, 28, 298, -286, 0,
2063 0, 299, 0, 0, 0, 0, 0, 300, 0, 0,
2064 511, 0, 0, 0, 0, 0, 0, 0, 302, 303,
2065 512, 0, 0, 0, 0, 0, 305, 306, 307, 0,
2066 0, 0, 665, 513, 280, 8, 9, 10, 0, 12,
2067 492, 282, 283, 0, 284, 14, 0, 0, 0, 0,
2068 0, 309, 0, 0, 0, 0, 0, 0, 0, 0,
2069 17, 285, 18, 0, 20, 0, 286, 287, 21, 0,
2070 288, 289, 290, 22, 291, 292, 0, 24, 0, 0,
2071 0, 293, 294, 295, 296, 297, 27, 0, 28, 298,
2072 666, 0, 0, 299, 0, 0, 0, 0, 0, 300,
2073 0, 0, 301, 0, 0, 0, 0, 0, 0, 0,
2074 302, 303, 304, 0, 0, 0, 0, 0, 305, 306,
2075 307, 0, 0, 0, 510, 308, 7, 8, 9, 10,
2076 0, 12, 281, 282, 283, 0, 284, 14, 0, 0,
2077 0, 0, 0, 309, 0, 0, 0, 0, 0, 0,
2078 0, 0, 17, 285, 18, 0, 20, 0, 286, 287,
2079 21, 0, 288, 289, 290, 22, 291, 292, 0, 24,
2080 0, 0, 0, 293, 294, 295, 296, 297, 27, 0,
2081 28, 29, -286, 0, 0, 299, 0, 0, 0, 0,
2082 0, 300, 0, 0, 1421, 0, 0, 0, 0, 0,
2083 0, 0, 302, 303, 1422, 0, 0, 0, 0, 0,
2084 305, 306, 307, 0, 0, 0, 1511, 1423, 280, 8,
2085 9, 10, 0, 12, 281, 282, 283, 0, 284, 14,
2086 0, 0, 0, 0, 0, 309, 0, 0, 0, 0,
2087 0, 0, 0, 0, 17, 285, 18, 0, 20, 0,
2088 286, 287, 21, 0, 288, 289, 290, 22, 291, 292,
2089 0, 24, 0, 0, 0, 293, 294, 295, 296, 297,
2090 27, 0, 28, 298, 0, 0, -175, 299, 0, 0,
2091 0, 0, 0, 300, 0, 0, 301, 0, 0, 0,
2092 0, 0, 0, 0, 302, 303, 304, 0, 0, 0,
2093 0, 0, 305, 306, 307, 0, 0, 0, 788, 308,
2094 280, 8, 9, 10, 0, 12, 492, 282, 283, 0,
2095 284, 14, 0, 0, 0, 0, 0, 309, 0, 0,
2096 0, 0, 0, 0, 0, 0, 17, 285, 18, 0,
2097 20, 0, 286, 287, 21, 0, 288, 289, 290, 22,
2098 291, 292, 0, 24, 0, 0, 0, 293, 294, 295,
2099 296, 297, 27, 0, 28, 298, 0, 0, 0, 299,
2100 0, 0, 0, 0, 0, 300, 243, 0, 301, 8,
2101 9, 0, 0, 12, 13, 0, 302, 303, 304, 14,
2102 0, 0, 0, 0, 305, 306, 307, 0, 0, 0,
2103 0, 308, 0, 0, 17, 0, 18, 0, 0, 0,
2104 0, 0, 21, 0, 244, 245, 0, -748, 0, 309,
2105 0, 24, 0, 246, 0, 0, 0, 0, 0, 0,
2106 27, 0, 129, 130, 0, 247, 0, 0, 0, 248,
2107 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
2108 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
2109 0, 0, 269, 270, 271, 0, 0, 272, 0, 873,
2110 273, 280, 8, 9, 10, 0, 12, 492, 282, 283,
2111 0, 284, 14, 0, 0, 0, 0, 274, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 17, 285, 18,
2113 0, 20, 0, 286, 287, 21, 0, 288, 289, 290,
2114 22, 291, 292, 0, 24, 0, 0, 0, 293, 294,
2115 295, 296, 297, 27, 0, 28, 298, 0, 0, 0,
2116 299, 0, 0, 0, 0, 0, 300, 0, 0, 301,
2117 0, 0, 0, 0, 0, 0, 0, 302, 303, 304,
2118 0, 0, 0, 0, 0, 305, 306, 307, 0, 0,
2119 0, 875, 308, 280, 8, 9, 10, 0, 12, 492,
2120 282, 283, 0, 284, 14, 0, 0, 0, 0, 0,
2121 309, 0, 0, 0, 0, 0, 0, 0, 0, 17,
2122 285, 18, 0, 20, 0, 286, 287, 21, 0, 288,
2123 289, 290, 22, 291, 292, 0, 24, 0, 0, 0,
2124 293, 294, 295, 296, 297, 27, 0, 28, 298, 0,
2125 0, 0, 299, 0, 0, 0, 0, 0, 300, 0,
2126 0, 301, 0, 0, 0, 0, 0, 0, 0, 302,
2127 303, 304, 0, 0, 0, 0, 0, 305, 306, 307,
2128 0, 0, 0, 1396, 308, 280, 8, 9, 10, 0,
2129 12, 492, 282, 283, 0, 284, 14, 0, 0, 0,
2130 0, 0, 309, 0, 0, 0, 0, 0, 0, 0,
2131 0, 17, 285, 18, 0, 20, 0, 286, 287, 21,
2132 0, 288, 289, 290, 22, 291, 292, 0, 24, 0,
2133 0, 0, 293, 294, 295, 296, 297, 27, 0, 28,
2134 298, 0, 0, 0, 299, 0, 0, 0, 0, 0,
2135 300, 0, 0, 301, 0, 0, 0, 0, 0, 0,
2136 0, 302, 303, 304, 0, 0, 0, 0, 0, 305,
2137 306, 307, 280, 8, 9, 10, 308, 12, 492, 282,
2138 283, 0, 284, 14, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 309, 0, 0, 0, 17, 285,
2140 18, 0, 20, 0, 286, 287, 21, 0, 288, 289,
2141 290, 22, 291, 292, 0, 24, 0, 0, 0, 293,
2142 294, 295, 296, 297, 27, 0, 28, 298, 0, 0,
2143 0, 299, 0, 0, 0, 0, 0, 300, 0, 0,
2144 301, 0, 0, 0, 0, 0, 0, 0, 302, 303,
2145 304, 0, 0, 0, 0, 0, 305, 306, 307, 0,
2146 0, 0, 0, 308, 534, 535, 536, 537, 538, 539,
2147 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2148 0, 309, 827, 1280, 1281, 1282, 10, 381, 12, 281,
2149 282, 283, 0, 284, 14, 1283, 0, 1284, 1285, 1286,
2150 1287, 1288, 1289, 1290, 1291, 1292, 1293, 15, 16, 17,
2151 285, 18, 19, 20, 0, 286, 287, 21, 0, 288,
2152 289, 290, 22, 291, 292, 0, 24, 0, 0, 0,
2153 293, 294, 295, 296, 297, 27, 0, 1294, 298, 662,
2154 0, 1295, 299, 0, 0, 0, 0, 0, 300, 0,
2155 0, 301, 0, 0, 0, 0, 0, 0, 0, 302,
2156 303, 304, 0, 0, 0, 0, 0, 305, 306, 307,
2157 0, 0, 0, 0, 308, 0, 1296, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 1387, 309, 1280, 1281, 1282, 10, 381, 12, 281,
2160 282, 283, 0, 284, 14, 1283, 0, 1284, 1285, 1286,
2161 1287, 1288, 1289, 1290, 1291, 1292, 1293, 15, 16, 17,
2162 285, 18, 19, 20, 0, 286, 287, 21, 0, 288,
2163 289, 290, 22, 291, 292, 0, 24, 0, 0, 0,
2164 293, 294, 295, 296, 297, 27, 0, 1294, 298, 662,
2165 0, 1295, 299, 0, 0, 0, 0, 0, 300, 0,
2166 0, 301, 0, 0, 0, 0, 0, 0, 0, 302,
2167 303, 304, 0, 0, 0, 0, 0, 305, 306, 307,
2168 0, 0, 0, 0, 308, 0, 1296, 0, 0, 1280,
2169 1281, 1282, 10, 381, 12, 281, 282, 283, 0, 284,
2170 14, 1283, 309, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
2171 1291, 1292, 1293, 15, 16, 17, 285, 18, 19, 20,
2172 0, 286, 287, 21, 0, 288, 289, 290, 22, 291,
2173 292, 0, 24, 0, 0, 0, 293, 294, 295, 296,
2174 297, 27, 0, 1294, 298, 1488, 0, 1295, 299, 0,
2175 0, 0, 0, 0, 300, 0, 0, 301, 0, 0,
2176 0, 0, 0, 0, 0, 302, 303, 304, 0, 0,
2177 0, 0, 0, 305, 306, 307, 0, 0, 0, 0,
2178 308, 0, 1296, 0, 0, 1280, 1281, 1282, 10, 381,
2179 12, 281, 282, 283, 0, 284, 14, 1283, 309, 1284,
2180 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 15,
2181 16, 17, 285, 18, 19, 20, 0, 286, 287, 21,
2182 0, 288, 289, 290, 22, 291, 292, 0, 24, 0,
2183 0, 0, 293, 294, 295, 296, 297, 27, 0, 1294,
2184 298, 0, 0, 1295, 299, 0, 0, 0, 0, 0,
2185 300, 0, 0, 301, 0, 0, 0, 0, 0, 0,
2186 0, 302, 303, 304, 0, 0, 0, 0, 0, 305,
2187 306, 307, 0, 0, 0, 0, 308, 0, 1296, 7,
2188 8, 9, 10, 381, 12, 281, 282, 283, 675, 284,
2189 14, 0, 0, 0, 309, 0, 0, 0, 0, 0,
2190 0, 0, 0, 0, 0, 17, 285, 18, 19, 20,
2191 0, 286, 287, 21, 0, 288, 289, 290, 22, 291,
2192 292, 0, 24, 0, 573, 0, 293, 294, 295, 296,
2193 297, 27, 0, 28, 29, 0, 0, 0, 299, 0,
2194 0, 0, 0, 0, 300, 0, 0, 1110, 0, 0,
2195 0, 0, 0, 0, 0, 302, 303, 1111, 0, 0,
2196 0, 0, 0, 305, 306, 307, 0, 576, 0, 0,
2197 1112, 578, 0, 0, 676, 280, 8, 9, 10, 0,
2198 12, 281, 282, 283, 0, 284, 14, 0, 309, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 17, 285, 18, 0, 20, 0, 286, 287, 21,
2201 0, 288, 289, 290, 22, 291, 292, 0, 24, 0,
2202 573, 0, 293, 294, 295, 296, 297, 27, 0, 28,
2203 298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2204 300, 0, 0, 854, 0, 0, 0, 0, 0, 0,
2205 0, 302, 303, 855, 0, 0, 0, 0, 0, 305,
2206 306, 307, 0, 576, 0, 0, 856, 578, 7, 8,
2207 9, 10, 0, 12, 281, 282, 283, 0, 284, 14,
2208 0, 0, 0, 0, 309, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 17, 285, 18, 0, 20, 0,
2210 286, 287, 21, 0, 288, 289, 290, 22, 291, 292,
2211 0, 24, 0, 573, 0, 293, 294, 295, 296, 297,
2212 27, 0, 28, 29, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 300, 0, 0, 1110, 0, 0, 0,
2214 0, 0, 0, 0, 302, 303, 1111, 0, 0, 0,
2215 0, 0, 305, 306, 307, 0, 576, 0, 0, 1112,
2216 578, 280, 8, 9, 10, 0, 12, 492, 282, 283,
2217 0, 284, 14, 0, 0, 0, 0, 309, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 17, 285, 18,
2219 0, 20, 0, 286, 287, 21, 0, 288, 289, 290,
2220 22, 291, 292, 0, 24, 0, 0, 0, 293, 294,
2221 295, 296, 297, 27, 0, 28, 298, 0, 0, 1364,
2222 299, 0, 0, 0, 0, 0, 300, 0, 0, 301,
2223 0, 0, 0, 0, 0, 0, 0, 302, 303, 304,
2224 0, 0, 0, 0, 0, 305, 306, 307, 0, 0,
2225 0, 0, 308, 280, 8, 9, 10, 381, 12, 281,
2226 282, 283, 0, 284, 14, 0, 0, 0, 0, 0,
2227 309, 0, 0, 0, 0, 0, 0, 0, 0, 17,
2228 285, 18, 19, 20, 0, 286, 287, 21, 0, 288,
2229 289, 290, 22, 291, 292, 0, 24, 0, 0, 0,
2230 293, 294, 295, 296, 297, 27, 0, 28, 298, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 300, 0,
2232 0, 301, 0, 0, 0, 0, 0, 0, 0, 302,
2233 303, 304, 0, 0, 0, 0, 0, 305, 306, 307,
2234 280, 8, 9, 10, 308, 12, 281, 282, 283, 0,
2235 284, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 0, 309, 0, 0, 0, 17, 285, 18, 0,
2237 20, 0, 286, 287, 21, 0, 288, 289, 290, 22,
2238 291, 292, 0, 24, 0, 0, 0, 293, 294, 295,
2239 296, 297, 27, 0, 28, 298, 0, 0, 0, 299,
2240 0, 0, 0, 0, 0, 300, 0, 0, 301, 0,
2241 0, 0, 0, 0, 0, 0, 302, 303, 304, 0,
2242 0, 0, 0, 0, 305, 306, 307, 280, 8, 9,
2243 10, 308, 12, 492, 282, 283, 0, 284, 14, 0,
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 309,
2245 0, 0, 0, 17, 285, 18, 0, 20, 0, 286,
2246 287, 21, 0, 288, 289, 290, 22, 291, 292, 0,
2247 24, 0, 0, 0, 293, 294, 295, 296, 297, 27,
2248 0, 28, 298, 0, 0, 0, 299, 0, 0, 0,
2249 0, 0, 300, 0, 0, 301, 0, 0, 0, 0,
2250 0, 0, 0, 302, 303, 304, 0, 0, 0, 0,
2251 0, 305, 306, 307, 280, 8, 9, 10, 308, 12,
2252 492, 282, 283, 0, 284, 14, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 309, 0, 0, 0,
2254 17, 285, 18, 0, 20, 0, 286, 287, 21, 0,
2255 288, 289, 290, 22, 291, 292, 0, 24, 0, 0,
2256 0, 293, 294, 295, 296, 297, 27, 0, 28, 298,
2257 525, 0, 0, 0, 0, 0, 0, 0, 0, 300,
2258 0, 0, 301, 0, 0, 0, 0, 0, 0, 0,
2259 302, 303, 304, 0, 0, 0, 0, 0, 305, 306,
2260 307, 280, 8, 9, 10, 526, 12, 492, 282, 283,
2261 0, 284, 14, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 309, 0, 0, 0, 17, 285, 18,
2263 0, 20, 0, 286, 287, 21, 0, 288, 289, 290,
2264 22, 291, 292, 0, 24, 0, 0, 0, 293, 294,
2265 295, 296, 297, 27, 0, 28, 298, 0, 0, 0,
2266 0, 0, 0, 0, 0, 0, 300, 0, 0, 301,
2267 0, 0, 0, 0, 0, 0, 0, 302, 303, 304,
2268 0, 0, 0, 0, 0, 305, 306, 307, 0, 0,
2269 0, 0, 308, 562, 280, 8, 9, 10, 0, 12,
2270 492, 282, 283, 0, 284, 14, 0, 0, 0, 0,
2271 309, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2272 17, 285, 18, 0, 20, 0, 286, 287, 21, 0,
2273 288, 289, 290, 22, 291, 292, 0, 24, 0, 0,
2274 0, 293, 294, 295, 296, 297, 27, 0, 28, 298,
2275 0, 0, 0, 299, 0, 0, 0, 0, 0, 300,
2276 0, 0, 511, 0, 0, 0, 0, 0, 0, 0,
2277 302, 303, 512, 0, 0, 0, 0, 0, 305, 306,
2278 307, 1078, 8, 9, 10, 513, 12, 492, 282, 283,
2279 0, 284, 14, 0, 0, 0, 0, 0, 0, 0,
2280 0, 0, 0, 309, 0, 0, 0, 17, 285, 18,
2281 0, 20, 0, 286, 287, 21, 0, 288, 289, 290,
2282 22, 291, 292, 0, 24, 0, 0, 0, 293, 294,
2283 295, 296, 297, 27, 0, 28, 298, 0, 0, 0,
2284 299, 0, 0, 0, 0, 0, 300, 0, 0, 301,
2285 0, 0, 0, 0, 0, 0, 0, 302, 303, 304,
2286 0, 0, 0, 0, 0, 305, 306, 307, 7, 8,
2287 9, 10, 308, 12, 492, 282, 283, 0, 284, 14,
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289 309, 0, 0, 0, 17, 285, 18, 0, 20, 0,
2290 286, 287, 21, 0, 288, 289, 290, 22, 291, 292,
2291 0, 24, 0, 0, 0, 293, 294, 295, 296, 297,
2292 27, 0, 28, 29, 0, 0, 0, 299, 0, 0,
2293 0, 0, 0, 300, 0, 0, 1421, 0, 0, 0,
2294 0, 0, 0, 0, 302, 303, 1422, 0, 0, 0,
2295 0, 0, 305, 306, 307, 280, 8, 9, 10, 1423,
2296 12, 492, 282, 283, 0, 284, 14, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 309, 0, 0,
2298 0, 17, 285, 18, 0, 20, 0, 286, 287, 21,
2299 0, 288, 289, 290, 22, 291, 292, 0, 24, 0,
2300 0, 0, 293, 294, 295, 296, 297, 27, 0, 28,
2301 298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302 300, 0, 0, 301, 0, 0, 0, 0, 0, 0,
2303 0, 302, 303, 304, 0, 0, 0, 0, 0, 305,
2304 306, 307, 280, 8, 9, 10, 493, 12, 492, 282,
2305 283, 0, 284, 14, 0, 0, 0, 0, 0, 0,
2306 0, 0, 0, 0, 309, 0, 0, 0, 17, 285,
2307 18, 0, 20, 0, 286, 287, 21, 0, 288, 289,
2308 290, 22, 291, 292, 0, 24, 0, 0, 0, 293,
2309 294, 295, 296, 297, 27, 0, 28, 298, 0, 0,
2310 0, 0, 0, 0, 0, 0, 0, 300, 0, 0,
2311 301, 0, 0, 0, 0, 0, 0, 0, 302, 303,
2312 304, 0, 0, 0, 0, 0, 305, 306, 307, 280,
2313 8, 9, 10, 496, 12, 492, 282, 283, 0, 284,
2314 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315 0, 309, 0, 0, 0, 17, 285, 18, 0, 20,
2316 0, 286, 287, 21, 0, 288, 289, 290, 22, 291,
2317 292, 0, 24, 0, 0, 0, 293, 294, 295, 296,
2318 297, 27, 0, 28, 298, 0, 0, 0, 0, 0,
2319 0, 0, 0, 0, 300, 0, 0, 301, 0, 0,
2320 0, 0, 0, 0, 0, 302, 303, 304, 0, 0,
2321 0, 0, 0, 305, 306, 307, 280, 8, 9, 10,
2322 308, 12, 492, 282, 283, 0, 284, 14, 0, 0,
2323 0, 0, 0, 0, 0, 0, 0, 0, 309, 0,
2324 0, 0, 17, 285, 18, 0, 20, 0, 286, 287,
2325 21, 0, 288, 289, 290, 22, 291, 292, 0, 24,
2326 0, 0, 0, 293, 294, 295, 296, 297, 27, 0,
2327 28, 298, 0, 0, 0, 0, 0, 0, 0, 0,
2328 0, 300, 0, 0, 511, 0, 0, 0, 0, 0,
2329 0, 0, 302, 303, 512, 0, 0, 0, 0, 0,
2330 305, 306, 307, 7, 8, 9, 10, 513, 12, 281,
2331 282, 283, 0, 284, 14, 0, 0, 0, 0, 0,
2332 0, 0, 0, 0, 0, 309, 0, 0, 0, 17,
2333 285, 18, 0, 20, 0, 286, 287, 21, 0, 288,
2334 289, 290, 22, 291, 292, 0, 24, 0, 0, 0,
2335 293, 294, 295, 296, 297, 27, 0, 28, 29, 0,
2336 0, 0, 0, 0, 0, 0, 0, 0, 300, 0,
2337 161, 1421, 7, 8, 9, 10, 11, 12, 13, 302,
2338 303, 1422, 0, 14, 0, 0, 0, 305, 306, 307,
2339 0, 0, 0, 0, 1423, 0, 15, 16, 17, 0,
2340 18, 19, 20, 0, 0, 0, 21, 0, 0, 0,
2341 0, 22, 309, 0, 23, 24, 25, 0, 26, 0,
2342 0, 0, 0, 0, 27, 0, 28, 29, 0, 718,
2343 30, 7, 8, 719, 10, 381, 12, 13, 0, 0,
2344 31, 0, 14, 0, 0, 0, 0, 0, 0, 0,
2345 32, 0, 0, 0, 0, 0, 0, 17, 33, 18,
2346 19, 20, 0, 34, 0, 21, 0, 0, 0, 35,
2347 22, 0, 0, 0, 24, 720, 0, 630, 0, 0,
2348 0, 0, 0, 27, 0, 28, 29, 0, 0, 721,
2349 0, 722, 972, 8, 719, 10, 187, 12, 188, 31,
2350 0, 0, 0, 14, 0, 0, 0, 0, 0, 32,
2351 0, 0, 0, 0, 0, 0, 0, 33, 17, 0,
2352 18, 19, 34, 0, 0, 0, 21, 0, 0, 0,
2353 0, 22, 0, 0, 0, 24, 0, 7, 8, 9,
2354 10, 381, 12, 13, 27, 0, 28, 29, 14, 0,
2355 0, 0, 974, 0, 0, 0, 0, 0, 0, 0,
2356 31, 0, 0, 17, 0, 18, 19, 0, 0, 0,
2357 32, 21, 0, 0, 0, 0, 22, 0, 33, 0,
2358 24, 0, 0, 34, 0, 0, 0, 0, 0, 27,
2359 0, 28, 29, 7, 8, 9, 10, 187, 12, 188,
2360 0, 0, 0, 0, 14, 31, 0, 0, 0, 0,
2361 0, 0, 0, 0, 0, 32, 0, 0, 0, 17,
2362 0, 18, 19, 33, 0, 0, 0, 21, 34, 0,
2363 0, 0, 22, 0, 0, 0, 24, 0, 7, 8,
2364 9, 10, 196, 197, 198, 27, 0, 28, 29, 14,
2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366 0, 31, 0, 0, 0, 0, 0, 19, 0, 0,
2367 0, 32, 21, 0, 0, 0, 0, 22, 0, 33,
2368 0, 24, 0, 573, 34, 0, 0, 0, 0, 0,
2369 27, 0, 28, 29, 0, 0, 0, 0, 0, 0,
2370 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
2371 0, 0, 0, 0, 0, 0, 176, 0, 0, 0,
2372 0, 0, 0, 0, 33, 0, 0, 0, 0, 1380,
2373 528, 529, 530, 531, 532, 533, 534, 535, 536, 537,
2374 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
2375 548, 549, 528, 529, 530, 531, 532, 533, 534, 535,
2376 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2377 546, 547, 548, 549, 0, 0, 0, 0, 0, 1164,
2378 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2379 545, 546, 547, 548, 549, 0, 0, 1432, 1341, 528,
2380 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
2381 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2382 549, 1474, 528, 529, 530, 531, 532, 533, 534, 535,
2383 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2384 546, 547, 548, 549, 528, 529, 530, 531, 532, 533,
2385 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
2386 544, 545, 546, 547, 548, 549, 532, 533, 534, 535,
2387 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
2388 546, 547, 548, 549
2389 };
2390
2391 static const short yycheck[] = { 4,
2392 34, 54, 658, 4, 75, 380, 156, 24, 380, 4,
2393 146, 147, 328, 56, 660, 58, 231, 125, 83, 351,
2394 921, 4, 380, 440, 4, 191, 89, 461, 91, 334,
2395 79, 36, 34, 284, 285, 36, 41, 523, 4, 221,
2396 41, 36, 128, 723, 38, 191, 41, 133, 31, 32,
2397 61, 56, 732, 36, 200, 1274, 36, 641, 41, 4,
2398 226, 41, 413, 1409, 1442, 316, 71, 53, 816, 577,
2399 36, 132, 133, 136, 1, 41, 584, 58, 83, 11,
2400 0, 11, 87, 1297, 89, 132, 91, 59, 1466, 11,
2401 4, 36, 141, 63, 34, 63, 41, 0, 1426, 1304,
2402 83, 106, 107, 63, 199, 200, 1311, 49, 14, 1444,
2403 276, 36, 146, 147, 148, 75, 41, 111, 79, 334,
2404 8, 9, 36, 60, 195, 1439, 14, 41, 100, 75,
2405 135, 136, 59, 138, 135, 94, 185, 1465, 48, 60,
2406 110, 63, 110, 177, 146, 147, 148, 1, 191, 37,
2407 335, 336, 135, 12, 9, 160, 199, 200, 46, 160,
2408 48, 578, 328, 146, 147, 151, 517, 1545, 1496, 83,
2409 1, 111, 1507, 14, 111, 177, 82, 160, 110, 495,
2410 110, 1495, 23, 194, 94, 1531, 229, 48, 110, 110,
2411 135, 202, 175, 176, 55, 1409, 182, 4, 75, 105,
2412 110, 60, 387, 388, 63, 59, 94, 62, 1413, 63,
2413 191, 741, 12, 79, 75, 160, 746, 648, 199, 200,
2414 39, 135, 48, 64, 7, 659, 286, 287, 59, 36,
2415 48, 1467, 63, 94, 41, 75, 55, 103, 55, 98,
2416 61, 301, 96, 1479, 304, 226, 160, 307, 1453, 56,
2417 310, 110, 61, 1489, 314, 38, 321, 1476, 75, 60,
2418 60, 48, 322, 63, 325, 96, 132, 353, 94, 95,
2419 1506, 60, 277, 631, 337, 141, 94, 95, 325, 60,
2420 25, 242, 123, 175, 176, 177, 1034, 76, 374, 1525,
2421 111, 596, 624, 1498, 61, 276, 432, 433, 98, 445,
2422 48, 885, 111, 308, 145, 4, 5, 94, 683, 110,
2423 661, 683, 1548, 374, 59, 465, 321, 61, 63, 185,
2424 12, 227, 852, 55, 329, 94, 27, 28, 135, 110,
2425 383, 32, 337, 338, 4, 5, 94, 338, 321, 60,
2426 61, 384, 385, 75, 111, 60, 94, 328, 856, 444,
2427 445, 96, 218, 160, 94, 338, 55, 452, 57, 58,
2428 61, 55, 48, 679, 65, 4, 5, 111, 60, 464,
2429 75, 63, 71, 65, 48, 380, 242, 218, 219, 384,
2430 48, 75, 81, 454, 892, 380, 1287, 57, 58, 484,
2431 231, 65, 48, 338, 437, 110, 95, 380, 432, 433,
2432 434, 444, 445, 889, 385, 448, 98, 321, 94, 452,
2433 111, 81, 60, 61, 48, 600, 4, 5, 57, 58,
2434 94, 426, 109, 931, 338, 1173, 94, 490, 334, 959,
2435 432, 433, 434, 418, 865, 48, 853, 868, 94, 95,
2436 451, 971, 81, 426, 48, 1346, 48, 27, 28, 432,
2437 433, 511, 512, 63, 1355, 1356, 467, 462, 48, 300,
2438 94, 462, 61, 444, 445, 75, 380, 333, 1148, 57,
2439 58, 452, 63, 904, 905, 76, 1006, 78, 1008, 462,
2440 48, 94, 462, 464, 75, 490, 25, 55, 493, 48,
2441 94, 496, 94, 81, 559, 500, 501, 502, 503, 504,
2442 48, 462, 55, 484, 94, 95, 48, 75, 513, 350,
2443 63, 886, 426, 55, 886, 60, 61, 462, 523, 48,
2444 110, 526, 75, 957, 390, 707, 94, 709, 886, 4,
2445 5, 338, 714, 75, 9, 94, 428, 55, 430, 48,
2446 432, 433, 434, 48, 48, 63, 94, 63, 462, 602,
2447 61, 443, 94, 558, 559, 55, 861, 4, 5, 75,
2448 603, 65, 9, 63, 25, 94, 27, 28, 919, 1470,
2449 55, 756, 577, 48, 32, 75, 559, 4, 5, 584,
2450 55, 1089, 57, 58, 637, 94, 639, 640, 59, 94,
2451 94, 574, 575, 459, 577, 638, 71, 640, 59, 765,
2452 63, 584, 63, 55, 1112, 700, 81, 858, 55, 717,
2453 57, 58, 629, 3, 4, 5, 91, 55, 459, 94,
2454 95, 487, 603, 75, 71, 48, 679, 1044, 55, 48,
2455 57, 58, 438, 638, 81, 96, 679, 642, 1069, 1070,
2456 446, 55, 659, 48, 71, 559, 861, 75, 95, 3,
2457 4, 5, 111, 4, 81, 726, 727, 700, 60, 640,
2458 703, 75, 59, 577, 735, 1099, 55, 57, 58, 48,
2459 584, 94, 95, 94, 76, 94, 78, 730, 683, 742,
2460 743, 744, 588, 55, 525, 36, 65, 110, 731, 94,
2461 41, 81, 55, 1127, 737, 76, 8, 9, 679, 110,
2462 683, 55, 14, 57, 58, 571, 1040, 1041, 55, 1043,
2463 110, 3, 4, 5, 6, 94, 95, 95, 723, 700,
2464 725, 587, 723, 1039, 725, 37, 731, 732, 75, 4,
2465 5, 732, 4, 5, 46, 110, 741, 742, 743, 744,
2466 723, 746, 725, 723, 1301, 59, 1303, 1133, 1134, 732,
2467 42, 65, 732, 34, 4, 5, 11, 49, 741, 9,
2468 110, 1147, 723, 746, 725, 57, 58, 827, 111, 683,
2469 731, 732, 954, 955, 956, 4, 5, 61, 723, 1435,
2470 725, 3, 57, 58, 765, 57, 58, 732, 629, 81,
2471 113, 3, 4, 5, 854, 855, 94, 89, 690, 691,
2472 641, 693, 84, 85, 55, 55, 81, 57, 58, 723,
2473 815, 725, 63, 1459, 819, 1000, 1001, 1002, 732, 60,
2474 61, 71, 4, 5, 75, 666, 95, 741, 57, 58,
2475 95, 81, 746, 818, 60, 61, 48, 60, 730, 48,
2476 113, 846, 65, 55, 63, 57, 58, 852, 897, 94,
2477 1236, 856, 81, 76, 25, 94, 27, 28, 892, 1245,
2478 1246, 75, 1248, 753, 754, 755, 147, 148, 75, 852,
2479 75, 854, 855, 856, 75, 57, 58, 3, 4, 5,
2480 6, 886, 94, 888, 889, 94, 95, 892, 59, 11,
2481 892, 886, 63, 60, 61, 60, 177, 931, 111, 81,
2482 110, 110, 60, 886, 975, 60, 61, 890, 891, 892,
2483 981, 982, 110, 110, 985, 986, 42, 110, 989, 55,
2484 61, 964, 965, 730, 731, 96, 931, 63, 111, 931,
2485 110, 57, 58, 25, 983, 27, 28, 111, 852, 75,
2486 945, 55, 856, 113, 110, 55, 65, 952, 931, 63,
2487 993, 1087, 1088, 63, 959, 861, 113, 25, 75, 27,
2488 28, 75, 75, 89, 75, 75, 971, 59, 113, 113,
2489 110, 63, 886, 110, 1110, 1111, 959, 110, 892, 59,
2490 3, 4, 5, 6, 55, 110, 1046, 1303, 971, 994,
2491 8, 59, 113, 994, 860, 63, 862, 94, 890, 891,
2492 892, 1006, 48, 1008, 96, 65, 1357, 60, 1394, 1395,
2493 94, 994, 997, 111, 994, 37, 61, 931, 1369, 42,
2494 4, 5, 983, 1006, 65, 1008, 65, 308, 96, 65,
2495 61, 897, 55, 994, 57, 58, 877, 110, 61, 931,
2496 1025, 1026, 1091, 63, 885, 959, 110, 110, 71, 994,
2497 1110, 1111, 110, 1087, 1088, 1089, 110, 971, 81, 65,
2498 65, 1436, 4, 5, 1436, 65, 89, 3, 4, 5,
2499 113, 94, 65, 57, 58, 1426, 1110, 1111, 1112, 94,
2500 994, 60, 1099, 63, 1089, 1087, 1088, 1089, 4, 5,
2501 76, 110, 1006, 110, 1008, 31, 1139, 1140, 110, 1142,
2502 1143, 110, 1145, 45, 1087, 1088, 1089, 1112, 1110, 1111,
2503 1112, 110, 1463, 55, 1465, 57, 58, 983, 76, 55,
2504 76, 57, 58, 1108, 76, 110, 63, 1110, 1111, 1112,
2505 1481, 63, 1117, 1118, 1450, 437, 110, 1122, 1123, 55,
2506 60, 57, 58, 1148, 110, 1496, 448, 1148, 63, 110,
2507 113, 111, 433, 434, 3, 4, 5, 110, 7, 8,
2508 9, 110, 95, 113, 89, 1148, 48, 110, 1148, 3,
2509 4, 5, 1243, 1244, 113, 1089, 110, 60, 113, 1164,
2510 110, 110, 110, 1144, 111, 1026, 110, 1148, 37, 111,
2511 1233, 1234, 65, 1085, 1086, 1087, 1088, 1089, 1112, 65,
2512 1066, 1093, 60, 1148, 1209, 60, 55, 110, 57, 58,
2513 59, 110, 493, 94, 1219, 496, 94, 94, 1110, 1111,
2514 1112, 55, 94, 57, 58, 1091, 1209, 111, 113, 1209,
2515 110, 512, 513, 8, 1148, 110, 110, 1297, 1223, 3,
2516 4, 5, 110, 1209, 113, 526, 110, 110, 1301, 1141,
2517 1303, 81, 82, 83, 84, 85, 105, 106, 107, 1302,
2518 1303, 3, 4, 5, 1209, 106, 107, 1108, 1418, 111,
2519 110, 110, 3, 4, 5, 6, 65, 1262, 1144, 110,
2520 1323, 1324, 1325, 110, 1450, 1421, 1422, 110, 110, 110,
2521 4, 5, 1297, 57, 58, 1209, 110, 1302, 110, 1304,
2522 3, 4, 5, 584, 1196, 1197, 1311, 1199, 1379, 63,
2523 113, 42, 48, 110, 1297, 57, 58, 1297, 49, 110,
2524 110, 1304, 1303, 97, 1304, 34, 57, 58, 1311, 110,
2525 110, 1311, 61, 110, 48, 63, 63, 110, 1304, 110,
2526 110, 55, 61, 57, 58, 1311, 1380, 113, 1391, 1392,
2527 81, 9, 1297, 61, 57, 58, 1341, 71, 89, 1304,
2528 16, 1421, 1422, 61, 94, 1206, 1311, 81, 106, 107,
2529 3, 4, 5, 94, 61, 109, 94, 91, 1380, 99,
2530 94, 95, 94, 1297, 61, 17, 61, 1421, 1422, 1423,
2531 1304, 11, 61, 110, 110, 110, 61, 1311, 1451, 110,
2532 94, 703, 1473, 60, 1409, 1410, 39, 40, 1413, 42,
2533 110, 3, 4, 5, 61, 7, 8, 9, 1423, 1421,
2534 1422, 1423, 55, 65, 57, 58, 1409, 1410, 110, 1409,
2535 1413, 1436, 61, 1413, 1439, 737, 11, 1442, 1421, 1422,
2536 61, 11, 110, 61, 0, 37, 408, 1413, 1453, 3,
2537 4, 5, 1293, 1436, 1497, 0, 1439, 0, 2, 1442,
2538 353, 1466, 1442, 160, 1409, 57, 58, 308, 1413, 1450,
2539 1453, 886, 1434, 1453, 160, 731, 1442, 725, 759, 3,
2540 4, 5, 1099, 1466, 93, 138, 1466, 1453, 1380, 1405,
2541 1495, 1545, 279, 1498, 1302, 1409, 1410, 1442, 666, 1413,
2542 1466, 55, 872, 57, 58, 59, 877, 1348, 1453, 27,
2543 28, 1127, 1495, 220, 32, 1498, 957, 994, 1498, 725,
2544 731, 1466, 1436, 1146, 609, 1439, 870, 559, 1442, 1421,
2545 1422, 1423, 1498, 57, 58, 59, 4, 182, 9, 1453,
2546 1545, 12, 60, 61, 123, 1304, 14, 65, 1533, 325,
2547 1210, 1459, 1466, 1498, 3, 4, 5, 25, 3, 4,
2548 5, 6, 1545, 31, 32, 1545, 34, 1456, 36, 1481,
2549 308, 1518, 380, 41, 855, 856, 1520, 48, 940, 1545,
2550 -1, 1495, 423, 1219, 1498, -1, 54, -1, 56, 60,
2551 -1, 62, 63, -1, 65, -1, 64, 42, -1, -1,
2552 1545, -1, -1, 71, -1, 76, -1, 78, 57, 58,
2553 55, 892, 57, 58, 82, 83, 61, -1, 426, -1,
2554 -1, -1, -1, 94, 95, 81, 71, 98, 3, 4,
2555 5, 1545, -1, 4, 5, -1, 81, 105, 9, 110,
2556 -1, 419, 380, -1, 89, -1, -1, -1, 426, 94,
2557 931, -1, 493, -1, -1, 496, -1, -1, -1, 500,
2558 128, -1, 964, 965, -1, 133, -1, 135, -1, -1,
2559 -1, 139, 513, -1, 142, 143, -1, 48, 146, 147,
2560 148, -1, 57, 58, 55, 526, 57, 58, 426, 530,
2561 -1, 993, 160, -1, -1, -1, -1, -1, 154, -1,
2562 71, -1, 3, 4, 5, 6, -1, 175, 176, 177,
2563 81, -1, -1, 491, -1, 556, -1, 173, -1, -1,
2564 91, 562, -1, 94, 95, -1, -1, -1, -1, -1,
2565 186, -1, -1, -1, -1, -1, 204, -1, 4, 5,
2566 -1, 42, -1, 9, -1, 419, -1, 3, 4, 5,
2567 6, 219, 426, -1, -1, 493, 57, 58, 496, 227,
2568 -1, -1, 500, 501, 502, 503, 504, -1, -1, 577,
2569 -1, 239, -1, -1, -1, 513, 584, 555, -1, 557,
2570 558, -1, 48, -1, -1, -1, 42, -1, 526, 55,
2571 -1, 57, 58, -1, -1, -1, 12, -1, -1, 55,
2572 -1, 57, 58, -1, -1, 71, 584, 1088, 1089, 277,
2573 278, 27, 28, 591, -1, 81, 32, 491, -1, -1,
2574 558, -1, -1, -1, -1, 91, -1, 48, 94, 95,
2575 1111, 1112, 48, 89, -1, -1, -1, 1139, 1140, 577,
2576 1142, 1143, -1, 1145, 60, 61, 584, 63, -1, 65,
2577 -1, -1, -1, 321, -1, -1, -1, 325, -1, 327,
2578 328, 329, -1, -1, -1, -1, 87, 88, -1, -1,
2579 338, 92, 93, 94, 95, 683, -1, -1, 94, 95,
2580 -1, 555, 98, 557, 558, 353, 3, 4, 5, -1,
2581 7, 8, 9, -1, 110, 4, 5, -1, 7, 8,
2582 9, -1, -1, 12, -1, 14, 374, -1, -1, -1,
2583 -1, -1, 380, -1, -1, 383, 384, 591, -1, -1,
2584 29, -1, 31, 32, -1, -1, 394, -1, 37, 397,
2585 -1, 1233, 1234, 741, 402, -1, -1, 46, 746, -1,
2586 57, 58, -1, -1, -1, 683, 55, -1, 57, 58,
2587 -1, -1, -1, -1, 7, 8, 9, -1, -1, -1,
2588 428, 14, 430, -1, 432, 433, 434, -1, -1, -1,
2589 438, -1, 3, 4, 5, 443, 7, -1, 446, 32,
2590 436, 759, 823, -1, 37, 441, 4, 5, -1, 98,
2591 8, 9, -1, 46, 462, -1, 14, -1, -1, -1,
2592 31, -1, -1, 741, -1, -1, -1, 38, 746, -1,
2593 -1, 29, 468, 31, -1, 856, -1, 473, -1, 37,
2594 -1, 1323, 1324, 1325, 55, -1, 57, 58, 46, 485,
2595 486, -1, 488, 501, 502, 503, 504, 55, -1, 57,
2596 58, 819, -1, -1, 852, -1, -1, -1, 856, -1,
2597 -1, -1, -1, -1, 832, -1, 834, -1, 836, 72,
2598 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2599 83, 84, 85, 7, 8, 9, 94, 815, 886, -1,
2600 14, -1, -1, -1, 892, -1, -1, -1, -1, 1391,
2601 1392, 559, -1, 561, -1, -1, -1, -1, 32, 1380,
2602 -1, 879, -1, 37, 572, -1, 574, 575, 846, 577,
2603 -1, 952, 46, -1, 852, -1, 584, -1, 856, -1,
2604 588, -1, -1, 931, 580, 581, -1, 61, -1, 585,
2605 -1, -1, -1, -1, 602, 913, 7, 8, 9, -1,
2606 -1, 1422, 1423, 14, -1, 819, -1, -1, 886, -1,
2607 888, 959, -1, 931, 892, -1, -1, -1, 832, -1,
2608 834, 32, 836, 971, -1, -1, 37, -1, -1, 637,
2609 638, 639, 640, 641, 642, 46, -1, 4, 5, -1,
2610 -1, 8, 9, -1, -1, -1, -1, 14, 3, 4,
2611 5, 6, -1, 931, 9, 1497, -1, -1, 1006, -1,
2612 1008, -1, 29, -1, 31, 879, -1, 945, -1, -1,
2613 37, 679, -1, -1, 952, 683, -1, -1, -1, 46,
2614 -1, 959, 690, 691, -1, 693, -1, 42, 55, -1,
2615 57, 58, 59, 971, -1, -1, -1, -1, -1, 913,
2616 55, -1, 57, 58, 79, 80, 81, 82, 83, 84,
2617 85, -1, 720, -1, -1, 723, 71, 725, -1, -1,
2618 -1, -1, 730, 731, 732, -1, 81, 94, 1006, -1,
2619 1008, 1112, -1, 741, 89, -1, -1, -1, 746, 94,
2620 -1, 1089, -1, -1, -1, 753, 754, 755, -1, -1,
2621 -1, 747, -1, 749, -1, -1, -1, 765, -1, 327,
2622 328, 329, -1, -1, 1112, 3, 4, 5, 6, 7,
2623 8, 9, -1, -1, -1, -1, 14, -1, -1, 1160,
2624 1161, 1162, 1163, 1101, -1, 1103, -1, 1105, -1, -1,
2625 1171, 29, -1, 31, 32, -1, -1, -1, -1, 37,
2626 -1, -1, -1, -1, 42, -1, -1, 815, 46, -1,
2627 -1, 1089, -1, -1, -1, -1, -1, 55, -1, 57,
2628 58, -1, -1, 61, -1, 821, 822, -1, 824, 837,
2629 -1, 839, -1, 71, 1112, -1, -1, -1, 846, -1,
2630 -1, -1, 850, 81, 852, -1, 854, 855, 856, 4,
2631 -1, 89, -1, 861, -1, 851, 94, -1, -1, 14,
2632 77, 78, 79, 80, 81, 82, 83, 84, 85, 24,
2633 25, -1, -1, -1, -1, 1193, 31, 32, 886, 34,
2634 888, 36, 890, 891, 892, -1, 41, 1101, -1, 1103,
2635 -1, 1105, 3, 4, 5, 6, -1, -1, 894, 54,
2636 -1, 56, -1, -1, 3, 4, 5, 6, -1, 64,
2637 9, 1292, -1, -1, -1, -1, 71, -1, -1, -1,
2638 -1, -1, -1, 931, -1, -1, -1, -1, 83, -1,
2639 -1, 42, -1, -1, -1, -1, -1, 945, -1, -1,
2640 -1, 1219, -1, 42, 55, -1, 57, 58, -1, -1,
2641 -1, 959, 63, -1, -1, -1, 55, -1, 57, 58,
2642 71, -1, 958, 971, -1, -1, -1, -1, -1, -1,
2643 81, -1, 71, 128, 970, -1, 984, -1, 89, 1193,
2644 135, -1, 81, 94, 139, 1366, 994, -1, 143, -1,
2645 89, 146, 147, 148, -1, 94, -1, -1, 1006, -1,
2646 1008, -1, -1, 698, -1, 160, 574, 575, -1, -1,
2647 -1, -1, -1, 4, 5, -1, 7, 8, 9, -1,
2648 175, 176, 177, 14, -1, -1, -1, -1, 1409, 1410,
2649 -1, -1, 1040, 1041, -1, 1043, -1, -1, 29, -1,
2650 31, 32, 1423, -1, -1, 740, 37, -1, -1, 204,
2651 745, 327, 328, 329, -1, 46, -1, -1, 1439, 1055,
2652 -1, -1, 1380, -1, 55, -1, 57, 58, -1, 637,
2653 -1, 639, 640, -1, 642, -1, -1, 1085, 1086, 1087,
2654 1088, 1089, -1, -1, 239, 1093, -1, -1, 1436, 3,
2655 4, 5, 6, -1, -1, 9, 1092, -1, -1, -1,
2656 -1, -1, 1110, 1111, 1112, -1, -1, -1, -1, -1,
2657 -1, 679, 1493, -1, 1495, -1, -1, 7, 8, 9,
2658 -1, -1, 277, 278, 14, -1, -1, -1, 42, -1,
2659 -1, -1, -1, 1141, 48, -1, 1517, -1, 1146, -1,
2660 1148, 55, 32, 57, 58, 1423, -1, 37, -1, -1,
2661 1531, -1, 847, -1, 849, 1151, 46, 71, 1436, 1155,
2662 -1, -1, 3, 4, 5, 6, 321, 81, 9, -1,
2663 325, 61, 327, 328, 329, 89, -1, 91, -1, 334,
2664 94, 95, -1, 338, -1, -1, -1, -1, 1196, 1197,
2665 -1, 1199, 1188, -1, -1, -1, -1, 765, 353, -1,
2666 -1, 42, -1, -1, -1, -1, -1, 48, -1, -1,
2667 -1, 1219, -1, -1, 55, -1, 57, 58, -1, -1,
2668 -1, -1, -1, -1, -1, 380, -1, -1, 383, 384,
2669 71, -1, 1228, -1, -1, -1, 1232, -1, -1, 394,
2670 81, -1, 397, -1, -1, -1, -1, 402, 89, -1,
2671 91, -1, -1, 94, 95, -1, -1, -1, 1254, 1255,
2672 -1, -1, -1, 1, -1, 3, 4, 5, 6, 837,
2673 8, 839, -1, 428, -1, 430, -1, 432, 433, 434,
2674 -1, -1, 850, 438, -1, -1, 854, 855, 443, -1,
2675 -1, 446, -1, 1301, 1302, 1303, -1, -1, 574, 575,
2676 -1, 577, -1, -1, 42, -1, 461, 462, 584, -1,
2677 1005, 49, 1007, -1, -1, -1, -1, 55, -1, 57,
2678 58, -1, 890, 891, -1, -1, -1, -1, -1, -1,
2679 -1, -1, -1, -1, -1, 3, 4, 5, 6, 3,
2680 4, 5, 6, 7, 8, 9, 501, 502, 503, 504,
2681 14, 89, -1, -1, -1, -1, 3, 4, 5, 6,
2682 -1, 637, -1, 639, 640, 1060, 642, -1, 32, -1,
2683 -1, -1, 1380, 37, 42, -1, -1, -1, 42, -1,
2684 -1, 49, 46, -1, 48, -1, -1, -1, -1, 57,
2685 58, 55, -1, 57, 58, 42, -1, -1, -1, -1,
2686 -1, -1, 49, 679, 559, -1, 561, 71, -1, -1,
2687 57, 58, -1, 1421, 1422, 1423, -1, 81, -1, 574,
2688 575, 89, 577, -1, -1, 89, -1, 91, 1436, 584,
2689 94, 95, -1, -1, 81, -1, 1131, -1, -1, -1,
2690 1135, 596, 89, 1451, -1, -1, -1, 602, -1, -1,
2691 -1, -1, -1, 3, 4, 5, 6, -1, -1, 9,
2692 3, 4, 5, 6, -1, -1, -1, -1, -1, -1,
2693 -1, -1, -1, -1, 629, -1, -1, -1, -1, -1,
2694 -1, -1, 637, 638, 639, 640, 641, 642, -1, 765,
2695 -1, 1186, 42, -1, -1, -1, -1, -1, 48, 42,
2696 -1, -1, -1, -1, 659, 55, 49, 57, 58, -1,
2697 -1, -1, -1, -1, 57, 58, -1, 1085, 1086, 1087,
2698 1088, 71, -1, -1, 679, 1093, -1, -1, 683, -1,
2699 -1, 81, -1, -1, -1, 690, 691, -1, 693, 89,
2700 -1, 91, 1110, 1111, 94, 95, 89, -1, -1, -1,
2701 -1, 3, 4, 5, 6, -1, -1, 1252, 1253, -1,
2702 -1, 837, -1, 839, -1, 720, -1, -1, 723, -1,
2703 725, -1, -1, 1268, 850, 730, 731, 732, 854, 855,
2704 856, 3, 4, 5, 6, -1, 741, 9, -1, -1,
2705 42, 746, -1, 3, 4, 5, 6, 49, 753, 754,
2706 755, -1, -1, -1, -1, 57, 58, -1, -1, -1,
2707 765, -1, -1, -1, 890, 891, 892, -1, -1, -1,
2708 42, 1316, 1317, -1, -1, -1, 48, -1, 1196, 1197,
2709 -1, 1199, 42, 55, -1, 57, 58, 89, -1, 49,
2710 1335, 1336, -1, -1, -1, -1, -1, 57, 58, 71,
2711 -1, -1, -1, -1, -1, 931, -1, -1, -1, 81,
2712 815, -1, -1, -1, -1, -1, -1, 89, -1, 91,
2713 -1, 81, 94, 95, -1, 3, 4, 5, 6, 89,
2714 -1, -1, 837, -1, 839, -1, -1, -1, -1, -1,
2715 -1, 846, -1, -1, -1, 850, -1, 852, -1, 854,
2716 855, 856, -1, -1, -1, -1, 861, -1, -1, -1,
2717 -1, -1, -1, -1, 42, -1, -1, -1, -1, -1,
2718 -1, 49, -1, -1, -1, -1, -1, -1, 4, 57,
2719 58, 886, -1, 888, -1, 890, 891, 892, 1, -1,
2720 3, 4, 5, 6, 7, 8, 9, -1, -1, -1,
2721 -1, 14, -1, 81, -1, 31, 32, -1, 34, -1,
2722 36, 89, -1, -1, -1, 41, 29, -1, 31, 32,
2723 33, -1, -1, -1, 37, 38, 931, -1, 54, 42,
2724 56, -1, -1, 46, 47, -1, 49, -1, -1, -1,
2725 945, -1, 55, -1, 57, 58, -1, -1, 61, -1,
2726 63, -1, 957, 79, 959, -1, -1, -1, 71, 1085,
2727 1086, 1087, 1088, 1089, -1, -1, 971, 1093, 81, -1,
2728 -1, -1, -1, -1, -1, -1, 89, 3, 4, 5,
2729 6, 94, -1, 9, 1110, 1111, 1112, -1, -1, 994,
2730 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1,
2731 -1, 1006, 128, 1008, -1, -1, 132, 133, -1, 135,
2732 -1, -1, -1, 139, -1, 141, 42, 143, -1, -1,
2733 146, 147, 148, -1, -1, -1, -1, -1, -1, 55,
2734 -1, 57, 58, -1, 160, 1040, 1041, -1, 1043, -1,
2735 -1, -1, -1, -1, -1, 71, -1, -1, -1, 175,
2736 176, 177, -1, -1, -1, 81, -1, -1, -1, 185,
2737 -1, -1, -1, 89, 3, 4, 5, 6, 94, -1,
2738 1196, 1197, -1, 1199, -1, -1, -1, -1, 204, -1,
2739 1085, 1086, 1087, 1088, 1089, -1, -1, -1, 1093, -1,
2740 -1, -1, -1, -1, 1099, -1, -1, -1, -1, -1,
2741 -1, -1, -1, 42, -1, 1110, 1111, 1112, -1, 48,
2742 -1, -1, -1, 239, -1, -1, 55, -1, 57, 58,
2743 -1, -1, 1127, -1, -1, -1, -1, -1, -1, -1,
2744 -1, -1, 71, -1, -1, -1, 1141, -1, -1, -1,
2745 -1, 1146, 81, 1148, -1, -1, -1, -1, -1, -1,
2746 89, -1, 91, -1, -1, 94, 95, -1, -1, -1,
2747 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
2748 6, -1, 1, 9, 3, 4, 5, 6, 7, 8,
2749 9, -1, 308, -1, -1, 14, -1, -1, -1, -1,
2750 -1, 1196, 1197, -1, 1199, -1, -1, -1, -1, 325,
2751 29, -1, 31, 32, 33, -1, 42, 333, 37, 38,
2752 -1, -1, 338, 42, 1219, -1, -1, 46, 47, 55,
2753 49, 57, 58, -1, -1, -1, 55, 353, 57, 58,
2754 -1, -1, 61, -1, 63, 71, 4, 5, -1, 7,
2755 8, 9, 71, -1, 12, 81, 14, -1, 374, -1,
2756 -1, -1, 81, 89, -1, -1, -1, 383, 94, -1,
2757 89, 29, -1, 31, 32, 94, -1, -1, 394, 37,
2758 -1, 397, -1, -1, -1, -1, 402, -1, 46, -1,
2759 48, -1, 111, -1, -1, -1, -1, 55, -1, 57,
2760 58, -1, -1, -1, -1, -1, 1301, 1302, 1303, -1,
2761 -1, -1, 428, 71, 430, -1, 432, 433, 434, -1,
2762 -1, -1, 438, 81, -1, -1, -1, 443, -1, -1,
2763 446, 4, -1, 91, -1, -1, 94, 95, -1, -1,
2764 98, -1, -1, -1, -1, -1, 462, -1, -1, -1,
2765 -1, -1, -1, -1, 3, 4, 5, 6, 31, 32,
2766 9, 34, -1, 36, -1, 4, 5, -1, 41, 8,
2767 9, -1, -1, -1, -1, 14, -1, 493, -1, -1,
2768 496, 54, -1, 56, -1, 1380, -1, -1, -1, -1,
2769 29, -1, 31, 42, -1, 511, 512, 513, 37, -1,
2770 -1, -1, -1, -1, -1, -1, 55, 46, 57, 58,
2771 526, -1, -1, -1, -1, -1, 55, -1, 57, 58,
2772 -1, -1, 71, -1, -1, -1, 1421, 1422, 1423, -1,
2773 -1, -1, 81, -1, -1, -1, -1, -1, 4, 5,
2774 89, 1436, 8, 9, -1, 94, -1, -1, 14, -1,
2775 -1, -1, -1, -1, -1, 571, 1451, -1, 3, 4,
2776 5, 6, 135, 29, 9, 31, 139, -1, 584, -1,
2777 143, 37, -1, 146, 147, 148, -1, -1, -1, -1,
2778 46, -1, 48, -1, -1, -1, 602, 160, -1, 55,
2779 -1, 57, 58, -1, -1, -1, -1, 42, -1, -1,
2780 -1, -1, 175, 176, 177, 71, -1, -1, -1, -1,
2781 55, -1, 57, 58, -1, 81, -1, -1, -1, -1,
2782 -1, 637, 638, 639, 640, 91, 71, -1, 94, 95,
2783 -1, 204, -1, -1, -1, -1, 81, -1, -1, -1,
2784 -1, -1, -1, -1, 89, -1, -1, -1, 1, 94,
2785 3, 4, 5, 6, 7, 8, 9, -1, -1, -1,
2786 -1, 14, -1, 679, -1, -1, 239, 683, -1, -1,
2787 -1, -1, -1, -1, 690, 691, 29, 693, 31, 32,
2788 33, -1, -1, -1, 37, 38, -1, -1, -1, 42,
2789 -1, -1, -1, 46, 47, -1, 49, -1, -1, -1,
2790 -1, -1, 55, -1, 57, 58, -1, 723, 61, 725,
2791 63, -1, -1, -1, 730, 731, 732, -1, 71, -1,
2792 -1, 3, 4, 5, 6, 7, 8, 9, 81, -1,
2793 12, -1, 14, -1, -1, -1, 89, -1, -1, -1,
2794 -1, 94, -1, 759, -1, -1, -1, 29, -1, 31,
2795 32, -1, -1, -1, -1, 37, -1, -1, 111, -1,
2796 42, 334, -1, -1, 46, 338, 48, -1, -1, -1,
2797 -1, -1, -1, 55, -1, 57, 58, -1, -1, -1,
2798 -1, 4, 5, -1, -1, 8, 9, -1, -1, 71,
2799 -1, 14, -1, -1, -1, -1, 87, -1, 89, 81,
2800 91, -1, -1, -1, -1, -1, -1, 89, -1, 91,
2801 383, -1, 94, 95, 37, -1, 98, -1, -1, -1,
2802 -1, 394, -1, 46, 397, 48, -1, -1, -1, 402,
2803 -1, -1, 55, -1, 57, 58, -1, -1, 854, 855,
2804 856, 12, -1, -1, 860, 136, -1, 138, 71, -1,
2805 -1, -1, -1, -1, -1, 428, -1, 430, 81, 432,
2806 433, 434, -1, -1, -1, 438, -1, -1, 91, -1,
2807 443, 94, 95, 446, 890, 891, 892, -1, -1, -1,
2808 -1, 897, -1, -1, -1, -1, -1, -1, -1, 462,
2809 -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
2810 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2811 81, 82, 83, 84, 85, 931, -1, -1, -1, -1,
2812 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
2813 8, 9, 10, 11, -1, 13, 14, 15, -1, 17,
2814 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2815 28, 29, 30, 31, 32, 33, -1, 35, 36, 37,
2816 -1, 39, 40, 41, 42, 43, 44, 983, 46, -1,
2817 -1, -1, 50, 51, 52, 53, 54, 55, 994, 57,
2818 58, 59, -1, 61, 62, -1, -1, -1, -1, -1,
2819 68, -1, -1, 71, -1, -1, -1, -1, -1, 572,
2820 -1, 79, 80, 81, -1, -1, -1, -1, 299, 87,
2821 88, 89, -1, -1, -1, -1, 94, -1, 96, -1,
2822 -1, -1, -1, -1, -1, -1, -1, -1, -1, 602,
2823 -1, -1, -1, 111, 112, 3, 4, 5, 6, -1,
2824 -1, 9, -1, -1, -1, -1, 337, -1, -1, -1,
2825 1066, 4, 5, -1, 7, 8, 9, -1, -1, 12,
2826 34, 14, -1, -1, 637, 638, 639, 640, -1, 1085,
2827 1086, 1087, 1088, 1089, 42, 1091, 29, 1093, 31, 32,
2828 54, -1, -1, -1, 37, -1, -1, 55, -1, 57,
2829 58, -1, -1, 46, 1110, 1111, 1112, -1, -1, -1,
2830 -1, -1, 55, 71, 57, 58, 679, -1, -1, -1,
2831 683, -1, -1, 81, -1, -1, -1, 690, 691, -1,
2832 693, 89, -1, -1, -1, 1141, 94, 418, 419, -1,
2833 1146, -1, 1148, -1, 1, 426, 3, 4, 5, 6,
2834 7, 8, 9, -1, 4, 5, -1, 14, 8, 9,
2835 723, -1, 725, -1, 14, -1, -1, 730, 731, 732,
2836 -1, -1, 29, -1, 31, 32, -1, -1, -1, 29,
2837 37, 31, 146, 147, 148, 42, -1, 37, -1, 46,
2838 1196, 1197, 49, 1199, -1, -1, 46, -1, 55, -1,
2839 57, 58, -1, -1, 61, 55, -1, 57, 58, 490,
2840 491, 175, 176, 177, 71, -1, -1, -1, -1, -1,
2841 -1, -1, -1, -1, 81, -1, -1, -1, -1, -1,
2842 -1, -1, 89, -1, -1, -1, -1, 94, -1, -1,
2843 204, -1, 523, -1, 525, -1, -1, 528, 529, -1,
2844 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
2845 541, 542, 543, 544, 545, 546, 547, 548, 549, -1,
2846 -1, -1, -1, -1, 555, -1, 557, 558, 69, 70,
2847 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2848 81, 82, 83, 84, 85, 1301, 1302, 1303, 861, -1,
2849 -1, -1, -1, 584, -1, -1, -1, -1, -1, -1,
2850 591, -1, -1, 1, 278, 3, 4, 5, 6, 7,
2851 8, 9, -1, -1, -1, -1, 14, 890, 891, 892,
2852 611, 612, -1, -1, -1, -1, -1, -1, -1, -1,
2853 -1, 29, -1, 31, 32, 33, -1, -1, -1, 37,
2854 38, -1, -1, -1, 42, -1, -1, -1, 46, 47,
2855 -1, 49, -1, 327, 328, 329, -1, 55, 931, 57,
2856 58, -1, -1, 61, 1380, 63, -1, -1, -1, -1,
2857 -1, -1, -1, 71, -1, 666, -1, -1, -1, -1,
2858 -1, -1, -1, 81, -1, -1, -1, 3, 4, 5,
2859 6, 89, -1, 9, 4, 5, 94, -1, 8, 9,
2860 -1, -1, -1, -1, 14, 1421, 1422, 1423, -1, 383,
2861 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2862 -1, 994, -1, -1, -1, -1, 42, 37, -1, -1,
2863 -1, 722, -1, -1, -1, 1451, 46, -1, 48, 55,
2864 -1, 57, 58, -1, -1, 55, -1, 57, 58, -1,
2865 -1, 742, 743, 744, 428, 71, 430, -1, 432, 433,
2866 434, 71, -1, -1, 438, 81, -1, -1, 759, 443,
2867 -1, 81, 446, 89, -1, -1, -1, -1, 94, -1,
2868 -1, 91, -1, -1, 94, 95, -1, -1, -1, -1,
2869 781, -1, -1, -1, 3, 4, 5, 6, -1, -1,
2870 -1, -1, -1, 3, 4, 5, 6, -1, -1, -1,
2871 -1, -1, 1085, 1086, 1087, 1088, 1089, -1, -1, -1,
2872 1093, -1, -1, -1, -1, -1, -1, 818, 819, -1,
2873 -1, -1, -1, 42, -1, -1, -1, 1110, 1111, 1112,
2874 -1, 832, 42, 834, -1, 836, 55, -1, 57, 58,
2875 -1, -1, -1, -1, 63, 55, -1, 57, 58, -1,
2876 -1, -1, 71, 63, -1, -1, -1, -1, 1141, -1,
2877 -1, 71, 81, 1146, -1, 1148, -1, -1, 869, -1,
2878 89, 81, -1, -1, -1, 94, -1, 561, 879, 89,
2879 -1, -1, -1, -1, 94, -1, -1, -1, 889, -1,
2880 574, 575, -1, 577, 3, 4, 5, 6, -1, -1,
2881 584, 902, -1, -1, -1, -1, -1, -1, -1, -1,
2882 54, -1, 913, 1196, 1197, -1, 1199, -1, 602, -1,
2883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2884 931, -1, -1, 42, -1, 79, -1, -1, 82, -1,
2885 -1, -1, -1, -1, -1, -1, 55, -1, 57, 58,
2886 -1, -1, -1, 637, -1, 639, 640, -1, 642, 103,
2887 -1, 105, 71, -1, -1, -1, -1, -1, -1, -1,
2888 -1, -1, 81, 974, -1, -1, -1, -1, -1, -1,
2889 89, -1, -1, -1, -1, 94, -1, -1, -1, -1,
2890 -1, -1, -1, -1, -1, 679, 997, -1, -1, -1,
2891 -1, -1, -1, -1, -1, -1, 690, 691, -1, 693,
2892 3, 4, 5, 6, 7, 8, 9, -1, 1301, 1302,
2893 1303, 14, -1, -1, 1025, 1026, -1, -1, 1029, -1,
2894 -1, 175, 176, 177, -1, -1, 29, -1, 31, 32,
2895 -1, 185, -1, -1, 37, -1, 730, 4, -1, 42,
2896 -1, -1, -1, 46, -1, -1, 3, 4, 5, 6,
2897 204, -1, 55, -1, 57, 58, -1, -1, 61, 753,
2898 754, 755, -1, -1, 31, 32, -1, -1, 71, 36,
2899 -1, 765, -1, 227, 41, -1, -1, -1, 81, 3,
2900 4, 5, 6, -1, -1, 42, 89, 1380, 242, 56,
2901 1101, 94, 1103, -1, 1105, -1, -1, 1108, 55, -1,
2902 57, 58, -1, -1, -1, -1, 1117, 1118, -1, -1,
2903 -1, 1122, 1123, -1, 71, -1, -1, -1, 42, -1,
2904 -1, -1, -1, -1, 81, -1, 1137, 1138, 1421, 1422,
2905 1423, 55, 89, 57, 58, -1, -1, 94, -1, -1,
2906 -1, -1, -1, 837, -1, 839, -1, 71, -1, -1,
2907 -1, -1, -1, 1164, -1, 1166, 850, 81, 1451, -1,
2908 854, 855, 856, -1, -1, 89, -1, -1, 135, -1,
2909 94, -1, 139, -1, -1, -1, 143, -1, -1, 333,
2910 334, -1, 1193, -1, -1, -1, -1, -1, -1, -1,
2911 -1, -1, -1, 160, -1, -1, 890, 891, 892, -1,
2912 -1, -1, -1, -1, -1, -1, -1, -1, 175, 176,
2913 -1, -1, 1223, 1, -1, 3, 4, 5, 6, 7,
2914 8, 9, -1, -1, -1, -1, 14, -1, 1239, 383,
2915 -1, -1, -1, -1, -1, -1, -1, 931, -1, -1,
2916 -1, 29, -1, 31, 32, 14, -1, -1, -1, 37,
2917 -1, 1262, -1, -1, 42, 24, 25, -1, 46, 47,
2918 -1, 49, 31, 32, -1, 34, -1, 55, -1, 57,
2919 58, -1, 239, -1, 428, 63, 430, 1288, 432, 433,
2920 434, -1, -1, 71, 438, -1, -1, -1, -1, 443,
2921 -1, -1, 446, 81, -1, 64, -1, -1, -1, 4,
2922 5, 89, 7, 8, 9, -1, 94, -1, -1, 14,
2923 1321, 1322, -1, -1, -1, -1, -1, -1, -1, 1330,
2924 -1, -1, -1, -1, 29, -1, 31, 32, -1, -1,
2925 1341, -1, 37, -1, -1, -1, -1, -1, -1, -1,
2926 -1, 46, -1, -1, 49, -1, 1040, 1041, -1, 1043,
2927 55, -1, 57, 58, 123, -1, 125, -1, -1, 128,
2928 -1, -1, -1, 132, 133, -1, -1, -1, -1, 1380,
2929 139, 338, 141, 142, 143, -1, -1, 146, 147, 148,
2930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2931 -1, 1085, 1086, 1087, 1088, 1089, -1, -1, -1, 1093,
2932 1411, -1, -1, 3, 4, 5, 6, 7, 8, 9,
2933 -1, -1, 12, -1, 14, -1, 1110, 1111, 1112, -1,
2934 -1, -1, -1, -1, -1, -1, -1, 394, -1, 29,
2935 397, 31, 32, 587, 588, 402, -1, 37, -1, -1,
2936 -1, -1, 42, -1, -1, -1, 46, 1141, 602, 218,
2937 219, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2938 -1, 428, -1, 430, -1, -1, -1, -1, -1, -1,
2939 239, 71, -1, -1, -1, -1, 443, -1, -1, -1,
2940 -1, 81, -1, 637, -1, 639, 640, -1, -1, 89,
2941 -1, -1, -1, -1, 94, 462, -1, -1, -1, -1,
2942 -1, -1, 1196, 1197, -1, 1199, -1, -1, -1, 278,
2943 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2944 84, 85, 1533, -1, -1, 679, -1, -1, -1, -1,
2945 -1, -1, -1, -1, -1, -1, 690, 691, -1, 693,
2946 -1, -1, 1, -1, 3, 4, 5, 6, 7, 8,
2947 9, -1, -1, -1, -1, 14, 325, -1, 327, 328,
2948 -1, -1, -1, 717, -1, -1, -1, -1, 27, 28,
2949 29, -1, 31, 32, 33, -1, 730, -1, 37, -1,
2950 -1, -1, -1, 42, 353, -1, 45, 46, 47, -1,
2951 49, -1, -1, -1, -1, -1, 55, -1, 57, 58,
2952 -1, -1, 61, -1, -1, 374, -1, 1301, -1, 1303,
2953 -1, -1, 71, 3, 4, 5, 6, 7, 8, 9,
2954 -1, 390, 81, -1, 14, 394, -1, -1, 397, -1,
2955 89, -1, -1, 402, -1, 94, -1, -1, -1, -1,
2956 -1, 100, 32, -1, -1, -1, -1, 37, -1, -1,
2957 -1, -1, 42, -1, -1, -1, 46, -1, 48, -1,
2958 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2959 -1, 638, -1, -1, -1, -1, -1, -1, -1, -1,
2960 -1, 71, -1, -1, -1, -1, 1380, -1, -1, -1,
2961 459, 81, 461, -1, -1, -1, -1, -1, -1, 89,
2962 -1, 91, -1, -1, 94, 95, 860, 861, 862, -1,
2963 -1, -1, -1, -1, -1, -1, 683, -1, 487, -1,
2964 -1, -1, -1, 690, 691, -1, 693, 1421, 1422, 1423,
2965 -1, -1, -1, -1, -1, -1, 890, 891, 892, -1,
2966 -1, -1, -1, 897, -1, -1, -1, -1, -1, -1,
2967 -1, -1, -1, -1, -1, -1, 723, 1451, 725, -1,
2968 -1, -1, -1, 730, 731, 732, -1, -1, -1, -1,
2969 -1, -1, -1, -1, -1, -1, -1, 931, -1, -1,
2970 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
2971 74, 75, 561, 77, 78, 79, 80, 81, 82, 83,
2972 84, 85, 571, 572, -1, 574, 575, -1, -1, -1,
2973 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
2974 -1, 8, 9, 10, 11, -1, 13, 14, -1, 983,
2975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2976 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
2977 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
2978 629, -1, -1, 50, 51, 52, 53, 54, 55, -1,
2979 57, 58, 641, -1, -1, 62, 63, -1, -1, -1,
2980 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
2981 659, -1, 79, 80, 81, -1, -1, -1, -1, -1,
2982 87, 88, 89, -1, -1, -1, -1, 94, -1, -1,
2983 -1, -1, 1066, -1, -1, -1, -1, -1, -1, -1,
2984 -1, -1, -1, 890, 891, 112, -1, 32, -1, -1,
2985 -1, 1085, 1086, 1087, 1088, 1089, -1, 1091, -1, 1093,
2986 -1, -1, -1, -1, -1, -1, -1, -1, 717, -1,
2987 -1, 720, -1, -1, -1, -1, 1110, 1111, 1112, 64,
2988 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2989 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2990 85, -1, -1, -1, 753, 754, 755, 1141, -1, -1,
2991 -1, -1, -1, 60, -1, -1, 765, 64, 65, 66,
2992 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2993 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
2994 -1, -1, -1, -1, -1, -1, -1, 994, 73, 74,
2995 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2996 85, -1, 1196, 1197, 1, 1199, 3, 4, 5, 6,
2997 7, 8, 9, 10, 11, 12, 13, 14, -1, -1,
2998 -1, -1, -1, -1, -1, -1, -1, -1, 837, -1,
2999 839, -1, 29, 30, 31, 32, 33, -1, 35, 36,
3000 37, 850, 39, 40, 41, 42, 43, 44, -1, 46,
3001 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3002 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3003 -1, 68, -1, -1, 71, -1, -1, -1, 1085, 1086,
3004 -1, -1, 79, 80, 81, -1, 1093, -1, -1, -1,
3005 87, 88, 89, -1, 91, -1, -1, 94, 95, -1,
3006 -1, 98, -1, -1, -1, -1, -1, 1301, -1, 1303,
3007 -1, -1, -1, -1, -1, 112, -1, 3, 4, 5,
3008 6, 7, 8, 9, 10, 11, 12, 13, 14, -1,
3009 -1, -1, -1, -1, 1141, -1, -1, -1, -1, 1146,
3010 -1, 1148, -1, 29, 30, 31, 32, 33, 957, 35,
3011 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3012 46, -1, 48, -1, 50, 51, 52, 53, 54, 55,
3013 -1, 57, 58, -1, -1, 984, 62, -1, -1, -1,
3014 -1, -1, 68, -1, -1, 71, 1380, -1, -1, 1196,
3015 1197, -1, 1199, 79, 80, 81, -1, -1, -1, -1,
3016 -1, 87, 88, 89, -1, 91, -1, -1, 94, 95,
3017 -1, -1, 98, -1, -1, -1, -1, -1, -1, -1,
3018 -1, -1, -1, -1, -1, -1, 112, 1421, 1422, 1423,
3019 -1, 1040, 1041, -1, 1043, -1, -1, -1, -1, 3,
3020 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
3021 14, -1, -1, -1, -1, -1, -1, 1451, -1, -1,
3022 -1, -1, -1, -1, -1, 29, -1, 31, 32, -1,
3023 -1, -1, -1, 37, -1, -1, -1, -1, 42, -1,
3024 -1, -1, 46, -1, 48, -1, -1, -1, -1, -1,
3025 1099, 55, -1, 57, 58, 1302, -1, 1, -1, 3,
3026 4, 5, 6, 7, 8, 9, -1, 71, 12, -1,
3027 14, -1, -1, -1, -1, -1, -1, 81, 1127, -1,
3028 -1, 25, -1, 27, 28, 89, -1, 91, 32, -1,
3029 94, 95, -1, 37, -1, 1144, -1, 1146, 42, -1,
3030 -1, -1, 46, -1, 48, -1, -1, -1, -1, -1,
3031 -1, 55, -1, 57, 58, 59, 60, 61, -1, 63,
3032 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3033 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3034 84, 85, -1, 87, 88, 89, -1, 91, 92, 93,
3035 94, 95, 96, -1, 98, 99, -1, -1, -1, -1,
3036 104, -1, -1, -1, -1, 109, 110, 111, 1, 113,
3037 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3038 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
3039 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3040 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3041 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3042 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
3043 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3044 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3045 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3046 -1, 94, 1, 96, 3, 4, 5, 6, 7, 8,
3047 9, 10, 11, 12, 13, 14, -1, -1, -1, 112,
3048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3049 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3050 39, 40, 41, 42, 43, 44, -1, 46, -1, 48,
3051 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3052 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3053 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3054 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3055 89, -1, 91, -1, -1, 94, 95, -1, 1, 98,
3056 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3057 13, 14, -1, 112, -1, -1, -1, -1, -1, -1,
3058 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3059 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3060 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3061 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3062 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3063 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3064 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3065 -1, 94, -1, -1, -1, 98, -1, -1, -1, -1,
3066 -1, -1, -1, -1, -1, -1, -1, 110, 1, 112,
3067 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3068 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3069 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3070 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3071 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3072 53, 54, 55, -1, 57, 58, 59, -1, 61, 62,
3073 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3074 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3075 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3076 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3077 11, -1, 13, 14, -1, -1, -1, -1, -1, 112,
3078 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3079 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3080 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3081 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3082 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3083 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3084 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3085 -1, -1, -1, 94, 95, 1, -1, 3, 4, 5,
3086 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3087 111, 112, -1, -1, -1, 21, -1, -1, -1, -1,
3088 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3089 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3090 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3091 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3092 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3093 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3094 -1, 87, 88, 89, -1, -1, -1, 1, 94, 3,
3095 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3096 14, -1, -1, -1, -1, 111, 112, 21, -1, -1,
3097 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3098 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3099 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3100 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3101 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3102 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3103 -1, -1, -1, 87, 88, 89, -1, -1, -1, 1,
3104 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3105 -1, 13, 14, -1, -1, -1, -1, 111, 112, -1,
3106 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3107 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3108 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3109 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3110 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3111 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3112 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3113 -1, -1, 94, 95, 1, -1, 3, 4, 5, 6,
3114 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3115 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3116 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3117 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3118 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3119 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3120 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3121 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3122 87, 88, 89, -1, -1, -1, -1, 94, -1, -1,
3123 1, -1, 3, 4, 5, 6, 103, 8, 9, 10,
3124 11, -1, 13, 14, -1, 112, -1, -1, -1, -1,
3125 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3126 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3127 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3128 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3129 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3130 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3131 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3132 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3133 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3134 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3135 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3136 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3137 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3138 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3139 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3140 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3141 89, -1, -1, -1, 1, 94, 3, 4, 5, 6,
3142 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3143 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3144 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3145 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3146 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3147 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3148 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3149 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3150 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3151 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3152 -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3153 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3154 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3155 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3156 55, -1, 57, 58, -1, -1, 61, 62, -1, -1,
3157 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3158 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3159 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3160 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3161 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3162 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3163 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3164 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3165 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3166 -1, -1, -1, -1, -1, 68, 1, -1, 71, 4,
3167 5, -1, -1, 8, 9, -1, 79, 80, 81, 14,
3168 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3169 -1, 94, -1, -1, 29, -1, 31, -1, -1, -1,
3170 -1, -1, 37, -1, 39, 40, -1, 110, -1, 112,
3171 -1, 46, -1, 48, -1, -1, -1, -1, -1, -1,
3172 55, -1, 57, 58, -1, 60, -1, -1, -1, 64,
3173 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3174 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3175 -1, -1, 87, 88, 89, -1, -1, 92, -1, 1,
3176 95, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3177 -1, 13, 14, -1, -1, -1, -1, 112, -1, -1,
3178 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3179 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3180 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3181 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3182 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3183 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3184 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3185 -1, 1, 94, 3, 4, 5, 6, -1, 8, 9,
3186 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3187 112, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3188 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3189 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3190 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3191 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3192 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3193 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3194 -1, -1, -1, 1, 94, 3, 4, 5, 6, -1,
3195 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3196 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3197 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3198 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3199 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3200 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3201 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3202 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3203 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3204 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3205 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3206 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3207 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3208 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3209 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3210 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3211 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3212 -1, -1, -1, 94, 70, 71, 72, 73, 74, 75,
3213 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3214 -1, 112, 113, 3, 4, 5, 6, 7, 8, 9,
3215 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
3216 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3217 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3218 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3219 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3220 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3221 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3222 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3223 -1, -1, -1, -1, 94, -1, 96, -1, -1, -1,
3224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3225 -1, 111, 112, 3, 4, 5, 6, 7, 8, 9,
3226 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
3227 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3228 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3229 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3230 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3231 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3232 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3233 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3234 -1, -1, -1, -1, 94, -1, 96, -1, -1, 3,
3235 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3236 14, 15, 112, 17, 18, 19, 20, 21, 22, 23,
3237 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3238 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3239 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3240 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3241 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3242 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3243 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3244 94, -1, 96, -1, -1, 3, 4, 5, 6, 7,
3245 8, 9, 10, 11, -1, 13, 14, 15, 112, 17,
3246 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3247 28, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3248 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3249 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3250 58, -1, -1, 61, 62, -1, -1, -1, -1, -1,
3251 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3252 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3253 88, 89, -1, -1, -1, -1, 94, -1, 96, 3,
3254 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3255 14, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3256 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3257 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3258 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3259 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3260 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3261 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3262 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3263 94, 95, -1, -1, 98, 3, 4, 5, 6, -1,
3264 8, 9, 10, 11, -1, 13, 14, -1, 112, -1,
3265 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3266 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3267 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3268 48, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3269 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3270 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3271 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3272 88, 89, -1, 91, -1, -1, 94, 95, 3, 4,
3273 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3274 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3275 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3276 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3277 -1, 46, -1, 48, -1, 50, 51, 52, 53, 54,
3278 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3279 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3280 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3281 -1, -1, 87, 88, 89, -1, 91, -1, -1, 94,
3282 95, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3283 -1, 13, 14, -1, -1, -1, -1, 112, -1, -1,
3284 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3285 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3286 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3287 52, 53, 54, 55, -1, 57, 58, -1, -1, 61,
3288 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3289 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3290 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3291 -1, -1, 94, 3, 4, 5, 6, 7, 8, 9,
3292 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3293 112, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3294 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3295 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3296 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3297 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3298 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3299 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3300 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3301 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3302 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3303 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3304 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3305 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3306 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3307 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3308 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3309 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3310 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3311 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3312 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3313 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3314 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3315 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3316 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3317 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3318 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3319 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3320 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3321 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3322 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3323 59, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3324 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3325 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3326 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3327 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3328 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3329 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3330 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3331 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3332 -1, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3333 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3334 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3335 -1, -1, 94, 95, 3, 4, 5, 6, -1, 8,
3336 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3337 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3338 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3339 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3340 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3341 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3342 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3343 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3344 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3345 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3346 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3347 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3348 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3349 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3350 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3351 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3352 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3353 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3355 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3356 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3357 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3358 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3359 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3360 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3361 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3362 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3363 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3364 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3365 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3366 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3367 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3368 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3369 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3370 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3371 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3372 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3373 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3374 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3375 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3376 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3377 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3378 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3379 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3380 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3381 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3382 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3383 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3384 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3386 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3387 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3388 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3389 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3390 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3391 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3392 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3393 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3394 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3395 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3396 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3397 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3398 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3399 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3400 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3401 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3402 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3403 1, 71, 3, 4, 5, 6, 7, 8, 9, 79,
3404 80, 81, -1, 14, -1, -1, -1, 87, 88, 89,
3405 -1, -1, -1, -1, 94, -1, 27, 28, 29, -1,
3406 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
3407 -1, 42, 112, -1, 45, 46, 47, -1, 49, -1,
3408 -1, -1, -1, -1, 55, -1, 57, 58, -1, 1,
3409 61, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3410 71, -1, 14, -1, -1, -1, -1, -1, -1, -1,
3411 81, -1, -1, -1, -1, -1, -1, 29, 89, 31,
3412 32, 33, -1, 94, -1, 37, -1, -1, -1, 100,
3413 42, -1, -1, -1, 46, 47, -1, 49, -1, -1,
3414 -1, -1, -1, 55, -1, 57, 58, -1, -1, 61,
3415 -1, 63, 3, 4, 5, 6, 7, 8, 9, 71,
3416 -1, -1, -1, 14, -1, -1, -1, -1, -1, 81,
3417 -1, -1, -1, -1, -1, -1, -1, 89, 29, -1,
3418 31, 32, 94, -1, -1, -1, 37, -1, -1, -1,
3419 -1, 42, -1, -1, -1, 46, -1, 3, 4, 5,
3420 6, 7, 8, 9, 55, -1, 57, 58, 14, -1,
3421 -1, -1, 63, -1, -1, -1, -1, -1, -1, -1,
3422 71, -1, -1, 29, -1, 31, 32, -1, -1, -1,
3423 81, 37, -1, -1, -1, -1, 42, -1, 89, -1,
3424 46, -1, -1, 94, -1, -1, -1, -1, -1, 55,
3425 -1, 57, 58, 3, 4, 5, 6, 7, 8, 9,
3426 -1, -1, -1, -1, 14, 71, -1, -1, -1, -1,
3427 -1, -1, -1, -1, -1, 81, -1, -1, -1, 29,
3428 -1, 31, 32, 89, -1, -1, -1, 37, 94, -1,
3429 -1, -1, 42, -1, -1, -1, 46, -1, 3, 4,
3430 5, 6, 7, 8, 9, 55, -1, 57, 58, 14,
3431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, 71, -1, -1, -1, -1, -1, 32, -1, -1,
3433 -1, 81, 37, -1, -1, -1, -1, 42, -1, 89,
3434 -1, 46, -1, 48, 94, -1, -1, -1, -1, -1,
3435 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3436 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
3437 -1, -1, -1, -1, -1, -1, 81, -1, -1, -1,
3438 -1, -1, -1, -1, 89, -1, -1, -1, -1, 94,
3439 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3440 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3441 84, 85, 64, 65, 66, 67, 68, 69, 70, 71,
3442 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3443 82, 83, 84, 85, -1, -1, -1, -1, -1, 113,
3444 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3445 81, 82, 83, 84, 85, -1, -1, 109, 63, 64,
3446 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3447 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3448 85, 63, 64, 65, 66, 67, 68, 69, 70, 71,
3449 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3450 82, 83, 84, 85, 64, 65, 66, 67, 68, 69,
3451 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3452 80, 81, 82, 83, 84, 85, 68, 69, 70, 71,
3453 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3454 82, 83, 84, 85
3455 };
3456 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3457 #line 3 "/usr/lib/bison.simple"
3458
3459 /* Skeleton output parser for bison,
3460 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3461
3462 This program is free software; you can redistribute it and/or modify
3463 it under the terms of the GNU General Public License as published by
3464 the Free Software Foundation; either version 2, or (at your option)
3465 any later version.
3466
3467 This program is distributed in the hope that it will be useful,
3468 but WITHOUT ANY WARRANTY; without even the implied warranty of
3469 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3470 GNU General Public License for more details.
3471
3472 You should have received a copy of the GNU General Public License
3473 along with this program; if not, write to the Free Software
3474 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3475
3476 /* As a special exception, when this file is copied by Bison into a
3477 Bison output file, you may use that output file without restriction.
3478 This special exception was added by the Free Software Foundation
3479 in version 1.24 of Bison. */
3480
3481 #ifndef alloca
3482 #ifdef __GNUC__
3483 #define alloca __builtin_alloca
3484 #else /* not GNU C. */
3485 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3486 #include <alloca.h>
3487 #else /* not sparc */
3488 #if defined (MSDOS) && !defined (__TURBOC__)
3489 #include <malloc.h>
3490 #else /* not MSDOS, or __TURBOC__ */
3491 #if defined(_AIX)
3492 #include <malloc.h>
3493 #pragma alloca
3494 #else /* not MSDOS, __TURBOC__, or _AIX */
3495 #ifdef __hpux
3496 #ifdef __cplusplus
3497 extern "C" {
3498 void *alloca (unsigned int);
3499 };
3500 #else /* not __cplusplus */
3501 void *alloca ();
3502 #endif /* not __cplusplus */
3503 #endif /* __hpux */
3504 #endif /* not _AIX */
3505 #endif /* not MSDOS, or __TURBOC__ */
3506 #endif /* not sparc. */
3507 #endif /* not GNU C. */
3508 #endif /* alloca not defined. */
3509
3510 /* This is the parser code that is written into each bison parser
3511 when the %semantic_parser declaration is not specified in the grammar.
3512 It was written by Richard Stallman by simplifying the hairy parser
3513 used when %semantic_parser is specified. */
3514
3515 /* Note: there must be only one dollar sign in this file.
3516 It is replaced by the list of actions, each action
3517 as one case of the switch. */
3518
3519 #define yyerrok (yyerrstatus = 0)
3520 #define yyclearin (yychar = YYEMPTY)
3521 #define YYEMPTY -2
3522 #define YYEOF 0
3523 #define YYACCEPT return(0)
3524 #define YYABORT return(1)
3525 #define YYERROR goto yyerrlab1
3526 /* Like YYERROR except do call yyerror.
3527 This remains here temporarily to ease the
3528 transition to the new meaning of YYERROR, for GCC.
3529 Once GCC version 2 has supplanted version 1, this can go. */
3530 #define YYFAIL goto yyerrlab
3531 #define YYRECOVERING() (!!yyerrstatus)
3532 #define YYBACKUP(token, value) \
3533 do \
3534 if (yychar == YYEMPTY && yylen == 1) \
3535 { yychar = (token), yylval = (value); \
3536 yychar1 = YYTRANSLATE (yychar); \
3537 YYPOPSTACK; \
3538 goto yybackup; \
3539 } \
3540 else \
3541 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3542 while (0)
3543
3544 #define YYTERROR 1
3545 #define YYERRCODE 256
3546
3547 #ifndef YYPURE
3548 #define YYLEX yylex()
3549 #endif
3550
3551 #ifdef YYPURE
3552 #ifdef YYLSP_NEEDED
3553 #ifdef YYLEX_PARAM
3554 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3555 #else
3556 #define YYLEX yylex(&yylval, &yylloc)
3557 #endif
3558 #else /* not YYLSP_NEEDED */
3559 #ifdef YYLEX_PARAM
3560 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3561 #else
3562 #define YYLEX yylex(&yylval)
3563 #endif
3564 #endif /* not YYLSP_NEEDED */
3565 #endif
3566
3567 /* If nonreentrant, generate the variables here */
3568
3569 #ifndef YYPURE
3570
3571 int yychar; /* the lookahead symbol */
3572 YYSTYPE yylval; /* the semantic value of the */
3573 /* lookahead symbol */
3574
3575 #ifdef YYLSP_NEEDED
3576 YYLTYPE yylloc; /* location data for the lookahead */
3577 /* symbol */
3578 #endif
3579
3580 int yynerrs; /* number of parse errors so far */
3581 #endif /* not YYPURE */
3582
3583 #if YYDEBUG != 0
3584 int yydebug; /* nonzero means print parse trace */
3585 /* Since this is uninitialized, it does not stop multiple parsers
3586 from coexisting. */
3587 #endif
3588
3589 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3590
3591 #ifndef YYINITDEPTH
3592 #define YYINITDEPTH 200
3593 #endif
3594
3595 /* YYMAXDEPTH is the maximum size the stacks can grow to
3596 (effective only if the built-in stack extension method is used). */
3597
3598 #if YYMAXDEPTH == 0
3599 #undef YYMAXDEPTH
3600 #endif
3601
3602 #ifndef YYMAXDEPTH
3603 #define YYMAXDEPTH 10000
3604 #endif
3605
3606 /* Prevent warning if -Wstrict-prototypes. */
3607 #ifdef __GNUC__
3608 int yyparse (void);
3609 #endif
3610 \f
3611 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3612 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3613 #else /* not GNU C or C++ */
3614 #ifndef __cplusplus
3615
3616 /* This is the most reliable way to avoid incompatibilities
3617 in available built-in functions on various systems. */
3618 static void
3619 __yy_memcpy (to, from, count)
3620 char *to;
3621 char *from;
3622 int count;
3623 {
3624 register char *f = from;
3625 register char *t = to;
3626 register int i = count;
3627
3628 while (i-- > 0)
3629 *t++ = *f++;
3630 }
3631
3632 #else /* __cplusplus */
3633
3634 /* This is the most reliable way to avoid incompatibilities
3635 in available built-in functions on various systems. */
3636 static void
3637 __yy_memcpy (char *to, char *from, int count)
3638 {
3639 register char *f = from;
3640 register char *t = to;
3641 register int i = count;
3642
3643 while (i-- > 0)
3644 *t++ = *f++;
3645 }
3646
3647 #endif
3648 #endif
3649 \f
3650 #line 196 "/usr/lib/bison.simple"
3651
3652 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3653 into yyparse. The argument should have type void *.
3654 It should actually point to an object.
3655 Grammar actions can access the variable by casting it
3656 to the proper pointer type. */
3657
3658 #ifdef YYPARSE_PARAM
3659 #ifdef __cplusplus
3660 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3661 #define YYPARSE_PARAM_DECL
3662 #else /* not __cplusplus */
3663 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3664 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3665 #endif /* not __cplusplus */
3666 #else /* not YYPARSE_PARAM */
3667 #define YYPARSE_PARAM_ARG
3668 #define YYPARSE_PARAM_DECL
3669 #endif /* not YYPARSE_PARAM */
3670
3671 int
3672 yyparse(YYPARSE_PARAM_ARG)
3673 YYPARSE_PARAM_DECL
3674 {
3675 register int yystate;
3676 register int yyn;
3677 register short *yyssp;
3678 register YYSTYPE *yyvsp;
3679 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3680 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3681
3682 short yyssa[YYINITDEPTH]; /* the state stack */
3683 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3684
3685 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3686 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3687
3688 #ifdef YYLSP_NEEDED
3689 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3690 YYLTYPE *yyls = yylsa;
3691 YYLTYPE *yylsp;
3692
3693 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3694 #else
3695 #define YYPOPSTACK (yyvsp--, yyssp--)
3696 #endif
3697
3698 int yystacksize = YYINITDEPTH;
3699
3700 #ifdef YYPURE
3701 int yychar;
3702 YYSTYPE yylval;
3703 int yynerrs;
3704 #ifdef YYLSP_NEEDED
3705 YYLTYPE yylloc;
3706 #endif
3707 #endif
3708
3709 YYSTYPE yyval; /* the variable used to return */
3710 /* semantic values from the action */
3711 /* routines */
3712
3713 int yylen;
3714
3715 #if YYDEBUG != 0
3716 if (yydebug)
3717 fprintf(stderr, "Starting parse\n");
3718 #endif
3719
3720 yystate = 0;
3721 yyerrstatus = 0;
3722 yynerrs = 0;
3723 yychar = YYEMPTY; /* Cause a token to be read. */
3724
3725 /* Initialize stack pointers.
3726 Waste one element of value and location stack
3727 so that they stay on the same level as the state stack.
3728 The wasted elements are never initialized. */
3729
3730 yyssp = yyss - 1;
3731 yyvsp = yyvs;
3732 #ifdef YYLSP_NEEDED
3733 yylsp = yyls;
3734 #endif
3735
3736 /* Push a new state, which is found in yystate . */
3737 /* In all cases, when you get here, the value and location stacks
3738 have just been pushed. so pushing a state here evens the stacks. */
3739 yynewstate:
3740
3741 *++yyssp = yystate;
3742
3743 if (yyssp >= yyss + yystacksize - 1)
3744 {
3745 /* Give user a chance to reallocate the stack */
3746 /* Use copies of these so that the &'s don't force the real ones into memory. */
3747 YYSTYPE *yyvs1 = yyvs;
3748 short *yyss1 = yyss;
3749 #ifdef YYLSP_NEEDED
3750 YYLTYPE *yyls1 = yyls;
3751 #endif
3752
3753 /* Get the current used size of the three stacks, in elements. */
3754 int size = yyssp - yyss + 1;
3755
3756 #ifdef yyoverflow
3757 /* Each stack pointer address is followed by the size of
3758 the data in use in that stack, in bytes. */
3759 #ifdef YYLSP_NEEDED
3760 /* This used to be a conditional around just the two extra args,
3761 but that might be undefined if yyoverflow is a macro. */
3762 yyoverflow("parser stack overflow",
3763 &yyss1, size * sizeof (*yyssp),
3764 &yyvs1, size * sizeof (*yyvsp),
3765 &yyls1, size * sizeof (*yylsp),
3766 &yystacksize);
3767 #else
3768 yyoverflow("parser stack overflow",
3769 &yyss1, size * sizeof (*yyssp),
3770 &yyvs1, size * sizeof (*yyvsp),
3771 &yystacksize);
3772 #endif
3773
3774 yyss = yyss1; yyvs = yyvs1;
3775 #ifdef YYLSP_NEEDED
3776 yyls = yyls1;
3777 #endif
3778 #else /* no yyoverflow */
3779 /* Extend the stack our own way. */
3780 if (yystacksize >= YYMAXDEPTH)
3781 {
3782 yyerror("parser stack overflow");
3783 return 2;
3784 }
3785 yystacksize *= 2;
3786 if (yystacksize > YYMAXDEPTH)
3787 yystacksize = YYMAXDEPTH;
3788 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3789 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3790 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3791 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3792 #ifdef YYLSP_NEEDED
3793 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3794 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3795 #endif
3796 #endif /* no yyoverflow */
3797
3798 yyssp = yyss + size - 1;
3799 yyvsp = yyvs + size - 1;
3800 #ifdef YYLSP_NEEDED
3801 yylsp = yyls + size - 1;
3802 #endif
3803
3804 #if YYDEBUG != 0
3805 if (yydebug)
3806 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3807 #endif
3808
3809 if (yyssp >= yyss + yystacksize - 1)
3810 YYABORT;
3811 }
3812
3813 #if YYDEBUG != 0
3814 if (yydebug)
3815 fprintf(stderr, "Entering state %d\n", yystate);
3816 #endif
3817
3818 goto yybackup;
3819 yybackup:
3820
3821 /* Do appropriate processing given the current state. */
3822 /* Read a lookahead token if we need one and don't already have one. */
3823 /* yyresume: */
3824
3825 /* First try to decide what to do without reference to lookahead token. */
3826
3827 yyn = yypact[yystate];
3828 if (yyn == YYFLAG)
3829 goto yydefault;
3830
3831 /* Not known => get a lookahead token if don't already have one. */
3832
3833 /* yychar is either YYEMPTY or YYEOF
3834 or a valid token in external form. */
3835
3836 if (yychar == YYEMPTY)
3837 {
3838 #if YYDEBUG != 0
3839 if (yydebug)
3840 fprintf(stderr, "Reading a token: ");
3841 #endif
3842 yychar = YYLEX;
3843 }
3844
3845 /* Convert token to internal form (in yychar1) for indexing tables with */
3846
3847 if (yychar <= 0) /* This means end of input. */
3848 {
3849 yychar1 = 0;
3850 yychar = YYEOF; /* Don't call YYLEX any more */
3851
3852 #if YYDEBUG != 0
3853 if (yydebug)
3854 fprintf(stderr, "Now at end of input.\n");
3855 #endif
3856 }
3857 else
3858 {
3859 yychar1 = YYTRANSLATE(yychar);
3860
3861 #if YYDEBUG != 0
3862 if (yydebug)
3863 {
3864 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3865 /* Give the individual parser a way to print the precise meaning
3866 of a token, for further debugging info. */
3867 #ifdef YYPRINT
3868 YYPRINT (stderr, yychar, yylval);
3869 #endif
3870 fprintf (stderr, ")\n");
3871 }
3872 #endif
3873 }
3874
3875 yyn += yychar1;
3876 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3877 goto yydefault;
3878
3879 yyn = yytable[yyn];
3880
3881 /* yyn is what to do for this token type in this state.
3882 Negative => reduce, -yyn is rule number.
3883 Positive => shift, yyn is new state.
3884 New state is final state => don't bother to shift,
3885 just return success.
3886 0, or most negative number => error. */
3887
3888 if (yyn < 0)
3889 {
3890 if (yyn == YYFLAG)
3891 goto yyerrlab;
3892 yyn = -yyn;
3893 goto yyreduce;
3894 }
3895 else if (yyn == 0)
3896 goto yyerrlab;
3897
3898 if (yyn == YYFINAL)
3899 YYACCEPT;
3900
3901 /* Shift the lookahead token. */
3902
3903 #if YYDEBUG != 0
3904 if (yydebug)
3905 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3906 #endif
3907
3908 /* Discard the token being shifted unless it is eof. */
3909 if (yychar != YYEOF)
3910 yychar = YYEMPTY;
3911
3912 *++yyvsp = yylval;
3913 #ifdef YYLSP_NEEDED
3914 *++yylsp = yylloc;
3915 #endif
3916
3917 /* count tokens shifted since error; after three, turn off error status. */
3918 if (yyerrstatus) yyerrstatus--;
3919
3920 yystate = yyn;
3921 goto yynewstate;
3922
3923 /* Do the default action for the current state. */
3924 yydefault:
3925
3926 yyn = yydefact[yystate];
3927 if (yyn == 0)
3928 goto yyerrlab;
3929
3930 /* Do a reduction. yyn is the number of a rule to reduce with. */
3931 yyreduce:
3932 yylen = yyr2[yyn];
3933 if (yylen > 0)
3934 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3935
3936 #if YYDEBUG != 0
3937 if (yydebug)
3938 {
3939 int i;
3940
3941 fprintf (stderr, "Reducing via rule %d (line %d), ",
3942 yyn, yyrline[yyn]);
3943
3944 /* Print the symbols being reduced, and their result. */
3945 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3946 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3947 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3948 }
3949 #endif
3950
3951
3952 switch (yyn) {
3953
3954 case 2:
3955 #line 314 "parse.y"
3956 {
3957 /* In case there were missing closebraces,
3958 get us back to the global binding level. */
3959 while (! global_bindings_p ())
3960 poplevel (0, 0, 0);
3961 finish_file ();
3962 ;
3963 break;}
3964 case 3:
3965 #line 328 "parse.y"
3966 { yyval.ttype = NULL_TREE; ;
3967 break;}
3968 case 4:
3969 #line 330 "parse.y"
3970 { yyval.ttype = NULL_TREE; ;
3971 break;}
3972 case 5:
3973 #line 332 "parse.y"
3974 { yyval.ttype = NULL_TREE; ;
3975 break;}
3976 case 8:
3977 #line 341 "parse.y"
3978 { have_extern_spec = 1;
3979 used_extern_spec = 0;
3980 yyval.ttype = NULL_TREE; ;
3981 break;}
3982 case 9:
3983 #line 346 "parse.y"
3984 { have_extern_spec = 0; ;
3985 break;}
3986 case 10:
3987 #line 351 "parse.y"
3988 { yyval.itype = pedantic;
3989 pedantic = 0; ;
3990 break;}
3991 case 13:
3992 #line 361 "parse.y"
3993 { if (pending_lang_change) do_pending_lang_change(); ;
3994 break;}
3995 case 14:
3996 #line 363 "parse.y"
3997 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
3998 pop_everything (); ;
3999 break;}
4000 case 15:
4001 #line 369 "parse.y"
4002 { if (pending_inlines) do_pending_inlines (); ;
4003 break;}
4004 case 16:
4005 #line 371 "parse.y"
4006 { if (pending_inlines) do_pending_inlines (); ;
4007 break;}
4008 case 17:
4009 #line 373 "parse.y"
4010 { if (pending_inlines) do_pending_inlines (); ;
4011 break;}
4012 case 18:
4013 #line 375 "parse.y"
4014 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4015 assemble_asm (yyvsp[-2].ttype); ;
4016 break;}
4017 case 19:
4018 #line 378 "parse.y"
4019 { pop_lang_context (); ;
4020 break;}
4021 case 20:
4022 #line 380 "parse.y"
4023 { if (pending_inlines) do_pending_inlines ();
4024 pop_lang_context (); ;
4025 break;}
4026 case 21:
4027 #line 383 "parse.y"
4028 { if (pending_inlines) do_pending_inlines ();
4029 pop_lang_context (); ;
4030 break;}
4031 case 22:
4032 #line 386 "parse.y"
4033 { push_namespace (yyvsp[-1].ttype); ;
4034 break;}
4035 case 23:
4036 #line 388 "parse.y"
4037 { pop_namespace (); ;
4038 break;}
4039 case 24:
4040 #line 390 "parse.y"
4041 { push_namespace (NULL_TREE); ;
4042 break;}
4043 case 25:
4044 #line 392 "parse.y"
4045 { pop_namespace (); ;
4046 break;}
4047 case 26:
4048 #line 394 "parse.y"
4049 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4050 break;}
4051 case 27:
4052 #line 396 "parse.y"
4053 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4054 break;}
4055 case 28:
4056 #line 398 "parse.y"
4057 {
4058 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4059 yyvsp[-1].ttype = lastiddecl;
4060 do_using_directive (yyvsp[-1].ttype);
4061 ;
4062 break;}
4063 case 29:
4064 #line 404 "parse.y"
4065 { pedantic = yyvsp[-1].itype; ;
4066 break;}
4067 case 30:
4068 #line 409 "parse.y"
4069 { yyval.ttype = yyvsp[0].ttype; ;
4070 break;}
4071 case 31:
4072 #line 411 "parse.y"
4073 { yyval.ttype = yyvsp[0].ttype; ;
4074 break;}
4075 case 32:
4076 #line 413 "parse.y"
4077 { yyval.ttype = yyvsp[0].ttype; ;
4078 break;}
4079 case 35:
4080 #line 420 "parse.y"
4081 { yyval.ttype = yyvsp[0].ttype; ;
4082 break;}
4083 case 36:
4084 #line 422 "parse.y"
4085 { yyval.ttype = yyvsp[0].ttype; ;
4086 break;}
4087 case 37:
4088 #line 427 "parse.y"
4089 { push_lang_context (yyvsp[0].ttype); ;
4090 break;}
4091 case 38:
4092 #line 429 "parse.y"
4093 { if (current_lang_name != yyvsp[0].ttype)
4094 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4095 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4096 break;}
4097 case 39:
4098 #line 436 "parse.y"
4099 { begin_template_parm_list (); ;
4100 break;}
4101 case 40:
4102 #line 438 "parse.y"
4103 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4104 break;}
4105 case 41:
4106 #line 440 "parse.y"
4107 { begin_specialization();
4108 yyval.ttype = NULL_TREE; ;
4109 break;}
4110 case 42:
4111 #line 446 "parse.y"
4112 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4113 break;}
4114 case 43:
4115 #line 448 "parse.y"
4116 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4117 break;}
4118 case 44:
4119 #line 453 "parse.y"
4120 { yyval.ttype = yyvsp[0].ttype; ;
4121 break;}
4122 case 45:
4123 #line 455 "parse.y"
4124 { yyval.ttype = NULL_TREE; ;
4125 break;}
4126 case 46:
4127 #line 459 "parse.y"
4128 {
4129 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
4130 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4131 sorry ("signature as template type parameter");
4132 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4133 {
4134 pedwarn ("template type parameters must use the keyword `class'");
4135 TREE_PURPOSE (yyval.ttype) = class_type_node;
4136 }
4137 ;
4138 break;}
4139 case 47:
4140 #line 470 "parse.y"
4141 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4142 break;}
4143 case 48:
4144 #line 475 "parse.y"
4145 {
4146 tree decl = build_decl (TYPE_DECL, yyvsp[0].ttype, NULL_TREE);
4147 tree tmpl = build_lang_decl (TEMPLATE_DECL, yyvsp[0].ttype, NULL_TREE);
4148 DECL_TEMPLATE_PARMS (tmpl) = current_template_parms;
4149 DECL_TEMPLATE_RESULT (tmpl) = decl;
4150 SET_DECL_ARTIFICIAL (decl);
4151 end_template_decl ();
4152
4153 if (yyvsp[-1].ttype == signature_type_node)
4154 sorry ("signature as template template parameter");
4155 else if (yyvsp[-1].ttype != class_type_node)
4156 pedwarn ("template template parameters must use the keyword `class'");
4157 yyval.ttype = build_tree_list (class_type_node, tmpl);
4158 ;
4159 break;}
4160 case 49:
4161 #line 500 "parse.y"
4162 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4163 break;}
4164 case 50:
4165 #line 502 "parse.y"
4166 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4167 break;}
4168 case 51:
4169 #line 504 "parse.y"
4170 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4171 break;}
4172 case 52:
4173 #line 506 "parse.y"
4174 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4175 break;}
4176 case 53:
4177 #line 508 "parse.y"
4178 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4179 break;}
4180 case 54:
4181 #line 510 "parse.y"
4182 {
4183 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4184 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4185 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4186 {
4187 error ("invalid default template argument");
4188 yyvsp[0].ttype = error_mark_node;
4189 }
4190 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4191 ;
4192 break;}
4193 case 55:
4194 #line 525 "parse.y"
4195 {
4196 if (yyvsp[-1].ttype)
4197 end_template_decl ();
4198 else
4199 end_specialization ();
4200 ;
4201 break;}
4202 case 56:
4203 #line 533 "parse.y"
4204 {
4205 if (yyvsp[-1].ttype)
4206 end_template_decl ();
4207 else
4208 end_specialization ();
4209 ;
4210 break;}
4211 case 57:
4212 #line 543 "parse.y"
4213 {;
4214 break;}
4215 case 58:
4216 #line 545 "parse.y"
4217 {;
4218 break;}
4219 case 59:
4220 #line 547 "parse.y"
4221 {
4222 note_list_got_semicolon (yyvsp[-2].ftype.t);
4223 ;
4224 break;}
4225 case 60:
4226 #line 551 "parse.y"
4227 { pedwarn ("empty declaration"); ;
4228 break;}
4229 case 62:
4230 #line 554 "parse.y"
4231 {
4232 tree t, attrs;
4233 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4234 shadow_tag (t);
4235 note_list_got_semicolon (yyvsp[-1].ftype.t);
4236 ;
4237 break;}
4238 case 66:
4239 #line 567 "parse.y"
4240 { yyval.itype = 0; ;
4241 break;}
4242 case 67:
4243 #line 569 "parse.y"
4244 { yyval.itype = 1; ;
4245 break;}
4246 case 73:
4247 #line 585 "parse.y"
4248 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4249 break;}
4250 case 74:
4251 #line 587 "parse.y"
4252 { ;
4253 break;}
4254 case 75:
4255 #line 589 "parse.y"
4256 { ;
4257 break;}
4258 case 76:
4259 #line 594 "parse.y"
4260 {
4261 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4262 if (yyvsp[-2].ttype != current_class_type)
4263 {
4264 push_nested_class (yyvsp[-2].ttype, 3);
4265 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4266 }
4267 ;
4268 break;}
4269 case 77:
4270 #line 603 "parse.y"
4271 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4272 break;}
4273 case 78:
4274 #line 605 "parse.y"
4275 {
4276 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4277 if (yyvsp[-4].ttype != current_class_type)
4278 {
4279 push_nested_class (yyvsp[-4].ttype, 3);
4280 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4281 }
4282 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4283 ;
4284 break;}
4285 case 79:
4286 #line 615 "parse.y"
4287 {
4288 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4289 if (yyvsp[-2].ttype != current_class_type)
4290 {
4291 push_nested_class (yyvsp[-2].ttype, 3);
4292 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4293 }
4294 ;
4295 break;}
4296 case 80:
4297 #line 624 "parse.y"
4298 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4299 break;}
4300 case 81:
4301 #line 626 "parse.y"
4302 {
4303 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4304 if (yyvsp[-4].ttype != current_class_type)
4305 {
4306 push_nested_class (yyvsp[-4].ttype, 3);
4307 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4308 }
4309 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4310 ;
4311 break;}
4312 case 82:
4313 #line 636 "parse.y"
4314 {
4315 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4316 if (yyvsp[-2].ttype != current_class_type)
4317 {
4318 push_nested_class (yyvsp[-2].ttype, 3);
4319 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4320 }
4321 ;
4322 break;}
4323 case 83:
4324 #line 645 "parse.y"
4325 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4326 break;}
4327 case 84:
4328 #line 647 "parse.y"
4329 {
4330 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4331 if (yyvsp[-4].ttype != current_class_type)
4332 {
4333 push_nested_class (yyvsp[-4].ttype, 3);
4334 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4335 }
4336 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4337 ;
4338 break;}
4339 case 85:
4340 #line 657 "parse.y"
4341 {
4342 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4343 if (yyvsp[-2].ttype != current_class_type)
4344 {
4345 push_nested_class (yyvsp[-2].ttype, 3);
4346 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4347 }
4348 ;
4349 break;}
4350 case 86:
4351 #line 666 "parse.y"
4352 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4353 break;}
4354 case 87:
4355 #line 668 "parse.y"
4356 {
4357 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4358 if (yyvsp[-4].ttype != current_class_type)
4359 {
4360 push_nested_class (yyvsp[-4].ttype, 3);
4361 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4362 }
4363 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4364 ;
4365 break;}
4366 case 88:
4367 #line 681 "parse.y"
4368 { tree specs, attrs;
4369 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4370 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4371 YYERROR1;
4372 reinit_parse_for_function ();
4373 yyval.ttype = NULL_TREE; ;
4374 break;}
4375 case 89:
4376 #line 688 "parse.y"
4377 { tree specs, attrs;
4378 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4379 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4380 YYERROR1;
4381 reinit_parse_for_function ();
4382 yyval.ttype = NULL_TREE; ;
4383 break;}
4384 case 90:
4385 #line 695 "parse.y"
4386 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4387 YYERROR1;
4388 reinit_parse_for_function ();
4389 yyval.ttype = NULL_TREE; ;
4390 break;}
4391 case 91:
4392 #line 700 "parse.y"
4393 { tree specs, attrs;
4394 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4395 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4396 YYERROR1;
4397 reinit_parse_for_function ();
4398 yyval.ttype = NULL_TREE; ;
4399 break;}
4400 case 92:
4401 #line 707 "parse.y"
4402 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4403 YYERROR1;
4404 reinit_parse_for_function ();
4405 yyval.ttype = NULL_TREE; ;
4406 break;}
4407 case 93:
4408 #line 715 "parse.y"
4409 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4410 break;}
4411 case 94:
4412 #line 717 "parse.y"
4413 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4414 break;}
4415 case 95:
4416 #line 719 "parse.y"
4417 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4418 break;}
4419 case 96:
4420 #line 721 "parse.y"
4421 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4422 break;}
4423 case 97:
4424 #line 728 "parse.y"
4425 { tree specs = strip_attrs (yyvsp[-1].ttype);
4426 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4427 rest_of_mdef:
4428 if (! yyval.ttype)
4429 YYERROR1;
4430 if (yychar == YYEMPTY)
4431 yychar = YYLEX;
4432 reinit_parse_for_method (yychar, yyval.ttype); ;
4433 break;}
4434 case 98:
4435 #line 737 "parse.y"
4436 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4437 break;}
4438 case 99:
4439 #line 739 "parse.y"
4440 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4441 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4442 break;}
4443 case 100:
4444 #line 742 "parse.y"
4445 { tree specs = strip_attrs (yyvsp[-1].ttype);
4446 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4447 break;}
4448 case 101:
4449 #line 745 "parse.y"
4450 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4451 break;}
4452 case 102:
4453 #line 747 "parse.y"
4454 { tree specs = strip_attrs (yyvsp[-1].ttype);
4455 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4456 break;}
4457 case 103:
4458 #line 750 "parse.y"
4459 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4460 break;}
4461 case 104:
4462 #line 752 "parse.y"
4463 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4464 break;}
4465 case 105:
4466 #line 757 "parse.y"
4467 {
4468 if (! current_function_parms_stored)
4469 store_parm_decls ();
4470 yyval.ttype = yyvsp[0].ttype;
4471 ;
4472 break;}
4473 case 106:
4474 #line 766 "parse.y"
4475 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4476 break;}
4477 case 107:
4478 #line 768 "parse.y"
4479 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4480 break;}
4481 case 108:
4482 #line 770 "parse.y"
4483 { store_return_init (yyval.ttype, NULL_TREE); ;
4484 break;}
4485 case 109:
4486 #line 775 "parse.y"
4487 {
4488 if (yyvsp[0].itype == 0)
4489 error ("no base initializers given following ':'");
4490 setup_vtbl_ptr ();
4491 /* Always keep the BLOCK node associated with the outermost
4492 pair of curley braces of a function. These are needed
4493 for correct operation of dwarfout.c. */
4494 keep_next_level ();
4495 ;
4496 break;}
4497 case 110:
4498 #line 788 "parse.y"
4499 {
4500 if (! current_function_parms_stored)
4501 store_parm_decls ();
4502
4503 if (DECL_CONSTRUCTOR_P (current_function_decl))
4504 {
4505 /* Make a contour for the initializer list. */
4506 pushlevel (0);
4507 clear_last_expr ();
4508 expand_start_bindings (0);
4509 }
4510 else if (current_class_type == NULL_TREE)
4511 error ("base initializers not allowed for non-member functions");
4512 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4513 error ("only constructors take base initializers");
4514 ;
4515 break;}
4516 case 111:
4517 #line 808 "parse.y"
4518 { yyval.itype = 0; ;
4519 break;}
4520 case 112:
4521 #line 810 "parse.y"
4522 { yyval.itype = 1; ;
4523 break;}
4524 case 115:
4525 #line 817 "parse.y"
4526 {
4527 if (current_class_name)
4528 pedwarn ("anachronistic old style base class initializer");
4529 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4530 ;
4531 break;}
4532 case 116:
4533 #line 823 "parse.y"
4534 {
4535 if (current_class_name)
4536 pedwarn ("anachronistic old style base class initializer");
4537 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4538 ;
4539 break;}
4540 case 117:
4541 #line 829 "parse.y"
4542 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4543 break;}
4544 case 118:
4545 #line 831 "parse.y"
4546 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4547 break;}
4548 case 119:
4549 #line 833 "parse.y"
4550 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4551 break;}
4552 case 120:
4553 #line 835 "parse.y"
4554 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4555 break;}
4556 case 121:
4557 #line 837 "parse.y"
4558 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4559 yyvsp[-1].ttype); ;
4560 break;}
4561 case 122:
4562 #line 840 "parse.y"
4563 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4564 void_type_node); ;
4565 break;}
4566 case 134:
4567 #line 866 "parse.y"
4568 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4569 yyungetc (';', 1); ;
4570 break;}
4571 case 136:
4572 #line 870 "parse.y"
4573 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4574 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4575 break;}
4576 case 138:
4577 #line 874 "parse.y"
4578 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4579 break;}
4580 case 140:
4581 #line 877 "parse.y"
4582 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4583 break;}
4584 case 142:
4585 #line 880 "parse.y"
4586 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4587 yyungetc (';', 1); ;
4588 break;}
4589 case 144:
4590 #line 885 "parse.y"
4591 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4592 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4593 break;}
4594 case 146:
4595 #line 889 "parse.y"
4596 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4597 break;}
4598 case 148:
4599 #line 892 "parse.y"
4600 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4601 break;}
4602 case 150:
4603 #line 897 "parse.y"
4604 { begin_explicit_instantiation(); ;
4605 break;}
4606 case 151:
4607 #line 900 "parse.y"
4608 { end_explicit_instantiation(); ;
4609 break;}
4610 case 152:
4611 #line 908 "parse.y"
4612 {
4613 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4614 if (yyval.ttype != error_mark_node)
4615 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4616 ;
4617 break;}
4618 case 153:
4619 #line 914 "parse.y"
4620 {
4621 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4622 if (yyval.ttype != error_mark_node)
4623 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4624 ;
4625 break;}
4626 case 155:
4627 #line 924 "parse.y"
4628 {
4629 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4630 if (yyval.ttype != error_mark_node)
4631 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4632 ;
4633 break;}
4634 case 157:
4635 #line 934 "parse.y"
4636 {
4637 /* Handle `Class<Class<Type>>' without space in the `>>' */
4638 pedwarn ("`>>' should be `> >' in template class name");
4639 yyungetc ('>', 1);
4640 ;
4641 break;}
4642 case 158:
4643 #line 943 "parse.y"
4644 { yyval.ttype = NULL_TREE; ;
4645 break;}
4646 case 160:
4647 #line 949 "parse.y"
4648 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4649 break;}
4650 case 161:
4651 #line 951 "parse.y"
4652 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4653 break;}
4654 case 162:
4655 #line 956 "parse.y"
4656 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4657 break;}
4658 case 164:
4659 #line 962 "parse.y"
4660 { yyval.code = NEGATE_EXPR; ;
4661 break;}
4662 case 165:
4663 #line 964 "parse.y"
4664 { yyval.code = CONVERT_EXPR; ;
4665 break;}
4666 case 166:
4667 #line 966 "parse.y"
4668 { yyval.code = PREINCREMENT_EXPR; ;
4669 break;}
4670 case 167:
4671 #line 968 "parse.y"
4672 { yyval.code = PREDECREMENT_EXPR; ;
4673 break;}
4674 case 168:
4675 #line 970 "parse.y"
4676 { yyval.code = TRUTH_NOT_EXPR; ;
4677 break;}
4678 case 169:
4679 #line 975 "parse.y"
4680 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4681 break;}
4682 case 171:
4683 #line 981 "parse.y"
4684 { error ("ANSI C++ forbids an empty condition for `%s'",
4685 cond_stmt_keyword);
4686 yyval.ttype = integer_zero_node; ;
4687 break;}
4688 case 172:
4689 #line 985 "parse.y"
4690 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4691 break;}
4692 case 173:
4693 #line 990 "parse.y"
4694 { error ("ANSI C++ forbids an empty condition for `%s'",
4695 cond_stmt_keyword);
4696 yyval.ttype = integer_zero_node; ;
4697 break;}
4698 case 174:
4699 #line 994 "parse.y"
4700 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4701 break;}
4702 case 175:
4703 #line 999 "parse.y"
4704 { yyval.ttype = NULL_TREE; ;
4705 break;}
4706 case 176:
4707 #line 1001 "parse.y"
4708 { yyval.ttype = condition_conversion (yyval.ttype); ;
4709 break;}
4710 case 177:
4711 #line 1003 "parse.y"
4712 { yyval.ttype = NULL_TREE; ;
4713 break;}
4714 case 178:
4715 #line 1008 "parse.y"
4716 { {
4717 tree d;
4718 for (d = getdecls (); d; d = TREE_CHAIN (d))
4719 if (TREE_CODE (d) == TYPE_DECL) {
4720 tree s = TREE_TYPE (d);
4721 if (TREE_CODE (s) == RECORD_TYPE)
4722 cp_error ("definition of class `%T' in condition", s);
4723 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4724 cp_error ("definition of enum `%T' in condition", s);
4725 }
4726 }
4727 current_declspecs = yyvsp[-4].ftype.t;
4728 yyvsp[0].itype = suspend_momentary ();
4729 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4730 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4731 /*prefix_attributes*/ NULL_TREE);
4732 ;
4733 break;}
4734 case 179:
4735 #line 1026 "parse.y"
4736 {
4737 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4738 resume_momentary (yyvsp[-2].itype);
4739 yyval.ttype = yyvsp[-1].ttype;
4740 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4741 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4742 ;
4743 break;}
4744 case 185:
4745 #line 1045 "parse.y"
4746 {
4747 if (processing_template_decl)
4748 {
4749 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4750 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4751 add_tree (yyval.ttype);
4752 }
4753 ;
4754 break;}
4755 case 186:
4756 #line 1054 "parse.y"
4757 {
4758 if (processing_template_decl)
4759 {
4760 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4761 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4762 last_tree = yyvsp[-1].ttype;
4763 }
4764 finish_stmt ();
4765 ;
4766 break;}
4767 case 188:
4768 #line 1069 "parse.y"
4769 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4770 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4771 break;}
4772 case 189:
4773 #line 1072 "parse.y"
4774 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4775 build_expr_list (NULL_TREE, error_mark_node)); ;
4776 break;}
4777 case 190:
4778 #line 1075 "parse.y"
4779 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4780 break;}
4781 case 191:
4782 #line 1077 "parse.y"
4783 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4784 break;}
4785 case 192:
4786 #line 1082 "parse.y"
4787 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4788 break;}
4789 case 194:
4790 #line 1088 "parse.y"
4791 { yyval.ttype = yyvsp[0].ttype; ;
4792 break;}
4793 case 195:
4794 #line 1091 "parse.y"
4795 { yyval.ttype = yyvsp[0].ttype;
4796 pedantic = yyvsp[-1].itype; ;
4797 break;}
4798 case 196:
4799 #line 1094 "parse.y"
4800 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4801 break;}
4802 case 197:
4803 #line 1096 "parse.y"
4804 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4805 break;}
4806 case 198:
4807 #line 1098 "parse.y"
4808 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4809 break;}
4810 case 199:
4811 #line 1100 "parse.y"
4812 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4813 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4814 TREE_NEGATED_INT (yyval.ttype) = 1;
4815 overflow_warning (yyval.ttype);
4816 ;
4817 break;}
4818 case 200:
4819 #line 1107 "parse.y"
4820 { tree label = lookup_label (yyvsp[0].ttype);
4821 if (pedantic)
4822 pedwarn ("ANSI C++ forbids `&&'");
4823 if (label == NULL_TREE)
4824 yyval.ttype = null_pointer_node;
4825 else
4826 {
4827 TREE_USED (label) = 1;
4828 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4829 TREE_CONSTANT (yyval.ttype) = 1;
4830 }
4831 ;
4832 break;}
4833 case 201:
4834 #line 1120 "parse.y"
4835 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4836 break;}
4837 case 202:
4838 #line 1122 "parse.y"
4839 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4840 break;}
4841 case 203:
4842 #line 1124 "parse.y"
4843 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4844 break;}
4845 case 204:
4846 #line 1126 "parse.y"
4847 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4848 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4849 break;}
4850 case 205:
4851 #line 1132 "parse.y"
4852 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4853 check_for_new_type ("new", yyvsp[0].ftype); ;
4854 break;}
4855 case 206:
4856 #line 1135 "parse.y"
4857 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4858 check_for_new_type ("new", yyvsp[-1].ftype); ;
4859 break;}
4860 case 207:
4861 #line 1138 "parse.y"
4862 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4863 check_for_new_type ("new", yyvsp[0].ftype); ;
4864 break;}
4865 case 208:
4866 #line 1141 "parse.y"
4867 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4868 check_for_new_type ("new", yyvsp[-1].ftype); ;
4869 break;}
4870 case 209:
4871 #line 1144 "parse.y"
4872 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4873 NULL_TREE, yyvsp[-3].itype);
4874 check_for_new_type ("new", yyvsp[-1].ftype); ;
4875 break;}
4876 case 210:
4877 #line 1148 "parse.y"
4878 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4879 check_for_new_type ("new", yyvsp[-2].ftype); ;
4880 break;}
4881 case 211:
4882 #line 1151 "parse.y"
4883 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4884 check_for_new_type ("new", yyvsp[-1].ftype); ;
4885 break;}
4886 case 212:
4887 #line 1154 "parse.y"
4888 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4889 check_for_new_type ("new", yyvsp[-2].ftype); ;
4890 break;}
4891 case 213:
4892 #line 1158 "parse.y"
4893 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4894 break;}
4895 case 214:
4896 #line 1160 "parse.y"
4897 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4898 if (yychar == YYEMPTY)
4899 yychar = YYLEX; ;
4900 break;}
4901 case 215:
4902 #line 1164 "parse.y"
4903 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4904 if (yychar == YYEMPTY)
4905 yychar = YYLEX; ;
4906 break;}
4907 case 216:
4908 #line 1168 "parse.y"
4909 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4910 break;}
4911 case 217:
4912 #line 1170 "parse.y"
4913 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4914 break;}
4915 case 218:
4916 #line 1175 "parse.y"
4917 { yyval.ttype = yyvsp[-1].ttype; ;
4918 break;}
4919 case 219:
4920 #line 1177 "parse.y"
4921 {
4922 yyval.ttype = yyvsp[-1].ttype;
4923 pedwarn ("old style placement syntax, use () instead");
4924 ;
4925 break;}
4926 case 220:
4927 #line 1185 "parse.y"
4928 { yyval.ttype = yyvsp[-1].ttype; ;
4929 break;}
4930 case 221:
4931 #line 1187 "parse.y"
4932 { yyval.ttype = NULL_TREE; ;
4933 break;}
4934 case 222:
4935 #line 1189 "parse.y"
4936 {
4937 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4938 yyval.ttype = error_mark_node;
4939 ;
4940 break;}
4941 case 223:
4942 #line 1197 "parse.y"
4943 {
4944 if (pedantic)
4945 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4946 yyval.ttype = yyvsp[0].ttype;
4947 ;
4948 break;}
4949 case 224:
4950 #line 1207 "parse.y"
4951 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4952 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4953 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4954 check_for_new_type ("cast", yyvsp[-1].ftype); ;
4955 break;}
4956 case 225:
4957 #line 1212 "parse.y"
4958 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4959 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4960 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4961 check_for_new_type ("cast", yyvsp[-1].ftype); ;
4962 break;}
4963 case 227:
4964 #line 1221 "parse.y"
4965 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
4966 break;}
4967 case 228:
4968 #line 1223 "parse.y"
4969 {
4970 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
4971 nreverse (yyvsp[-2].ttype));
4972 if (pedantic)
4973 pedwarn ("ANSI C++ forbids constructor-expressions");
4974 /* Indicate that this was a GNU C constructor expression. */
4975 TREE_HAS_CONSTRUCTOR (init) = 1;
4976
4977 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
4978 ;
4979 break;}
4980 case 230:
4981 #line 1239 "parse.y"
4982 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4983 break;}
4984 case 231:
4985 #line 1241 "parse.y"
4986 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
4987 break;}
4988 case 232:
4989 #line 1243 "parse.y"
4990 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4991 break;}
4992 case 233:
4993 #line 1245 "parse.y"
4994 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4995 break;}
4996 case 234:
4997 #line 1247 "parse.y"
4998 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4999 break;}
5000 case 235:
5001 #line 1249 "parse.y"
5002 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5003 break;}
5004 case 236:
5005 #line 1251 "parse.y"
5006 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5007 break;}
5008 case 237:
5009 #line 1253 "parse.y"
5010 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5011 break;}
5012 case 238:
5013 #line 1255 "parse.y"
5014 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5015 break;}
5016 case 239:
5017 #line 1257 "parse.y"
5018 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5019 break;}
5020 case 240:
5021 #line 1259 "parse.y"
5022 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5023 break;}
5024 case 241:
5025 #line 1261 "parse.y"
5026 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5027 break;}
5028 case 242:
5029 #line 1263 "parse.y"
5030 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5031 break;}
5032 case 243:
5033 #line 1265 "parse.y"
5034 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5035 break;}
5036 case 244:
5037 #line 1267 "parse.y"
5038 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5039 break;}
5040 case 245:
5041 #line 1269 "parse.y"
5042 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5043 break;}
5044 case 246:
5045 #line 1271 "parse.y"
5046 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5047 break;}
5048 case 247:
5049 #line 1273 "parse.y"
5050 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5051 break;}
5052 case 248:
5053 #line 1275 "parse.y"
5054 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5055 break;}
5056 case 249:
5057 #line 1277 "parse.y"
5058 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5059 break;}
5060 case 250:
5061 #line 1279 "parse.y"
5062 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5063 if (yyval.ttype != error_mark_node)
5064 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5065 break;}
5066 case 251:
5067 #line 1283 "parse.y"
5068 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5069 break;}
5070 case 252:
5071 #line 1285 "parse.y"
5072 { yyval.ttype = build_throw (NULL_TREE); ;
5073 break;}
5074 case 253:
5075 #line 1287 "parse.y"
5076 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5077 break;}
5078 case 254:
5079 #line 1305 "parse.y"
5080 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5081 break;}
5082 case 260:
5083 #line 1314 "parse.y"
5084 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5085 break;}
5086 case 261:
5087 #line 1318 "parse.y"
5088 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5089 break;}
5090 case 262:
5091 #line 1320 "parse.y"
5092 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5093 break;}
5094 case 263:
5095 #line 1325 "parse.y"
5096 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5097 break;}
5098 case 264:
5099 #line 1327 "parse.y"
5100 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5101 break;}
5102 case 265:
5103 #line 1330 "parse.y"
5104 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5105 break;}
5106 case 270:
5107 #line 1342 "parse.y"
5108 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5109 break;}
5110 case 271:
5111 #line 1344 "parse.y"
5112 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5113 break;}
5114 case 272:
5115 #line 1346 "parse.y"
5116 { yyval.ttype = yyvsp[-1].ttype; ;
5117 break;}
5118 case 273:
5119 #line 1351 "parse.y"
5120 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5121 break;}
5122 case 274:
5123 #line 1353 "parse.y"
5124 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5125 break;}
5126 case 278:
5127 #line 1361 "parse.y"
5128 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5129 break;}
5130 case 279:
5131 #line 1366 "parse.y"
5132 {
5133 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5134 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5135 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5136 yyval.ttype = do_identifier (yyval.ttype, 1);
5137 ;
5138 break;}
5139 case 282:
5140 #line 1375 "parse.y"
5141 {
5142 if (processing_template_decl)
5143 push_obstacks (&permanent_obstack, &permanent_obstack);
5144 yyval.ttype = combine_strings (yyval.ttype);
5145 if (processing_template_decl)
5146 pop_obstacks ();
5147 ;
5148 break;}
5149 case 283:
5150 #line 1383 "parse.y"
5151 { char class;
5152 yyval.ttype = yyvsp[-1].ttype;
5153 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5154 if (class == 'e' || class == '1'
5155 || class == '2' || class == '<')
5156 /* This inhibits warnings in truthvalue_conversion. */
5157 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5158 break;}
5159 case 284:
5160 #line 1391 "parse.y"
5161 { char class;
5162 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5163 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5164 if (class == 'e' || class == '1'
5165 || class == '2' || class == '<')
5166 /* This inhibits warnings in truthvalue_conversion. */
5167 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5168 break;}
5169 case 285:
5170 #line 1399 "parse.y"
5171 { yyval.ttype = error_mark_node; ;
5172 break;}
5173 case 286:
5174 #line 1401 "parse.y"
5175 { if (current_function_decl == 0)
5176 {
5177 error ("braced-group within expression allowed only inside a function");
5178 YYERROR;
5179 }
5180 keep_next_level ();
5181 if (!processing_template_decl)
5182 yyval.ttype = expand_start_stmt_expr ();
5183 else
5184 yyval.ttype = NULL_TREE;
5185 ;
5186 break;}
5187 case 287:
5188 #line 1413 "parse.y"
5189 { tree rtl_exp;
5190 if (pedantic)
5191 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5192 if (!processing_template_decl)
5193 {
5194 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5195 /* The statements have side effects, so the
5196 group does. */
5197 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5198 }
5199
5200 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5201 {
5202 /* Make a BIND_EXPR for the BLOCK already made. */
5203 if (processing_template_decl)
5204 yyval.ttype = build (BIND_EXPR, NULL_TREE,
5205 NULL_TREE, last_tree, yyvsp[-1].ttype);
5206 else
5207 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5208 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5209
5210 /* Remove the block from the tree at this point.
5211 It gets put back at the proper place
5212 when the BIND_EXPR is expanded. */
5213 delete_block (yyvsp[-1].ttype);
5214 }
5215 else
5216 yyval.ttype = yyvsp[-1].ttype;
5217 ;
5218 break;}
5219 case 288:
5220 #line 1443 "parse.y"
5221 {
5222 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5223 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5224 && TREE_TYPE (yyval.ttype) != void_type_node)
5225 yyval.ttype = require_complete_type (yyval.ttype);
5226 ;
5227 break;}
5228 case 289:
5229 #line 1450 "parse.y"
5230 {
5231 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5232 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5233 && TREE_TYPE (yyval.ttype) != void_type_node)
5234 yyval.ttype = require_complete_type (yyval.ttype);
5235 ;
5236 break;}
5237 case 290:
5238 #line 1457 "parse.y"
5239 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5240 break;}
5241 case 291:
5242 #line 1459 "parse.y"
5243 { /* If we get an OFFSET_REF, turn it into what it really
5244 means (e.g., a COMPONENT_REF). This way if we've got,
5245 say, a reference to a static member that's being operated
5246 on, we don't end up trying to find a member operator for
5247 the class it's in. */
5248 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5249 yyval.ttype = resolve_offset_ref (yyval.ttype);
5250 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5251 break;}
5252 case 292:
5253 #line 1468 "parse.y"
5254 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5255 yyval.ttype = resolve_offset_ref (yyval.ttype);
5256 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5257 break;}
5258 case 293:
5259 #line 1473 "parse.y"
5260 { if (current_class_ptr)
5261 {
5262 #ifdef WARNING_ABOUT_CCD
5263 TREE_USED (current_class_ptr) = 1;
5264 #endif
5265 yyval.ttype = current_class_ptr;
5266 }
5267 else if (current_function_decl
5268 && DECL_STATIC_FUNCTION_P (current_function_decl))
5269 {
5270 error ("`this' is unavailable for static member functions");
5271 yyval.ttype = error_mark_node;
5272 }
5273 else
5274 {
5275 if (current_function_decl)
5276 error ("invalid use of `this' in non-member function");
5277 else
5278 error ("invalid use of `this' at top level");
5279 yyval.ttype = error_mark_node;
5280 }
5281 ;
5282 break;}
5283 case 294:
5284 #line 1496 "parse.y"
5285 {
5286 tree type = NULL_TREE;
5287 tree id = yyval.ttype;
5288
5289 /* This is a C cast in C++'s `functional' notation. */
5290 if (yyvsp[-1].ttype == error_mark_node)
5291 {
5292 yyval.ttype = error_mark_node;
5293 break;
5294 }
5295 #if 0
5296 if (yyvsp[-1].ttype == NULL_TREE)
5297 {
5298 error ("cannot cast null list to type `%s'",
5299 IDENTIFIER_POINTER (TYPE_NAME (id)));
5300 yyval.ttype = error_mark_node;
5301 break;
5302 }
5303 #endif
5304 #if 0
5305 /* type is not set! (mrs) */
5306 if (type == error_mark_node)
5307 yyval.ttype = error_mark_node;
5308 else
5309 #endif
5310 {
5311 if (id == ridpointers[(int) RID_CONST])
5312 type = build_type_variant (integer_type_node, 1, 0);
5313 else if (id == ridpointers[(int) RID_VOLATILE])
5314 type = build_type_variant (integer_type_node, 0, 1);
5315 #if 0
5316 /* should not be able to get here (mrs) */
5317 else if (id == ridpointers[(int) RID_FRIEND])
5318 {
5319 error ("cannot cast expression to `friend' type");
5320 yyval.ttype = error_mark_node;
5321 break;
5322 }
5323 #endif
5324 else my_friendly_abort (79);
5325 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5326 }
5327 ;
5328 break;}
5329 case 296:
5330 #line 1541 "parse.y"
5331 { tree type = groktypename (yyvsp[-4].ftype.t);
5332 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5333 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5334 break;}
5335 case 297:
5336 #line 1545 "parse.y"
5337 { tree type = groktypename (yyvsp[-4].ftype.t);
5338 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5339 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5340 break;}
5341 case 298:
5342 #line 1549 "parse.y"
5343 { tree type = groktypename (yyvsp[-4].ftype.t);
5344 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5345 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5346 break;}
5347 case 299:
5348 #line 1553 "parse.y"
5349 { tree type = groktypename (yyvsp[-4].ftype.t);
5350 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5351 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5352 break;}
5353 case 300:
5354 #line 1557 "parse.y"
5355 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5356 break;}
5357 case 301:
5358 #line 1559 "parse.y"
5359 { tree type = groktypename (yyvsp[-1].ftype.t);
5360 check_for_new_type ("typeid", yyvsp[-1].ftype);
5361 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5362 break;}
5363 case 302:
5364 #line 1563 "parse.y"
5365 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5366 break;}
5367 case 303:
5368 #line 1565 "parse.y"
5369 {
5370 got_scope = NULL_TREE;
5371 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5372 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5373 else
5374 yyval.ttype = yyvsp[0].ttype;
5375 ;
5376 break;}
5377 case 304:
5378 #line 1573 "parse.y"
5379 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5380 break;}
5381 case 305:
5382 #line 1575 "parse.y"
5383 { if (processing_template_decl)
5384 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5385 else
5386 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5387 break;}
5388 case 306:
5389 #line 1580 "parse.y"
5390 { if (processing_template_decl)
5391 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5392 NULL_TREE, NULL_TREE);
5393 else
5394 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5395 break;}
5396 case 307:
5397 #line 1586 "parse.y"
5398 {
5399 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5400 ;
5401 break;}
5402 case 308:
5403 #line 1590 "parse.y"
5404 {
5405 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5406 NULL_TREE, LOOKUP_NORMAL);
5407 ;
5408 break;}
5409 case 309:
5410 #line 1595 "parse.y"
5411 {
5412 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5413 NULL_TREE, LOOKUP_NORMAL);
5414 ;
5415 break;}
5416 case 310:
5417 #line 1600 "parse.y"
5418 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5419 break;}
5420 case 311:
5421 #line 1602 "parse.y"
5422 { if (processing_template_decl)
5423 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5424 else
5425 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5426 break;}
5427 case 312:
5428 #line 1607 "parse.y"
5429 {
5430 #if 0
5431 /* This is a future direction of this code, but because
5432 build_x_function_call cannot always undo what is done
5433 in build_component_ref entirely yet, we cannot do this. */
5434 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5435 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5436 && TREE_TYPE (yyval.ttype) != void_type_node)
5437 yyval.ttype = require_complete_type (yyval.ttype);
5438 #else
5439 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5440 LOOKUP_NORMAL);
5441 #endif
5442 ;
5443 break;}
5444 case 313:
5445 #line 1622 "parse.y"
5446 {
5447 #if 0
5448 /* This is a future direction of this code, but because
5449 build_x_function_call cannot always undo what is done
5450 in build_component_ref entirely yet, we cannot do this. */
5451 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5452 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5453 && TREE_TYPE (yyval.ttype) != void_type_node)
5454 yyval.ttype = require_complete_type (yyval.ttype);
5455 #else
5456 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5457 LOOKUP_NORMAL);
5458 #endif
5459 ;
5460 break;}
5461 case 314:
5462 #line 1637 "parse.y"
5463 {
5464 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5465 {
5466 warning ("signature name in scope resolution ignored");
5467 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5468 LOOKUP_NORMAL);
5469 }
5470 else
5471 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5472 ;
5473 break;}
5474 case 315:
5475 #line 1648 "parse.y"
5476 {
5477 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5478 {
5479 warning ("signature name in scope resolution ignored");
5480 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5481 LOOKUP_NORMAL);
5482 }
5483 else
5484 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5485 ;
5486 break;}
5487 case 316:
5488 #line 1660 "parse.y"
5489 {
5490 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5491 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5492 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5493 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5494 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5495 ;
5496 break;}
5497 case 317:
5498 #line 1668 "parse.y"
5499 {
5500 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5501 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5502 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5503 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5504 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5505 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5506 ;
5507 break;}
5508 case 318:
5509 #line 1677 "parse.y"
5510 {
5511 yyval.ttype = error_mark_node;
5512 ;
5513 break;}
5514 case 319:
5515 #line 1722 "parse.y"
5516 { yyval.itype = 0; ;
5517 break;}
5518 case 320:
5519 #line 1724 "parse.y"
5520 { got_scope = NULL_TREE; yyval.itype = 1; ;
5521 break;}
5522 case 321:
5523 #line 1729 "parse.y"
5524 { yyval.itype = 0; ;
5525 break;}
5526 case 322:
5527 #line 1731 "parse.y"
5528 { got_scope = NULL_TREE; yyval.itype = 1; ;
5529 break;}
5530 case 323:
5531 #line 1736 "parse.y"
5532 { yyval.ttype = boolean_true_node; ;
5533 break;}
5534 case 324:
5535 #line 1738 "parse.y"
5536 { yyval.ttype = boolean_false_node; ;
5537 break;}
5538 case 326:
5539 #line 1745 "parse.y"
5540 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5541 break;}
5542 case 327:
5543 #line 1750 "parse.y"
5544 {
5545 if (! current_function_parms_stored)
5546 store_parm_decls ();
5547 setup_vtbl_ptr ();
5548 /* Always keep the BLOCK node associated with the outermost
5549 pair of curley braces of a function. These are needed
5550 for correct operation of dwarfout.c. */
5551 keep_next_level ();
5552 ;
5553 break;}
5554 case 328:
5555 #line 1763 "parse.y"
5556 { got_object = TREE_TYPE (yyval.ttype); ;
5557 break;}
5558 case 329:
5559 #line 1765 "parse.y"
5560 {
5561 yyval.ttype = build_x_arrow (yyval.ttype);
5562 got_object = TREE_TYPE (yyval.ttype);
5563 ;
5564 break;}
5565 case 330:
5566 #line 1773 "parse.y"
5567 {
5568 resume_momentary (yyvsp[-1].itype);
5569 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5570 note_got_semicolon (yyvsp[-2].ftype.t);
5571 ;
5572 break;}
5573 case 331:
5574 #line 1779 "parse.y"
5575 {
5576 resume_momentary (yyvsp[-1].itype);
5577 note_list_got_semicolon (yyvsp[-2].ftype.t);
5578 ;
5579 break;}
5580 case 332:
5581 #line 1784 "parse.y"
5582 { resume_momentary (yyvsp[-1].itype); ;
5583 break;}
5584 case 333:
5585 #line 1786 "parse.y"
5586 {
5587 shadow_tag (yyvsp[-1].ftype.t);
5588 note_list_got_semicolon (yyvsp[-1].ftype.t);
5589 ;
5590 break;}
5591 case 334:
5592 #line 1791 "parse.y"
5593 { warning ("empty declaration"); ;
5594 break;}
5595 case 335:
5596 #line 1793 "parse.y"
5597 { pedantic = yyvsp[-1].itype; ;
5598 break;}
5599 case 338:
5600 #line 1807 "parse.y"
5601 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5602 NULL_TREE, NULL_TREE); ;
5603 break;}
5604 case 339:
5605 #line 1810 "parse.y"
5606 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5607 NULL_TREE); ;
5608 break;}
5609 case 340:
5610 #line 1817 "parse.y"
5611 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5612 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5613 break;}
5614 case 341:
5615 #line 1820 "parse.y"
5616 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5617 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5618 break;}
5619 case 342:
5620 #line 1823 "parse.y"
5621 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5622 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5623 break;}
5624 case 343:
5625 #line 1826 "parse.y"
5626 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5627 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5628 break;}
5629 case 344:
5630 #line 1829 "parse.y"
5631 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5632 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5633 break;}
5634 case 347:
5635 #line 1845 "parse.y"
5636 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5637 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5638 break;}
5639 case 348:
5640 #line 1848 "parse.y"
5641 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5642 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5643 break;}
5644 case 349:
5645 #line 1851 "parse.y"
5646 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5647 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5648 break;}
5649 case 350:
5650 #line 1854 "parse.y"
5651 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5652 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5653 break;}
5654 case 351:
5655 #line 1857 "parse.y"
5656 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5657 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5658 break;}
5659 case 352:
5660 #line 1860 "parse.y"
5661 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5662 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5663 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5664 break;}
5665 case 353:
5666 #line 1867 "parse.y"
5667 { if (extra_warnings)
5668 warning ("`%s' is not at beginning of declaration",
5669 IDENTIFIER_POINTER (yyval.ttype));
5670 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5671 break;}
5672 case 354:
5673 #line 1872 "parse.y"
5674 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5675 break;}
5676 case 355:
5677 #line 1874 "parse.y"
5678 { if (extra_warnings)
5679 warning ("`%s' is not at beginning of declaration",
5680 IDENTIFIER_POINTER (yyvsp[0].ttype));
5681 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5682 break;}
5683 case 356:
5684 #line 1879 "parse.y"
5685 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5686 break;}
5687 case 357:
5688 #line 1881 "parse.y"
5689 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5690 break;}
5691 case 358:
5692 #line 1891 "parse.y"
5693 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5694 break;}
5695 case 359:
5696 #line 1893 "parse.y"
5697 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5698 break;}
5699 case 360:
5700 #line 1895 "parse.y"
5701 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5702 TREE_STATIC (yyval.ttype) = 1; ;
5703 break;}
5704 case 361:
5705 #line 1898 "parse.y"
5706 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5707 warning ("`%s' is not at beginning of declaration",
5708 IDENTIFIER_POINTER (yyvsp[0].ttype));
5709 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5710 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5711 break;}
5712 case 362:
5713 #line 1904 "parse.y"
5714 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5715 break;}
5716 case 363:
5717 #line 1906 "parse.y"
5718 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5719 break;}
5720 case 364:
5721 #line 1917 "parse.y"
5722 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5723 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5724 break;}
5725 case 365:
5726 #line 1920 "parse.y"
5727 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5728 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5729 break;}
5730 case 366:
5731 #line 1923 "parse.y"
5732 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5733 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5734 break;}
5735 case 367:
5736 #line 1926 "parse.y"
5737 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5738 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5739 break;}
5740 case 368:
5741 #line 1932 "parse.y"
5742 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5743 break;}
5744 case 369:
5745 #line 1934 "parse.y"
5746 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5747 break;}
5748 case 371:
5749 #line 1944 "parse.y"
5750 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5751 break;}
5752 case 372:
5753 #line 1946 "parse.y"
5754 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5755 break;}
5756 case 373:
5757 #line 1948 "parse.y"
5758 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5759 yyval.ftype.new_type_flag = 0; ;
5760 break;}
5761 case 374:
5762 #line 1951 "parse.y"
5763 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5764 yyval.ftype.new_type_flag = 0; ;
5765 break;}
5766 case 375:
5767 #line 1954 "parse.y"
5768 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5769
5770 yyval.ftype.new_type_flag = 0;
5771 if (IS_AGGR_TYPE (type))
5772 {
5773 sorry ("sigof type specifier");
5774 yyval.ftype.t = type;
5775 }
5776 else
5777 {
5778 error ("`sigof' applied to non-aggregate expression");
5779 yyval.ftype.t = error_mark_node;
5780 }
5781 ;
5782 break;}
5783 case 376:
5784 #line 1969 "parse.y"
5785 { tree type = groktypename (yyvsp[-1].ftype.t);
5786
5787 yyval.ftype.new_type_flag = 0;
5788 if (IS_AGGR_TYPE (type))
5789 {
5790 sorry ("sigof type specifier");
5791 yyval.ftype.t = type;
5792 }
5793 else
5794 {
5795 error("`sigof' applied to non-aggregate type");
5796 yyval.ftype.t = error_mark_node;
5797 }
5798 ;
5799 break;}
5800 case 377:
5801 #line 1989 "parse.y"
5802 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5803 break;}
5804 case 378:
5805 #line 1991 "parse.y"
5806 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5807 break;}
5808 case 386:
5809 #line 2012 "parse.y"
5810 { yyval.ttype = NULL_TREE; ;
5811 break;}
5812 case 387:
5813 #line 2014 "parse.y"
5814 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5815 break;}
5816 case 388:
5817 #line 2019 "parse.y"
5818 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5819 &prefix_attributes);
5820 if (current_declspecs
5821 && TREE_CODE (current_declspecs) != TREE_LIST)
5822 current_declspecs = get_decl_list (current_declspecs);
5823 if (have_extern_spec && !used_extern_spec)
5824 {
5825 current_declspecs = decl_tree_cons
5826 (NULL_TREE, get_identifier ("extern"),
5827 current_declspecs);
5828 used_extern_spec = 1;
5829 }
5830 yyvsp[0].itype = suspend_momentary ();
5831 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5832 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5833 break;}
5834 case 389:
5835 #line 2036 "parse.y"
5836 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5837 yyval.itype = yyvsp[-2].itype; ;
5838 break;}
5839 case 390:
5840 #line 2039 "parse.y"
5841 { tree d;
5842 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5843 &prefix_attributes);
5844 if (current_declspecs
5845 && TREE_CODE (current_declspecs) != TREE_LIST)
5846 current_declspecs = get_decl_list (current_declspecs);
5847 if (have_extern_spec && !used_extern_spec)
5848 {
5849 current_declspecs = decl_tree_cons
5850 (NULL_TREE, get_identifier ("extern"),
5851 current_declspecs);
5852 used_extern_spec = 1;
5853 }
5854 yyval.itype = suspend_momentary ();
5855 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5856 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5857 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5858 break;}
5859 case 391:
5860 #line 2060 "parse.y"
5861 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5862 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5863 break;}
5864 case 392:
5865 #line 2064 "parse.y"
5866 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5867 break;}
5868 case 393:
5869 #line 2066 "parse.y"
5870 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5871 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5872 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5873 break;}
5874 case 394:
5875 #line 2073 "parse.y"
5876 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5877 &prefix_attributes);
5878 yyvsp[0].itype = suspend_momentary ();
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 395:
5883 #line 2080 "parse.y"
5884 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5885 yyval.itype = yyvsp[-2].itype; ;
5886 break;}
5887 case 396:
5888 #line 2083 "parse.y"
5889 { tree d;
5890 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5891 &prefix_attributes);
5892 yyval.itype = suspend_momentary ();
5893 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5894 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5895 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5896 break;}
5897 case 397:
5898 #line 2094 "parse.y"
5899 { current_declspecs = NULL_TREE;
5900 prefix_attributes = NULL_TREE;
5901 yyvsp[0].itype = suspend_momentary ();
5902 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5903 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5904 break;}
5905 case 398:
5906 #line 2101 "parse.y"
5907 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5908 yyval.itype = yyvsp[-2].itype; ;
5909 break;}
5910 case 399:
5911 #line 2104 "parse.y"
5912 { tree d;
5913 current_declspecs = NULL_TREE;
5914 prefix_attributes = NULL_TREE;
5915 yyval.itype = suspend_momentary ();
5916 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5917 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5918 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5919 break;}
5920 case 400:
5921 #line 2117 "parse.y"
5922 { yyval.ttype = NULL_TREE; ;
5923 break;}
5924 case 401:
5925 #line 2119 "parse.y"
5926 { yyval.ttype = yyvsp[0].ttype; ;
5927 break;}
5928 case 402:
5929 #line 2124 "parse.y"
5930 { yyval.ttype = yyvsp[0].ttype; ;
5931 break;}
5932 case 403:
5933 #line 2126 "parse.y"
5934 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5935 break;}
5936 case 404:
5937 #line 2131 "parse.y"
5938 { yyval.ttype = yyvsp[-2].ttype; ;
5939 break;}
5940 case 405:
5941 #line 2136 "parse.y"
5942 { yyval.ttype = yyvsp[0].ttype; ;
5943 break;}
5944 case 406:
5945 #line 2138 "parse.y"
5946 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5947 break;}
5948 case 407:
5949 #line 2143 "parse.y"
5950 { yyval.ttype = NULL_TREE; ;
5951 break;}
5952 case 408:
5953 #line 2145 "parse.y"
5954 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5955 break;}
5956 case 409:
5957 #line 2147 "parse.y"
5958 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5959 break;}
5960 case 410:
5961 #line 2149 "parse.y"
5962 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5963 break;}
5964 case 411:
5965 #line 2151 "parse.y"
5966 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5967 break;}
5968 case 416:
5969 #line 2167 "parse.y"
5970 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5971 break;}
5972 case 417:
5973 #line 2169 "parse.y"
5974 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5975 break;}
5976 case 418:
5977 #line 2174 "parse.y"
5978 { yyval.ttype = NULL_TREE; ;
5979 break;}
5980 case 419:
5981 #line 2176 "parse.y"
5982 { yyval.ttype = yyvsp[0].ttype; ;
5983 break;}
5984 case 421:
5985 #line 2184 "parse.y"
5986 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5987 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5988 break;}
5989 case 422:
5990 #line 2187 "parse.y"
5991 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5992 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5993 break;}
5994 case 423:
5995 #line 2190 "parse.y"
5996 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5997 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5998 break;}
5999 case 424:
6000 #line 2193 "parse.y"
6001 { yyval.ttype = NULL_TREE; ;
6002 break;}
6003 case 425:
6004 #line 2200 "parse.y"
6005 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6006 break;}
6007 case 426:
6008 #line 2202 "parse.y"
6009 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6010 break;}
6011 case 427:
6012 #line 2205 "parse.y"
6013 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6014 break;}
6015 case 428:
6016 #line 2207 "parse.y"
6017 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6018 break;}
6019 case 429:
6020 #line 2209 "parse.y"
6021 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6022 break;}
6023 case 430:
6024 #line 2211 "parse.y"
6025 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6026 break;}
6027 case 431:
6028 #line 2216 "parse.y"
6029 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6030 NULL_TREE, 1);
6031 reinit_parse_for_function (); ;
6032 break;}
6033 case 432:
6034 #line 2222 "parse.y"
6035 {
6036 int nested = (hack_decl_function_context
6037 (current_function_decl) != NULL_TREE);
6038 finish_function (lineno, (int)yyvsp[-1].itype, nested);
6039 process_next_inline (yyvsp[-3].ttype);
6040 ;
6041 break;}
6042 case 433:
6043 #line 2229 "parse.y"
6044 { process_next_inline (yyvsp[-2].ttype); ;
6045 break;}
6046 case 434:
6047 #line 2231 "parse.y"
6048 { process_next_inline (yyvsp[-2].ttype); ;
6049 break;}
6050 case 437:
6051 #line 2243 "parse.y"
6052 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6053 break;}
6054 case 438:
6055 #line 2245 "parse.y"
6056 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6057 break;}
6058 case 440:
6059 #line 2250 "parse.y"
6060 { do_pending_defargs (); ;
6061 break;}
6062 case 441:
6063 #line 2252 "parse.y"
6064 { do_pending_defargs (); ;
6065 break;}
6066 case 442:
6067 #line 2257 "parse.y"
6068 { yyvsp[0].itype = suspend_momentary ();
6069 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6070 break;}
6071 case 443:
6072 #line 2260 "parse.y"
6073 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6074 yyval.ftype.new_type_flag = 1;
6075 resume_momentary ((int) yyvsp[-4].itype);
6076 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6077 break;}
6078 case 444:
6079 #line 2265 "parse.y"
6080 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6081 yyval.ftype.new_type_flag = 1;
6082 check_for_missing_semicolon (yyval.ftype.t); ;
6083 break;}
6084 case 445:
6085 #line 2269 "parse.y"
6086 { yyvsp[0].itype = suspend_momentary ();
6087 yyval.ttype = start_enum (make_anon_name ()); ;
6088 break;}
6089 case 446:
6090 #line 2272 "parse.y"
6091 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6092 resume_momentary ((int) yyvsp[-5].itype);
6093 check_for_missing_semicolon (yyvsp[-3].ttype);
6094 yyval.ftype.new_type_flag = 1; ;
6095 break;}
6096 case 447:
6097 #line 2277 "parse.y"
6098 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6099 yyval.ftype.new_type_flag = 1;
6100 check_for_missing_semicolon (yyval.ftype.t); ;
6101 break;}
6102 case 448:
6103 #line 2281 "parse.y"
6104 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6105 yyval.ftype.new_type_flag = 0; ;
6106 break;}
6107 case 449:
6108 #line 2284 "parse.y"
6109 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6110 yyval.ftype.new_type_flag = 0; ;
6111 break;}
6112 case 450:
6113 #line 2287 "parse.y"
6114 { yyval.ftype.t = yyvsp[0].ttype;
6115 yyval.ftype.new_type_flag = 0; ;
6116 break;}
6117 case 451:
6118 #line 2292 "parse.y"
6119 {
6120 int semi;
6121
6122 yyval.ttype = yyvsp[-4].ttype;
6123 #if 0
6124 /* Need to rework class nesting in the
6125 presence of nested classes, etc. */
6126 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
6127 #endif
6128 if (yychar == YYEMPTY)
6129 yychar = YYLEX;
6130 semi = yychar == ';';
6131 /* finish_struct nukes this anyway; if
6132 finish_exception does too, then it can go. */
6133 if (semi)
6134 note_got_semicolon (yyvsp[-4].ttype);
6135
6136 if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
6137 ;
6138 else
6139 {
6140 yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6141 if (semi) note_got_semicolon (yyval.ttype);
6142 }
6143
6144 pop_obstacks ();
6145
6146 if (! semi)
6147 check_for_missing_semicolon (yyvsp[-4].ttype);
6148 if (current_scope () == current_function_decl)
6149 do_pending_defargs ();
6150 ;
6151 break;}
6152 case 452:
6153 #line 2325 "parse.y"
6154 {
6155 if (pending_inlines
6156 && current_scope () == current_function_decl)
6157 do_pending_inlines ();
6158 ;
6159 break;}
6160 case 453:
6161 #line 2331 "parse.y"
6162 {
6163 yyval.ftype.t = yyvsp[-3].ttype;
6164 yyval.ftype.new_type_flag = 1;
6165 if (current_class_type == NULL_TREE)
6166 clear_inline_text_obstack ();
6167
6168 /* Undo the begin_tree in left_curly. */
6169 end_tree ();
6170 ;
6171 break;}
6172 case 454:
6173 #line 2341 "parse.y"
6174 {
6175 yyval.ftype.new_type_flag = 0;
6176 if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6177 {
6178 cp_error ("%T is not a class type", yyvsp[0].ttype);
6179 yyval.ftype.t = error_mark_node;
6180 }
6181 else
6182 {
6183 yyval.ftype.t = yyvsp[0].ttype;
6184 /* struct B: public A; is not accepted by the WP grammar. */
6185 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6186 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6187 cp_error ("base clause without member specification for `%#T'",
6188 yyval.ftype.t);
6189 }
6190 ;
6191 break;}
6192 case 458:
6193 #line 2368 "parse.y"
6194 { if (pedantic && !in_system_header)
6195 pedwarn ("comma at end of enumerator list"); ;
6196 break;}
6197 case 460:
6198 #line 2375 "parse.y"
6199 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6200 break;}
6201 case 461:
6202 #line 2377 "parse.y"
6203 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6204 break;}
6205 case 462:
6206 #line 2379 "parse.y"
6207 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6208 break;}
6209 case 463:
6210 #line 2381 "parse.y"
6211 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6212 break;}
6213 case 464:
6214 #line 2386 "parse.y"
6215 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6216 break;}
6217 case 465:
6218 #line 2391 "parse.y"
6219 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6220 break;}
6221 case 466:
6222 #line 2396 "parse.y"
6223 {
6224 current_aggr = yyvsp[-2].ttype;
6225 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6226 ;
6227 break;}
6228 case 467:
6229 #line 2401 "parse.y"
6230 {
6231 current_aggr = yyvsp[-3].ttype;
6232 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6233 ;
6234 break;}
6235 case 468:
6236 #line 2406 "parse.y"
6237 {
6238 current_aggr = yyvsp[-2].ttype;
6239 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6240 ;
6241 break;}
6242 case 469:
6243 #line 2411 "parse.y"
6244 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6245 break;}
6246 case 470:
6247 #line 2413 "parse.y"
6248 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6249 break;}
6250 case 471:
6251 #line 2418 "parse.y"
6252 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6253 break;}
6254 case 472:
6255 #line 2423 "parse.y"
6256 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6257 break;}
6258 case 473:
6259 #line 2426 "parse.y"
6260 {
6261 yyval.ttype = yyvsp[-1].ttype;
6262 if (yyvsp[0].ttype)
6263 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6264 ;
6265 break;}
6266 case 474:
6267 #line 2432 "parse.y"
6268 {
6269 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6270 if (TREE_INT_CST_LOW (current_aggr) == union_type
6271 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6272 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6273 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6274 && TREE_INT_CST_LOW (current_aggr) != union_type)
6275 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6276 if (yyvsp[0].ttype)
6277 {
6278 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6279 {
6280 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6281 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6282 {
6283 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6284 if (processing_template_decl)
6285 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6286 }
6287 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6288 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6289 }
6290 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6291 }
6292 ;
6293 break;}
6294 case 475:
6295 #line 2461 "parse.y"
6296 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6297 yyungetc ('{', 1); ;
6298 break;}
6299 case 478:
6300 #line 2472 "parse.y"
6301 { yyval.ttype = NULL_TREE; ;
6302 break;}
6303 case 479:
6304 #line 2474 "parse.y"
6305 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6306 break;}
6307 case 480:
6308 #line 2476 "parse.y"
6309 { yyval.ttype = yyvsp[0].ttype; ;
6310 break;}
6311 case 482:
6312 #line 2482 "parse.y"
6313 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6314 break;}
6315 case 483:
6316 #line 2487 "parse.y"
6317 {
6318 tree type = TREE_TYPE (yyvsp[0].ttype);
6319 if (! is_aggr_type (type, 1))
6320 yyval.ttype = NULL_TREE;
6321 else if (current_aggr == signature_type_node
6322 && (! type) && (! IS_SIGNATURE (type)))
6323 {
6324 error ("class name not allowed as base signature");
6325 yyval.ttype = NULL_TREE;
6326 }
6327 else if (current_aggr == signature_type_node)
6328 {
6329 sorry ("signature inheritance, base type `%s' ignored",
6330 IDENTIFIER_POINTER (yyval.ttype));
6331 yyval.ttype = build_tree_list (access_public_node, type);
6332 }
6333 else if (type && IS_SIGNATURE (type))
6334 {
6335 error ("signature name not allowed as base class");
6336 yyval.ttype = NULL_TREE;
6337 }
6338 else
6339 yyval.ttype = build_tree_list (access_default_node, type);
6340 ;
6341 break;}
6342 case 484:
6343 #line 2512 "parse.y"
6344 {
6345 tree type = TREE_TYPE (yyvsp[0].ttype);
6346 if (current_aggr == signature_type_node)
6347 error ("access and source specifiers not allowed in signature");
6348 if (! IS_AGGR_TYPE (type))
6349 yyval.ttype = NULL_TREE;
6350 else if (current_aggr == signature_type_node
6351 && (! type) && (! IS_SIGNATURE (type)))
6352 {
6353 error ("class name not allowed as base signature");
6354 yyval.ttype = NULL_TREE;
6355 }
6356 else if (current_aggr == signature_type_node)
6357 {
6358 sorry ("signature inheritance, base type `%s' ignored",
6359 IDENTIFIER_POINTER (yyval.ttype));
6360 yyval.ttype = build_tree_list (access_public_node, type);
6361 }
6362 else if (type && IS_SIGNATURE (type))
6363 {
6364 error ("signature name not allowed as base class");
6365 yyval.ttype = NULL_TREE;
6366 }
6367 else
6368 yyval.ttype = build_tree_list (yyval.ttype, type);
6369 ;
6370 break;}
6371 case 485:
6372 #line 2542 "parse.y"
6373 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6374 break;}
6375 case 487:
6376 #line 2545 "parse.y"
6377 {
6378 if (current_aggr == signature_type_node)
6379 {
6380 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6381 {
6382 sorry ("`sigof' as base signature specifier");
6383 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6384 }
6385 else
6386 {
6387 error ("`sigof' applied to non-aggregate expression");
6388 yyval.ttype = error_mark_node;
6389 }
6390 }
6391 else
6392 {
6393 error ("`sigof' in struct or class declaration");
6394 yyval.ttype = error_mark_node;
6395 }
6396 ;
6397 break;}
6398 case 488:
6399 #line 2566 "parse.y"
6400 {
6401 if (current_aggr == signature_type_node)
6402 {
6403 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6404 {
6405 sorry ("`sigof' as base signature specifier");
6406 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6407 }
6408 else
6409 {
6410 error ("`sigof' applied to non-aggregate expression");
6411 yyval.ttype = error_mark_node;
6412 }
6413 }
6414 else
6415 {
6416 error ("`sigof' in struct or class declaration");
6417 yyval.ttype = error_mark_node;
6418 }
6419 ;
6420 break;}
6421 case 490:
6422 #line 2591 "parse.y"
6423 { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
6424 sorry ("non-virtual access");
6425 yyval.ttype = access_default_virtual_node; ;
6426 break;}
6427 case 491:
6428 #line 2595 "parse.y"
6429 { int err = 0;
6430 if (yyvsp[-1].ttype == access_protected_node)
6431 {
6432 warning ("`protected' access not implemented");
6433 yyvsp[-1].ttype = access_public_node;
6434 err++;
6435 }
6436 else if (yyvsp[-1].ttype == access_public_node)
6437 {
6438 if (yyvsp[-2].ttype == access_private_node)
6439 {
6440 mixed:
6441 error ("base class cannot be public and private");
6442 }
6443 else if (yyvsp[-2].ttype == access_default_virtual_node)
6444 yyval.ttype = access_public_virtual_node;
6445 }
6446 else /* $2 == access_private_node */
6447 {
6448 if (yyvsp[-2].ttype == access_public_node)
6449 goto mixed;
6450 else if (yyvsp[-2].ttype == access_default_virtual_node)
6451 yyval.ttype = access_private_virtual_node;
6452 }
6453 ;
6454 break;}
6455 case 492:
6456 #line 2621 "parse.y"
6457 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6458 sorry ("non-virtual access");
6459 if (yyval.ttype == access_public_node)
6460 yyval.ttype = access_public_virtual_node;
6461 else if (yyval.ttype == access_private_node)
6462 yyval.ttype = access_private_virtual_node; ;
6463 break;}
6464 case 493:
6465 #line 2631 "parse.y"
6466 { tree t = yyvsp[-1].ttype;
6467 push_obstacks_nochange ();
6468 end_temporary_allocation ();
6469
6470 if (t == error_mark_node
6471 || ! IS_AGGR_TYPE (t))
6472 {
6473 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6474 pushtag (make_anon_name (), t, 0);
6475 }
6476 if (TYPE_SIZE (t))
6477 duplicate_tag_error (t);
6478 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6479 {
6480 t = make_lang_type (TREE_CODE (t));
6481 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6482 yyvsp[-1].ttype = t;
6483 }
6484 if (processing_template_decl && TYPE_CONTEXT (t)
6485 && ! current_class_type)
6486 push_template_decl (TYPE_STUB_DECL (t));
6487 pushclass (t, 0);
6488 TYPE_BEING_DEFINED (t) = 1;
6489 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6490 {
6491 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6492 && TYPE_SIZE (t) == NULL_TREE)
6493 {
6494 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6495 if (processing_template_decl)
6496 push_template_decl (TYPE_MAIN_DECL (t));
6497 }
6498 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6499 cp_error ("specialization after instantiation of `%T'", t);
6500 }
6501 /* Reset the interface data, at the earliest possible
6502 moment, as it might have been set via a class foo;
6503 before. */
6504 /* Don't change signatures. */
6505 if (! IS_SIGNATURE (t))
6506 {
6507 extern tree pending_vtables;
6508 int needs_writing;
6509 tree name = TYPE_IDENTIFIER (t);
6510
6511 if (! ANON_AGGRNAME_P (name))
6512 {
6513 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6514 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6515 (t, interface_unknown);
6516 }
6517
6518 /* Record how to set the access of this class's
6519 virtual functions. If write_virtuals == 2 or 3, then
6520 inline virtuals are ``extern inline''. */
6521 switch (write_virtuals)
6522 {
6523 case 0:
6524 case 1:
6525 needs_writing = 1;
6526 break;
6527 case 2:
6528 needs_writing = !! value_member (name, pending_vtables);
6529 break;
6530 case 3:
6531 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6532 && CLASSTYPE_INTERFACE_KNOWN (t);
6533 break;
6534 default:
6535 needs_writing = 0;
6536 }
6537 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6538 }
6539 #if 0
6540 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6541 if (t && IDENTIFIER_TEMPLATE (t))
6542 overload_template_name (t, 1);
6543 #endif
6544 reset_specialization();
6545
6546 /* In case this is a local class within a template
6547 function, we save the current tree structure so
6548 that we can get it back later. */
6549 begin_tree ();
6550 ;
6551 break;}
6552 case 494:
6553 #line 2720 "parse.y"
6554 {
6555 yyval.ttype = build_self_reference ();
6556 ;
6557 break;}
6558 case 495:
6559 #line 2727 "parse.y"
6560 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6561 break;}
6562 case 496:
6563 #line 2729 "parse.y"
6564 {
6565 if (current_aggr == signature_type_node)
6566 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6567 else
6568 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6569 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6570 ;
6571 break;}
6572 case 497:
6573 #line 2737 "parse.y"
6574 {
6575 tree visspec = yyvsp[-2].ttype;
6576
6577 if (current_aggr == signature_type_node)
6578 {
6579 error ("access specifier not allowed in signature");
6580 visspec = access_public_node;
6581 }
6582 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6583 ;
6584 break;}
6585 case 498:
6586 #line 2748 "parse.y"
6587 {
6588 if (current_aggr == signature_type_node)
6589 error ("access specifier not allowed in signature");
6590 ;
6591 break;}
6592 case 499:
6593 #line 2758 "parse.y"
6594 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6595 ;
6596 break;}
6597 case 500:
6598 #line 2761 "parse.y"
6599 { /* In pushdecl, we created a reverse list of names
6600 in this binding level. Make sure that the chain
6601 of what we're trying to add isn't the item itself
6602 (which can happen with what pushdecl's doing). */
6603 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6604 {
6605 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6606 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6607 else
6608 yyval.ttype = yyvsp[0].ttype;
6609 }
6610 ;
6611 break;}
6612 case 501:
6613 #line 2777 "parse.y"
6614 { ;
6615 break;}
6616 case 502:
6617 #line 2779 "parse.y"
6618 { error ("missing ';' before right brace");
6619 yyungetc ('}', 0); ;
6620 break;}
6621 case 503:
6622 #line 2784 "parse.y"
6623 { yyval.ttype = finish_method (yyval.ttype); ;
6624 break;}
6625 case 504:
6626 #line 2786 "parse.y"
6627 { yyval.ttype = finish_method (yyval.ttype); ;
6628 break;}
6629 case 505:
6630 #line 2788 "parse.y"
6631 { yyval.ttype = finish_method (yyval.ttype); ;
6632 break;}
6633 case 506:
6634 #line 2790 "parse.y"
6635 { yyval.ttype = finish_method (yyval.ttype); ;
6636 break;}
6637 case 507:
6638 #line 2792 "parse.y"
6639 { yyval.ttype = NULL_TREE; ;
6640 break;}
6641 case 508:
6642 #line 2794 "parse.y"
6643 { yyval.ttype = yyvsp[0].ttype;
6644 pedantic = yyvsp[-1].itype; ;
6645 break;}
6646 case 509:
6647 #line 2803 "parse.y"
6648 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6649 break;}
6650 case 510:
6651 #line 2805 "parse.y"
6652 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6653 break;}
6654 case 511:
6655 #line 2807 "parse.y"
6656 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6657 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6658 break;}
6659 case 512:
6660 #line 2810 "parse.y"
6661 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6662 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6663 break;}
6664 case 513:
6665 #line 2813 "parse.y"
6666 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6667 break;}
6668 case 514:
6669 #line 2815 "parse.y"
6670 { yyval.ttype = NULL_TREE; ;
6671 break;}
6672 case 515:
6673 #line 2826 "parse.y"
6674 { tree specs, attrs;
6675 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6676 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6677 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6678 break;}
6679 case 516:
6680 #line 2831 "parse.y"
6681 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6682 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6683 break;}
6684 case 517:
6685 #line 2834 "parse.y"
6686 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6687 break;}
6688 case 518:
6689 #line 2836 "parse.y"
6690 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6691 break;}
6692 case 519:
6693 #line 2842 "parse.y"
6694 { yyval.ttype = NULL_TREE; ;
6695 break;}
6696 case 521:
6697 #line 2845 "parse.y"
6698 {
6699 /* In this context, void_type_node encodes
6700 friends. They have been recorded elsewhere. */
6701 if (yyval.ttype == void_type_node)
6702 yyval.ttype = yyvsp[0].ttype;
6703 else
6704 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6705 ;
6706 break;}
6707 case 522:
6708 #line 2857 "parse.y"
6709 { yyval.ttype = NULL_TREE; ;
6710 break;}
6711 case 524:
6712 #line 2860 "parse.y"
6713 {
6714 /* In this context, void_type_node encodes
6715 friends. They have been recorded elsewhere. */
6716 if (yyval.ttype == void_type_node)
6717 yyval.ttype = yyvsp[0].ttype;
6718 else
6719 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6720 ;
6721 break;}
6722 case 529:
6723 #line 2882 "parse.y"
6724 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6725 &prefix_attributes);
6726 yyvsp[-4].ttype = current_declspecs;
6727 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6728 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6729 break;}
6730 case 530:
6731 #line 2888 "parse.y"
6732 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6733 &prefix_attributes);
6734 yyvsp[-4].ttype = current_declspecs;
6735 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6736 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6737 break;}
6738 case 531:
6739 #line 2897 "parse.y"
6740 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6741 &prefix_attributes);
6742 yyvsp[-4].ttype = current_declspecs;
6743 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6744 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6745 break;}
6746 case 532:
6747 #line 2903 "parse.y"
6748 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6749 &prefix_attributes);
6750 yyvsp[-4].ttype = current_declspecs;
6751 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6752 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6753 break;}
6754 case 533:
6755 #line 2909 "parse.y"
6756 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6757 &prefix_attributes);
6758 yyvsp[-4].ttype = current_declspecs;
6759 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6760 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6761 break;}
6762 case 534:
6763 #line 2915 "parse.y"
6764 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6765 &prefix_attributes);
6766 yyvsp[-3].ttype = current_declspecs;
6767 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6768 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6769 break;}
6770 case 535:
6771 #line 2924 "parse.y"
6772 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6773 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6774 break;}
6775 case 536:
6776 #line 2927 "parse.y"
6777 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6778 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6779 break;}
6780 case 537:
6781 #line 2933 "parse.y"
6782 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6783 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6784 break;}
6785 case 538:
6786 #line 2936 "parse.y"
6787 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6788 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6789 break;}
6790 case 539:
6791 #line 2939 "parse.y"
6792 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6793 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6794 break;}
6795 case 541:
6796 #line 2950 "parse.y"
6797 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6798 break;}
6799 case 542:
6800 #line 2955 "parse.y"
6801 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6802 break;}
6803 case 543:
6804 #line 2957 "parse.y"
6805 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6806 break;}
6807 case 544:
6808 #line 2963 "parse.y"
6809 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6810 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6811 break;}
6812 case 545:
6813 #line 2966 "parse.y"
6814 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6815 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6816 break;}
6817 case 546:
6818 #line 2971 "parse.y"
6819 {
6820 if (pedantic)
6821 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6822 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6823 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6824 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6825 ;
6826 break;}
6827 case 547:
6828 #line 2982 "parse.y"
6829 { yyval.ttype = NULL_TREE; ;
6830 break;}
6831 case 548:
6832 #line 2984 "parse.y"
6833 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6834 break;}
6835 case 549:
6836 #line 2989 "parse.y"
6837 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6838 yyval.ftype.new_type_flag = 0; ;
6839 break;}
6840 case 550:
6841 #line 2992 "parse.y"
6842 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6843 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6844 break;}
6845 case 551:
6846 #line 3001 "parse.y"
6847 { yyval.itype = suspend_momentary (); ;
6848 break;}
6849 case 552:
6850 #line 3006 "parse.y"
6851 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6852 break;}
6853 case 553:
6854 #line 3012 "parse.y"
6855 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6856 break;}
6857 case 554:
6858 #line 3014 "parse.y"
6859 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6860 break;}
6861 case 555:
6862 #line 3016 "parse.y"
6863 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6864 break;}
6865 case 556:
6866 #line 3018 "parse.y"
6867 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6868 break;}
6869 case 557:
6870 #line 3025 "parse.y"
6871 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6872 break;}
6873 case 558:
6874 #line 3027 "parse.y"
6875 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6876 break;}
6877 case 559:
6878 #line 3029 "parse.y"
6879 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6880 break;}
6881 case 560:
6882 #line 3031 "parse.y"
6883 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6884 break;}
6885 case 561:
6886 #line 3033 "parse.y"
6887 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6888 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6889 ;
6890 break;}
6891 case 563:
6892 #line 3041 "parse.y"
6893 {
6894 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6895 {
6896 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6897 if (current_class_type
6898 && TYPE_BEING_DEFINED (current_class_type)
6899 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6900 {
6901 /* Remember that this name has been used in the class
6902 definition, as per [class.scope0] */
6903 pushdecl_class_level (yyval.ttype);
6904 }
6905 }
6906 else
6907 yyval.ttype = yyvsp[0].ttype;
6908 ;
6909 break;}
6910 case 564:
6911 #line 3058 "parse.y"
6912 {
6913 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6914 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6915 else
6916 yyval.ttype = yyvsp[0].ttype;
6917 got_scope = NULL_TREE;
6918 ;
6919 break;}
6920 case 567:
6921 #line 3071 "parse.y"
6922 { yyval.ttype = yyvsp[0].ttype; ;
6923 break;}
6924 case 568:
6925 #line 3076 "parse.y"
6926 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6927 break;}
6928 case 569:
6929 #line 3081 "parse.y"
6930 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6931 break;}
6932 case 570:
6933 #line 3083 "parse.y"
6934 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6935 break;}
6936 case 571:
6937 #line 3085 "parse.y"
6938 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6939 break;}
6940 case 572:
6941 #line 3087 "parse.y"
6942 { yyval.ttype = yyvsp[-1].ttype; ;
6943 break;}
6944 case 573:
6945 #line 3089 "parse.y"
6946 { push_nested_class (yyvsp[-1].ttype, 3);
6947 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6948 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6949 break;}
6950 case 575:
6951 #line 3100 "parse.y"
6952 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6953 break;}
6954 case 576:
6955 #line 3102 "parse.y"
6956 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6957 break;}
6958 case 577:
6959 #line 3104 "parse.y"
6960 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6961 break;}
6962 case 578:
6963 #line 3106 "parse.y"
6964 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6965 break;}
6966 case 579:
6967 #line 3108 "parse.y"
6968 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6969 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6970 ;
6971 break;}
6972 case 581:
6973 #line 3116 "parse.y"
6974 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6975 break;}
6976 case 582:
6977 #line 3118 "parse.y"
6978 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6979 break;}
6980 case 583:
6981 #line 3120 "parse.y"
6982 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6983 break;}
6984 case 584:
6985 #line 3122 "parse.y"
6986 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6987 break;}
6988 case 585:
6989 #line 3124 "parse.y"
6990 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6991 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6992 ;
6993 break;}
6994 case 587:
6995 #line 3132 "parse.y"
6996 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6997 break;}
6998 case 588:
6999 #line 3134 "parse.y"
7000 { yyval.ttype = yyvsp[-1].ttype; ;
7001 break;}
7002 case 589:
7003 #line 3136 "parse.y"
7004 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7005 break;}
7006 case 590:
7007 #line 3138 "parse.y"
7008 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7009 break;}
7010 case 591:
7011 #line 3140 "parse.y"
7012 { if (OP0 (yyval.ttype) != current_class_type)
7013 {
7014 push_nested_class (OP0 (yyval.ttype), 3);
7015 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7016 }
7017 ;
7018 break;}
7019 case 592:
7020 #line 3147 "parse.y"
7021 { got_scope = NULL_TREE;
7022 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7023 if (yyvsp[-1].ttype != current_class_type)
7024 {
7025 push_nested_class (yyvsp[-1].ttype, 3);
7026 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7027 }
7028 ;
7029 break;}
7030 case 593:
7031 #line 3159 "parse.y"
7032 { got_scope = NULL_TREE;
7033 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7034 break;}
7035 case 594:
7036 #line 3162 "parse.y"
7037 { got_scope = NULL_TREE;
7038 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7039 break;}
7040 case 595:
7041 #line 3168 "parse.y"
7042 { got_scope = NULL_TREE;
7043 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7044 break;}
7045 case 596:
7046 #line 3171 "parse.y"
7047 { got_scope = NULL_TREE;
7048 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7049 break;}
7050 case 598:
7051 #line 3178 "parse.y"
7052 { yyval.ttype = yyvsp[0].ttype; ;
7053 break;}
7054 case 599:
7055 #line 3183 "parse.y"
7056 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7057 break;}
7058 case 600:
7059 #line 3185 "parse.y"
7060 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7061 break;}
7062 case 601:
7063 #line 3187 "parse.y"
7064 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7065 break;}
7066 case 606:
7067 #line 3199 "parse.y"
7068 { yyval.ttype = yyvsp[0].ttype; ;
7069 break;}
7070 case 607:
7071 #line 3206 "parse.y"
7072 {
7073 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7074 {
7075 yyval.ttype = lastiddecl;
7076 /* Remember that this name has been used in the class
7077 definition, as per [class.scope0] */
7078 if (current_class_type
7079 && TYPE_BEING_DEFINED (current_class_type)
7080 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7081 pushdecl_class_level (yyval.ttype);
7082 }
7083 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7084 ;
7085 break;}
7086 case 608:
7087 #line 3220 "parse.y"
7088 {
7089 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7090 yyval.ttype = lastiddecl;
7091 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7092 ;
7093 break;}
7094 case 609:
7095 #line 3226 "parse.y"
7096 {
7097 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7098 yyval.ttype = lastiddecl;
7099 got_scope = yyval.ttype;
7100 ;
7101 break;}
7102 case 610:
7103 #line 3232 "parse.y"
7104 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7105 break;}
7106 case 612:
7107 #line 3248 "parse.y"
7108 { yyval.ttype = yyvsp[0].ttype; ;
7109 break;}
7110 case 613:
7111 #line 3253 "parse.y"
7112 {
7113 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7114 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7115 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7116 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7117 else
7118 {
7119 yyval.ttype = yyvsp[0].ttype;
7120 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7121 yyval.ttype = TREE_TYPE (yyval.ttype);
7122 }
7123 ;
7124 break;}
7125 case 614:
7126 #line 3269 "parse.y"
7127 {
7128 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7129 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7130 ;
7131 break;}
7132 case 615:
7133 #line 3274 "parse.y"
7134 {
7135 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7136 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7137 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7138 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7139 else
7140 {
7141 yyval.ttype = yyvsp[0].ttype;
7142 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7143 yyval.ttype = TREE_TYPE (yyval.ttype);
7144 }
7145 ;
7146 break;}
7147 case 616:
7148 #line 3290 "parse.y"
7149 {
7150 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7151 yyvsp[-1].ttype = lastiddecl;
7152
7153 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype));
7154
7155 if (yyval.ttype == error_mark_node)
7156 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7157 ;
7158 break;}
7159 case 617:
7160 #line 3300 "parse.y"
7161 {
7162 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7163 yyval.ttype = lastiddecl;
7164 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7165 ;
7166 break;}
7167 case 618:
7168 #line 3306 "parse.y"
7169 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7170 break;}
7171 case 621:
7172 #line 3310 "parse.y"
7173 {
7174 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7175 yyval.ttype = lastiddecl;
7176 got_scope = yyval.ttype;
7177 ;
7178 break;}
7179 case 622:
7180 #line 3319 "parse.y"
7181 {
7182 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7183 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7184 else
7185 yyval.ttype = yyvsp[0].ttype;
7186 got_scope = NULL_TREE;
7187 ;
7188 break;}
7189 case 624:
7190 #line 3328 "parse.y"
7191 { yyval.ttype = yyvsp[0].ttype; ;
7192 break;}
7193 case 625:
7194 #line 3333 "parse.y"
7195 { got_scope = NULL_TREE; ;
7196 break;}
7197 case 626:
7198 #line 3335 "parse.y"
7199 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7200 break;}
7201 case 627:
7202 #line 3342 "parse.y"
7203 { got_scope = void_type_node; ;
7204 break;}
7205 case 628:
7206 #line 3348 "parse.y"
7207 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7208 break;}
7209 case 629:
7210 #line 3350 "parse.y"
7211 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7212 break;}
7213 case 630:
7214 #line 3352 "parse.y"
7215 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7216 break;}
7217 case 631:
7218 #line 3354 "parse.y"
7219 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7220 break;}
7221 case 632:
7222 #line 3356 "parse.y"
7223 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7224 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7225 ;
7226 break;}
7227 case 633:
7228 #line 3360 "parse.y"
7229 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7230 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7231 ;
7232 break;}
7233 case 635:
7234 #line 3369 "parse.y"
7235 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7236 break;}
7237 case 636:
7238 #line 3371 "parse.y"
7239 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7240 break;}
7241 case 637:
7242 #line 3377 "parse.y"
7243 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7244 break;}
7245 case 638:
7246 #line 3379 "parse.y"
7247 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7248 break;}
7249 case 639:
7250 #line 3381 "parse.y"
7251 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7252 break;}
7253 case 640:
7254 #line 3383 "parse.y"
7255 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7256 break;}
7257 case 641:
7258 #line 3385 "parse.y"
7259 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7260 break;}
7261 case 642:
7262 #line 3387 "parse.y"
7263 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7264 break;}
7265 case 643:
7266 #line 3389 "parse.y"
7267 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7268 break;}
7269 case 644:
7270 #line 3391 "parse.y"
7271 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7272 break;}
7273 case 645:
7274 #line 3393 "parse.y"
7275 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7276 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7277 ;
7278 break;}
7279 case 646:
7280 #line 3397 "parse.y"
7281 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7282 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7283 ;
7284 break;}
7285 case 648:
7286 #line 3406 "parse.y"
7287 { yyval.ttype = yyvsp[-1].ttype; ;
7288 break;}
7289 case 650:
7290 #line 3410 "parse.y"
7291 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7292 break;}
7293 case 651:
7294 #line 3412 "parse.y"
7295 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7296 break;}
7297 case 652:
7298 #line 3414 "parse.y"
7299 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7300 break;}
7301 case 653:
7302 #line 3416 "parse.y"
7303 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7304 break;}
7305 case 654:
7306 #line 3418 "parse.y"
7307 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7308 break;}
7309 case 655:
7310 #line 3420 "parse.y"
7311 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7312 break;}
7313 case 656:
7314 #line 3422 "parse.y"
7315 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7316 break;}
7317 case 657:
7318 #line 3424 "parse.y"
7319 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7320 break;}
7321 case 658:
7322 #line 3426 "parse.y"
7323 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7324 break;}
7325 case 664:
7326 #line 3450 "parse.y"
7327 { do_pushlevel (); ;
7328 break;}
7329 case 665:
7330 #line 3455 "parse.y"
7331 { yyval.ttype = do_poplevel (); ;
7332 break;}
7333 case 667:
7334 #line 3463 "parse.y"
7335 { if (pedantic)
7336 pedwarn ("ANSI C++ forbids label declarations"); ;
7337 break;}
7338 case 670:
7339 #line 3474 "parse.y"
7340 { tree link;
7341 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7342 {
7343 tree label = shadow_label (TREE_VALUE (link));
7344 C_DECLARED_LABEL_FLAG (label) = 1;
7345 declare_nonlocal_label (label);
7346 }
7347 ;
7348 break;}
7349 case 671:
7350 #line 3488 "parse.y"
7351 {;
7352 break;}
7353 case 673:
7354 #line 3494 "parse.y"
7355 {
7356 if (processing_template_decl)
7357 {
7358 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7359 add_tree (yyval.ttype);
7360 }
7361 ;
7362 break;}
7363 case 674:
7364 #line 3502 "parse.y"
7365 {
7366 if (processing_template_decl)
7367 {
7368 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7369 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7370 last_tree = yyvsp[-3].ttype;
7371 }
7372 yyval.ttype = yyvsp[0].ttype;
7373 ;
7374 break;}
7375 case 675:
7376 #line 3515 "parse.y"
7377 {
7378 if (processing_template_decl)
7379 {
7380 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7381 NULL_TREE);
7382 add_tree (yyval.ttype);
7383 }
7384 cond_stmt_keyword = "if";
7385 ;
7386 break;}
7387 case 676:
7388 #line 3525 "parse.y"
7389 {
7390 if (processing_template_decl)
7391 {
7392 if (last_tree != yyvsp[-2].ttype)
7393 {
7394 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7395 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7396 last_tree = yyvsp[-2].ttype;
7397 }
7398 else
7399 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7400 }
7401 else
7402 {
7403 emit_line_note (input_filename, lineno);
7404 expand_start_cond (yyvsp[0].ttype, 0);
7405 }
7406 ;
7407 break;}
7408 case 677:
7409 #line 3544 "parse.y"
7410 {
7411 if (processing_template_decl)
7412 {
7413 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7414 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7415 yyval.ttype = last_tree = yyvsp[-4].ttype;
7416 }
7417 ;
7418 break;}
7419 case 678:
7420 #line 3556 "parse.y"
7421 { finish_stmt (); ;
7422 break;}
7423 case 679:
7424 #line 3558 "parse.y"
7425 {
7426 if (processing_template_decl)
7427 {
7428 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7429 add_tree (yyval.ttype);
7430 }
7431 ;
7432 break;}
7433 case 680:
7434 #line 3566 "parse.y"
7435 {
7436 if (processing_template_decl)
7437 {
7438 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7439 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7440 last_tree = yyvsp[-2].ttype;
7441 }
7442 yyval.ttype = yyvsp[0].ttype;
7443 ;
7444 break;}
7445 case 681:
7446 #line 3579 "parse.y"
7447 { finish_stmt (); ;
7448 break;}
7449 case 683:
7450 #line 3585 "parse.y"
7451 { finish_stmt (); ;
7452 break;}
7453 case 684:
7454 #line 3587 "parse.y"
7455 {
7456 tree expr = yyvsp[-1].ttype;
7457 if (! processing_template_decl)
7458 {
7459 emit_line_note (input_filename, lineno);
7460 /* Do default conversion if safe and possibly important,
7461 in case within ({...}). */
7462 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7463 && lvalue_p (expr))
7464 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7465 expr = default_conversion (expr);
7466 }
7467 cplus_expand_expr_stmt (expr);
7468 clear_momentary ();
7469 finish_stmt (); ;
7470 break;}
7471 case 685:
7472 #line 3603 "parse.y"
7473 { if (! processing_template_decl) expand_start_else (); ;
7474 break;}
7475 case 686:
7476 #line 3605 "parse.y"
7477 {
7478 if (processing_template_decl)
7479 {
7480 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7481 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7482 last_tree = yyvsp[-3].ttype;
7483 }
7484 else
7485 expand_end_cond ();
7486 ;
7487 break;}
7488 case 687:
7489 #line 3616 "parse.y"
7490 { finish_stmt (); ;
7491 break;}
7492 case 688:
7493 #line 3618 "parse.y"
7494 { if (! processing_template_decl) expand_end_cond ();
7495 do_poplevel ();
7496 finish_stmt (); ;
7497 break;}
7498 case 689:
7499 #line 3622 "parse.y"
7500 {
7501 if (processing_template_decl)
7502 {
7503 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7504 add_tree (yyval.ttype);
7505 }
7506 else
7507 {
7508 emit_nop ();
7509 emit_line_note (input_filename, lineno);
7510 expand_start_loop (1);
7511 }
7512 cond_stmt_keyword = "while";
7513 ;
7514 break;}
7515 case 690:
7516 #line 3637 "parse.y"
7517 {
7518 if (processing_template_decl)
7519 {
7520 if (last_tree != yyvsp[-2].ttype)
7521 {
7522 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7523 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7524 last_tree = yyvsp[-2].ttype;
7525 }
7526 else
7527 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7528 }
7529 else
7530 {
7531 emit_line_note (input_filename, lineno);
7532 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7533 }
7534 ;
7535 break;}
7536 case 691:
7537 #line 3656 "parse.y"
7538 {
7539 if (processing_template_decl)
7540 {
7541 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7542 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7543 last_tree = yyvsp[-5].ttype;
7544 }
7545 else
7546 expand_end_loop ();
7547 finish_stmt ();
7548 ;
7549 break;}
7550 case 692:
7551 #line 3668 "parse.y"
7552 {
7553 if (processing_template_decl)
7554 {
7555 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7556 add_tree (yyval.ttype);
7557 }
7558 else
7559 {
7560 emit_nop ();
7561 emit_line_note (input_filename, lineno);
7562 expand_start_loop_continue_elsewhere (1);
7563 }
7564 ;
7565 break;}
7566 case 693:
7567 #line 3682 "parse.y"
7568 {
7569 if (processing_template_decl)
7570 {
7571 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7572 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7573 last_tree = yyvsp[-2].ttype;
7574 }
7575 else
7576 {
7577 expand_loop_continue_here ();
7578 cond_stmt_keyword = "do";
7579 }
7580 ;
7581 break;}
7582 case 694:
7583 #line 3696 "parse.y"
7584 {
7585 if (processing_template_decl)
7586 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7587 else
7588 {
7589 emit_line_note (input_filename, lineno);
7590 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7591 expand_end_loop ();
7592 }
7593 clear_momentary ();
7594 finish_stmt ();
7595 ;
7596 break;}
7597 case 695:
7598 #line 3709 "parse.y"
7599 { if (processing_template_decl)
7600 {
7601 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7602 NULL_TREE, NULL_TREE);
7603 add_tree (yyval.ttype);
7604 }
7605 else
7606 emit_line_note (input_filename, lineno);
7607 if (flag_new_for_scope > 0)
7608 {
7609 /* Conditionalize .pushlevel */
7610 pushlevel (0);
7611 note_level_for_for ();
7612 clear_last_expr ();
7613 push_momentary ();
7614 expand_start_bindings (0);
7615 }
7616 ;
7617 break;}
7618 case 696:
7619 #line 3728 "parse.y"
7620 {
7621 if (processing_template_decl)
7622 {
7623 if (last_tree != yyvsp[-2].ttype)
7624 {
7625 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7626 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7627 last_tree = yyvsp[-2].ttype;
7628 }
7629 }
7630 else
7631 {
7632 emit_nop ();
7633 emit_line_note (input_filename, lineno);
7634 expand_start_loop_continue_elsewhere (1);
7635 }
7636 ;
7637 break;}
7638 case 697:
7639 #line 3746 "parse.y"
7640 {
7641 if (processing_template_decl)
7642 {
7643 if (last_tree != yyvsp[-6].ttype)
7644 {
7645 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7646 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7647 last_tree = yyvsp[-6].ttype;
7648 }
7649 else
7650 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7651 }
7652 else
7653 {
7654 emit_line_note (input_filename, lineno);
7655 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7656 }
7657 ;
7658 break;}
7659 case 698:
7660 #line 3767 "parse.y"
7661 {
7662 if (processing_template_decl)
7663 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7664 push_momentary ();
7665 ;
7666 break;}
7667 case 699:
7668 #line 3773 "parse.y"
7669 {
7670 if (processing_template_decl)
7671 {
7672 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7673 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7674 last_tree = yyvsp[-12].ttype;
7675 }
7676 else
7677 {
7678 emit_line_note (input_filename, lineno);
7679 expand_loop_continue_here ();
7680 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7681 expand_end_loop ();
7682 }
7683 pop_momentary ();
7684 if (flag_new_for_scope > 0)
7685 {
7686 do_poplevel ();
7687 }
7688 finish_stmt (); ;
7689 break;}
7690 case 700:
7691 #line 3794 "parse.y"
7692 {
7693 if (processing_template_decl)
7694 {
7695 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7696 add_tree (yyval.ttype);
7697 }
7698 else
7699 {
7700 emit_line_note (input_filename, lineno);
7701 c_expand_start_case (yyvsp[-1].ttype);
7702 }
7703 push_switch ();
7704 /* Don't let the tree nodes for $4 be discarded by
7705 clear_momentary during the parsing of the next stmt. */
7706 push_momentary ();
7707 ;
7708 break;}
7709 case 701:
7710 #line 3811 "parse.y"
7711 {
7712 if (processing_template_decl)
7713 {
7714 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7715 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7716 last_tree = yyvsp[-1].ttype;
7717 }
7718 else
7719 expand_end_case (yyvsp[-3].ttype);
7720 pop_momentary ();
7721 pop_switch ();
7722 ;
7723 break;}
7724 case 702:
7725 #line 3824 "parse.y"
7726 { finish_stmt (); ;
7727 break;}
7728 case 703:
7729 #line 3826 "parse.y"
7730 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7731 break;}
7732 case 705:
7733 #line 3829 "parse.y"
7734 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7735 break;}
7736 case 707:
7737 #line 3832 "parse.y"
7738 { do_case (NULL_TREE, NULL_TREE); ;
7739 break;}
7740 case 709:
7741 #line 3835 "parse.y"
7742 { emit_line_note (input_filename, lineno);
7743 if (processing_template_decl)
7744 add_tree (build_min_nt (BREAK_STMT));
7745 else if ( ! expand_exit_something ())
7746 error ("break statement not within loop or switch"); ;
7747 break;}
7748 case 710:
7749 #line 3841 "parse.y"
7750 { emit_line_note (input_filename, lineno);
7751 if (processing_template_decl)
7752 add_tree (build_min_nt (CONTINUE_STMT));
7753 else if (! expand_continue_loop (0))
7754 error ("continue statement not within a loop"); ;
7755 break;}
7756 case 711:
7757 #line 3847 "parse.y"
7758 { emit_line_note (input_filename, lineno);
7759 c_expand_return (NULL_TREE); ;
7760 break;}
7761 case 712:
7762 #line 3850 "parse.y"
7763 { emit_line_note (input_filename, lineno);
7764 c_expand_return (yyvsp[-1].ttype);
7765 finish_stmt ();
7766 ;
7767 break;}
7768 case 713:
7769 #line 3855 "parse.y"
7770 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7771 emit_line_note (input_filename, lineno);
7772 expand_asm (yyvsp[-2].ttype);
7773 finish_stmt ();
7774 ;
7775 break;}
7776 case 714:
7777 #line 3862 "parse.y"
7778 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7779 emit_line_note (input_filename, lineno);
7780 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7781 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7782 input_filename, lineno);
7783 finish_stmt ();
7784 ;
7785 break;}
7786 case 715:
7787 #line 3871 "parse.y"
7788 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7789 emit_line_note (input_filename, lineno);
7790 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7791 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7792 input_filename, lineno);
7793 finish_stmt ();
7794 ;
7795 break;}
7796 case 716:
7797 #line 3881 "parse.y"
7798 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7799 emit_line_note (input_filename, lineno);
7800 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7801 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7802 input_filename, lineno);
7803 finish_stmt ();
7804 ;
7805 break;}
7806 case 717:
7807 #line 3889 "parse.y"
7808 {
7809 if (processing_template_decl)
7810 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7811 else
7812 { emit_line_note (input_filename, lineno);
7813 expand_computed_goto (yyvsp[-1].ttype); }
7814 ;
7815 break;}
7816 case 718:
7817 #line 3897 "parse.y"
7818 {
7819 if (processing_template_decl)
7820 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7821 else
7822 {
7823 tree decl;
7824 emit_line_note (input_filename, lineno);
7825 decl = lookup_label (yyvsp[-1].ttype);
7826 TREE_USED (decl) = 1;
7827 expand_goto (decl);
7828 }
7829 ;
7830 break;}
7831 case 719:
7832 #line 3910 "parse.y"
7833 { finish_stmt (); ;
7834 break;}
7835 case 720:
7836 #line 3912 "parse.y"
7837 { error ("label must be followed by statement");
7838 yyungetc ('}', 0);
7839 finish_stmt (); ;
7840 break;}
7841 case 721:
7842 #line 3916 "parse.y"
7843 { finish_stmt (); ;
7844 break;}
7845 case 723:
7846 #line 3922 "parse.y"
7847 {
7848 if (! current_function_parms_stored)
7849 store_parm_decls ();
7850 expand_start_early_try_stmts ();
7851 ;
7852 break;}
7853 case 724:
7854 #line 3928 "parse.y"
7855 { expand_start_all_catch (); ;
7856 break;}
7857 case 725:
7858 #line 3930 "parse.y"
7859 {
7860 int nested = (hack_decl_function_context
7861 (current_function_decl) != NULL_TREE);
7862 expand_end_all_catch ();
7863 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7864 ;
7865 break;}
7866 case 726:
7867 #line 3940 "parse.y"
7868 {
7869 if (processing_template_decl)
7870 {
7871 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7872 NULL_TREE);
7873 add_tree (yyval.ttype);
7874 }
7875 else
7876 {
7877 emit_line_note (input_filename, lineno);
7878 expand_start_try_stmts ();
7879 }
7880 ;
7881 break;}
7882 case 727:
7883 #line 3954 "parse.y"
7884 {
7885 if (processing_template_decl)
7886 {
7887 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7888 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7889 last_tree = yyvsp[-1].ttype;
7890 }
7891 else
7892 expand_start_all_catch ();
7893 ;
7894 break;}
7895 case 728:
7896 #line 3965 "parse.y"
7897 {
7898 if (processing_template_decl)
7899 {
7900 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7901 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7902 last_tree = yyvsp[-3].ttype;
7903 }
7904 else
7905 expand_end_all_catch ();
7906 ;
7907 break;}
7908 case 731:
7909 #line 3984 "parse.y"
7910 {
7911 if (processing_template_decl)
7912 {
7913 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7914 NULL_TREE);
7915 add_tree (yyval.ttype);
7916 }
7917 ;
7918 break;}
7919 case 732:
7920 #line 3993 "parse.y"
7921 {
7922 if (processing_template_decl)
7923 {
7924 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7925 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7926 last_tree = yyvsp[-2].ttype;
7927 }
7928 ;
7929 break;}
7930 case 733:
7931 #line 4002 "parse.y"
7932 {
7933 if (processing_template_decl)
7934 {
7935 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7936 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7937 last_tree = yyvsp[-4].ttype;
7938 }
7939 else
7940 expand_end_catch_block ();
7941 ;
7942 break;}
7943 case 737:
7944 #line 4022 "parse.y"
7945 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7946 break;}
7947 case 738:
7948 #line 4038 "parse.y"
7949 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7950 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7951 TREE_VALUE (yyvsp[-1].ftype.t)); ;
7952 break;}
7953 case 739:
7954 #line 4045 "parse.y"
7955 { tree label;
7956 do_label:
7957 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7958 if (label && ! minimal_parse_mode)
7959 expand_label (label);
7960 ;
7961 break;}
7962 case 740:
7963 #line 4052 "parse.y"
7964 { goto do_label; ;
7965 break;}
7966 case 741:
7967 #line 4054 "parse.y"
7968 { goto do_label; ;
7969 break;}
7970 case 742:
7971 #line 4056 "parse.y"
7972 { goto do_label; ;
7973 break;}
7974 case 743:
7975 #line 4061 "parse.y"
7976 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7977 break;}
7978 case 745:
7979 #line 4064 "parse.y"
7980 { if (pedantic)
7981 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7982 ;
7983 break;}
7984 case 746:
7985 #line 4073 "parse.y"
7986 { emit_line_note (input_filename, lineno);
7987 yyval.ttype = NULL_TREE; ;
7988 break;}
7989 case 747:
7990 #line 4076 "parse.y"
7991 { emit_line_note (input_filename, lineno); ;
7992 break;}
7993 case 748:
7994 #line 4081 "parse.y"
7995 { yyval.ttype = NULL_TREE; ;
7996 break;}
7997 case 750:
7998 #line 4084 "parse.y"
7999 { yyval.ttype = NULL_TREE; ;
8000 break;}
8001 case 751:
8002 #line 4091 "parse.y"
8003 { yyval.ttype = NULL_TREE; ;
8004 break;}
8005 case 754:
8006 #line 4098 "parse.y"
8007 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8008 break;}
8009 case 755:
8010 #line 4103 "parse.y"
8011 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8012 break;}
8013 case 756:
8014 #line 4108 "parse.y"
8015 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8016 break;}
8017 case 757:
8018 #line 4110 "parse.y"
8019 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8020 break;}
8021 case 758:
8022 #line 4121 "parse.y"
8023 {
8024 yyval.ttype = empty_parms();
8025 ;
8026 break;}
8027 case 760:
8028 #line 4126 "parse.y"
8029 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8030 TREE_PARMLIST (yyval.ttype) = 1;
8031 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8032 break;}
8033 case 761:
8034 #line 4135 "parse.y"
8035 {
8036 yyval.ttype = chainon (yyval.ttype, void_list_node);
8037 TREE_PARMLIST (yyval.ttype) = 1;
8038 ;
8039 break;}
8040 case 762:
8041 #line 4140 "parse.y"
8042 {
8043 TREE_PARMLIST (yyval.ttype) = 1;
8044 ;
8045 break;}
8046 case 763:
8047 #line 4145 "parse.y"
8048 {
8049 TREE_PARMLIST (yyval.ttype) = 1;
8050 ;
8051 break;}
8052 case 764:
8053 #line 4149 "parse.y"
8054 {
8055 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8056 TREE_PARMLIST (yyval.ttype) = 1;
8057 ;
8058 break;}
8059 case 765:
8060 #line 4154 "parse.y"
8061 {
8062 yyval.ttype = NULL_TREE;
8063 ;
8064 break;}
8065 case 766:
8066 #line 4158 "parse.y"
8067 {
8068 TREE_PARMLIST (yyval.ttype) = 1;
8069 ;
8070 break;}
8071 case 767:
8072 #line 4162 "parse.y"
8073 {
8074 TREE_PARMLIST (yyval.ttype) = 1;
8075 ;
8076 break;}
8077 case 768:
8078 #line 4166 "parse.y"
8079 {
8080 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8081 TREE_PARMLIST (yyval.ttype) = 1;
8082 ;
8083 break;}
8084 case 769:
8085 #line 4171 "parse.y"
8086 {
8087 /* This helps us recover from really nasty
8088 parse errors, for example, a missing right
8089 parenthesis. */
8090 yyerror ("possibly missing ')'");
8091 yyval.ttype = chainon (yyval.ttype, void_list_node);
8092 TREE_PARMLIST (yyval.ttype) = 1;
8093 yyungetc (':', 0);
8094 yychar = ')';
8095 ;
8096 break;}
8097 case 770:
8098 #line 4182 "parse.y"
8099 {
8100 /* This helps us recover from really nasty
8101 parse errors, for example, a missing right
8102 parenthesis. */
8103 yyerror ("possibly missing ')'");
8104 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8105 TREE_PARMLIST (yyval.ttype) = 1;
8106 yyungetc (':', 0);
8107 yychar = ')';
8108 ;
8109 break;}
8110 case 771:
8111 #line 4197 "parse.y"
8112 { maybe_snarf_defarg (); ;
8113 break;}
8114 case 772:
8115 #line 4199 "parse.y"
8116 { yyval.ttype = yyvsp[0].ttype; ;
8117 break;}
8118 case 775:
8119 #line 4210 "parse.y"
8120 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8121 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8122 break;}
8123 case 776:
8124 #line 4213 "parse.y"
8125 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8126 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8127 break;}
8128 case 777:
8129 #line 4216 "parse.y"
8130 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8131 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8132 break;}
8133 case 778:
8134 #line 4219 "parse.y"
8135 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8136 break;}
8137 case 779:
8138 #line 4221 "parse.y"
8139 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8140 break;}
8141 case 781:
8142 #line 4227 "parse.y"
8143 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8144 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8145 break;}
8146 case 782:
8147 #line 4237 "parse.y"
8148 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8149 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8150 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8151 break;}
8152 case 783:
8153 #line 4241 "parse.y"
8154 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8155 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8156 break;}
8157 case 784:
8158 #line 4244 "parse.y"
8159 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8160 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8161 break;}
8162 case 785:
8163 #line 4247 "parse.y"
8164 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8165 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8166 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8167 break;}
8168 case 786:
8169 #line 4251 "parse.y"
8170 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8171 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8172 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8173 break;}
8174 case 787:
8175 #line 4255 "parse.y"
8176 { tree specs = strip_attrs (yyvsp[-1].ttype);
8177 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8178 yyval.ftype.new_type_flag = 0; ;
8179 break;}
8180 case 788:
8181 #line 4262 "parse.y"
8182 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8183 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8184 break;}
8185 case 789:
8186 #line 4265 "parse.y"
8187 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8188 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8189 break;}
8190 case 792:
8191 #line 4276 "parse.y"
8192 { see_typename (); ;
8193 break;}
8194 case 793:
8195 #line 4281 "parse.y"
8196 {
8197 error ("type specifier omitted for parameter");
8198 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8199 ;
8200 break;}
8201 case 794:
8202 #line 4286 "parse.y"
8203 {
8204 error ("type specifier omitted for parameter");
8205 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8206 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8207 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8208 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8209 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8210 ;
8211 break;}
8212 case 795:
8213 #line 4298 "parse.y"
8214 { yyval.ttype = NULL_TREE; ;
8215 break;}
8216 case 796:
8217 #line 4300 "parse.y"
8218 { yyval.ttype = yyvsp[-1].ttype; ;
8219 break;}
8220 case 797:
8221 #line 4302 "parse.y"
8222 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8223 break;}
8224 case 798:
8225 #line 4307 "parse.y"
8226 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8227 break;}
8228 case 800:
8229 #line 4313 "parse.y"
8230 {
8231 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8232 yyval.ttype = yyvsp[0].ttype;
8233 ;
8234 break;}
8235 case 801:
8236 #line 4321 "parse.y"
8237 { yyval.ttype = NULL_TREE; ;
8238 break;}
8239 case 802:
8240 #line 4323 "parse.y"
8241 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8242 break;}
8243 case 803:
8244 #line 4325 "parse.y"
8245 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8246 break;}
8247 case 804:
8248 #line 4327 "parse.y"
8249 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8250 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8251 ;
8252 break;}
8253 case 805:
8254 #line 4334 "parse.y"
8255 { got_scope = NULL_TREE; ;
8256 break;}
8257 case 806:
8258 #line 4339 "parse.y"
8259 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8260 break;}
8261 case 807:
8262 #line 4341 "parse.y"
8263 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8264 break;}
8265 case 808:
8266 #line 4343 "parse.y"
8267 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8268 break;}
8269 case 809:
8270 #line 4345 "parse.y"
8271 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8272 break;}
8273 case 810:
8274 #line 4347 "parse.y"
8275 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8276 break;}
8277 case 811:
8278 #line 4349 "parse.y"
8279 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8280 break;}
8281 case 812:
8282 #line 4351 "parse.y"
8283 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8284 break;}
8285 case 813:
8286 #line 4353 "parse.y"
8287 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8288 break;}
8289 case 814:
8290 #line 4355 "parse.y"
8291 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8292 break;}
8293 case 815:
8294 #line 4357 "parse.y"
8295 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8296 break;}
8297 case 816:
8298 #line 4359 "parse.y"
8299 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8300 break;}
8301 case 817:
8302 #line 4361 "parse.y"
8303 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8304 break;}
8305 case 818:
8306 #line 4363 "parse.y"
8307 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8308 break;}
8309 case 819:
8310 #line 4365 "parse.y"
8311 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8312 break;}
8313 case 820:
8314 #line 4367 "parse.y"
8315 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8316 break;}
8317 case 821:
8318 #line 4369 "parse.y"
8319 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8320 break;}
8321 case 822:
8322 #line 4371 "parse.y"
8323 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8324 break;}
8325 case 823:
8326 #line 4373 "parse.y"
8327 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8328 break;}
8329 case 824:
8330 #line 4375 "parse.y"
8331 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8332 break;}
8333 case 825:
8334 #line 4377 "parse.y"
8335 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8336 break;}
8337 case 826:
8338 #line 4379 "parse.y"
8339 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8340 break;}
8341 case 827:
8342 #line 4381 "parse.y"
8343 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8344 break;}
8345 case 828:
8346 #line 4383 "parse.y"
8347 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8348 break;}
8349 case 829:
8350 #line 4385 "parse.y"
8351 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8352 break;}
8353 case 830:
8354 #line 4387 "parse.y"
8355 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8356 break;}
8357 case 831:
8358 #line 4389 "parse.y"
8359 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8360 break;}
8361 case 832:
8362 #line 4391 "parse.y"
8363 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8364 break;}
8365 case 833:
8366 #line 4393 "parse.y"
8367 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8368 break;}
8369 case 834:
8370 #line 4395 "parse.y"
8371 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8372 break;}
8373 case 835:
8374 #line 4397 "parse.y"
8375 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8376 break;}
8377 case 836:
8378 #line 4399 "parse.y"
8379 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8380 break;}
8381 case 837:
8382 #line 4401 "parse.y"
8383 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8384 break;}
8385 case 838:
8386 #line 4403 "parse.y"
8387 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8388 break;}
8389 case 839:
8390 #line 4406 "parse.y"
8391 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8392 break;}
8393 case 840:
8394 #line 4408 "parse.y"
8395 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8396 break;}
8397 }
8398 /* the action file gets copied in in place of this dollarsign */
8399 #line 498 "/usr/lib/bison.simple"
8400 \f
8401 yyvsp -= yylen;
8402 yyssp -= yylen;
8403 #ifdef YYLSP_NEEDED
8404 yylsp -= yylen;
8405 #endif
8406
8407 #if YYDEBUG != 0
8408 if (yydebug)
8409 {
8410 short *ssp1 = yyss - 1;
8411 fprintf (stderr, "state stack now");
8412 while (ssp1 != yyssp)
8413 fprintf (stderr, " %d", *++ssp1);
8414 fprintf (stderr, "\n");
8415 }
8416 #endif
8417
8418 *++yyvsp = yyval;
8419
8420 #ifdef YYLSP_NEEDED
8421 yylsp++;
8422 if (yylen == 0)
8423 {
8424 yylsp->first_line = yylloc.first_line;
8425 yylsp->first_column = yylloc.first_column;
8426 yylsp->last_line = (yylsp-1)->last_line;
8427 yylsp->last_column = (yylsp-1)->last_column;
8428 yylsp->text = 0;
8429 }
8430 else
8431 {
8432 yylsp->last_line = (yylsp+yylen-1)->last_line;
8433 yylsp->last_column = (yylsp+yylen-1)->last_column;
8434 }
8435 #endif
8436
8437 /* Now "shift" the result of the reduction.
8438 Determine what state that goes to,
8439 based on the state we popped back to
8440 and the rule number reduced by. */
8441
8442 yyn = yyr1[yyn];
8443
8444 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8445 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8446 yystate = yytable[yystate];
8447 else
8448 yystate = yydefgoto[yyn - YYNTBASE];
8449
8450 goto yynewstate;
8451
8452 yyerrlab: /* here on detecting error */
8453
8454 if (! yyerrstatus)
8455 /* If not already recovering from an error, report this error. */
8456 {
8457 ++yynerrs;
8458
8459 #ifdef YYERROR_VERBOSE
8460 yyn = yypact[yystate];
8461
8462 if (yyn > YYFLAG && yyn < YYLAST)
8463 {
8464 int size = 0;
8465 char *msg;
8466 int x, count;
8467
8468 count = 0;
8469 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8470 for (x = (yyn < 0 ? -yyn : 0);
8471 x < (sizeof(yytname) / sizeof(char *)); x++)
8472 if (yycheck[x + yyn] == x)
8473 size += strlen(yytname[x]) + 15, count++;
8474 msg = (char *) malloc(size + 15);
8475 if (msg != 0)
8476 {
8477 strcpy(msg, "parse error");
8478
8479 if (count < 5)
8480 {
8481 count = 0;
8482 for (x = (yyn < 0 ? -yyn : 0);
8483 x < (sizeof(yytname) / sizeof(char *)); x++)
8484 if (yycheck[x + yyn] == x)
8485 {
8486 strcat(msg, count == 0 ? ", expecting `" : " or `");
8487 strcat(msg, yytname[x]);
8488 strcat(msg, "'");
8489 count++;
8490 }
8491 }
8492 yyerror(msg);
8493 free(msg);
8494 }
8495 else
8496 yyerror ("parse error; also virtual memory exceeded");
8497 }
8498 else
8499 #endif /* YYERROR_VERBOSE */
8500 yyerror("parse error");
8501 }
8502
8503 goto yyerrlab1;
8504 yyerrlab1: /* here on error raised explicitly by an action */
8505
8506 if (yyerrstatus == 3)
8507 {
8508 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8509
8510 /* return failure if at end of input */
8511 if (yychar == YYEOF)
8512 YYABORT;
8513
8514 #if YYDEBUG != 0
8515 if (yydebug)
8516 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8517 #endif
8518
8519 yychar = YYEMPTY;
8520 }
8521
8522 /* Else will try to reuse lookahead token
8523 after shifting the error token. */
8524
8525 yyerrstatus = 3; /* Each real token shifted decrements this */
8526
8527 goto yyerrhandle;
8528
8529 yyerrdefault: /* current state does not do anything special for the error token. */
8530
8531 #if 0
8532 /* This is wrong; only states that explicitly want error tokens
8533 should shift them. */
8534 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8535 if (yyn) goto yydefault;
8536 #endif
8537
8538 yyerrpop: /* pop the current state because it cannot handle the error token */
8539
8540 if (yyssp == yyss) YYABORT;
8541 yyvsp--;
8542 yystate = *--yyssp;
8543 #ifdef YYLSP_NEEDED
8544 yylsp--;
8545 #endif
8546
8547 #if YYDEBUG != 0
8548 if (yydebug)
8549 {
8550 short *ssp1 = yyss - 1;
8551 fprintf (stderr, "Error: state stack now");
8552 while (ssp1 != yyssp)
8553 fprintf (stderr, " %d", *++ssp1);
8554 fprintf (stderr, "\n");
8555 }
8556 #endif
8557
8558 yyerrhandle:
8559
8560 yyn = yypact[yystate];
8561 if (yyn == YYFLAG)
8562 goto yyerrdefault;
8563
8564 yyn += YYTERROR;
8565 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8566 goto yyerrdefault;
8567
8568 yyn = yytable[yyn];
8569 if (yyn < 0)
8570 {
8571 if (yyn == YYFLAG)
8572 goto yyerrpop;
8573 yyn = -yyn;
8574 goto yyreduce;
8575 }
8576 else if (yyn == 0)
8577 goto yyerrpop;
8578
8579 if (yyn == YYFINAL)
8580 YYACCEPT;
8581
8582 #if YYDEBUG != 0
8583 if (yydebug)
8584 fprintf(stderr, "Shifting error token, ");
8585 #endif
8586
8587 *++yyvsp = yylval;
8588 #ifdef YYLSP_NEEDED
8589 *++yylsp = yylloc;
8590 #endif
8591
8592 yystate = yyn;
8593 goto yynewstate;
8594 }
8595 #line 4411 "parse.y"
8596
8597
8598 #ifdef SPEW_DEBUG
8599 const char *
8600 debug_yytranslate (value)
8601 int value;
8602 {
8603 return yytname[YYTRANSLATE (value)];
8604 }
8605
8606 #endif
This page took 2.872287 seconds and 5 git commands to generate.