Various fixes for -Wall problems from Kaveh. See ChangeLog for details.
[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 /* If nonzero, we try to treat TEMPLATE_DECL as argument in template
143 template parameter. */
144 static int processing_template_arg;
145
146 extern int arg_looking_for_template;
147
148 static tree empty_parms PROTO((void));
149
150 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
151 int have_extern_spec;
152 int used_extern_spec;
153
154 /* Cons up an empty parameter list. */
155 #ifdef __GNUC__
156 __inline
157 #endif
158 static tree
159 empty_parms ()
160 {
161 tree parms;
162
163 if (strict_prototype
164 || current_class_type != NULL)
165 parms = void_list_node;
166 else
167 parms = NULL_TREE;
168 return parms;
169 }
170
171
172 #line 107 "parse.y"
173 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
174 #line 296 "parse.y"
175
176 /* List of types and structure classes of the current declaration. */
177 static tree current_declspecs = NULL_TREE;
178 /* List of prefix attributes in effect.
179 Prefix attributes are parsed by the reserved_declspecs and declmods
180 rules. They create a list that contains *both* declspecs and attrs. */
181 /* ??? It is not clear yet that all cases where an attribute can now appear in
182 a declspec list have been updated. */
183 static tree prefix_attributes = NULL_TREE;
184
185 /* When defining an aggregate, this is the most recent one being defined. */
186 static tree current_aggr;
187
188 /* Tell yyparse how to print a token's value, if yydebug is set. */
189
190 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
191 extern void yyprint PROTO((FILE *, int, YYSTYPE));
192 extern tree combine_strings PROTO((tree));
193 #include <stdio.h>
194
195 #ifndef __cplusplus
196 #ifndef __STDC__
197 #define const
198 #endif
199 #endif
200
201
202
203 #define YYFINAL 1554
204 #define YYFLAG -32768
205 #define YYNTBASE 114
206
207 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 391)
208
209 static const char yytranslate[] = { 0,
210 2, 2, 2, 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 2, 2, 112, 2, 2, 2, 83, 71, 2, 94,
214 110, 81, 79, 60, 80, 93, 82, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
216 65, 76, 66, 2, 2, 2, 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 95, 2, 113, 70, 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, 59, 69, 111, 89, 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, 2, 2, 2, 2, 2,
230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
235 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
236 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
237 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
238 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
239 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
240 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
241 56, 57, 58, 62, 64, 67, 68, 72, 73, 74,
242 77, 78, 84, 85, 86, 87, 88, 90, 91, 92,
243 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
244 106, 107, 108, 109
245 };
246
247 #if YYDEBUG != 0
248 static const short yyprhs[] = { 0,
249 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
250 17, 19, 21, 22, 25, 28, 30, 32, 38, 43,
251 49, 54, 55, 62, 63, 69, 75, 78, 83, 86,
252 89, 93, 97, 99, 101, 104, 107, 109, 112, 113,
253 119, 123, 125, 129, 131, 132, 135, 138, 142, 144,
254 148, 150, 154, 156, 160, 163, 166, 169, 173, 177,
255 180, 183, 186, 189, 192, 194, 196, 198, 199, 201,
256 204, 205, 207, 212, 216, 220, 221, 230, 236, 237,
257 247, 254, 255, 264, 270, 271, 281, 288, 291, 294,
258 296, 299, 301, 308, 313, 320, 325, 328, 330, 333,
259 336, 338, 341, 343, 346, 349, 352, 357, 360, 364,
260 365, 366, 368, 372, 375, 379, 381, 386, 389, 394,
261 397, 402, 405, 407, 409, 411, 413, 415, 417, 419,
262 421, 423, 425, 427, 428, 435, 436, 443, 444, 450,
263 451, 457, 458, 466, 467, 475, 476, 483, 484, 491,
264 492, 493, 498, 503, 505, 510, 512, 514, 515, 517,
265 519, 523, 524, 527, 529, 531, 533, 535, 537, 539,
266 541, 543, 545, 547, 551, 553, 557, 558, 560, 562,
267 563, 571, 573, 575, 579, 584, 588, 589, 593, 595,
268 599, 603, 607, 611, 613, 615, 617, 620, 623, 626,
269 629, 632, 635, 638, 643, 646, 651, 654, 658, 662,
270 667, 672, 678, 684, 691, 694, 699, 705, 708, 711,
271 715, 719, 723, 725, 729, 732, 736, 741, 743, 746,
272 752, 754, 758, 762, 766, 770, 774, 778, 782, 786,
273 790, 794, 798, 802, 806, 810, 814, 818, 822, 826,
274 830, 836, 840, 844, 846, 849, 853, 855, 857, 859,
275 861, 863, 864, 870, 876, 882, 888, 894, 896, 898,
276 900, 902, 905, 908, 912, 917, 922, 924, 926, 928,
277 932, 934, 936, 938, 940, 944, 948, 952, 953, 958,
278 963, 966, 971, 974, 977, 979, 984, 986, 994, 1002,
279 1010, 1018, 1023, 1028, 1031, 1034, 1036, 1041, 1044, 1047,
280 1053, 1057, 1060, 1063, 1069, 1073, 1079, 1083, 1088, 1095,
281 1098, 1100, 1103, 1105, 1108, 1110, 1112, 1114, 1117, 1118,
282 1121, 1124, 1128, 1132, 1136, 1139, 1142, 1145, 1147, 1149,
283 1151, 1154, 1157, 1160, 1163, 1165, 1167, 1169, 1171, 1174,
284 1177, 1181, 1185, 1189, 1194, 1196, 1199, 1202, 1205, 1207,
285 1209, 1211, 1214, 1217, 1220, 1222, 1224, 1227, 1230, 1234,
286 1236, 1239, 1241, 1243, 1245, 1250, 1255, 1260, 1265, 1267,
287 1269, 1271, 1273, 1277, 1279, 1283, 1285, 1289, 1290, 1295,
288 1296, 1303, 1307, 1308, 1315, 1319, 1320, 1327, 1331, 1332,
289 1339, 1343, 1344, 1346, 1348, 1351, 1358, 1360, 1364, 1365,
290 1367, 1372, 1379, 1384, 1386, 1388, 1390, 1392, 1394, 1398,
291 1399, 1402, 1404, 1407, 1411, 1416, 1418, 1420, 1424, 1429,
292 1436, 1440, 1446, 1448, 1453, 1457, 1461, 1462, 1466, 1470,
293 1474, 1475, 1478, 1481, 1482, 1490, 1495, 1496, 1503, 1507,
294 1510, 1513, 1516, 1517, 1518, 1528, 1530, 1531, 1533, 1534,
295 1536, 1538, 1541, 1544, 1547, 1550, 1553, 1556, 1560, 1565,
296 1569, 1572, 1576, 1577, 1579, 1583, 1586, 1589, 1591, 1593,
297 1594, 1597, 1601, 1603, 1608, 1610, 1614, 1616, 1618, 1623,
298 1628, 1631, 1634, 1638, 1642, 1644, 1645, 1647, 1650, 1655,
299 1659, 1661, 1664, 1667, 1670, 1673, 1676, 1679, 1682, 1684,
300 1687, 1690, 1693, 1698, 1703, 1706, 1708, 1714, 1719, 1721,
301 1724, 1725, 1727, 1731, 1732, 1734, 1738, 1740, 1742, 1744,
302 1746, 1751, 1756, 1761, 1766, 1771, 1775, 1780, 1785, 1790,
303 1795, 1799, 1801, 1805, 1807, 1811, 1814, 1816, 1823, 1824,
304 1827, 1829, 1832, 1833, 1836, 1841, 1846, 1849, 1854, 1858,
305 1862, 1865, 1868, 1872, 1874, 1876, 1879, 1881, 1883, 1886,
306 1889, 1894, 1899, 1903, 1907, 1910, 1912, 1916, 1920, 1923,
307 1926, 1930, 1932, 1936, 1940, 1943, 1946, 1950, 1952, 1957,
308 1961, 1966, 1970, 1972, 1975, 1978, 1981, 1984, 1987, 1989,
309 1992, 1997, 2002, 2005, 2007, 2009, 2011, 2013, 2016, 2019,
310 2022, 2025, 2028, 2030, 2033, 2036, 2038, 2041, 2044, 2047,
311 2050, 2053, 2056, 2059, 2062, 2064, 2067, 2070, 2074, 2076,
312 2080, 2083, 2087, 2090, 2093, 2097, 2099, 2103, 2108, 2112,
313 2115, 2118, 2120, 2124, 2127, 2130, 2132, 2135, 2139, 2141,
314 2145, 2147, 2154, 2159, 2164, 2168, 2174, 2178, 2182, 2186,
315 2189, 2191, 2193, 2196, 2199, 2202, 2203, 2204, 2205, 2207,
316 2209, 2212, 2216, 2218, 2221, 2222, 2228, 2229, 2230, 2237,
317 2239, 2240, 2245, 2247, 2249, 2251, 2254, 2255, 2256, 2263,
318 2265, 2266, 2267, 2275, 2276, 2277, 2285, 2286, 2287, 2288,
319 2289, 2304, 2305, 2306, 2316, 2317, 2323, 2324, 2332, 2333,
320 2338, 2341, 2344, 2347, 2351, 2358, 2367, 2378, 2391, 2396,
321 2400, 2403, 2406, 2408, 2410, 2411, 2412, 2419, 2420, 2421,
322 2427, 2429, 2432, 2433, 2434, 2435, 2444, 2446, 2448, 2452,
323 2456, 2459, 2462, 2465, 2468, 2471, 2473, 2476, 2477, 2479,
324 2480, 2482, 2484, 2485, 2487, 2489, 2493, 2498, 2500, 2504,
325 2505, 2507, 2509, 2511, 2514, 2517, 2520, 2522, 2524, 2527,
326 2530, 2533, 2536, 2537, 2541, 2543, 2545, 2547, 2550, 2553,
327 2556, 2561, 2564, 2567, 2570, 2573, 2576, 2579, 2581, 2584,
328 2586, 2589, 2591, 2593, 2594, 2595, 2597, 2598, 2603, 2606,
329 2608, 2610, 2614, 2615, 2619, 2623, 2627, 2629, 2632, 2635,
330 2638, 2641, 2644, 2647, 2650, 2653, 2656, 2659, 2662, 2665,
331 2668, 2671, 2674, 2677, 2680, 2683, 2686, 2689, 2692, 2695,
332 2698, 2702, 2705, 2708, 2711, 2714, 2718, 2721, 2724, 2729,
333 2734, 2738
334 };
335
336 static const short yyrhs[] = { -1,
337 115, 0, 0, 116, 122, 0, 115, 122, 0, 115,
338 0, 0, 0, 0, 33, 0, 27, 0, 28, 0,
339 0, 123, 124, 0, 142, 141, 0, 138, 0, 137,
340 0, 121, 94, 210, 110, 61, 0, 129, 59, 117,
341 111, 0, 129, 118, 142, 119, 141, 0, 129, 118,
342 138, 119, 0, 0, 45, 157, 59, 125, 117, 111,
343 0, 0, 45, 59, 126, 117, 111, 0, 45, 157,
344 65, 128, 61, 0, 127, 61, 0, 47, 45, 128,
345 61, 0, 120, 124, 0, 47, 302, 0, 47, 315,
346 302, 0, 47, 315, 201, 0, 201, 0, 302, 0,
347 315, 302, 0, 315, 201, 0, 100, 0, 129, 100,
348 0, 0, 49, 75, 131, 132, 76, 0, 49, 75,
349 76, 0, 136, 0, 132, 60, 136, 0, 157, 0,
350 0, 259, 133, 0, 46, 133, 0, 130, 259, 133,
351 0, 134, 0, 134, 65, 216, 0, 382, 0, 382,
352 65, 196, 0, 135, 0, 135, 65, 57, 0, 130,
353 124, 0, 130, 1, 0, 227, 61, 0, 220, 226,
354 61, 0, 217, 225, 61, 0, 220, 61, 0, 160,
355 61, 0, 217, 61, 0, 1, 61, 0, 1, 111,
356 0, 61, 0, 211, 0, 153, 0, 0, 152, 0,
357 152, 61, 0, 0, 109, 0, 148, 140, 139, 327,
358 0, 148, 140, 352, 0, 148, 140, 1, 0, 0,
359 307, 5, 94, 144, 373, 110, 289, 385, 0, 307,
360 5, 48, 289, 385, 0, 0, 315, 307, 5, 94,
361 145, 373, 110, 289, 385, 0, 315, 307, 5, 48,
362 289, 385, 0, 0, 307, 172, 94, 146, 373, 110,
363 289, 385, 0, 307, 172, 48, 289, 385, 0, 0,
364 315, 307, 172, 94, 147, 373, 110, 289, 385, 0,
365 315, 307, 172, 48, 289, 385, 0, 217, 214, 0,
366 220, 299, 0, 299, 0, 220, 143, 0, 143, 0,
367 5, 94, 373, 110, 289, 385, 0, 5, 48, 289,
368 385, 0, 172, 94, 373, 110, 289, 385, 0, 172,
369 48, 289, 385, 0, 220, 149, 0, 149, 0, 217,
370 214, 0, 220, 299, 0, 299, 0, 220, 143, 0,
371 143, 0, 130, 150, 0, 25, 3, 0, 151, 244,
372 0, 151, 94, 190, 110, 0, 151, 48, 0, 63,
373 154, 155, 0, 0, 0, 156, 0, 155, 60, 156,
374 0, 155, 1, 0, 94, 190, 110, 0, 48, 0,
375 158, 94, 190, 110, 0, 158, 48, 0, 295, 94,
376 190, 110, 0, 295, 48, 0, 309, 94, 190, 110,
377 0, 309, 48, 0, 3, 0, 4, 0, 5, 0,
378 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
379 106, 0, 105, 0, 107, 0, 0, 49, 169, 223,
380 61, 161, 170, 0, 0, 49, 169, 217, 214, 162,
381 170, 0, 0, 49, 169, 299, 163, 170, 0, 0,
382 49, 169, 143, 164, 170, 0, 0, 7, 49, 169,
383 223, 61, 165, 170, 0, 0, 7, 49, 169, 217,
384 214, 166, 170, 0, 0, 7, 49, 169, 299, 167,
385 170, 0, 0, 7, 49, 169, 143, 168, 170, 0,
386 0, 0, 57, 75, 174, 173, 0, 4, 75, 174,
387 173, 0, 172, 0, 5, 75, 174, 173, 0, 76,
388 0, 78, 0, 0, 175, 0, 176, 0, 175, 60,
389 176, 0, 0, 177, 178, 0, 216, 0, 196, 0,
390 80, 0, 79, 0, 87, 0, 88, 0, 112, 0,
391 189, 0, 196, 0, 48, 0, 94, 180, 110, 0,
392 48, 0, 94, 184, 110, 0, 0, 184, 0, 1,
393 0, 0, 363, 214, 228, 237, 65, 185, 245, 0,
394 180, 0, 111, 0, 324, 320, 111, 0, 324, 320,
395 1, 111, 0, 324, 1, 111, 0, 0, 59, 188,
396 186, 0, 336, 0, 196, 60, 196, 0, 196, 60,
397 1, 0, 189, 60, 196, 0, 189, 60, 1, 0,
398 196, 0, 189, 0, 205, 0, 120, 195, 0, 81,
399 195, 0, 71, 195, 0, 89, 195, 0, 179, 195,
400 0, 68, 157, 0, 13, 191, 0, 13, 94, 216,
401 110, 0, 30, 191, 0, 30, 94, 216, 110, 0,
402 207, 288, 0, 207, 288, 193, 0, 207, 192, 288,
403 0, 207, 192, 288, 193, 0, 207, 94, 216, 110,
404 0, 207, 94, 216, 110, 193, 0, 207, 192, 94,
405 216, 110, 0, 207, 192, 94, 216, 110, 193, 0,
406 208, 195, 0, 208, 95, 113, 195, 0, 208, 95,
407 180, 113, 195, 0, 35, 195, 0, 36, 195, 0,
408 94, 190, 110, 0, 59, 190, 111, 0, 94, 190,
409 110, 0, 48, 0, 94, 223, 110, 0, 65, 245,
410 0, 94, 216, 110, 0, 194, 94, 216, 110, 0,
411 191, 0, 194, 191, 0, 194, 59, 246, 257, 111,
412 0, 195, 0, 196, 84, 196, 0, 196, 85, 196,
413 0, 196, 79, 196, 0, 196, 80, 196, 0, 196,
414 81, 196, 0, 196, 82, 196, 0, 196, 83, 196,
415 0, 196, 77, 196, 0, 196, 78, 196, 0, 196,
416 74, 196, 0, 196, 75, 196, 0, 196, 76, 196,
417 0, 196, 73, 196, 0, 196, 72, 196, 0, 196,
418 71, 196, 0, 196, 69, 196, 0, 196, 70, 196,
419 0, 196, 68, 196, 0, 196, 67, 196, 0, 196,
420 66, 368, 63, 196, 0, 196, 65, 196, 0, 196,
421 64, 196, 0, 62, 0, 62, 196, 0, 89, 383,
422 157, 0, 199, 0, 390, 0, 3, 0, 57, 0,
423 58, 0, 0, 6, 75, 198, 174, 173, 0, 390,
424 75, 198, 174, 173, 0, 49, 157, 75, 174, 173,
425 0, 49, 6, 75, 174, 173, 0, 49, 390, 75,
426 174, 173, 0, 197, 0, 4, 0, 5, 0, 197,
427 0, 81, 202, 0, 71, 202, 0, 94, 202, 110,
428 0, 3, 75, 174, 173, 0, 58, 75, 175, 173,
429 0, 301, 0, 197, 0, 203, 0, 94, 202, 110,
430 0, 197, 0, 10, 0, 209, 0, 210, 0, 94,
431 180, 110, 0, 94, 202, 110, 0, 94, 1, 110,
432 0, 0, 94, 206, 328, 110, 0, 205, 94, 190,
433 110, 0, 205, 48, 0, 205, 95, 180, 113, 0,
434 205, 87, 0, 205, 88, 0, 41, 0, 9, 94,
435 190, 110, 0, 305, 0, 51, 75, 216, 76, 94,
436 180, 110, 0, 52, 75, 216, 76, 94, 180, 110,
437 0, 53, 75, 216, 76, 94, 180, 110, 0, 54,
438 75, 216, 76, 94, 180, 110, 0, 50, 94, 180,
439 110, 0, 50, 94, 216, 110, 0, 315, 3, 0,
440 315, 390, 0, 304, 0, 304, 94, 190, 110, 0,
441 304, 48, 0, 212, 200, 0, 212, 200, 94, 190,
442 110, 0, 212, 200, 48, 0, 212, 201, 0, 212,
443 304, 0, 212, 201, 94, 190, 110, 0, 212, 201,
444 48, 0, 212, 304, 94, 190, 110, 0, 212, 304,
445 48, 0, 212, 89, 8, 48, 0, 212, 8, 55,
446 89, 8, 48, 0, 212, 1, 0, 40, 0, 315,
447 40, 0, 39, 0, 315, 208, 0, 43, 0, 44,
448 0, 11, 0, 210, 11, 0, 0, 205, 93, 0,
449 205, 92, 0, 223, 225, 61, 0, 217, 225, 61,
450 0, 220, 226, 61, 0, 217, 61, 0, 220, 61,
451 0, 120, 213, 0, 294, 0, 299, 0, 48, 0,
452 215, 48, 0, 221, 318, 0, 290, 318, 0, 223,
453 318, 0, 221, 0, 290, 0, 221, 0, 218, 0,
454 220, 223, 0, 223, 219, 0, 223, 222, 219, 0,
455 220, 223, 219, 0, 220, 223, 222, 0, 220, 223,
456 222, 219, 0, 7, 0, 219, 224, 0, 219, 7,
457 0, 219, 238, 0, 238, 0, 290, 0, 7, 0,
458 220, 9, 0, 220, 7, 0, 220, 238, 0, 238,
459 0, 223, 0, 290, 223, 0, 223, 222, 0, 290,
460 223, 222, 0, 224, 0, 222, 224, 0, 252, 0,
461 8, 0, 296, 0, 29, 94, 180, 110, 0, 29,
462 94, 216, 110, 0, 31, 94, 180, 110, 0, 31,
463 94, 216, 110, 0, 8, 0, 9, 0, 252, 0,
464 229, 0, 225, 60, 231, 0, 233, 0, 226, 60,
465 231, 0, 235, 0, 227, 60, 231, 0, 0, 121,
466 94, 210, 110, 0, 0, 214, 228, 237, 65, 230,
467 245, 0, 214, 228, 237, 0, 0, 214, 228, 237,
468 65, 232, 245, 0, 214, 228, 237, 0, 0, 299,
469 228, 237, 65, 234, 245, 0, 299, 228, 237, 0,
470 0, 299, 228, 237, 65, 236, 245, 0, 299, 228,
471 237, 0, 0, 238, 0, 239, 0, 238, 239, 0,
472 32, 94, 94, 240, 110, 110, 0, 241, 0, 240,
473 60, 241, 0, 0, 242, 0, 242, 94, 3, 110,
474 0, 242, 94, 3, 60, 190, 110, 0, 242, 94,
475 190, 110, 0, 157, 0, 7, 0, 8, 0, 9,
476 0, 157, 0, 243, 60, 157, 0, 0, 65, 245,
477 0, 196, 0, 59, 111, 0, 59, 246, 111, 0,
478 59, 246, 60, 111, 0, 1, 0, 245, 0, 246,
479 60, 245, 0, 95, 196, 113, 245, 0, 246, 60,
480 21, 196, 63, 245, 0, 157, 63, 245, 0, 246,
481 60, 157, 63, 245, 0, 99, 0, 247, 140, 139,
482 327, 0, 247, 140, 352, 0, 247, 140, 1, 0,
483 0, 249, 248, 141, 0, 104, 196, 109, 0, 104,
484 1, 109, 0, 0, 251, 250, 0, 251, 1, 0,
485 0, 14, 157, 59, 253, 286, 258, 111, 0, 14,
486 157, 59, 111, 0, 0, 14, 59, 254, 286, 258,
487 111, 0, 14, 59, 111, 0, 14, 157, 0, 14,
488 313, 0, 46, 309, 0, 0, 0, 266, 272, 274,
489 111, 237, 255, 251, 256, 249, 0, 266, 0, 0,
490 60, 0, 0, 60, 0, 37, 0, 259, 7, 0,
491 259, 8, 0, 259, 9, 0, 259, 37, 0, 259,
492 157, 0, 259, 159, 0, 259, 307, 157, 0, 259,
493 315, 307, 157, 0, 259, 315, 157, 0, 259, 171,
494 0, 259, 307, 171, 0, 0, 260, 0, 261, 263,
495 267, 0, 262, 267, 0, 259, 59, 0, 265, 0,
496 264, 0, 0, 63, 383, 0, 63, 383, 268, 0,
497 269, 0, 268, 60, 383, 269, 0, 270, 0, 271,
498 383, 270, 0, 309, 0, 295, 0, 31, 94, 180,
499 110, 0, 31, 94, 216, 110, 0, 38, 383, 0,
500 7, 383, 0, 271, 38, 383, 0, 271, 7, 383,
501 0, 59, 0, 0, 273, 0, 273, 275, 0, 274,
502 38, 63, 275, 0, 274, 38, 63, 0, 276, 0,
503 275, 276, 0, 277, 61, 0, 277, 111, 0, 150,
504 63, 0, 150, 96, 0, 150, 25, 0, 150, 59,
505 0, 61, 0, 120, 276, 0, 217, 278, 0, 220,
506 279, 0, 299, 228, 237, 244, 0, 143, 228, 237,
507 244, 0, 63, 196, 0, 1, 0, 220, 149, 228,
508 237, 244, 0, 149, 228, 237, 244, 0, 127, 0,
509 130, 277, 0, 0, 280, 0, 278, 60, 281, 0,
510 0, 283, 0, 279, 60, 285, 0, 282, 0, 283,
511 0, 284, 0, 285, 0, 294, 228, 237, 244, 0,
512 4, 63, 196, 237, 0, 299, 228, 237, 244, 0,
513 143, 228, 237, 244, 0, 3, 63, 196, 237, 0,
514 63, 196, 237, 0, 294, 228, 237, 244, 0, 4,
515 63, 196, 237, 0, 299, 228, 237, 244, 0, 3,
516 63, 196, 237, 0, 63, 196, 237, 0, 287, 0,
517 286, 60, 287, 0, 157, 0, 157, 65, 196, 0,
518 363, 316, 0, 363, 0, 94, 216, 110, 95, 180,
519 113, 0, 0, 289, 9, 0, 9, 0, 290, 9,
520 0, 0, 291, 180, 0, 291, 94, 190, 110, 0,
521 291, 94, 373, 110, 0, 291, 48, 0, 291, 94,
522 1, 110, 0, 81, 290, 294, 0, 71, 290, 294,
523 0, 81, 294, 0, 71, 294, 0, 314, 289, 294,
524 0, 298, 0, 306, 0, 315, 306, 0, 295, 0,
525 297, 0, 315, 297, 0, 307, 306, 0, 298, 293,
526 289, 385, 0, 298, 95, 292, 113, 0, 298, 95,
527 113, 0, 94, 294, 110, 0, 307, 306, 0, 306,
528 0, 81, 290, 299, 0, 71, 290, 299, 0, 81,
529 299, 0, 71, 299, 0, 314, 289, 299, 0, 204,
530 0, 81, 290, 299, 0, 71, 290, 299, 0, 81,
531 300, 0, 71, 300, 0, 314, 289, 299, 0, 301,
532 0, 204, 293, 289, 385, 0, 94, 300, 110, 0,
533 204, 95, 292, 113, 0, 204, 95, 113, 0, 303,
534 0, 307, 203, 0, 307, 201, 0, 307, 200, 0,
535 307, 197, 0, 307, 200, 0, 303, 0, 315, 303,
536 0, 223, 94, 190, 110, 0, 223, 94, 202, 110,
537 0, 223, 215, 0, 4, 0, 5, 0, 171, 0,
538 308, 0, 307, 308, 0, 4, 55, 0, 5, 55,
539 0, 58, 55, 0, 171, 55, 0, 310, 0, 315,
540 310, 0, 311, 157, 0, 312, 0, 311, 312, 0,
541 4, 55, 0, 5, 55, 0, 171, 55, 0, 57,
542 55, 0, 3, 55, 0, 58, 55, 0, 315, 306,
543 0, 297, 0, 315, 297, 0, 307, 81, 0, 315,
544 307, 81, 0, 55, 0, 81, 289, 316, 0, 81,
545 289, 0, 71, 289, 316, 0, 71, 289, 0, 314,
546 289, 0, 314, 289, 316, 0, 317, 0, 95, 180,
547 113, 0, 317, 95, 292, 113, 0, 81, 290, 318,
548 0, 81, 318, 0, 81, 290, 0, 81, 0, 71,
549 290, 318, 0, 71, 318, 0, 71, 290, 0, 71,
550 0, 314, 289, 0, 314, 289, 318, 0, 319, 0,
551 94, 318, 110, 0, 91, 0, 319, 94, 373, 110,
552 289, 385, 0, 319, 48, 289, 385, 0, 319, 95,
553 292, 113, 0, 319, 95, 113, 0, 94, 374, 110,
554 289, 385, 0, 194, 289, 385, 0, 215, 289, 385,
555 0, 95, 292, 113, 0, 95, 113, 0, 335, 0,
556 321, 0, 320, 335, 0, 320, 321, 0, 1, 61,
557 0, 0, 0, 0, 325, 0, 326, 0, 325, 326,
558 0, 34, 243, 61, 0, 328, 0, 1, 328, 0,
559 0, 59, 329, 322, 186, 323, 0, 0, 0, 15,
560 331, 322, 182, 332, 333, 0, 328, 0, 0, 322,
561 334, 336, 323, 0, 328, 0, 336, 0, 213, 0,
562 180, 61, 0, 0, 0, 330, 16, 337, 333, 338,
563 323, 0, 330, 0, 0, 0, 17, 339, 322, 182,
564 340, 187, 323, 0, 0, 0, 18, 341, 333, 17,
565 342, 181, 61, 0, 0, 0, 0, 0, 19, 343,
566 94, 366, 344, 322, 183, 61, 345, 368, 110, 346,
567 187, 323, 0, 0, 0, 20, 322, 94, 184, 110,
568 347, 333, 348, 323, 0, 0, 21, 196, 63, 349,
569 335, 0, 0, 21, 196, 12, 196, 63, 350, 335,
570 0, 0, 22, 63, 351, 335, 0, 23, 61, 0,
571 24, 61, 0, 25, 61, 0, 25, 180, 61, 0,
572 121, 367, 94, 210, 110, 61, 0, 121, 367, 94,
573 210, 63, 369, 110, 61, 0, 121, 367, 94, 210,
574 63, 369, 63, 369, 110, 61, 0, 121, 367, 94,
575 210, 63, 369, 63, 369, 63, 372, 110, 61, 0,
576 26, 81, 180, 61, 0, 26, 157, 61, 0, 365,
577 335, 0, 365, 111, 0, 61, 0, 355, 0, 0,
578 0, 96, 353, 139, 328, 354, 358, 0, 0, 0,
579 96, 356, 328, 357, 358, 0, 359, 0, 358, 359,
580 0, 0, 0, 0, 97, 360, 322, 364, 361, 328,
581 362, 323, 0, 221, 0, 290, 0, 94, 12, 110,
582 0, 94, 382, 110, 0, 3, 63, 0, 57, 63,
583 0, 4, 63, 0, 5, 63, 0, 368, 61, 0,
584 213, 0, 59, 186, 0, 0, 9, 0, 0, 180,
585 0, 1, 0, 0, 370, 0, 371, 0, 370, 60,
586 371, 0, 11, 94, 180, 110, 0, 11, 0, 372,
587 60, 11, 0, 0, 374, 0, 216, 0, 378, 0,
588 379, 12, 0, 378, 12, 0, 216, 12, 0, 12,
589 0, 98, 0, 378, 98, 0, 216, 98, 0, 378,
590 63, 0, 216, 63, 0, 0, 65, 376, 377, 0,
591 103, 0, 245, 0, 380, 0, 382, 375, 0, 379,
592 381, 0, 379, 384, 0, 379, 384, 65, 245, 0,
593 378, 60, 0, 216, 60, 0, 218, 214, 0, 221,
594 214, 0, 223, 214, 0, 218, 318, 0, 218, 0,
595 220, 299, 0, 382, 0, 382, 375, 0, 380, 0,
596 216, 0, 0, 0, 299, 0, 0, 62, 94, 387,
597 110, 0, 62, 48, 0, 216, 0, 386, 0, 387,
598 60, 386, 0, 0, 81, 289, 388, 0, 71, 289,
599 388, 0, 314, 289, 388, 0, 42, 0, 389, 81,
600 0, 389, 82, 0, 389, 83, 0, 389, 79, 0,
601 389, 80, 0, 389, 71, 0, 389, 69, 0, 389,
602 70, 0, 389, 89, 0, 389, 60, 0, 389, 74,
603 0, 389, 75, 0, 389, 76, 0, 389, 73, 0,
604 389, 64, 0, 389, 65, 0, 389, 77, 0, 389,
605 78, 0, 389, 87, 0, 389, 88, 0, 389, 68,
606 0, 389, 67, 0, 389, 112, 0, 389, 66, 63,
607 0, 389, 72, 0, 389, 92, 0, 389, 84, 0,
608 389, 48, 0, 389, 95, 113, 0, 389, 40, 0,
609 389, 39, 0, 389, 40, 95, 113, 0, 389, 39,
610 95, 113, 0, 389, 363, 388, 0, 389, 1, 0
611 };
612
613 #endif
614
615 #if YYDEBUG != 0
616 static const short yyrline[] = { 0,
617 317, 319, 333, 336, 337, 341, 343, 346, 351, 355,
618 361, 363, 366, 369, 373, 376, 378, 380, 383, 385,
619 388, 391, 393, 395, 397, 399, 401, 403, 409, 413,
620 416, 418, 422, 424, 425, 427, 431, 434, 440, 443,
621 445, 450, 453, 457, 460, 463, 475, 479, 497, 507,
622 509, 511, 513, 515, 530, 539, 549, 552, 554, 558,
623 560, 561, 568, 569, 570, 573, 576, 580, 582, 583,
624 586, 588, 591, 594, 596, 600, 610, 612, 622, 631,
625 633, 643, 652, 654, 664, 673, 675, 687, 695, 702,
626 707, 714, 721, 724, 726, 728, 734, 744, 746, 749,
627 752, 754, 757, 759, 763, 772, 775, 777, 781, 794,
628 814, 817, 819, 820, 823, 830, 836, 838, 840, 842,
629 844, 847, 852, 854, 855, 856, 857, 860, 862, 863,
630 866, 868, 869, 872, 877, 877, 881, 881, 884, 884,
631 887, 887, 891, 891, 896, 896, 899, 899, 902, 904,
632 907, 914, 921, 927, 930, 939, 941, 949, 952, 955,
633 958, 962, 965, 968, 971, 974, 977, 979, 981, 983,
634 987, 990, 993, 998, 1002, 1007, 1011, 1014, 1016, 1020,
635 1040, 1047, 1050, 1052, 1053, 1054, 1057, 1068, 1077, 1081,
636 1085, 1088, 1090, 1094, 1097, 1100, 1104, 1107, 1109, 1111,
637 1113, 1120, 1133, 1135, 1137, 1139, 1145, 1148, 1151, 1154,
638 1157, 1161, 1164, 1167, 1171, 1173, 1177, 1181, 1183, 1187,
639 1190, 1197, 1200, 1202, 1210, 1219, 1225, 1232, 1234, 1236,
640 1249, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268,
641 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288,
642 1290, 1292, 1296, 1298, 1300, 1317, 1320, 1321, 1322, 1323,
643 1324, 1327, 1330, 1333, 1337, 1340, 1342, 1347, 1349, 1350,
644 1353, 1355, 1357, 1359, 1363, 1366, 1370, 1372, 1373, 1374,
645 1378, 1400, 1401, 1402, 1410, 1418, 1426, 1428, 1436, 1457,
646 1464, 1471, 1473, 1482, 1487, 1510, 1554, 1555, 1559, 1563,
647 1567, 1571, 1573, 1577, 1579, 1587, 1589, 1594, 1600, 1604,
648 1609, 1614, 1616, 1621, 1636, 1651, 1662, 1674, 1682, 1691,
649 1735, 1738, 1742, 1745, 1749, 1752, 1757, 1759, 1763, 1776,
650 1779, 1786, 1793, 1798, 1800, 1805, 1807, 1814, 1816, 1820,
651 1824, 1830, 1834, 1837, 1840, 1843, 1853, 1855, 1858, 1862,
652 1865, 1868, 1871, 1874, 1880, 1886, 1888, 1893, 1895, 1904,
653 1907, 1909, 1912, 1918, 1920, 1930, 1934, 1937, 1940, 1945,
654 1948, 1956, 1958, 1960, 1962, 1965, 1968, 1983, 2002, 2005,
655 2007, 2010, 2012, 2015, 2017, 2020, 2022, 2025, 2028, 2032,
656 2051, 2053, 2073, 2079, 2080, 2086, 2095, 2097, 2107, 2116,
657 2118, 2130, 2133, 2137, 2140, 2144, 2149, 2152, 2156, 2159,
658 2161, 2163, 2165, 2172, 2174, 2175, 2176, 2180, 2183, 2187,
659 2190, 2196, 2198, 2201, 2204, 2207, 2213, 2216, 2219, 2221,
660 2223, 2225, 2229, 2235, 2243, 2245, 2249, 2251, 2256, 2259,
661 2262, 2264, 2266, 2270, 2274, 2279, 2283, 2286, 2291, 2295,
662 2298, 2301, 2305, 2341, 2347, 2356, 2376, 2378, 2381, 2383,
663 2388, 2390, 2392, 2394, 2396, 2400, 2405, 2410, 2416, 2421,
664 2426, 2428, 2432, 2437, 2440, 2447, 2475, 2481, 2483, 2486,
665 2489, 2491, 2495, 2497, 2501, 2527, 2556, 2559, 2560, 2581,
666 2604, 2606, 2610, 2636, 2645, 2734, 2741, 2744, 2752, 2763,
667 2772, 2776, 2791, 2794, 2799, 2801, 2803, 2805, 2807, 2809,
668 2814, 2820, 2822, 2825, 2828, 2830, 2841, 2846, 2849, 2851,
669 2856, 2859, 2860, 2871, 2874, 2875, 2886, 2888, 2891, 2893,
670 2896, 2903, 2911, 2918, 2924, 2930, 2938, 2942, 2947, 2951,
671 2954, 2963, 2965, 2969, 2972, 2977, 2981, 2986, 2996, 2999,
672 3003, 3007, 3015, 3020, 3026, 3029, 3031, 3033, 3039, 3042,
673 3044, 3046, 3048, 3052, 3055, 3076, 3086, 3088, 3089, 3093,
674 3098, 3101, 3103, 3105, 3107, 3111, 3117, 3120, 3122, 3124,
675 3126, 3130, 3133, 3136, 3138, 3140, 3142, 3146, 3149, 3152,
676 3154, 3156, 3158, 3165, 3176, 3180, 3185, 3189, 3194, 3196,
677 3200, 3203, 3205, 3209, 3211, 3212, 3215, 3217, 3223, 3238,
678 3244, 3250, 3264, 3266, 3270, 3286, 3292, 3307, 3314, 3320,
679 3322, 3323, 3324, 3332, 3341, 3342, 3346, 3349, 3355, 3361,
680 3364, 3366, 3368, 3370, 3374, 3378, 3382, 3385, 3390, 3393,
681 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3411, 3415, 3419,
682 3423, 3424, 3426, 3428, 3430, 3432, 3434, 3436, 3438, 3440,
683 3448, 3450, 3451, 3452, 3455, 3463, 3468, 3475, 3477, 3482,
684 3484, 3487, 3501, 3504, 3507, 3516, 3528, 3539, 3559, 3569,
685 3572, 3580, 3592, 3595, 3598, 3601, 3617, 3620, 3631, 3632,
686 3636, 3651, 3670, 3682, 3696, 3710, 3723, 3742, 3760, 3779,
687 3787, 3808, 3826, 3839, 3840, 3843, 3843, 3846, 3846, 3849,
688 3849, 3855, 3861, 3864, 3869, 3876, 3885, 3894, 3903, 3911,
689 3924, 3926, 3930, 3932, 3935, 3942, 3945, 3953, 3969, 3980,
690 3992, 3994, 3997, 4007, 4017, 4028, 4030, 4032, 4035, 4052,
691 4058, 4066, 4068, 4070, 4074, 4077, 4078, 4086, 4090, 4094,
692 4097, 4098, 4104, 4107, 4110, 4112, 4116, 4121, 4124, 4134,
693 4139, 4140, 4148, 4154, 4159, 4163, 4168, 4172, 4176, 4180,
694 4185, 4196, 4210, 4214, 4217, 4219, 4223, 4227, 4230, 4233,
695 4235, 4239, 4241, 4248, 4255, 4258, 4261, 4265, 4269, 4275,
696 4279, 4284, 4286, 4289, 4294, 4300, 4311, 4314, 4316, 4320,
697 4325, 4327, 4334, 4337, 4339, 4341, 4347, 4352, 4355, 4357,
698 4359, 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377,
699 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395, 4397,
700 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415, 4417,
701 4420, 4422
702 };
703 #endif
704
705
706 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
707
708 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
709 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
710 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
711 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
712 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
713 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
714 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
715 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
716 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
717 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
718 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
719 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
720 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
721 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
722 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
723 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
724 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
725 "@5","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
726 "template_parm","template_def","datadef","ctor_initializer_opt","maybe_return_init",
727 "eat_saved_input","fndef","constructor_declarator","@6","@7","@8","@9","fn.def1",
728 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
729 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
730 "identifier_defn","explicit_instantiation","@10","@11","@12","@13","@14","@15",
731 "@16","@17","begin_explicit_instantiation","end_explicit_instantiation","template_type",
732 "self_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
733 "template_arg","@18","template_arg1","unop","expr","paren_expr_or_null","paren_cond_or_null",
734 "xcond","condition","@19","compstmtend","already_scoped_stmt","@20","nontrivial_exprlist",
735 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
736 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
737 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
738 "primary","@21","new","delete","boolean.literal","string","nodecls","object",
739 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
740 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
741 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
742 "initdcl0","@22","initdcl","@23","notype_initdcl0","@24","nomods_initdcl0","@25",
743 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
744 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
745 "pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
746 "@29","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
747 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
748 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
749 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
750 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
751 "component_decl_1","components","notype_components","component_declarator0",
752 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
753 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
754 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
755 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
756 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
757 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
758 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
759 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
760 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
761 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
762 "label_decls","label_decl","compstmt_or_error","compstmt","@30","simple_if",
763 "@31","@32","implicitly_scoped_stmt","@33","stmt","simple_stmt","@34","@35",
764 "@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48",
765 "function_try_block","@49","@50","try_block","@51","@52","handler_seq","handler",
766 "@53","@54","@55","type_specifier_seq","handler_args","label_colon","for.init.statement",
767 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
768 "asm_clobbers","parmlist","complex_parmlist","defarg","@56","defarg1","parms",
769 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
770 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
771 "operator_name", NULL
772 };
773 #endif
774
775 static const short yyr1[] = { 0,
776 114, 114, 116, 115, 115, 117, 117, 118, 119, 120,
777 121, 121, 123, 122, 124, 124, 124, 124, 124, 124,
778 124, 125, 124, 126, 124, 124, 124, 124, 124, 127,
779 127, 127, 128, 128, 128, 128, 129, 129, 131, 130,
780 130, 132, 132, 133, 133, 134, 134, 135, 136, 136,
781 136, 136, 136, 136, 137, 137, 138, 138, 138, 138,
782 138, 138, 138, 138, 138, 139, 139, 140, 140, 140,
783 141, 141, 142, 142, 142, 144, 143, 143, 145, 143,
784 143, 146, 143, 143, 147, 143, 143, 148, 148, 148,
785 148, 148, 149, 149, 149, 149, 150, 150, 150, 150,
786 150, 150, 150, 150, 151, 152, 152, 152, 153, 154,
787 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
788 156, 156, 157, 157, 157, 157, 157, 158, 158, 158,
789 159, 159, 159, 161, 160, 162, 160, 163, 160, 164,
790 160, 165, 160, 166, 160, 167, 160, 168, 160, 169,
791 170, 171, 171, 171, 172, 173, 173, 174, 174, 175,
792 175, 177, 176, 178, 178, 179, 179, 179, 179, 179,
793 180, 180, 181, 181, 182, 182, 183, 183, 183, 185,
794 184, 184, 186, 186, 186, 186, 188, 187, 187, 189,
795 189, 189, 189, 190, 190, 191, 191, 191, 191, 191,
796 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
797 191, 191, 191, 191, 191, 191, 191, 191, 191, 192,
798 192, 193, 193, 193, 193, 194, 194, 195, 195, 195,
799 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
800 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
801 196, 196, 196, 196, 196, 197, 197, 197, 197, 197,
802 197, 198, 199, 199, 200, 200, 200, 201, 201, 201,
803 202, 202, 202, 202, 203, 203, 204, 204, 204, 204,
804 205, 205, 205, 205, 205, 205, 205, 206, 205, 205,
805 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
806 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
807 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
808 207, 207, 208, 208, 209, 209, 210, 210, 211, 212,
809 212, 213, 213, 213, 213, 213, 213, 214, 214, 215,
810 215, 216, 216, 216, 216, 216, 217, 217, 218, 218,
811 218, 218, 218, 218, 219, 219, 219, 219, 219, 220,
812 220, 220, 220, 220, 220, 221, 221, 221, 221, 222,
813 222, 223, 223, 223, 223, 223, 223, 223, 224, 224,
814 224, 225, 225, 226, 226, 227, 227, 228, 228, 230,
815 229, 229, 232, 231, 231, 234, 233, 233, 236, 235,
816 235, 237, 237, 238, 238, 239, 240, 240, 241, 241,
817 241, 241, 241, 242, 242, 242, 242, 243, 243, 244,
818 244, 245, 245, 245, 245, 245, 246, 246, 246, 246,
819 246, 246, 247, 248, 248, 248, 249, 249, 250, 250,
820 251, 251, 251, 253, 252, 252, 254, 252, 252, 252,
821 252, 252, 255, 256, 252, 252, 257, 257, 258, 258,
822 259, 259, 259, 259, 259, 260, 261, 262, 262, 262,
823 262, 262, 263, 264, 264, 264, 265, 266, 266, 267,
824 267, 267, 268, 268, 269, 269, 270, 270, 270, 270,
825 271, 271, 271, 271, 272, 273, 274, 274, 274, 274,
826 275, 275, 276, 276, 276, 276, 276, 276, 276, 276,
827 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
828 278, 278, 278, 279, 279, 279, 280, 280, 281, 281,
829 282, 282, 283, 283, 283, 283, 284, 284, 285, 285,
830 285, 286, 286, 287, 287, 288, 288, 288, 289, 289,
831 290, 290, 291, 292, 293, 293, 293, 293, 294, 294,
832 294, 294, 294, 294, 295, 295, 296, 296, 296, 297,
833 298, 298, 298, 298, 298, 298, 299, 299, 299, 299,
834 299, 299, 300, 300, 300, 300, 300, 300, 301, 301,
835 301, 301, 301, 301, 302, 302, 303, 303, 304, 304,
836 305, 305, 305, 306, 306, 306, 307, 307, 308, 308,
837 308, 308, 309, 309, 310, 311, 311, 312, 312, 312,
838 312, 312, 312, 313, 313, 313, 314, 314, 315, 316,
839 316, 316, 316, 316, 316, 316, 317, 317, 318, 318,
840 318, 318, 318, 318, 318, 318, 318, 318, 318, 319,
841 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
842 320, 320, 320, 320, 321, 322, 323, 324, 324, 325,
843 325, 326, 327, 327, 329, 328, 331, 332, 330, 333,
844 334, 333, 335, 335, 336, 336, 337, 338, 336, 336,
845 339, 340, 336, 341, 342, 336, 343, 344, 345, 346,
846 336, 347, 348, 336, 349, 336, 350, 336, 351, 336,
847 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
848 336, 336, 336, 336, 353, 354, 352, 356, 357, 355,
849 358, 358, 360, 361, 362, 359, 363, 363, 364, 364,
850 365, 365, 365, 365, 366, 366, 366, 367, 367, 368,
851 368, 368, 369, 369, 370, 370, 371, 372, 372, 373,
852 373, 373, 374, 374, 374, 374, 374, 374, 374, 374,
853 374, 374, 376, 375, 377, 377, 378, 378, 378, 378,
854 378, 379, 379, 380, 380, 380, 380, 380, 380, 381,
855 381, 382, 382, 383, 384, 384, 385, 385, 385, 386,
856 387, 387, 388, 388, 388, 388, 389, 390, 390, 390,
857 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
858 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
859 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
860 390, 390
861 };
862
863 static const short yyr2[] = { 0,
864 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
865 1, 1, 0, 2, 2, 1, 1, 5, 4, 5,
866 4, 0, 6, 0, 5, 5, 2, 4, 2, 2,
867 3, 3, 1, 1, 2, 2, 1, 2, 0, 5,
868 3, 1, 3, 1, 0, 2, 2, 3, 1, 3,
869 1, 3, 1, 3, 2, 2, 2, 3, 3, 2,
870 2, 2, 2, 2, 1, 1, 1, 0, 1, 2,
871 0, 1, 4, 3, 3, 0, 8, 5, 0, 9,
872 6, 0, 8, 5, 0, 9, 6, 2, 2, 1,
873 2, 1, 6, 4, 6, 4, 2, 1, 2, 2,
874 1, 2, 1, 2, 2, 2, 4, 2, 3, 0,
875 0, 1, 3, 2, 3, 1, 4, 2, 4, 2,
876 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
877 1, 1, 1, 0, 6, 0, 6, 0, 5, 0,
878 5, 0, 7, 0, 7, 0, 6, 0, 6, 0,
879 0, 4, 4, 1, 4, 1, 1, 0, 1, 1,
880 3, 0, 2, 1, 1, 1, 1, 1, 1, 1,
881 1, 1, 1, 3, 1, 3, 0, 1, 1, 0,
882 7, 1, 1, 3, 4, 3, 0, 3, 1, 3,
883 3, 3, 3, 1, 1, 1, 2, 2, 2, 2,
884 2, 2, 2, 4, 2, 4, 2, 3, 3, 4,
885 4, 5, 5, 6, 2, 4, 5, 2, 2, 3,
886 3, 3, 1, 3, 2, 3, 4, 1, 2, 5,
887 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
888 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
889 5, 3, 3, 1, 2, 3, 1, 1, 1, 1,
890 1, 0, 5, 5, 5, 5, 5, 1, 1, 1,
891 1, 2, 2, 3, 4, 4, 1, 1, 1, 3,
892 1, 1, 1, 1, 3, 3, 3, 0, 4, 4,
893 2, 4, 2, 2, 1, 4, 1, 7, 7, 7,
894 7, 4, 4, 2, 2, 1, 4, 2, 2, 5,
895 3, 2, 2, 5, 3, 5, 3, 4, 6, 2,
896 1, 2, 1, 2, 1, 1, 1, 2, 0, 2,
897 2, 3, 3, 3, 2, 2, 2, 1, 1, 1,
898 2, 2, 2, 2, 1, 1, 1, 1, 2, 2,
899 3, 3, 3, 4, 1, 2, 2, 2, 1, 1,
900 1, 2, 2, 2, 1, 1, 2, 2, 3, 1,
901 2, 1, 1, 1, 4, 4, 4, 4, 1, 1,
902 1, 1, 3, 1, 3, 1, 3, 0, 4, 0,
903 6, 3, 0, 6, 3, 0, 6, 3, 0, 6,
904 3, 0, 1, 1, 2, 6, 1, 3, 0, 1,
905 4, 6, 4, 1, 1, 1, 1, 1, 3, 0,
906 2, 1, 2, 3, 4, 1, 1, 3, 4, 6,
907 3, 5, 1, 4, 3, 3, 0, 3, 3, 3,
908 0, 2, 2, 0, 7, 4, 0, 6, 3, 2,
909 2, 2, 0, 0, 9, 1, 0, 1, 0, 1,
910 1, 2, 2, 2, 2, 2, 2, 3, 4, 3,
911 2, 3, 0, 1, 3, 2, 2, 1, 1, 0,
912 2, 3, 1, 4, 1, 3, 1, 1, 4, 4,
913 2, 2, 3, 3, 1, 0, 1, 2, 4, 3,
914 1, 2, 2, 2, 2, 2, 2, 2, 1, 2,
915 2, 2, 4, 4, 2, 1, 5, 4, 1, 2,
916 0, 1, 3, 0, 1, 3, 1, 1, 1, 1,
917 4, 4, 4, 4, 4, 3, 4, 4, 4, 4,
918 3, 1, 3, 1, 3, 2, 1, 6, 0, 2,
919 1, 2, 0, 2, 4, 4, 2, 4, 3, 3,
920 2, 2, 3, 1, 1, 2, 1, 1, 2, 2,
921 4, 4, 3, 3, 2, 1, 3, 3, 2, 2,
922 3, 1, 3, 3, 2, 2, 3, 1, 4, 3,
923 4, 3, 1, 2, 2, 2, 2, 2, 1, 2,
924 4, 4, 2, 1, 1, 1, 1, 2, 2, 2,
925 2, 2, 1, 2, 2, 1, 2, 2, 2, 2,
926 2, 2, 2, 2, 1, 2, 2, 3, 1, 3,
927 2, 3, 2, 2, 3, 1, 3, 4, 3, 2,
928 2, 1, 3, 2, 2, 1, 2, 3, 1, 3,
929 1, 6, 4, 4, 3, 5, 3, 3, 3, 2,
930 1, 1, 2, 2, 2, 0, 0, 0, 1, 1,
931 2, 3, 1, 2, 0, 5, 0, 0, 6, 1,
932 0, 4, 1, 1, 1, 2, 0, 0, 6, 1,
933 0, 0, 7, 0, 0, 7, 0, 0, 0, 0,
934 14, 0, 0, 9, 0, 5, 0, 7, 0, 4,
935 2, 2, 2, 3, 6, 8, 10, 12, 4, 3,
936 2, 2, 1, 1, 0, 0, 6, 0, 0, 5,
937 1, 2, 0, 0, 0, 8, 1, 1, 3, 3,
938 2, 2, 2, 2, 2, 1, 2, 0, 1, 0,
939 1, 1, 0, 1, 1, 3, 4, 1, 3, 0,
940 1, 1, 1, 2, 2, 2, 1, 1, 2, 2,
941 2, 2, 0, 3, 1, 1, 1, 2, 2, 2,
942 4, 2, 2, 2, 2, 2, 2, 1, 2, 1,
943 2, 1, 1, 0, 0, 1, 0, 4, 2, 1,
944 1, 3, 0, 3, 3, 3, 1, 2, 2, 2,
945 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
946 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
947 3, 2, 2, 2, 2, 3, 2, 2, 4, 4,
948 3, 2
949 };
950
951 static const short yydefact[] = { 3,
952 13, 13, 5, 0, 4, 0, 259, 604, 605, 0,
953 361, 373, 551, 0, 11, 12, 0, 0, 0, 10,
954 461, 807, 0, 0, 0, 150, 629, 260, 261, 65,
955 0, 0, 794, 0, 37, 0, 0, 14, 0, 8,
956 0, 17, 16, 71, 92, 68, 0, 606, 154, 278,
957 257, 279, 582, 0, 348, 0, 347, 366, 0, 386,
958 365, 404, 372, 0, 474, 473, 480, 479, 478, 456,
959 360, 567, 374, 568, 90, 277, 593, 565, 0, 607,
960 549, 0, 0, 258, 63, 64, 162, 609, 162, 610,
961 162, 262, 150, 123, 124, 125, 126, 127, 447, 450,
962 0, 625, 0, 451, 0, 0, 0, 0, 124, 125,
963 126, 127, 24, 0, 0, 0, 0, 0, 0, 0,
964 452, 613, 0, 616, 0, 0, 0, 0, 0, 0,
965 30, 0, 0, 39, 0, 162, 611, 162, 0, 580,
966 0, 0, 0, 579, 0, 0, 0, 0, 278, 0,
967 553, 0, 277, 549, 29, 0, 27, 3, 38, 0,
968 56, 55, 72, 15, 0, 0, 420, 69, 61, 612,
969 553, 0, 549, 62, 0, 0, 0, 88, 0, 382,
970 338, 564, 339, 576, 0, 549, 363, 362, 60, 91,
971 349, 0, 384, 364, 89, 355, 379, 380, 350, 368,
972 370, 359, 381, 0, 57, 405, 462, 463, 464, 465,
973 477, 132, 131, 133, 466, 467, 471, 0, 0, 480,
974 794, 476, 495, 496, 552, 367, 0, 0, 402, 605,
975 0, 627, 154, 597, 598, 594, 570, 608, 0, 569,
976 566, 0, 842, 838, 837, 835, 817, 822, 823, 0,
977 829, 828, 814, 815, 813, 832, 821, 818, 819, 820,
978 824, 825, 811, 812, 808, 809, 810, 834, 826, 827,
979 816, 833, 0, 830, 737, 366, 738, 803, 262, 0,
980 159, 160, 0, 0, 0, 162, 0, 449, 0, 444,
981 626, 624, 259, 551, 282, 327, 0, 0, 0, 0,
982 323, 321, 295, 325, 326, 0, 0, 0, 0, 0,
983 261, 254, 0, 0, 167, 166, 0, 168, 169, 0,
984 0, 170, 0, 0, 0, 171, 228, 0, 231, 172,
985 281, 196, 0, 0, 283, 284, 0, 0, 345, 366,
986 346, 599, 306, 297, 0, 0, 0, 0, 409, 3,
987 22, 0, 622, 618, 619, 621, 623, 620, 123, 124,
988 125, 126, 127, 615, 617, 614, 269, 270, 0, 268,
989 33, 34, 0, 596, 595, 32, 31, 41, 0, 361,
990 140, 0, 0, 366, 138, 0, 0, 578, 0, 577,
991 256, 273, 0, 586, 272, 0, 585, 0, 280, 590,
992 0, 0, 13, 0, 150, 9, 9, 105, 75, 110,
993 725, 0, 67, 66, 74, 108, 0, 0, 106, 70,
994 592, 0, 0, 557, 0, 797, 0, 562, 0, 561,
995 0, 0, 0, 0, 549, 402, 0, 59, 553, 549,
996 575, 0, 352, 353, 0, 58, 402, 357, 356, 358,
997 351, 371, 388, 387, 468, 472, 470, 0, 475, 481,
998 0, 0, 369, 0, 401, 403, 549, 76, 0, 0,
999 0, 549, 82, 550, 581, 605, 628, 154, 0, 0,
1000 831, 836, 368, 549, 549, 0, 549, 841, 162, 156,
1001 157, 275, 162, 163, 165, 164, 153, 155, 0, 148,
1002 0, 366, 146, 544, 459, 542, 446, 0, 0, 0,
1003 0, 203, 0, 0, 205, 218, 219, 0, 0, 0,
1004 0, 0, 255, 202, 199, 198, 200, 0, 0, 0,
1005 0, 0, 281, 0, 0, 0, 197, 201, 375, 0,
1006 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 291, 293, 294, 331,
1009 330, 0, 0, 0, 0, 0, 207, 547, 0, 215,
1010 328, 320, 0, 794, 309, 312, 313, 0, 0, 376,
1011 340, 646, 642, 651, 0, 553, 549, 549, 549, 342,
1012 649, 0, 603, 344, 0, 0, 343, 308, 0, 304,
1013 322, 324, 600, 0, 305, 377, 378, 415, 416, 417,
1014 414, 0, 407, 410, 0, 3, 0, 28, 36, 35,
1015 45, 0, 0, 0, 49, 53, 42, 793, 788, 0,
1016 345, 366, 45, 346, 792, 51, 151, 136, 134, 151,
1017 152, 276, 584, 583, 280, 587, 0, 19, 21, 71,
1018 111, 329, 0, 675, 73, 673, 426, 0, 422, 421,
1019 195, 0, 194, 554, 591, 0, 767, 768, 0, 762,
1020 366, 0, 761, 763, 795, 777, 0, 0, 589, 560,
1021 559, 0, 0, 574, 0, 392, 383, 573, 0, 797,
1022 563, 354, 385, 398, 402, 469, 604, 605, 794, 0,
1023 794, 606, 482, 483, 485, 794, 488, 487, 0, 516,
1024 605, 0, 509, 0, 0, 519, 0, 103, 98, 0,
1025 154, 521, 524, 0, 501, 0, 101, 0, 402, 0,
1026 399, 797, 760, 162, 162, 162, 797, 760, 549, 79,
1027 549, 85, 840, 839, 803, 803, 803, 0, 161, 263,
1028 151, 144, 142, 151, 0, 460, 0, 459, 0, 0,
1029 0, 603, 0, 0, 0, 0, 366, 0, 0, 0,
1030 287, 0, 285, 286, 0, 226, 193, 192, 259, 604,
1031 605, 260, 261, 0, 0, 427, 457, 0, 191, 190,
1032 253, 252, 752, 751, 0, 250, 249, 247, 248, 246,
1033 245, 244, 241, 242, 243, 239, 240, 234, 235, 236,
1034 237, 238, 232, 233, 0, 0, 0, 0, 0, 0,
1035 209, 223, 0, 0, 208, 549, 549, 0, 549, 546,
1036 636, 0, 0, 0, 0, 311, 0, 315, 0, 317,
1037 0, 645, 644, 641, 640, 793, 0, 0, 660, 0,
1038 0, 797, 341, 797, 647, 549, 760, 553, 646, 642,
1039 0, 0, 549, 0, 0, 0, 0, 0, 409, 0,
1040 0, 25, 0, 26, 47, 44, 45, 0, 40, 0,
1041 0, 646, 642, 0, 784, 549, 787, 789, 0, 785,
1042 786, 46, 466, 0, 141, 151, 151, 139, 18, 20,
1043 128, 116, 129, 130, 0, 109, 112, 0, 0, 0,
1044 0, 674, 666, 423, 0, 107, 558, 555, 766, 783,
1045 772, 770, 0, 556, 765, 782, 771, 769, 764, 796,
1046 779, 790, 780, 773, 778, 799, 0, 390, 572, 571,
1047 396, 395, 492, 0, 491, 794, 794, 794, 0, 549,
1048 760, 515, 510, 104, 520, 402, 402, 507, 508, 505,
1049 506, 549, 760, 259, 604, 0, 388, 99, 511, 522,
1050 527, 528, 388, 388, 0, 0, 388, 97, 512, 525,
1051 388, 502, 503, 504, 402, 0, 453, 389, 0, 78,
1052 0, 0, 0, 0, 84, 0, 797, 760, 797, 760,
1053 805, 804, 806, 264, 149, 151, 151, 147, 545, 543,
1054 448, 0, 296, 204, 206, 302, 303, 0, 0, 0,
1055 0, 286, 289, 0, 0, 0, 0, 227, 0, 290,
1056 292, 221, 220, 211, 0, 210, 225, 0, 0, 633,
1057 631, 0, 634, 553, 216, 0, 0, 318, 0, 0,
1058 0, 643, 639, 650, 549, 659, 657, 658, 648, 797,
1059 0, 655, 0, 601, 602, 0, 307, 408, 406, 259,
1060 0, 23, 48, 43, 50, 54, 645, 641, 646, 642,
1061 0, 565, 0, 549, 647, 52, 137, 135, 0, 114,
1062 0, 118, 0, 120, 0, 122, 0, 726, 668, 0,
1063 424, 646, 642, 0, 281, 0, 599, 791, 0, 0,
1064 800, 801, 0, 0, 0, 393, 0, 0, 0, 494,
1065 493, 486, 797, 0, 420, 420, 797, 0, 0, 0,
1066 402, 402, 0, 402, 402, 0, 402, 0, 420, 0,
1067 441, 400, 549, 266, 265, 267, 549, 81, 0, 87,
1068 0, 145, 143, 445, 0, 0, 0, 0, 0, 431,
1069 0, 0, 428, 230, 251, 0, 212, 213, 222, 224,
1070 632, 630, 637, 635, 0, 217, 0, 310, 314, 316,
1071 797, 653, 549, 654, 0, 411, 413, 645, 641, 570,
1072 647, 115, 113, 0, 0, 0, 0, 0, 183, 667,
1073 0, 669, 670, 425, 0, 602, 781, 775, 776, 774,
1074 0, 798, 391, 397, 0, 489, 490, 484, 94, 549,
1075 514, 518, 96, 549, 402, 402, 536, 420, 259, 604,
1076 0, 523, 529, 530, 388, 388, 420, 420, 0, 420,
1077 526, 513, 0, 797, 797, 549, 549, 0, 0, 0,
1078 0, 429, 0, 0, 0, 214, 638, 319, 656, 797,
1079 0, 117, 119, 121, 733, 727, 731, 418, 0, 676,
1080 0, 259, 604, 605, 677, 691, 694, 697, 666, 0,
1081 0, 0, 0, 0, 0, 260, 723, 728, 0, 748,
1082 0, 685, 0, 0, 366, 0, 662, 683, 690, 661,
1083 684, 724, 0, 671, 286, 802, 394, 797, 797, 535,
1084 532, 534, 0, 0, 402, 402, 402, 531, 533, 517,
1085 443, 0, 442, 437, 77, 83, 797, 797, 298, 299,
1086 300, 301, 0, 432, 548, 652, 412, 666, 732, 0,
1087 672, 665, 186, 741, 743, 744, 666, 666, 666, 0,
1088 0, 0, 709, 711, 712, 713, 0, 0, 0, 742,
1089 0, 337, 749, 0, 686, 335, 388, 0, 336, 0,
1090 388, 0, 0, 0, 184, 664, 663, 687, 722, 721,
1091 93, 95, 402, 402, 541, 420, 420, 0, 0, 455,
1092 80, 86, 430, 0, 419, 0, 0, 681, 680, 0,
1093 0, 0, 0, 705, 0, 714, 0, 720, 729, 0,
1094 333, 334, 0, 0, 0, 332, 185, 666, 540, 538,
1095 537, 539, 440, 439, 433, 68, 71, 0, 734, 175,
1096 0, 678, 692, 0, 695, 668, 746, 698, 0, 182,
1097 0, 366, 0, 0, 0, 710, 719, 0, 0, 688,
1098 0, 438, 0, 0, 0, 0, 666, 0, 667, 0,
1099 747, 666, 745, 702, 388, 707, 706, 730, 753, 0,
1100 667, 436, 0, 435, 739, 740, 735, 176, 679, 187,
1101 667, 189, 682, 173, 0, 0, 0, 666, 402, 0,
1102 0, 0, 754, 755, 715, 689, 434, 667, 668, 693,
1103 0, 696, 179, 0, 178, 703, 0, 708, 0, 753,
1104 0, 0, 736, 188, 174, 699, 667, 180, 0, 0,
1105 716, 756, 0, 704, 0, 757, 0, 0, 0, 181,
1106 758, 0, 717, 700, 0, 0, 0, 759, 718, 667,
1107 701, 0, 0, 0
1108 };
1109
1110 static const short yydefgoto[] = { 1552,
1111 403, 2, 404, 160, 659, 323, 228, 3, 4, 38,
1112 626, 350, 726, 369, 40, 727, 379, 634, 885, 635,
1113 636, 637, 42, 43, 412, 166, 164, 44, 728, 743,
1114 1008, 748, 1010, 46, 729, 730, 167, 168, 413, 661,
1115 916, 917, 504, 918, 216, 47, 907, 906, 650, 647,
1116 1017, 1016, 764, 761, 135, 905, 48, 49, 492, 280,
1117 281, 282, 283, 494, 324, 1301, 1496, 1442, 1514, 1451,
1118 1535, 1210, 1491, 1509, 326, 872, 327, 576, 835, 328,
1119 329, 330, 331, 286, 51, 235, 371, 392, 52, 53,
1120 332, 535, 333, 334, 335, 336, 414, 337, 1302, 453,
1121 598, 680, 1303, 55, 199, 640, 57, 200, 513, 201,
1122 179, 192, 59, 436, 180, 1124, 454, 1225, 193, 1125,
1123 60, 999, 465, 61, 62, 622, 623, 624, 1279, 419,
1124 796, 797, 1436, 1437, 1400, 1333, 1253, 63, 508, 289,
1125 1151, 1334, 1037, 767, 64, 65, 66, 67, 220, 68,
1126 69, 70, 222, 713, 714, 715, 716, 224, 461, 462,
1127 734, 735, 736, 979, 989, 980, 1242, 981, 982, 1243,
1128 1244, 505, 506, 577, 862, 71, 422, 423, 173, 181,
1129 72, 73, 74, 182, 183, 152, 76, 131, 342, 343,
1130 344, 78, 345, 80, 718, 122, 123, 124, 104, 81,
1131 346, 840, 841, 857, 601, 1306, 1307, 1408, 1280, 1211,
1132 1212, 1213, 665, 1308, 923, 1309, 1357, 1467, 1410, 1444,
1133 1310, 1311, 1428, 1481, 1358, 1468, 1359, 1470, 1360, 1472,
1134 1533, 1547, 1498, 1527, 1455, 1500, 1415, 415, 662, 1207,
1135 1312, 1371, 1458, 1276, 1277, 1348, 1465, 1508, 1453, 1439,
1136 1313, 1448, 1374, 805, 1502, 1503, 1504, 1542, 682, 683,
1137 945, 1120, 1220, 684, 685, 686, 941, 687, 145, 943,
1138 689, 1122, 1123, 488, 83, 84
1139 };
1140
1141 static const short yypact[] = { 101,
1142 116,-32768,-32768, 10331,-32768, 78, 44, 121, 289, 82,
1143 145,-32768,-32768, 848,-32768,-32768, 103, 168, 182,-32768,
1144 -32768,-32768, 691, 559, 966, 209,-32768, 216, 479,-32768,
1145 2358, 2358,-32768, 2401,-32768, 10331, 215,-32768, 292, 14,
1146 10390,-32768,-32768, 236,-32768, 331, 319, 328,-32768,-32768,
1147 -32768,-32768, 345, 2831,-32768, 3110,-32768, 1750, 408,-32768,
1148 388,-32768,-32768, 1130,-32768,-32768, 378,-32768,-32768, 406,
1149 4170,-32768,-32768,-32768, 804,-32768,-32768,-32768, 792,-32768,
1150 -32768, 327, 7871, 360,-32768,-32768, 699,-32768, 699,-32768,
1151 699,-32768,-32768,-32768, 121, 289, 216, 428, 424, 497,
1152 328,-32768, 327,-32768, 327, 9299, 9299, 484,-32768,-32768,
1153 -32768,-32768,-32768, 15, 528, 605, 629, 713, 544, 558,
1154 -32768,-32768, 695,-32768, 855, 121, 289, 620, 216, 428,
1155 -32768, 2602, 1004, 555, 10494, 699,-32768,-32768, 2859,-32768,
1156 1470, 414, 2859,-32768, 1270, 3454, 3454, 2401, 557, 561,
1157 591, 583, 587,-32768,-32768, 692,-32768, 601,-32768, 4252,
1158 78,-32768,-32768,-32768, 716, 84, 295, 682,-32768,-32768,
1159 674, 61,-32768,-32768, 3511, 3511, 5038, 804, 490,-32768,
1160 -32768, 356,-32768,-32768, 2290,-32768,-32768,-32768,-32768,-32768,
1161 1750, 655,-32768, 388, 804,-32768,-32768,-32768, 2002, 1750,
1162 -32768, 388,-32768, 5148,-32768,-32768,-32768,-32768,-32768,-32768,
1163 -32768,-32768,-32768,-32768,-32768,-32768, 328, 1368, 1368, 378,
1164 -32768,-32768,-32768,-32768,-32768, 886, 327, 662, 388, 521,
1165 1578,-32768, 232,-32768,-32768,-32768,-32768,-32768, 3621,-32768,
1166 -32768, 398,-32768, 717, 725,-32768,-32768,-32768,-32768, 731,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1168 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1169 -32768,-32768, 730,-32768,-32768, 886, 4170, 1222,-32768, 737,
1170 769,-32768, 9299, 737, 737, 699, 10494,-32768, 1270, 744,
1171 -32768,-32768,-32768, 754,-32768,-32768, 9914, 10001, 10088, 10088,
1172 -32768,-32768,-32768,-32768,-32768, 772, 793, 797, 799, 801,
1173 428, 9386, 1270, 10088,-32768,-32768, 10088,-32768,-32768, 10088,
1174 7343,-32768, 10088, 10088, 768, 829,-32768, 9473,-32768, 10649,
1175 -32768, 453, 1785, 9560,-32768, 887, 2644, 794, 2796, 1926,
1176 5618,-32768, 364,-32768, 2939, 1518, 798, 806, 1734, 601,
1177 -32768, 620,-32768,-32768,-32768,-32768,-32768,-32768, 528, 605,
1178 629, 713, 544,-32768,-32768,-32768, 121, 289, 865,-32768,
1179 -32768,-32768, 1004,-32768,-32768,-32768,-32768,-32768, 5209,-32768,
1180 -32768, 5148, 5386, 1941,-32768, 737, 912,-32768, 442,-32768,
1181 -32768,-32768, 2859,-32768,-32768, 2859,-32768, 820,-32768,-32768,
1182 3621, 57, 823, 828,-32768,-32768,-32768,-32768,-32768,-32768,
1183 -32768, 77,-32768,-32768,-32768,-32768, 7435, 9386,-32768,-32768,
1184 -32768, 9386, 796,-32768, 6763, 104, 3685,-32768, 3685,-32768,
1185 3904, 3904, 5038, 831,-32768, 388, 5148,-32768, 834,-32768,
1186 -32768, 4096, 2002, 1750, 5148,-32768, 388,-32768,-32768, 388,
1187 2002,-32768, 733,-32768,-32768, 328,-32768, 1368,-32768, 2037,
1188 3361, 37, 886, 692, 852, 388,-32768,-32768, 869, 880,
1189 893,-32768,-32768,-32768,-32768, 670,-32768, 376, 862, 866,
1190 -32768,-32768, 886,-32768,-32768, 500,-32768,-32768, 699,-32768,
1191 -32768,-32768,-32768,-32768, 10545,-32768,-32768,-32768, 737,-32768,
1192 5148, 2125,-32768, 896, 918,-32768,-32768, 1270, 9386, 754,
1193 7343,-32768, 386, 7343,-32768,-32768,-32768, 9299, 5129, 5129,
1194 5129, 5129, 10717,-32768,-32768,-32768,-32768, 870, 10175, 10175,
1195 7343, 877, 557, 879, 932, 883,-32768,-32768,-32768, 7964,
1196 7152, 7343,-32768, 8056, 9386, 9386, 7527, 9386, 9386, 9386,
1197 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386, 9386,
1198 9386, 9386, 9386, 9386, 9386, 9386,-32768,-32768,-32768,-32768,
1199 -32768, 9386, 9386, 9386, 9299, 2243, 302, 766, 8235,-32768,
1200 -32768,-32768, 939, 992, 396, 436, 445, 2995, 414,-32768,
1201 -32768, 1530, 1530,-32768, 1717, 888, 908, 964,-32768,-32768,
1202 465, 8742, 1604,-32768, 548, 327,-32768,-32768, 9386,-32768,
1203 -32768,-32768,-32768, 284,-32768,-32768,-32768,-32768,-32768,-32768,
1204 -32768, 31,-32768, 922, 906, 601, 957,-32768,-32768,-32768,
1205 650, 209, 982, 346, 963, 965,-32768,-32768, 2187, 10550,
1206 2187, 3219, 1130, 4466,-32768, 973,-32768,-32768,-32768,-32768,
1207 -32768,-32768,-32768,-32768, 919,-32768, 961,-32768,-32768, 236,
1208 563, 977, 932,-32768,-32768,-32768,-32768, 6873, 10717,-32768,
1209 829, 921, 10649,-32768,-32768, 934,-32768,-32768, 935, 172,
1210 4015, 941,-32768, 192, 5055, 987, 991, 476,-32768,-32768,
1211 -32768, 3685, 3685,-32768, 4096, 993,-32768,-32768, 944, 104,
1212 -32768, 2002,-32768, 994, 388,-32768, 605, 629,-32768, 970,
1213 -32768, 558, 1000,-32768,-32768, 287,-32768,-32768, 1392,-32768,
1214 707, 368,-32768, 9386, 6270,-32768, 2632, 199, 199, 315,
1215 488, 4322, 5814, 4905,-32768, 114, 199, 1010, 388, 71,
1216 -32768, 104, 1333, 699, 699, 699, 104, 1333,-32768,-32768,
1217 -32768,-32768,-32768,-32768, 1045, 1045, 1045, 737,-32768,-32768,
1218 -32768,-32768,-32768,-32768, 9386, 1270, 972, 918, 975, 978,
1219 9653, 964, 988, 989, 995, 1016, 2416, 1021, 1025, 1031,
1220 -32768, 998,-32768,-32768, 1002,-32768,-32768, 10717, 1051, 659,
1221 665, 191, 128, 9386, 1061,-32768, 1065, 1018,-32768, 10717,
1222 10717, 10717,-32768,-32768, 1073, 10735, 8261, 4799, 3709, 5757,
1223 3558, 3889, 3136, 3136, 3136, 1159, 1159, 952, 952, 719,
1224 719, 719,-32768,-32768, 1033, 1028, 1034, 1038, 1040, 5129,
1225 302,-32768, 7435, 9386,-32768,-32768,-32768, 9386,-32768,-32768,
1226 1049, 10088, 1048, 1062, 1105,-32768, 9386,-32768, 9386,-32768,
1227 9386, 3668,-32768, 3668,-32768, 138, 1053, 1055,-32768, 1056,
1228 5129, 104,-32768, 104, 3804,-32768, 1333, 1057, 8934, 8934,
1229 6571, 1058, 9473, 1063, 2499, 1518, 570, 1066, 1734, 1071,
1230 9740,-32768, 1075,-32768,-32768,-32768, 2262, 5209,-32768, 5129,
1231 1109, 1797, 1797, 4709,-32768,-32768,-32768,-32768, 2290,-32768,
1232 -32768,-32768, 815, 9386,-32768,-32768,-32768,-32768,-32768,-32768,
1233 528,-32768, 713, 544, 9386, 1124,-32768, 525, 553, 582,
1234 932,-32768,-32768,-32768, 24,-32768,-32768,-32768,-32768,-32768,
1235 -32768,-32768, 8838,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1236 -32768, 991, 1125,-32768,-32768,-32768, 5129,-32768,-32768,-32768,
1237 -32768, 1137,-32768, 9299,-32768,-32768,-32768,-32768, 1867,-32768,
1238 1333, 10717,-32768,-32768,-32768, 388, 388,-32768,-32768,-32768,
1239 -32768,-32768, 1333, 379, 704, 9386, 733,-32768, 1135,-32768,
1240 -32768,-32768, 610, 783, 792, 414, 1095, 199, 1143,-32768,
1241 1171,-32768,-32768,-32768, 388, 5463,-32768,-32768, 7435,-32768,
1242 1094, 737, 737, 737,-32768, 1096, 104, 1333, 104, 1333,
1243 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10717,-32768,
1244 -32768, 1098,-32768,-32768,-32768,-32768,-32768, 1111, 1120, 1121,
1245 1126, 919,-32768, 10581, 7435, 6968, 1107,-32768, 9386,-32768,
1246 -32768,-32768,-32768, 367, 1112,-32768,-32768, 1114, 217, 372,
1247 372, 1106, 372,-32768,-32768, 10088, 1221,-32768, 1122, 1123,
1248 1138,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 104,
1249 1139,-32768, 1118,-32768,-32768, 2999,-32768,-32768,-32768, 133,
1250 1140,-32768,-32768,-32768,-32768,-32768, 1899, 1899, 2060, 2060,
1251 4709,-32768, 2290,-32768, 2139, 10545,-32768,-32768, 1141,-32768,
1252 563,-32768, 9386,-32768, 9386,-32768, 9386,-32768, 26, 7060,
1253 -32768, 9027, 9027, 6667, 203, 1142, 220,-32768, 7435, 7247,
1254 -32768,-32768, 135, 7435, 7435,-32768, 1149, 1150, 2037,-32768,
1255 -32768,-32768, 104, 1153, 1180, 1180, 104, 1158, 9386, 9386,
1256 6034, 388, 4339, 388, 388, 684, 388, 4925, 1180, 5687,
1257 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1166,-32768,
1258 1172,-32768,-32768,-32768, 9386, 9386, 9386, 9386, 7435,-32768,
1259 9386, 1184,-32768,-32768, 10717, 9386,-32768, 367,-32768,-32768,
1260 -32768,-32768,-32768,-32768, 1156,-32768, 1205,-32768,-32768,-32768,
1261 104,-32768,-32768,-32768, 9386,-32768,-32768, 1899, 1899,-32768,
1262 2139,-32768,-32768, 1173, 1178, 1181, 1193, 1270,-32768,-32768,
1263 6477, 1247,-32768,-32768, 1182, 1610,-32768,-32768,-32768,-32768,
1264 5129,-32768,-32768,-32768, 7435,-32768,-32768,-32768,-32768,-32768,
1265 -32768,-32768,-32768,-32768, 6034, 6034,-32768, 1180, 446, 770,
1266 9386,-32768,-32768,-32768, 733, 733, 1180, 1180, 670, 1180,
1267 -32768,-32768, 6143, 104, 104,-32768,-32768, 1189, 1194, 1197,
1268 1201,-32768, 10672, 7435, 1203,-32768,-32768,-32768,-32768, 104,
1269 1204,-32768,-32768,-32768,-32768, 1193,-32768,-32768, 723,-32768,
1270 142, 1231, 807, 856,-32768,-32768,-32768,-32768,-32768, 9386,
1271 1254, 1259, 1260, 9120, 107, 581,-32768,-32768, 9212, 1313,
1272 1262,-32768, 4846, 10449, 4560, 6365,-32768,-32768, 1308,-32768,
1273 -32768,-32768, 8346,-32768, 306,-32768,-32768, 104, 104,-32768,
1274 -32768,-32768, 9386, 9386, 6034, 388, 388,-32768,-32768,-32768,
1275 -32768, 8148,-32768,-32768,-32768,-32768, 104, 104,-32768,-32768,
1276 -32768,-32768, 7435,-32768,-32768,-32768,-32768,-32768,-32768, 1270,
1277 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 932, 1232,
1278 1235, 5887,-32768,-32768,-32768,-32768, 1264, 9386, 1269,-32768,
1279 932,-32768,-32768, 1237,-32768,-32768, 733, 841,-32768, 904,
1280 733, 9827, 913, 185,-32768,-32768,-32768,-32768,-32768,-32768,
1281 -32768,-32768, 6034, 6034,-32768, 1180, 1180, 1224, 10603, 1240,
1282 -32768,-32768,-32768, 1242,-32768, 585, 585,-32768,-32768, 1326,
1283 5980, 9299, 9386,-32768, 8456,-32768, 1285,-32768,-32768, 692,
1284 -32768,-32768, 10262, 10262, 7619,-32768,-32768, 932,-32768,-32768,
1285 -32768,-32768,-32768,-32768,-32768, 331, 236, 2554,-32768,-32768,
1286 9299,-32768,-32768, 8648,-32768, 26,-32768,-32768, 1287,-32768,
1287 1239, 201, 5148, 10695, 8456,-32768,-32768, 1193, 52,-32768,
1288 143,-32768, 1241, 1243, 932, 1244, 932, 8552,-32768, 643,
1289 -32768,-32768,-32768,-32768, 733,-32768,-32768, 1193, 1339, 1291,
1290 -32768,-32768, 77,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1291 -32768,-32768,-32768,-32768, 9386, 1297, 7711, 932, 388, 8456,
1292 1266, 157, 1301,-32768,-32768,-32768,-32768,-32768, 26,-32768,
1293 1256,-32768,-32768, 1306,-32768,-32768, 1303,-32768, 9386, 1339,
1294 1316, 1339,-32768,-32768,-32768,-32768,-32768,-32768, 1273, 193,
1295 -32768,-32768, 7803,-32768, 7435,-32768, 1358, 1319, 1275,-32768,
1296 -32768, 190,-32768,-32768, 1363, 1325, 8552,-32768,-32768,-32768,
1297 -32768, 1393, 1394,-32768
1298 };
1299
1300 static const short yypgoto[] = {-32768,
1301 1398,-32768, -324,-32768, 996, 2, 0, 1397,-32768, 392,
1302 -32768,-32768, 492, 1054,-32768, 9,-32768,-32768, -586,-32768,
1303 -32768, 531,-32768, 1249, -655, -14, -644, 1267, 25,-32768,
1304 -32768,-32768,-32768,-32768, 700, 708,-32768,-32768,-32768,-32768,
1305 -32768, 335, 176,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1306 -32768,-32768,-32768,-32768, 1345, -619, 5219, 47, -164, 72,
1307 1304, 946,-32768,-32768,-32768, -36,-32768, 34,-32768, -1369,
1308 -32768, -1382, -102,-32768, 313, 374, -251,-32768, -810, 2843,
1309 -42, 4754, 3156, 1168,-32768, -104, -3, 171, -45, -23,
1310 -32768,-32768,-32768, -321,-32768, -142,-32768,-32768, -1241, -49,
1311 -339, 1165, 51, 885, -138, -1, 4157, -182, -4, -92,
1312 -657, 148,-32768, -63,-32768,-32768, -176,-32768,-32768,-32768,
1313 -32768,-32768, 639, 30, -2,-32768, 574,-32768,-32768, -1031,
1314 -143, 788,-32768,-32768,-32768,-32768,-32768, 303,-32768,-32768,
1315 -32768,-32768,-32768, 690, -362,-32768,-32768,-32768,-32768,-32768,
1316 -32768,-32768, 1245,-32768, 333, 504,-32768,-32768,-32768,-32768,
1317 470, -701, 742,-32768,-32768,-32768,-32768,-32768, 739,-32768,
1318 334, 976, 726, 909, 1728, 66, -5, -409, 1312, 1651,
1319 -437,-32768, 1,-32768, 2919, -127, 5, -11, 3697, 1164,
1320 -32768, 4316, 1484, 974, -22, -117,-32768, 1372,-32768, 3773,
1321 2378, -401,-32768, 1977,-32768,-32768, 197, -872, -1145,-32768,
1322 -32768, 293, 23, -356,-32768,-32768,-32768,-32768, -1329,-32768,
1323 -1237, -1379,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1324 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 49,-32768,-32768,
1325 -32768,-32768,-32768, 53, -1234,-32768,-32768,-32768, -56,-32768,
1326 -32768,-32768,-32768, -1362, -7,-32768, -8,-32768, -653, -502,
1327 575,-32768,-32768,-32768,-32768, -369,-32768, -357, -167,-32768,
1328 968, 309,-32768, 196,-32768, -213
1329 };
1330
1331
1332 #define YYLAST 10820
1333
1334
1335 static const short yytable[] = { 58,
1336 603, 121, 56, 37, 178, 36, 921, 366, 444, 645,
1337 151, 229, 41, 402, 102, 910, 643, 471, 394, 397,
1338 1046, 646, 717, 963, 612, 625, 278, 374, 45, 699,
1339 908, 58, 992, 236, 56, 37, 58, 36, 153, 56,
1340 37, 1349, 36, 463, 41, 512, 515, 172, 1449, 41,
1341 1109, 191, 443, 460, 54, 666, 902, 1372, 206, 1208,
1342 45, 451, 581, 1471, 1469, 45, 226, 581, 1387, 325,
1343 347, 1466, 158, 351, 738, 1390, 543, 663, 276, 352,
1344 190, 581, 240, 1110, 409, 194, 54, 202, 1492, 1001,
1345 879, 54, 858, 483, 1006, 236, 139, 143, 1460, 858,
1346 -1, 340, 340, 1231, 1232, 291, 449, 452, 424, 94,
1347 109, 110, 474, 159, 1479, -2, 372, 1252, 87, 497,
1348 498, 377, 151, 151, 151, 233, 1524, 1515, 375, 376,
1349 384, 447, 615, 383, 1111, 664, 1209, 1489, 85, 236,
1350 880, 1015, -329, 1482, 1018, 172, 410, 739, 277, 929,
1351 153, 153, 153, 151, 425, 58, 92, 483, 56, 381,
1352 284, 1480, 285, 111, 112, 688, 657, 1492, 1516, 1447,
1353 1539, 341, 341, 772, 993, 88, 172, 1456, 785, 411,
1354 998, 153, 137, 929, 45, 382, 860, 1368, 86, 100,
1355 -127, 206, 1195, 93, 1221, 89, 106, 930, 114, 206,
1356 931, -329, 1352, 935, 150, 410, 1322, 386, 197, 198,
1357 54, 393, 396, 1071, 14, 1328, 1329, 1477, 1330, 1520,
1358 202, 651, 652, 919, 994, 15, 16, 240, 450, 202,
1359 -388, 930, 585, 1177, 931, 932, -793, 21, 411, 215,
1360 427, 429, 1196, 1349, 1222, 1352, 24, 786, 591, 1545,
1361 -278, 936, 1353, -126, 937, 1537, 516, 517, 466, -388,
1362 697, 107, 1518, -388, 591, 136, 1521, -593, 703, 932,
1363 887, 525, 226, 670, 526, 108, 578, 527, 340, 472,
1364 537, 538, 502, 134, 532, 383, 1097, 1098, 478, 938,
1365 136, 580, 612, 957, 771, 1427, -278, -278, 364, 1546,
1366 1083, 883, 1538, 394, 397, 702, 922, 1134, 156, -388,
1367 771, 500, -271, -593, -593, 645, 340, 395, 398, 1138,
1368 391, 740, 301, 1493, 958, 473, 1180, 942, 276, -593,
1369 8, 9, 648, 586, 760, 1506, 226, 501, 27, 968,
1370 372, 603, 416, 90, 163, 1510, 240, 150, 341, 832,
1371 449, 452, 157, -280, 1159, 165, 1161, 499, 449, 417,
1372 203, 630, 1523, 91, 1431, 1432, 833, 1266, 858, 629,
1373 452, 126, 127, 969, 642, 126, 127, 970, 191, 169,
1374 474, 1534, 170, 129, 130, 674, 341, 633, 418, 705,
1375 452, 858, -553, 455, 457, 834, 1162, 1163, 277, -280,
1376 -280, 8, 476, -553, 1551, 888, 470, 151, 151, 151,
1377 971, 608, 194, 202, 832, -274, 1361, 126, 127, 19,
1378 681, 889, 27, 751, 129, 130, 27, 155, 129, 130,
1379 858, 833, 162, 591, 279, 153, 153, 153, -553, 171,
1380 221, 1139, 836, 846, 644, 126, 127, 206, 992, -553,
1381 439, 762, 837, 87, 129, 130, 58, 609, 1073, 733,
1382 834, 1176, 725, 206, 223, 466, 838, 204, 205, 752,
1383 129, 130, 450, 202, 532, 1404, 466, 532, 477, 771,
1384 450, 774, 137, 848, 1406, 1407, 525, 526, 524, 847,
1385 644, 534, 850, 203, 532, 39, 692, 693, 129, 130,
1386 567, 203, 203, 126, 127, 532, 340, 731, 1323, 340,
1387 804, 732, 866, 340, 777, 777, 777, 777, 645, 578,
1388 87, 717, 477, 946, 621, 643, 340, 39, 203, 849,
1389 646, 202, 39, 137, 288, 972, 826, 340, 851, 568,
1390 569, 953, 843, 955, 570, 571, 572, 573, 959, 437,
1391 438, 8, 9, 138, 612, 290, 129, 130, 867, 868,
1392 758, 115, 116, 117, 1108, 911, 707, 708, 467, 947,
1393 340, 276, 1102, 8, 9, 90, 341, 349, 203, 341,
1394 232, 973, 353, 341, 341, 341, 341, 341, 858, 895,
1395 642, 900, 901, 1014, 483, 91, 341, 681, 357, 1497,
1396 1104, 366, 395, 398, 129, 130, 240, 341, 121, 449,
1397 912, 858, 358, 27, 468, 118, 119, 27, 1103, 913,
1398 914, 543, 293, 367, 368, 10, 129, 130, 232, 1106,
1399 378, 901, 1440, 706, -338, 191, 15, 16, 920, 226,
1400 341, 277, 203, 1370, 1185, 1378, 1105, 1383, 1181, 1182,
1401 477, 1184, 359, 360, 361, 136, 915, 852, 854, 354,
1402 644, 22, 615, 919, 966, 967, -271, 644, -338, 194,
1403 399, 202, -338, 995, 27, 1107, 28, 311, 1441, 89,
1404 642, 534, 978, 355, 534, 171, 203, 126, 1249, 1047,
1405 1494, 717, 400, 94, 109, 110, -588, 359, 360, 361,
1406 395, 782, 296, 91, 27, -338, 362, 363, 33, 772,
1407 202, -7, 534, 88, 445, 446, 795, 749, 408, 90,
1408 58, -124, 58, 733, 90, 733, 725, -125, 191, 58,
1409 671, 450, 733, 89, 466, 725, 1495, 671, 642, 91,
1410 129, 130, 420, 642, 91, 203, 203, 111, 112, 113,
1411 644, 362, 363, 203, 960, 464, 977, 987, 88, 15,
1412 16, 90, 194, 750, 477, 203, 1140, 356, 466, 126,
1413 127, 731, 874, 731, -158, 732, -158, 732, 89, 731,
1414 731, 91, 1350, 1351, 732, 203, 421, 136, 1129, 1130,
1415 1131, 672, 1462, 481, 7, 8, 230, 10, 679, 1055,
1416 961, 1052, 565, 566, 203, 1483, 886, -339, 644, 15,
1417 16, 479, 490, 644, 491, 1002, 1003, 1004, 903, 480,
1418 27, 671, 129, 130, 88, 777, 525, 526, 493, 1049,
1419 15, 16, 1324, 22, 532, -388, 836, 1154, 1155, 1156,
1420 231, -339, 482, 795, 89, -339, 837, 509, 28, 29,
1421 94, 95, 96, 236, 507, 1152, 777, 115, 116, 117,
1422 838, 88, 642, -388, -388, 518, 681, 519, -388, 1355,
1423 151, 520, 232, 521, -44, 522, 240, 539, -339, -44,
1424 33, 89, 769, 642, 671, 777, 671, 671, 540, 642,
1425 -44, 1170, 1173, 197, 198, 341, 633, 581, 153, 14,
1426 437, 1421, 27, 590, 97, 98, 99, 616, 675, 151,
1427 90, 118, 119, 1142, 671, 617, 741, 1127, 1356, 1144,
1428 1145, 671, 21, 1142, 1147, 628, 341, 1145, 681, 655,
1429 91, 24, 644, -6, 852, 854, 644, 153, 658, 236,
1430 694, 874, 777, 744, 203, 825, 698, 827, 828, 340,
1431 1011, 1012, 1013, 644, 745, 341, 642, 1087, 1088, 644,
1432 765, 394, 397, 445, 1422, 772, 1173, 746, 642, 126,
1433 127, 493, 437, 1426, 753, 1217, 1219, 766, 754, 781,
1434 1223, 1224, 878, 203, 394, 397, 783, 490, 784, 491,
1435 664, 58, 786, 844, 733, 466, 466, 725, 644, 845,
1436 859, 861, 1409, 642, 203, 642, 293, 367, 368, 10,
1437 128, 863, 341, 1186, 1419, 881, 882, 884, 21, 341,
1438 27, 909, 129, 130, 466, 1262, 644, 890, -274, 891,
1439 926, 233, 562, 563, 564, 565, 566, 904, 644, 410,
1440 395, 782, 731, 927, 928, 22, 732, 236, 126, 127,
1441 934, -792, 238, 474, 621, 944, 949, 948, 951, 956,
1442 28, 311, 886, 954, 150, 151, 151, 151, 645, 525,
1443 526, 1409, 996, 644, 696, 644, 238, 532, 920, 203,
1444 1464, 1317, 1021, 671, 1023, 704, 642, 1024, 151, 151,
1445 151, 1028, 33, 153, 153, 153, 1029, 1025, 1026, 27,
1446 1030, 129, 130, 1116, 1027, 238, 1031, 1032, 1487, 681,
1447 1409, 1033, 772, -123, 238, 484, 153, 153, 153, -102,
1448 1344, 15, 16, 1035, 1036, 485, 666, 1038, 1258, 1259,
1449 1260, 1261, 94, 95, 96, 1039, 207, 208, 209, 1265,
1450 1041, 1409, 1040, 1054, 1042, 58, 671, 1043, 733, 1044,
1451 1057, 725, 1058, -102, 1198, 1199, 644, -102, 238, 671,
1452 1056, 671, 1064, 671, 1065, 1086, 210, 1074, 1066, 1072,
1453 466, 466, 1075, 466, 466, 1077, 466, 1198, 1199, 644,
1454 1079, 1326, 1327, 1101, 27, 1082, 97, 98, 211, 1119,
1455 -102, 238, 478, 671, 1143, -100, 731, 15, 16, 1403,
1456 732, 1126, 1148, 1153, 1165, 1157, 1305, 1048, 1164, 1304,
1457 1300, 1172, 1299, 1166, 1167, 238, 777, 1174, 1183, 1168,
1458 1059, 1178, 1060, 1179, 1061, 126, 127, 671, 1187, -100,
1459 1194, 1188, 1189, -100, 212, 213, 214, 560, 561, 562,
1460 563, 564, 565, 566, 417, 671, 1264, 1190, 1193, 1197,
1461 1202, 1216, 1268, 1377, 1081, 1377, 537, 1367, 1226, 1227,
1462 395, 398, 1230, 639, 466, 466, -100, 1234, 1267, 483,
1463 338, 348, 94, 109, 110, 1256, 27, 1459, 129, 130,
1464 1208, 1257, 1272, 395, 1215, 1172, 341, 1273, 1099, 1275,
1465 1274, 1315, 484, 1354, 1305, 394, 397, 1304, 1339, 191,
1466 1299, 1305, 485, 1340, 1304, 1300, 1341, 1299, 1305, 639,
1467 1342, 1304, 1300, 1347, 1299, 1345, 1363, 447, 238, 1364,
1468 1365, 1373, 1375, 1388, 1416, 1411, 111, 112, 1412, 1418,
1469 1420, 1417, 1433, 194, 202, 1438, 8, 9, 1435, 380,
1470 12, 13, 1445, 952, 677, 1457, 14, 1473, 1474, 1501,
1471 1485, 1505, 1486, 1488, 466, 466, 466, 1512, 151, 1519,
1472 1522, 17, 238, 18, 19, 1525, 1526, 1528, 1541, 21,
1473 94, 95, 96, 1548, 804, 1450, 1531, 997, 24, 1543,
1474 525, 526, 1536, 1278, 1544, 1549, 153, 27, 532, 129,
1475 130, 1540, 1553, 1554, 115, 707, 708, 1, 5, 151,
1476 151, 151, 660, 1475, 1450, 627, 1305, 1452, 406, 1304,
1477 1305, 1499, 1299, 1304, 1300, 671, 1299, 671, 1084, 671,
1478 340, 1461, 466, 466, 97, 98, 407, 153, 153, 153,
1479 678, 238, 988, 642, 964, 1203, 1452, 287, 759, 1305,
1480 1443, 387, 1304, 1300, 1550, 1299, 489, 496, 118, 119,
1481 1305, 1380, 1078, 1304, 1300, 925, 1299, 1022, 1511, 238,
1482 1450, 1228, 1132, 1305, 459, 1150, 1304, 1300, 965, 1299,
1483 1369, 990, 7, 126, 127, 10, 1204, 277, 1205, 639,
1484 1206, 1251, 1529, 768, 831, 536, 639, 79, 692, 693,
1485 341, 1020, 1452, 440, 365, 1305, 804, 103, 1304, 1300,
1486 587, 1299, 1386, 644, 1314, 1507, 277, 671, 132, 1484,
1487 1478, 22, 1530, 1532, 141, 141, 1118, 141, 231, 79,
1488 610, 8, 9, 0, 79, 1405, 28, 29, 466, 1316,
1489 0, 0, 0, 126, 127, 0, 0, 185, 13, 79,
1490 0, 0, 1305, 638, 0, 1304, 1300, 218, 1299, 0,
1491 232, 0, 1116, 0, 103, 0, 301, 611, 33, 22,
1492 0, 238, 277, 0, 0, 242, 103, 0, 1271, 639,
1493 0, 0, 27, 0, 129, 130, 0, 591, 238, 0,
1494 94, 109, 110, 469, 27, 0, 129, 130, 103, 0,
1495 0, 0, 0, 0, 395, 1215, 0, 0, 0, 0,
1496 592, 0, 0, 0, 1135, 1136, 0, 203, 0, 0,
1497 593, 132, -549, 0, 0, -549, 132, 0, 79, 22,
1498 594, -280, 141, 595, 596, 389, 141, 639, 0, 141,
1499 141, 141, 639, 1149, 111, 112, -280, -280, 0, 0,
1500 0, -280, 0, 79, 0, 0, 0, 0, 0, 0,
1501 0, 863, 0, 0, 0, 0, 0, -280, 185, 185,
1502 185, 0, 0, -549, 0, -549, -549, 950, -549, -280,
1503 -280, 0, -280, 0, -280, 770, 0, 0, 773, -549,
1504 0, -549, 775, 776, 778, 779, 780, 185, 0, 0,
1505 0, 0, 0, 0, 671, 536, 0, -549, -549, 0,
1506 0, -549, 458, -280, -280, 0, 798, -280, 0, 1000,
1507 103, 0, 0, -549, 1005, 0, 0, 0, 0, -280,
1508 8, 9, 141, 380, 12, 13, 0, 0, 677, 0,
1509 14, 0, 0, 0, 0, 0, 94, 109, 110, 829,
1510 618, 619, 620, 0, 0, 17, 0, 18, 19, 0,
1511 0, 639, 0, 21, 203, 639, 196, 197, 198, 856,
1512 103, 486, 24, 14, 591, 0, 856, 0, 0, 0,
1513 79, 27, 639, 129, 130, 0, 0, 0, 639, 1237,
1514 1238, 19, 1247, 1248, 0, 1250, 21, 592, 8, 9,
1515 111, 112, 12, 13, 0, 24, 0, 593, 14, 7,
1516 8, 9, 10, 0, 0, 13, 0, 594, 239, 0,
1517 595, 596, 0, 17, 678, 18, 103, 639, 0, 0,
1518 588, 21, 486, 486, 605, 428, 430, 434, 0, 1067,
1519 24, 1068, 0, 0, 0, 132, 0, 0, 22, 27,
1520 0, 129, 130, 574, 591, 639, 0, 0, 238, 638,
1521 238, 27, 0, 28, 29, 0, 132, 639, 0, 0,
1522 0, 0, 103, 0, 0, 185, 103, 892, 0, 115,
1523 707, 708, 238, 1320, 1321, 0, 141, 893, 575, 141,
1524 0, 401, 0, 0, 141, 33, 0, 594, 0, 0,
1525 894, 596, 639, 0, 639, 0, 0, 710, 0, 0,
1526 426, 7, 8, 9, 10, 0, 0, 225, 0, 0,
1527 185, 0, 185, 442, 185, 185, 185, 0, 0, 0,
1528 185, 27, 0, 118, 119, 185, 0, 0, 185, 126,
1529 127, 0, 0, 197, 198, 0, 0, 0, 0, 14,
1530 22, 0, 0, 0, 79, 0, 591, 196, 197, 198,
1531 0, 0, 0, 27, 14, 28, 29, 0, 238, 0,
1532 0, 0, 21, 1395, 1396, 1397, 0, 0, 0, 892,
1533 0, 24, 19, 591, 1158, 639, 1160, 21, 0, 893,
1534 27, 0, 129, 130, 185, 0, 24, 33, 0, 594,
1535 0, 0, 894, 596, 1045, 0, 592, 0, 639, 0,
1536 0, 649, 103, 103, 103, 103, 593, 0, 448, 197,
1537 198, 0, 0, 0, 0, 14, 594, 0, 0, 602,
1538 596, 0, 0, 0, 0, 798, 0, 0, 0, 0,
1539 0, 1429, 1430, 19, 0, 856, 0, 1192, 21, 115,
1540 707, 708, 0, 709, 0, 0, 0, 24, 0, 238,
1541 0, 0, 638, 0, 1085, 0, 0, 0, 856, 103,
1542 0, 486, 7, 8, 9, 10, 238, 710, 13, 0,
1543 0, 0, 588, 0, 711, 486, 486, 690, 605, 691,
1544 0, 428, 430, 434, 0, 875, 0, 0, 0, 877,
1545 0, 27, 701, 118, 119, 0, 0, 856, 0, 0,
1546 1229, 22, 0, 0, 1233, 0, 0, 591, 0, 0,
1547 0, 1121, 0, 0, 27, 0, 28, 29, 1128, 238,
1548 0, 0, 185, 899, 185, 185, 218, 605, 0, 0,
1549 1089, 196, 197, 198, 0, 0, 0, 1517, 14, 0,
1550 1090, 7, 8, 9, 10, 0, 0, 474, 33, 0,
1551 594, 0, 0, 1091, 596, 0, 19, 0, 1269, 0,
1552 0, 21, 695, 0, 185, 0, 0, 700, 899, 0,
1553 24, 0, 0, 0, 0, 185, 185, 0, 185, 0,
1554 22, 0, 0, 0, 0, 763, 591, 0, 0, 7,
1555 8, 9, 10, 27, 742, 28, 29, 0, 0, 747,
1556 0, 0, 0, 0, 0, 132, 0, 0, 79, 892,
1557 79, 755, 756, 0, 757, 985, 79, 79, 0, 893,
1558 0, 1335, 1336, 0, 0, 0, 103, 33, 22, 594,
1559 0, 103, 894, 596, 591, 0, 0, 1346, 486, 486,
1560 486, 27, 0, 28, 29, 0, 8, 9, 0, 0,
1561 12, 13, 0, 0, 0, 856, 14, 892, 0, 0,
1562 486, 0, 0, 0, 94, 109, 110, 893, 207, 208,
1563 209, 17, 0, 18, 0, 33, 0, 594, 856, 21,
1564 894, 596, 0, 0, 0, 1391, 1392, 0, 24, 0,
1565 0, 0, 7, 8, 9, 10, 0, 27, 210, 129,
1566 130, 0, 0, 0, 1401, 1402, 0, 0, 0, 0,
1567 0, 0, 0, 103, 0, 600, 604, 607, 111, 112,
1568 0, 0, 639, 0, 0, 864, 865, 0, 0, 0,
1569 864, 22, 0, 0, 0, 486, 830, 486, 231, 0,
1570 0, 0, 690, 691, 103, 701, 28, 29, 486, 0,
1571 103, 0, 875, 875, 875, 0, 0, 0, 0, 1076,
1572 7, 126, 127, 10, 0, 0, 13, 0, 0, 0,
1573 232, 103, 0, 103, 0, 185, 185, 1093, 33, 0,
1574 0, 82, 983, 0, 0, 1121, 0, 0, 0, 0,
1575 0, 105, 0, 0, 0, 0, 0, 0, 0, 22,
1576 0, 125, 133, 7, 126, 127, 10, 0, 142, 142,
1577 0, 142, 27, 82, 28, 29, 1093, 0, 82, 126,
1578 127, 0, 0, 197, 198, 0, 0, 0, 31, 14,
1579 103, 142, 0, 82, 0, 0, 0, 0, 32, 0,
1580 0, 219, 22, 0, 103, 0, 33, 0, 227, 0,
1581 0, 34, 21, 0, 0, 27, 103, 28, 29, 0,
1582 227, 24, 0, 591, 0, 0, 0, 0, 0, 1146,
1583 27, 146, 129, 130, 0, 0, 1007, 0, 1009, 79,
1584 0, 147, 0, 0, 0, 0, 592, 0, 0, 33,
1585 0, 103, 0, 103, 148, 0, 593, 0, 0, 0,
1586 0, 293, 8, 9, 10, 373, 594, 0, 0, 595,
1587 596, 0, 82, 0, 0, 0, 142, 0, 0, 0,
1588 142, 0, 0, 142, 142, 142, 0, 0, 0, 0,
1589 0, 0, 0, 486, 486, 0, 486, 82, 0, 0,
1590 22, 0, 428, 430, 434, 0, 0, 231, 0, 0,
1591 0, 0, 142, 142, 142, 28, 311, 8, 9, 0,
1592 380, 12, 13, 1050, 1051, 1463, 1053, 14, 853, 855,
1593 185, 185, 185, 185, 1093, 0, 0, 0, 185, 232,
1594 0, 142, 17, 434, 18, 19, 0, 33, 0, 536,
1595 21, 0, 0, 1070, 0, 1093, 1093, 1093, 0, 24,
1596 0, 0, 638, 0, 293, 367, 368, 10, 27, 0,
1597 129, 130, 0, 0, 0, 897, 142, 600, 604, 0,
1598 607, 0, 0, 1095, 0, 0, 185, 0, 0, 0,
1599 0, 141, 720, 79, 7, 8, 721, 10, 380, 12,
1600 13, 0, 0, 22, 582, 14, 293, 367, 368, 10,
1601 231, 583, 0, 0, 227, 142, 0, 604, 28, 311,
1602 17, 0, 18, 19, 82, 0, 0, 0, 21, 0,
1603 0, 0, 0, 22, 0, 0, 0, 24, 722, 0,
1604 632, 185, 185, 0, 185, 22, 27, 1133, 28, 29,
1605 33, 0, 231, 0, 724, 0, 0, 0, 27, 1137,
1606 28, 311, 31, 0, 103, 0, 0, 0, 0, 0,
1607 227, 0, 32, 0, 589, 0, 142, 142, 606, 0,
1608 33, 0, 0, 614, 0, 34, 0, 0, 0, 373,
1609 0, 0, 584, 0, 0, 0, 0, 690, 691, 428,
1610 430, 434, 0, 0, 0, 701, 0, 0, 0, 0,
1611 0, 0, 0, 604, 0, 0, 227, 0, 0, 142,
1612 227, 0, 428, 430, 434, 0, 0, 0, 0, 0,
1613 142, 0, 0, 142, 0, 0, 0, 0, 142, 0,
1614 0, 0, 0, 0, 0, 0, 185, 899, 185, 0,
1615 0, 0, 1191, 1245, 0, 0, 0, 0, 0, 126,
1616 127, 0, 0, 0, 142, 0, 142, 0, 142, 142,
1617 142, 0, 0, 0, 142, 0, 0, 0, 0, 142,
1618 0, 1201, 142, 0, 0, 0, 0, 0, 1062, 0,
1619 1063, 0, 0, 7, 8, 9, 10, 719, 82, 0,
1620 0, 1069, 0, 591, 0, 853, 855, 0, 690, 691,
1621 27, 701, 129, 130, 0, 0, 0, 0, 0, 0,
1622 0, 7, 126, 127, 10, 1093, 592, 225, 853, 855,
1623 0, 0, 22, 0, 0, 0, 593, 0, 142, 0,
1624 1254, 0, 0, 0, 1255, 27, 594, 28, 29, 595,
1625 596, 174, 0, 0, 0, 0, 227, 227, 227, 227,
1626 22, 175, 0, 0, 0, 0, 1093, 1093, 1093, 0,
1627 0, 176, 0, 27, 0, 28, 29, 0, 0, 33,
1628 1270, 103, 75, 0, 177, 0, 0, 0, 0, 31,
1629 0, 0, 0, 0, 0, 0, 185, 0, 0, 32,
1630 0, 293, 8, 9, 10, 0, 0, 33, 0, 140,
1631 144, 0, 34, 227, 75, 142, 0, 1318, 0, 75,
1632 0, 1319, 0, 0, 0, 0, 0, 0, 0, 142,
1633 142, 0, 606, 0, 195, 0, 0, 0, 0, 876,
1634 22, 0, 0, 1337, 1338, 0, 0, 231, 0, 0,
1635 0, 614, 0, 0, 0, 28, 311, 293, 126, 127,
1636 10, 293, 8, 9, 10, 0, 0, 0, 125, 0,
1637 0, 0, 0, 0, 0, 0, 142, 606, 142, 142,
1638 219, 606, 0, 0, 0, 0, 0, 33, 0, 0,
1639 0, 0, 434, 0, 0, 0, 22, 0, 719, 0,
1640 22, 0, 0, 231, 0, 0, 0, 231, 0, 0,
1641 0, 28, 311, 385, 0, 28, 311, 388, 142, 0,
1642 0, 390, 606, 1062, 1063, 853, 855, 0, 0, 142,
1643 142, 1069, 142, 428, 430, 434, 0, 0, 75, 477,
1644 0, 0, 0, 33, 0, 0, 0, 33, 853, 855,
1645 0, 0, 0, 140, 144, 0, 0, 0, 0, 133,
1646 0, 0, 82, 0, 82, 0, 0, 0, 0, 986,
1647 82, 82, 7, 8, 9, 10, 187, 12, 188, 0,
1648 227, 0, 0, 14, 0, 227, 0, 0, 0, 0,
1649 0, 0, 142, 142, 142, 0, 0, 0, 17, 0,
1650 18, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1651 0, 22, 0, 0, 142, 24, 0, 475, 0, 50,
1652 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1653 189, 0, 0, 0, 1062, 1063, 0, 1069, 0, 0,
1654 31, 597, 597, 597, 0, 0, 50, 50, 0, 149,
1655 32, 50, 0, 0, 0, 0, 50, 0, 33, 0,
1656 0, 0, 0, 34, 0, 503, 0, 227, 0, 50,
1657 0, 50, 558, 559, 560, 561, 562, 563, 564, 565,
1658 566, 7, 8, 9, 10, 196, 197, 198, 0, 142,
1659 0, 142, 14, 0, 234, 0, 0, 0, 227, 0,
1660 0, 0, 142, 0, 227, 0, 876, 876, 876, 0,
1661 19, 0, 0, 614, 0, 21, 0, 0, 0, 0,
1662 22, 0, 0, 0, 24, 227, 591, 227, 0, 142,
1663 142, 606, 0, 27, 0, 28, 29, 0, 0, 0,
1664 0, 0, 0, 370, 0, 0, 0, 370, 370, 892,
1665 50, 0, 0, 0, 50, 0, 234, 0, 50, 893,
1666 0, 149, 149, 149, 0, 0, 0, 33, 0, 594,
1667 876, 653, 894, 596, 654, 50, 0, 0, 0, 656,
1668 0, 0, 0, 0, 227, 0, 0, 0, 0, 0,
1669 50, 50, 149, 0, 0, 0, 719, 0, 227, 0,
1670 234, 0, 0, 0, 0, 388, 0, 390, 0, 0,
1671 227, 0, 0, 0, 0, 0, 0, 0, 0, 50,
1672 475, 720, 0, 7, 8, 721, 10, 380, 12, 13,
1673 0, 0, 0, 82, 14, 0, 0, 0, 0, 737,
1674 0, 0, 0, 0, 0, 227, 0, 227, 0, 17,
1675 0, 18, 19, 20, 50, 0, 0, 21, -497, 0,
1676 0, 0, 22, 0, 0, 0, 24, 722, 0, 632,
1677 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1678 0, 723, 0, 724, 0, 0, 0, 142, 142, 0,
1679 142, 31, 0, 0, 597, 597, 0, 597, 0, 0,
1680 0, 32, 50, 0, 873, 0, 0, 0, 0, 33,
1681 0, 0, 0, 0, 34, 0, 7, 126, 127, 10,
1682 0, 0, 13, 0, 142, 142, 142, 142, 606, 0,
1683 0, -497, 142, 0, 0, 0, 533, 0, 719, 0,
1684 0, 597, 0, 597, 597, 0, 597, 0, 0, 876,
1685 876, 876, 370, 0, 0, 22, 0, 0, 0, 0,
1686 234, 0, 0, 0, 0, 0, 719, 370, 27, 0,
1687 28, 29, 0, 7, 8, 9, 10, 0, 0, 13,
1688 142, 0, 0, 597, 146, 142, 0, 82, 370, 0,
1689 0, 0, 0, 0, 147, 0, 0, 50, 0, 0,
1690 0, 0, 33, 0, 0, 0, 0, 148, 50, 0,
1691 0, 50, 22, 0, 0, 0, 50, 0, 898, 0,
1692 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
1693 0, 0, 0, 0, 0, 142, 142, 0, 142, 0,
1694 0, 175, 50, 0, 50, 0, 149, 149, 149, 0,
1695 0, 176, 50, 0, 0, 0, 0, 50, 227, 33,
1696 50, 0, 0, 940, 177, 0, 0, 0, 0, 0,
1697 653, 654, 0, 656, 0, 0, 50, 0, 0, 597,
1698 0, 0, 0, 7, 126, 127, 10, 0, 0, 474,
1699 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
1700 564, 565, 566, 737, 0, 737, 0, 0, 0, 0,
1701 984, 991, 737, 0, 0, 0, 50, 0, 0, 0,
1702 0, 0, 22, 0, 0, 0, 533, 0, 0, 533,
1703 0, 126, 127, 0, 0, 27, 225, 28, 29, 0,
1704 142, 606, 142, 0, 533, 533, 533, 7, 8, 9,
1705 10, 31, 0, 225, 597, 0, 597, 533, 0, 0,
1706 77, 32, 0, 0, 0, 0, 0, 597, 0, 33,
1707 0, 873, 873, 873, 34, 591, 0, 0, 0, 0,
1708 0, 0, 27, 0, 129, 130, 22, 77, 77, 0,
1709 77, 0, 77, 0, 597, 597, 597, 77, 592, 27,
1710 0, 28, 29, 234, 0, 0, 0, 0, 593, 0,
1711 77, 0, 77, 0, 0, 175, 0, 533, 594, 876,
1712 0, 595, 596, 0, 0, 176, 0, 0, 0, 0,
1713 0, 0, 0, 33, 0, 873, 0, 0, 177, 552,
1714 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1715 563, 564, 565, 566, 50, 50, 50, 50, 0, 0,
1716 876, 876, 876, 0, 0, 0, 154, 126, 127, 0,
1717 140, 144, 474, 0, 0, 227, 0, 0, 0, 0,
1718 0, 0, 0, 0, 0, 0, 186, 0, 0, 0,
1719 142, 77, 0, 0, 0, 77, 50, 0, 0, 77,
1720 50, 0, 77, 77, 77, 0, 0, 50, 50, 0,
1721 50, 591, 0, 0, 0, 0, 77, 0, 27, 0,
1722 129, 130, 0, 0, 0, 0, 0, 0, 0, 0,
1723 0, 77, 77, 77, 592, 0, 0, 0, 0, 0,
1724 50, 0, 50, 0, 593, 0, 0, 50, 50, 50,
1725 0, 0, 0, 0, 594, 0, 0, 595, 596, 0,
1726 77, 0, 0, 0, 0, 0, 7, 8, 9, 10,
1727 0, 0, 13, 0, 737, 0, 0, 0, 154, 154,
1728 154, 0, 0, 0, 0, 0, 533, 0, 0, 597,
1729 597, 597, 597, 597, 0, 77, 0, 597, 0, 0,
1730 0, 0, 0, 0, 0, 22, 0, 186, 186, 435,
1731 0, 0, 0, 0, 873, 873, 873, 0, 27, 0,
1732 28, 29, 555, 556, 557, 558, 559, 560, 561, 562,
1733 563, 564, 565, 566, 431, 0, 186, 0, 0, 0,
1734 0, 0, 0, 77, 432, 0, 0, 0, 0, 0,
1735 0, 0, 33, 0, 0, 0, 0, 433, 0, 0,
1736 0, 0, 0, 0, 0, 388, 390, 0, 0, 0,
1737 0, 0, 0, 475, 0, 0, 0, 7, 8, 9,
1738 10, 196, 197, 198, 533, 533, 533, 0, 14, 0,
1739 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740 597, 597, 613, 597, 0, 0, 19, 50, 50, 149,
1741 487, 21, 0, 0, 234, 0, 22, 0, 0, 0,
1742 24, 1246, 591, 0, 0, 0, 1246, 0, 737, 27,
1743 0, 28, 29, 0, 0, 0, 0, 0, 77, 0,
1744 0, 0, 0, 0, 0, 892, 0, 0, 1115, 77,
1745 0, 0, 77, 0, 0, 893, 0, 77, 7, 8,
1746 9, 10, 0, 33, 474, 594, 0, 0, 933, 596,
1747 0, 599, 599, 599, 0, 0, 653, 654, 0, 656,
1748 0, 0, 0, 77, 0, 77, 0, 77, 77, 77,
1749 0, 0, 0, 77, 0, 0, 0, 22, 77, 0,
1750 234, 77, 0, 0, 0, 0, 0, 0, 0, 0,
1751 27, 50, 28, 29, 186, 0, 0, 77, 0, 0,
1752 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
1753 0, 0, 0, 8, 9, 0, 176, 12, 225, 0,
1754 0, 0, 0, 14, 33, 0, 0, 0, 0, 177,
1755 0, 0, 0, 0, 0, 0, 0, 77, 17, 186,
1756 18, 186, 0, 435, 435, 435, 21, 0, 0, 186,
1757 0, 0, 0, 0, 186, 24, 0, 186, 0, 0,
1758 0, 0, 1381, 0, 27, 0, 129, 130, 0, 0,
1759 0, 234, 0, 0, 0, 0, 0, 0, 0, 275,
1760 0, 0, 50, 50, 149, 149, 149, 0, 234, 0,
1761 50, 0, 6, 0, 7, 8, 9, 10, 11, 12,
1762 13, 0, 339, 339, 0, 14, 0, 1115, 1115, 1115,
1763 0, 0, 0, 186, 0, 0, 0, 0, 0, 0,
1764 17, 0, 18, 19, 0, 613, 0, 0, 21, 0,
1765 0, 0, 0, 22, 0, 0, 0, 24, 50, 0,
1766 405, 0, 0, 50, 0, 50, 27, 0, 28, 29,
1767 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 31, 0, 974, 975, 9, 10, 0, 0,
1769 0, 0, 32, 0, 0, 77, 77, 77, 77, 0,
1770 33, 1239, 1240, 9, 10, 34, 0, 0, 0, 0,
1771 839, 0, 0, 50, 50, 0, 50, 0, 0, 0,
1772 0, 0, 0, 22, 599, 599, 0, 599, 0, 184,
1773 0, 0, 0, 0, 599, 0, 27, 77, 28, 29,
1774 22, 77, 0, 0, 976, 0, 0, 0, 77, 77,
1775 0, 77, 175, 27, 237, 28, 29, 241, 0, 0,
1776 0, 1241, 176, 0, 0, 0, 0, 0, 0, 175,
1777 33, 896, 0, 896, 896, 177, 599, 0, 237, 176,
1778 292, 77, 0, 77, 0, 0, 0, 33, 77, 77,
1779 77, 0, 177, 0, 0, 0, 0, 0, 0, 339,
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 896, 0, 0, 0, 0, 50, 50,
1782 50, 0, 0, 0, 186, 186, 0, 186, -360, 8,
1783 9, -360, -360, 12, 225, 0, 0, 339, 0, 14,
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
1785 184, 184, 184, 0, 17, 0, 18, -360, 0, 0,
1786 441, 0, 21, 0, 186, 0, 0, -360, 0, 0,
1787 0, 24, 0, 591, 0, 0, 0, 0, 0, 184,
1788 27, 0, 129, 130, 0, 0, 0, 487, 487, 487,
1789 0, 0, 0, 0, 0, 641, 592, 1115, 0, 0,
1790 0, 0, 241, 0, 0, 0, 593, 0, 0, 599,
1791 0, 0, 0, 0, -360, 0, 594, 237, 0, 595,
1792 596, 0, 7, 8, 9, 10, 196, 197, 198, 0,
1793 0, 0, 613, 14, 0, 0, 0, 0, 1115, 1115,
1794 1115, 641, 0, 0, 0, 0, 0, 0, 77, 77,
1795 77, 19, 0, 0, 0, 0, 21, 0, 0, 0,
1796 0, 22, 0, 0, 0, 24, 0, 591, 50, 0,
1797 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1798 0, 0, 0, 0, 599, 0, 599, 0, 0, 1117,
1799 175, 0, 0, 0, 0, 0, 0, 599, 0, 0,
1800 176, 599, 599, 599, 0, 0, 0, 0, 33, 0,
1801 0, 0, 0, 1382, 0, 0, 0, 0, 0, 0,
1802 237, 241, 0, 0, 896, 896, 1094, 339, 0, 0,
1803 339, 0, 0, 0, 339, 339, 339, 339, 339, 0,
1804 0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
1805 0, 0, 77, 0, 0, 0, 0, 184, 339, 0,
1806 0, 0, 0, 0, 0, 1094, 0, 0, 0, 0,
1807 0, 7, 8, 9, 10, 380, 12, 13, 0, 0,
1808 677, 0, 14, 0, 0, 0, 0, 0, 0, 0,
1809 0, 339, 275, 0, 0, 0, 0, 17, 0, 18,
1810 19, 0, 184, 0, 184, 21, 184, 184, 184, 0,
1811 22, 641, 184, 0, 24, 0, 591, 184, 641, 0,
1812 184, 0, 0, 27, 0, 28, 29, 0, 0, 0,
1813 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089,
1814 0, 0, 0, 77, 77, 77, 77, 77, 0, 1090,
1815 0, 77, 0, 0, 0, 0, 0, 33, 0, 594,
1816 0, 0, 1091, 596, 0, 0, 678, 0, 1117, 1117,
1817 1117, 0, 0, 0, 0, 0, 184, 0, 0, 0,
1818 0, 0, 839, 839, 0, 839, 0, 0, 0, 0,
1819 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
1820 0, 641, 0, 0, 77, 0, 77, 0, 7, 8,
1821 9, 10, 0, 0, 0, 0, 0, 0, 0, 896,
1822 896, 1094, 1094, 1094, 0, 0, 0, 896, 551, 552,
1823 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
1824 563, 564, 565, 566, 1094, 1094, 1094, 22, 0, 0,
1825 0, 0, 0, 0, 77, 77, 0, 77, 0, 641,
1826 27, 0, 28, 29, 641, 720, 1376, 7, 8, 721,
1827 10, 380, 12, 13, 0, 186, 175, 0, 14, 0,
1828 237, 241, 0, 0, 0, 0, 176, 1239, 126, 127,
1829 10, 0, 0, 17, 33, 18, 19, 20, 0, 177,
1830 0, 21, -498, 0, 0, 0, 22, 0, 0, 0,
1831 24, 722, 0, 632, 184, 0, 184, 184, 0, 27,
1832 0, 28, 29, 0, 0, 723, 22, 724, 0, 0,
1833 896, 896, 0, 896, 0, 31, 0, 0, 0, 27,
1834 0, 28, 29, 0, 0, 32, 339, 1241, 0, 0,
1835 0, 0, 0, 33, 0, 31, 184, 0, 34, 77,
1836 77, 77, 0, 0, 0, 32, 0, 184, 184, 0,
1837 184, 0, 0, 33, 0, -498, 0, 339, 34, 0,
1838 0, 0, 0, 641, 0, 0, 0, 641, 0, 0,
1839 0, 0, 0, 0, 241, 0, 495, 0, 0, 0,
1840 7, 8, 9, 10, 641, 0, 339, 184, 0, 0,
1841 641, 0, 0, 0, 0, 0, 0, 7, 8, 9,
1842 10, 380, 12, 13, 0, 523, 939, 0, 14, 0,
1843 0, 0, 0, 0, 0, 186, 0, 186, 1117, 22,
1844 0, 0, 0, 17, 0, 18, 19, 0, 0, 641,
1845 0, 21, 27, 0, 28, 29, 22, 0, 0, 0,
1846 24, 0, 0, 339, 0, 0, 0, 0, 431, 27,
1847 339, 28, 29, 0, 0, 0, 0, 641, 432, 1117,
1848 1117, 1117, 0, 0, 0, 31, 33, 0, 0, 641,
1849 0, 433, 8, 9, 0, 32, 12, 13, 0, 0,
1850 0, 0, 14, 33, 0, 0, 0, 0, 34, 77,
1851 7, 8, 9, 10, 435, 0, 0, 17, 0, 18,
1852 0, 0, 0, 0, 641, 21, 641, 0, 0, 0,
1853 669, 673, 0, 0, 24, 0, 0, 0, 673, 0,
1854 0, 0, 0, 27, 0, 129, 130, 0, 0, 22,
1855 237, 241, 237, 0, 0, 435, 435, 435, 0, 0,
1856 0, 0, 27, 0, 28, 29, 0, 184, 184, 1092,
1857 0, 0, 8, 9, 237, 380, 12, 13, 175, 0,
1858 0, 0, 14, 0, 0, 186, 0, 0, 176, 0,
1859 0, 0, 101, 0, 0, 0, 33, 17, 0, 18,
1860 19, 177, 120, 101, 0, 21, 0, 641, 1092, 101,
1861 101, 0, 101, 0, 631, 0, 0, 632, 0, 0,
1862 0, 0, 673, 27, 0, 129, 130, 0, 0, 0,
1863 641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 217, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 788, 669, 0, 0, 800, 801, 802,
1866 441, 806, 807, 808, 809, 810, 811, 812, 813, 814,
1867 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
1868 0, 0, 0, 0, 0, 673, 0, 673, 673, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 120, 0, 120, 0, 0, 101, 0, 0, 0,
1871 101, 101, 0, 0, 0, 673, 0, 101, 0, 101,
1872 101, 101, 673, 0, 101, 101, 101, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 339, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
1875 9, 237, 187, 12, 188, 0, 0, 0, 0, 14,
1876 0, 0, 184, 184, 184, 184, 1092, 0, 1200, 0,
1877 184, 0, 0, 0, 17, 0, 18, 19, 0, 0,
1878 0, 669, 21, 0, 0, 0, 0, 1092, 1092, 1092,
1879 0, 24, 0, 0, 0, 0, 456, 101, 0, 0,
1880 27, 0, 129, 130, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 101, 184, 0,
1882 0, 0, 0, 720, 0, 7, 8, 721, 10, 380,
1883 12, 13, 0, 0, 0, 0, 14, 962, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 17, 0, 18, 19, 20, 101, 0, 0, 21,
1886 -500, 0, 0, 0, 22, 0, 0, 0, 24, 722,
1887 0, 632, 0, 184, 184, 0, 184, 27, 1019, 28,
1888 29, 0, 0, 723, 673, 724, 0, 0, 0, 0,
1889 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 32, 0, 0, 0, 1034, 0, 0,
1891 0, 33, 0, 0, 0, 101, 34, 101, 101, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
1893 101, 0, 0, -500, 0, 0, 0, 0, 0, 0,
1894 0, 339, 0, 0, 0, 0, 669, 673, 0, 0,
1895 0, 101, 0, 0, 641, 0, 0, 275, 0, 0,
1896 673, 0, 673, 0, 673, 0, 0, 101, 0, 0,
1897 0, 101, 0, 0, 101, 0, 0, 0, 184, 101,
1898 184, 8, 9, 0, 0, 12, 225, 0, 0, 0,
1899 0, 14, 0, 0, 673, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 0, 17, 0, 18, 0,
1901 0, 0, 0, 275, 21, 0, 0, 1096, 0, 0,
1902 0, 0, 0, 24, 0, 591, 0, 0, 673, 0,
1903 0, 0, 27, 0, 129, 130, 101, 0, 712, 0,
1904 0, 0, 0, 0, 0, 0, 673, 720, 592, 7,
1905 8, 721, 10, 380, 12, 13, 0, 1092, 593, 0,
1906 14, 0, 0, 0, 101, 0, 0, 0, 594, 0,
1907 0, 595, 596, 0, 0, 17, 0, 18, 19, 20,
1908 0, 0, 0, 21, -499, 0, 0, 0, 22, 1141,
1909 0, 0, 24, 722, 0, 632, 0, 0, 1092, 1092,
1910 1092, 27, 0, 28, 29, 0, 0, 723, 0, 724,
1911 0, 0, 669, 0, 0, 0, 0, 31, 0, 0,
1912 0, 0, 0, 0, 0, 0, 0, 32, 184, 0,
1913 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
1914 34, 0, 0, 0, 0, 0, 0, 0, 669, 669,
1915 0, 0, 1175, 0, 0, 0, 101, -499, 0, 0,
1916 0, 0, 0, 0, 0, 0, 101, 101, 0, 0,
1917 101, 101, 0, 0, 0, 0, 974, 8, 721, 10,
1918 187, 12, 188, 0, 0, 0, 0, 14, 553, 554,
1919 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1920 565, 566, 17, 0, 18, 19, 0, 0, 0, 120,
1921 21, 0, 0, 0, 0, 22, 673, 0, 673, 24,
1922 673, 217, 0, 669, 0, 0, 0, 0, 27, 0,
1923 28, 29, 669, 669, 0, 0, 976, 669, 669, 712,
1924 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
1925 0, 0, 1235, 1236, 32, 0, 0, 0, 1413, 0,
1926 0, 0, 33, 0, 0, 0, 0, 34, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 669, 0, 1263, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 712, 0, 0,
1930 101, 0, 0, 0, 0, 0, 0, 0, 673, 1414,
1931 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1932 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1933 565, 566, 0, 101, 101, 101, 0, 0, 669, 0,
1934 803, 0, 293, 8, 9, 10, 380, 12, 294, 295,
1935 296, 0, 297, 14, 1325, 101, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0, 17, 298,
1937 18, 19, 20, 0, 299, 300, 21, 669, 301, 302,
1938 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
1939 307, 308, 309, 310, 27, 0, 28, 311, 1446, 0,
1940 -750, 312, 0, 1362, 0, 0, 0, 313, 0, 0,
1941 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
1942 317, 0, 0, 0, 0, 19, 318, 319, 320, 0,
1943 101, 0, 101, 321, 0, 0, 1393, 1394, 0, 0,
1944 0, 0, 0, 101, 0, 1399, 0, 0, 0, 0,
1945 0, 322, 0, 0, 0, 0, 669, 545, 546, 547,
1946 548, 549, 550, 551, 552, 553, 554, 555, 556, 557,
1947 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
1948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1949 0, 0, 0, 0, 0, 673, 0, 0, 0, 0,
1950 0, 0, 0, 1331, 0, -454, -454, -454, -454, -454,
1951 -454, -454, 0, 0, -454, 0, -454, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 1454, -454, 0, -454,
1953 -454, 0, 0, 0, -454, 0, 0, 712, 0, -454,
1954 0, 0, 0, 0, -454, 0, 0, 0, -454, 0,
1955 -454, 0, 0, 0, 0, 0, 0, -454, 0, -454,
1956 -454, -454, -454, -454, 101, -454, -454, -454, -454, -454,
1957 -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
1958 -454, -454, -454, -454, -454, -454, -454, -454, 0, -454,
1959 -454, -454, 0, -454, -454, -454, -454, -454, -454, 0,
1960 -454, -454, 0, 0, 0, 0, 1332, 0, 0, 0,
1961 0, -454, -454, -454, 0, -454, 0, 0, 0, 0,
1962 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
1963 720, 101, 7, 8, 721, 10, 380, 12, 13, 0,
1964 0, 0, 0, 14, 0, 0, 0, 0, 669, 0,
1965 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
1966 18, 19, 20, 0, 0, 0, 21, 0, 0, 0,
1967 0, 22, 0, 0, 0, 24, 722, 0, 632, 712,
1968 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
1969 723, 0, 724, 0, 0, 0, 0, 0, 0, 0,
1970 31, 0, 0, 0, 0, 0, 0, 712, 0, 0,
1971 32, 0, 0, 0, 0, 0, 0, 0, 33, 0,
1972 0, 0, 0, 34, 101, 1384, 101, 1282, 1283, 1284,
1973 10, 380, 12, 294, 295, 296, 0, 297, 14, 1285,
1974 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,
1975 1295, 15, 16, 17, 298, 18, 19, 20, 0, 299,
1976 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
1977 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
1978 0, 1296, 311, 664, 0, 1297, 312, 0, 0, 0,
1979 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
1980 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
1981 0, 318, 319, 320, 0, 0, 0, 0, 321, 0,
1982 1298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 0, 0, 1385, 322, 1281, 0, 1282,
1984 1283, 1284, 10, 380, 12, 294, 295, 296, 0, 297,
1985 14, 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
1986 1293, 1294, 1295, 15, 16, 17, 298, 18, 19, 20,
1987 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
1988 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
1989 310, 27, 0, 1296, 311, 664, 0, 1297, 312, 0,
1990 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
1991 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
1992 0, 0, 0, 318, 319, 320, 0, 0, 0, 0,
1993 321, 528, 1298, 293, 8, 9, 10, 380, 12, 294,
1994 295, 296, 677, 297, 14, 0, 0, 0, 322, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
1996 298, 18, 19, 20, 0, 299, 300, 21, 0, 301,
1997 302, 303, 22, 304, 305, 0, 24, 0, 591, 0,
1998 306, 307, 308, 309, 310, 27, 0, 28, 311, -288,
1999 0, 0, 312, 0, 0, 0, 0, 0, 313, 0,
2000 0, 869, 0, 0, 0, 0, 0, 0, 0, 315,
2001 316, 870, 0, 0, 0, 0, 0, 318, 319, 320,
2002 0, 594, 0, 0, 871, 596, 0, 528, 678, 7,
2003 8, 9, 10, 380, 12, 294, 295, 296, 677, 297,
2004 14, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 17, 298, 18, 19, 20,
2006 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2007 305, 0, 24, 0, 591, 0, 306, 307, 308, 309,
2008 310, 27, 0, 28, 29, -288, 0, 0, 312, 0,
2009 0, 0, 0, 0, 313, 0, 0, 1112, 0, 0,
2010 0, 0, 0, 0, 0, 315, 316, 1113, 0, 0,
2011 0, 0, 0, 318, 319, 320, 0, 594, 0, 0,
2012 1114, 596, 0, 676, 678, 293, 8, 9, 10, 380,
2013 12, 294, 295, 296, 677, 297, 14, 0, 322, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015 0, 17, 298, 18, 19, 20, 0, 299, 300, 21,
2016 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2017 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2018 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2019 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2020 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2021 319, 320, 0, 0, 0, 0, 321, 0, 0, 0,
2022 678, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, -760, 667, 322, 789, 790, 791, 10, 0,
2024 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2027 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2028 0, 0, 306, 307, 308, 309, 310, 27, 0, 792,
2029 793, 668, 0, 0, 312, 0, 0, 0, 0, 0,
2030 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2031 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2032 319, 320, 0, 0, 0, 0, 321, 794, 667, 0,
2033 789, 790, 791, 10, 0, 12, 510, 295, 296, 0,
2034 297, 14, 0, 924, 322, 0, 0, 0, 1171, 0,
2035 0, 0, 0, 0, 0, 0, 17, 298, 18, 0,
2036 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2037 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2038 309, 310, 27, 0, 792, 793, 668, 0, 0, 312,
2039 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2040 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2041 0, 0, 0, 0, 318, 319, 320, 0, 0, 0,
2042 667, 321, 789, 790, 791, 10, 0, 12, 510, 295,
2043 296, 0, 297, 14, 0, 0, 0, 0, -458, 322,
2044 1171, 0, 0, 0, 0, 0, 0, 0, 17, 298,
2045 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2046 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2047 307, 308, 309, 310, 27, 0, 792, 793, 668, 0,
2048 0, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2049 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2050 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2051 0, 0, 667, 321, 789, 790, 791, 10, 0, 12,
2052 510, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2053 1214, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2054 17, 298, 18, 0, 20, 0, 299, 300, 21, 0,
2055 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2056 0, 306, 307, 308, 309, 310, 27, 0, 792, 793,
2057 668, 0, 0, 312, 0, 0, 0, 0, 0, 313,
2058 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2059 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2060 320, 0, 0, 0, 0, 321, 794, 667, 0, 293,
2061 8, 9, 10, 0, 12, 510, 295, 296, 0, 297,
2062 14, 0, 0, 322, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2064 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2065 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2066 310, 27, 0, 28, 311, 668, 0, 0, 312, 0,
2067 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
2068 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
2069 0, 0, 0, 318, 319, 320, 0, 0, 0, 0,
2070 321, 0, 0, 528, 0, 293, 8, 9, 10, 1218,
2071 12, 294, 295, 296, 0, 297, 14, 0, 322, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2074 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2075 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2076 311, -288, 0, 0, 312, 0, 0, 0, 0, 0,
2077 313, 0, 0, 529, 0, 0, 0, 0, 0, 0,
2078 0, 315, 316, 530, 0, 0, 0, 0, 0, 318,
2079 319, 320, 0, 0, 0, 667, 531, 293, 8, 9,
2080 10, 0, 12, 510, 295, 296, 0, 297, 14, 0,
2081 0, 0, 0, 0, 322, 0, 0, 0, 0, 0,
2082 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2083 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2084 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2085 0, 28, 311, 668, 0, 0, 312, 0, 0, 0,
2086 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
2087 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
2088 0, 318, 319, 320, 0, 0, 0, 803, 321, 293,
2089 8, 9, 10, 0, 12, 510, 295, 296, 0, 297,
2090 14, 0, 0, 0, 0, 0, 322, 0, 0, 0,
2091 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2092 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2093 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2094 310, 27, 0, 28, 311, 0, 0, 0, 312, -750,
2095 0, 0, 0, 0, 313, 0, 0, 314, 0, 0,
2096 0, 0, 0, 0, 0, 315, 316, 317, 0, 0,
2097 0, 0, 0, 318, 319, 320, 0, 0, 0, 528,
2098 321, 7, 8, 9, 10, 0, 12, 294, 295, 296,
2099 0, 297, 14, 0, 0, 0, 0, 0, 322, 0,
2100 0, 0, 0, 0, 0, 0, 0, 17, 298, 18,
2101 0, 20, 0, 299, 300, 21, 0, 301, 302, 303,
2102 22, 304, 305, 0, 24, 0, 0, 0, 306, 307,
2103 308, 309, 310, 27, 0, 28, 29, -288, 0, 0,
2104 312, 0, 0, 0, 0, 0, 313, 0, 0, 1423,
2105 0, 0, 0, 0, 0, 0, 0, 315, 316, 1424,
2106 0, 0, 0, 0, 0, 318, 319, 320, 0, 0,
2107 0, 1513, 1425, 293, 8, 9, 10, 0, 12, 294,
2108 295, 296, 0, 297, 14, 0, 0, 0, 0, 0,
2109 322, 0, 0, 0, 0, 0, 0, 0, 0, 17,
2110 298, 18, 0, 20, 0, 299, 300, 21, 0, 301,
2111 302, 303, 22, 304, 305, 0, 24, 0, 0, 0,
2112 306, 307, 308, 309, 310, 27, 0, 28, 311, 0,
2113 0, -177, 312, 0, 0, 0, 0, 0, 313, 0,
2114 0, 314, 0, 0, 0, 0, 0, 0, 0, 315,
2115 316, 317, 0, 0, 0, 0, 0, 318, 319, 320,
2116 0, 0, 0, 803, 321, 293, 8, 9, 10, 0,
2117 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2118 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
2119 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2120 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2121 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2122 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2123 313, 243, 0, 314, 8, 9, 0, 0, 12, 13,
2124 0, 315, 316, 317, 14, 0, 0, 0, 0, 318,
2125 319, 320, 0, 0, 0, 0, 321, 0, 0, 17,
2126 0, 18, 0, 0, 0, 0, 0, 21, 0, 244,
2127 245, 0, -750, 0, 322, 0, 24, 0, 246, 0,
2128 0, 0, 0, 0, 0, 27, 0, 129, 130, 0,
2129 247, 0, 0, 0, 248, 249, 250, 251, 252, 253,
2130 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2131 264, 265, 266, 267, 268, 0, 0, 269, 270, 271,
2132 0, 0, 272, 0, 787, 273, 293, 8, 9, 10,
2133 0, 12, 510, 295, 296, 0, 297, 14, 0, 0,
2134 0, 0, 274, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2136 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2137 0, 0, 0, 306, 307, 308, 309, 310, 27, 0,
2138 28, 311, 0, 0, 0, 312, 0, 0, 0, 0,
2139 0, 313, 0, 0, 314, 0, 0, 0, 0, 0,
2140 0, 0, 315, 316, 317, 0, 0, 0, 0, 0,
2141 318, 319, 320, 0, 0, 0, 799, 321, 293, 8,
2142 9, 10, 0, 12, 510, 295, 296, 0, 297, 14,
2143 0, 0, 0, 0, 0, 322, 0, 0, 0, 0,
2144 0, 0, 0, 0, 17, 298, 18, 0, 20, 0,
2145 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2146 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2147 27, 0, 28, 311, 0, 0, 0, 312, 0, 0,
2148 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2149 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2150 0, 0, 318, 319, 320, 0, 0, 0, 1398, 321,
2151 293, 8, 9, 10, 0, 12, 510, 295, 296, 0,
2152 297, 14, 0, 0, 0, 0, 0, 322, 0, 0,
2153 0, 0, 0, 0, 0, 0, 17, 298, 18, 0,
2154 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2155 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2156 309, 310, 27, 0, 28, 311, 0, 0, 0, 312,
2157 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2158 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2159 0, 0, 0, 0, 318, 319, 320, 293, 8, 9,
2160 10, 321, 12, 510, 295, 296, 0, 297, 14, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 322,
2162 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2163 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2164 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2165 0, 28, 311, 0, 0, 0, 312, 0, 0, 0,
2166 0, 0, 313, 0, 0, 314, 0, 0, 0, 0,
2167 0, 0, 0, 315, 316, 317, 0, 0, 0, 0,
2168 0, 318, 319, 320, 0, 0, 0, 0, 321, 550,
2169 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
2170 561, 562, 563, 564, 565, 566, 322, 842, 1282, 1283,
2171 1284, 10, 380, 12, 294, 295, 296, 0, 297, 14,
2172 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
2173 1294, 1295, 15, 16, 17, 298, 18, 19, 20, 0,
2174 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2175 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2176 27, 0, 1296, 311, 664, 0, 1297, 312, 0, 0,
2177 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2178 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2179 0, 0, 318, 319, 320, 0, 0, 0, 0, 321,
2180 0, 1298, 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 1389, 322, 1282, 1283,
2182 1284, 10, 380, 12, 294, 295, 296, 0, 297, 14,
2183 1285, 0, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
2184 1294, 1295, 15, 16, 17, 298, 18, 19, 20, 0,
2185 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2186 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2187 27, 0, 1296, 311, 664, 0, 1297, 312, 0, 0,
2188 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2189 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2190 0, 0, 318, 319, 320, 0, 0, 0, 0, 321,
2191 0, 1298, 0, 0, 1282, 1283, 1284, 10, 380, 12,
2192 294, 295, 296, 0, 297, 14, 1285, 322, 1286, 1287,
2193 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 15, 16,
2194 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2195 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2196 0, 306, 307, 308, 309, 310, 27, 0, 1296, 311,
2197 1490, 0, 1297, 312, 0, 0, 0, 0, 0, 313,
2198 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2199 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2200 320, 0, 0, 0, 0, 321, 0, 1298, 0, 0,
2201 1282, 1283, 1284, 10, 380, 12, 294, 295, 296, 0,
2202 297, 14, 1285, 322, 1286, 1287, 1288, 1289, 1290, 1291,
2203 1292, 1293, 1294, 1295, 15, 16, 17, 298, 18, 19,
2204 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2205 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2206 309, 310, 27, 0, 1296, 311, 0, 0, 1297, 312,
2207 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2208 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2209 0, 0, 0, 0, 318, 319, 320, 0, 0, 0,
2210 0, 321, 0, 1298, 293, 8, 9, 10, 380, 12,
2211 294, 295, 296, 677, 297, 14, 0, 0, 0, 322,
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2213 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2214 301, 302, 303, 22, 304, 305, 0, 24, 0, 591,
2215 0, 306, 307, 308, 309, 310, 27, 0, 28, 311,
2216 0, 0, 0, 312, 0, 0, 0, 0, 0, 313,
2217 0, 0, 869, 0, 0, 0, 0, 0, 0, 0,
2218 315, 316, 870, 0, 0, 0, 0, 0, 318, 319,
2219 320, 0, 594, 0, 0, 871, 596, 0, 0, 678,
2220 7, 8, 9, 10, 380, 12, 294, 295, 296, 677,
2221 297, 14, 0, 322, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 17, 298, 18, 19,
2223 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2224 304, 305, 0, 24, 0, 591, 0, 306, 307, 308,
2225 309, 310, 27, 0, 28, 29, 0, 0, 0, 312,
2226 0, 0, 0, 0, 0, 313, 0, 0, 1112, 0,
2227 0, 0, 0, 0, 0, 0, 315, 316, 1113, 0,
2228 0, 0, 0, 0, 318, 319, 320, 0, 594, 0,
2229 0, 1114, 596, 0, 0, 678, 293, 8, 9, 10,
2230 0, 12, 294, 295, 296, 0, 297, 14, 0, 322,
2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2232 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2233 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2234 0, 591, 0, 306, 307, 308, 309, 310, 27, 0,
2235 28, 311, 0, 0, 0, 0, 0, 0, 0, 0,
2236 0, 313, 0, 0, 869, 0, 0, 0, 0, 0,
2237 0, 0, 315, 316, 870, 0, 0, 0, 0, 0,
2238 318, 319, 320, 0, 594, 0, 0, 871, 596, 7,
2239 8, 9, 10, 0, 12, 294, 295, 296, 0, 297,
2240 14, 0, 0, 0, 0, 322, 0, 0, 0, 0,
2241 0, 0, 0, 0, 0, 17, 298, 18, 0, 20,
2242 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2243 305, 0, 24, 0, 591, 0, 306, 307, 308, 309,
2244 310, 27, 0, 28, 29, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 313, 0, 0, 1112, 0, 0,
2246 0, 0, 0, 0, 0, 315, 316, 1113, 0, 0,
2247 0, 0, 0, 318, 319, 320, 0, 594, 0, 0,
2248 1114, 596, 293, 8, 9, 10, 0, 12, 510, 295,
2249 296, 0, 297, 14, 0, 0, 0, 0, 322, 0,
2250 0, 0, 0, 0, 0, 0, 0, 0, 17, 298,
2251 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2252 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2253 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2254 1366, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2255 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2256 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2257 0, 0, 0, 321, 293, 8, 9, 10, 380, 12,
2258 294, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2259 0, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2260 17, 298, 18, 19, 20, 0, 299, 300, 21, 0,
2261 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2262 0, 306, 307, 308, 309, 310, 27, 0, 28, 311,
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 313,
2264 0, 0, 314, 0, 0, 0, 0, 0, 0, 0,
2265 315, 316, 317, 0, 0, 0, 0, 0, 318, 319,
2266 320, 293, 8, 9, 10, 321, 12, 294, 295, 296,
2267 0, 297, 14, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 322, 0, 0, 0, 17, 298, 18,
2269 0, 20, 0, 299, 300, 21, 0, 301, 302, 303,
2270 22, 304, 305, 0, 24, 0, 0, 0, 306, 307,
2271 308, 309, 310, 27, 0, 28, 311, 0, 0, 0,
2272 312, 0, 0, 0, 0, 0, 313, 0, 0, 314,
2273 0, 0, 0, 0, 0, 0, 0, 315, 316, 317,
2274 0, 0, 0, 0, 0, 318, 319, 320, 293, 8,
2275 9, 10, 321, 12, 510, 295, 296, 0, 297, 14,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 322, 0, 0, 0, 17, 298, 18, 0, 20, 0,
2278 299, 300, 21, 0, 301, 302, 303, 22, 304, 305,
2279 0, 24, 0, 0, 0, 306, 307, 308, 309, 310,
2280 27, 0, 28, 311, 0, 0, 0, 312, 0, 0,
2281 0, 0, 0, 313, 0, 0, 314, 0, 0, 0,
2282 0, 0, 0, 0, 315, 316, 317, 0, 0, 0,
2283 0, 0, 318, 319, 320, 293, 8, 9, 10, 321,
2284 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2285 0, 0, 0, 0, 0, 0, 0, 322, 0, 0,
2286 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2287 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2288 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2289 311, 541, 0, 0, 0, 0, 0, 0, 0, 0,
2290 313, 0, 0, 314, 0, 0, 0, 0, 0, 0,
2291 0, 315, 316, 317, 0, 0, 0, 0, 0, 318,
2292 319, 320, 293, 8, 9, 10, 542, 12, 510, 295,
2293 296, 0, 297, 14, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 322, 0, 0, 0, 17, 298,
2295 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2296 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2297 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2298 0, 0, 0, 0, 0, 0, 0, 313, 0, 0,
2299 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2300 317, 0, 0, 0, 0, 0, 318, 319, 320, 0,
2301 0, 0, 0, 321, 579, 293, 8, 9, 10, 0,
2302 12, 510, 295, 296, 0, 297, 14, 0, 0, 0,
2303 0, 322, 0, 0, 0, 0, 0, 0, 0, 0,
2304 0, 17, 298, 18, 0, 20, 0, 299, 300, 21,
2305 0, 301, 302, 303, 22, 304, 305, 0, 24, 0,
2306 0, 0, 306, 307, 308, 309, 310, 27, 0, 28,
2307 311, 0, 0, 0, 312, 0, 0, 0, 0, 0,
2308 313, 0, 0, 529, 0, 0, 0, 0, 0, 0,
2309 0, 315, 316, 530, 0, 0, 0, 0, 0, 318,
2310 319, 320, 1080, 8, 9, 10, 531, 12, 510, 295,
2311 296, 0, 297, 14, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 322, 0, 0, 0, 17, 298,
2313 18, 0, 20, 0, 299, 300, 21, 0, 301, 302,
2314 303, 22, 304, 305, 0, 24, 0, 0, 0, 306,
2315 307, 308, 309, 310, 27, 0, 28, 311, 0, 0,
2316 0, 312, 0, 0, 0, 0, 0, 313, 0, 0,
2317 314, 0, 0, 0, 0, 0, 0, 0, 315, 316,
2318 317, 0, 0, 0, 0, 0, 318, 319, 320, 7,
2319 8, 9, 10, 321, 12, 510, 295, 296, 0, 297,
2320 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321 0, 322, 0, 0, 0, 17, 298, 18, 0, 20,
2322 0, 299, 300, 21, 0, 301, 302, 303, 22, 304,
2323 305, 0, 24, 0, 0, 0, 306, 307, 308, 309,
2324 310, 27, 0, 28, 29, 0, 0, 0, 312, 0,
2325 0, 0, 0, 0, 313, 0, 0, 1423, 0, 0,
2326 0, 0, 0, 0, 0, 315, 316, 1424, 0, 0,
2327 0, 0, 0, 318, 319, 320, 293, 8, 9, 10,
2328 1425, 12, 510, 295, 296, 0, 297, 14, 0, 0,
2329 0, 0, 0, 0, 0, 0, 0, 0, 322, 0,
2330 0, 0, 17, 298, 18, 0, 20, 0, 299, 300,
2331 21, 0, 301, 302, 303, 22, 304, 305, 0, 24,
2332 0, 0, 0, 306, 307, 308, 309, 310, 27, 0,
2333 28, 311, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 313, 0, 0, 314, 0, 0, 0, 0, 0,
2335 0, 0, 315, 316, 317, 0, 0, 0, 0, 0,
2336 318, 319, 320, 293, 8, 9, 10, 511, 12, 510,
2337 295, 296, 0, 297, 14, 0, 0, 0, 0, 0,
2338 0, 0, 0, 0, 0, 322, 0, 0, 0, 17,
2339 298, 18, 0, 20, 0, 299, 300, 21, 0, 301,
2340 302, 303, 22, 304, 305, 0, 24, 0, 0, 0,
2341 306, 307, 308, 309, 310, 27, 0, 28, 311, 0,
2342 0, 0, 0, 0, 0, 0, 0, 0, 313, 0,
2343 0, 314, 0, 0, 0, 0, 0, 0, 0, 315,
2344 316, 317, 0, 0, 0, 0, 0, 318, 319, 320,
2345 293, 8, 9, 10, 514, 12, 510, 295, 296, 0,
2346 297, 14, 0, 0, 0, 0, 0, 0, 0, 0,
2347 0, 0, 322, 0, 0, 0, 17, 298, 18, 0,
2348 20, 0, 299, 300, 21, 0, 301, 302, 303, 22,
2349 304, 305, 0, 24, 0, 0, 0, 306, 307, 308,
2350 309, 310, 27, 0, 28, 311, 0, 0, 0, 0,
2351 0, 0, 0, 0, 0, 313, 0, 0, 314, 0,
2352 0, 0, 0, 0, 0, 0, 315, 316, 317, 0,
2353 0, 0, 0, 0, 318, 319, 320, 293, 8, 9,
2354 10, 321, 12, 510, 295, 296, 0, 297, 14, 0,
2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 322,
2356 0, 0, 0, 17, 298, 18, 0, 20, 0, 299,
2357 300, 21, 0, 301, 302, 303, 22, 304, 305, 0,
2358 24, 0, 0, 0, 306, 307, 308, 309, 310, 27,
2359 0, 28, 311, 0, 0, 0, 0, 0, 0, 0,
2360 0, 0, 313, 0, 0, 529, 0, 0, 0, 0,
2361 0, 0, 0, 315, 316, 530, 0, 0, 0, 0,
2362 0, 318, 319, 320, 7, 8, 9, 10, 531, 12,
2363 294, 295, 296, 0, 297, 14, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 322, 0, 0, 0,
2365 17, 298, 18, 0, 20, 0, 299, 300, 21, 0,
2366 301, 302, 303, 22, 304, 305, 0, 24, 0, 0,
2367 0, 306, 307, 308, 309, 310, 27, 0, 28, 29,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 313,
2369 0, 6, 1423, 7, 8, 9, 10, 11, 12, 13,
2370 315, 316, 1424, 0, 14, 0, 0, 0, 318, 319,
2371 320, 0, 0, 0, 0, 1425, 0, 15, 16, 17,
2372 0, 18, 19, 20, 0, 0, 0, 21, 0, 0,
2373 0, 0, 22, 322, 0, 23, 24, 25, 0, 26,
2374 0, 0, 0, 0, 0, 27, 0, 28, 29, 0,
2375 161, 30, 7, 8, 9, 10, 11, 12, 13, 0,
2376 0, 31, 0, 14, 0, 0, 0, 0, 0, 0,
2377 0, 32, 0, 0, 0, 0, 15, 16, 17, 33,
2378 18, 19, 20, 0, 34, 0, 21, 0, 0, 0,
2379 35, 22, 0, 0, 23, 24, 25, 0, 26, 0,
2380 0, 0, 0, 0, 27, 0, 28, 29, 0, 0,
2381 30, 7, 8, 9, 10, 187, 12, 188, 0, 0,
2382 31, 0, 14, 0, 0, 0, 0, 0, 0, 0,
2383 32, 0, 0, 0, 0, 0, 0, 17, 33, 18,
2384 19, 0, 0, 34, 0, 21, 0, 0, 0, 35,
2385 22, 0, 0, 0, 24, 0, 7, 8, 9, 10,
2386 380, 12, 13, 27, 0, 28, 29, 14, 0, 1379,
2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
2388 0, 0, 17, 0, 18, 19, 0, 0, 0, 32,
2389 21, 0, 0, 0, 0, 22, 0, 33, 0, 24,
2390 0, 0, 34, 0, 0, 0, 0, 0, 27, 0,
2391 28, 29, 7, 8, 9, 10, 187, 12, 188, 0,
2392 0, 0, 0, 14, 31, 0, 0, 0, 0, 0,
2393 0, 0, 0, 0, 32, 0, 0, 0, 17, 0,
2394 18, 19, 33, 0, 0, 0, 21, 34, 0, 0,
2395 0, 22, 0, 0, 0, 24, 0, 0, 0, 0,
2396 0, 0, 0, 0, 27, 0, 28, 29, 545, 546,
2397 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2398 31, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2399 32, 0, 0, 0, 0, 0, 0, 0, 33, 0,
2400 0, 0, 0, 34, 545, 546, 547, 548, 549, 550,
2401 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
2402 561, 562, 563, 564, 565, 566, 545, 546, 547, 548,
2403 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
2404 559, 560, 561, 562, 563, 564, 565, 566, 0, 0,
2405 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 0, 0, 544, 0,
2407 0, 1434, 545, 546, 547, 548, 549, 550, 551, 552,
2408 553, 554, 555, 556, 557, 558, 559, 560, 561, 562,
2409 563, 564, 565, 566, 1343, 545, 546, 547, 548, 549,
2410 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
2411 560, 561, 562, 563, 564, 565, 566, 1476, 545, 546,
2412 547, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2413 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2414 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2415 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2416 565, 566, 549, 550, 551, 552, 553, 554, 555, 556,
2417 557, 558, 559, 560, 561, 562, 563, 564, 565, 566
2418 };
2419
2420 static const short yycheck[] = { 4,
2421 340, 24, 4, 4, 54, 4, 662, 125, 191, 379,
2422 34, 75, 4, 156, 14, 660, 379, 231, 146, 147,
2423 831, 379, 460, 725, 346, 350, 83, 132, 4, 439,
2424 650, 36, 734, 79, 36, 36, 41, 36, 34, 41,
2425 41, 1276, 41, 226, 36, 297, 298, 53, 1411, 41,
2426 923, 56, 191, 221, 4, 412, 643, 1299, 61, 34,
2427 36, 200, 11, 1446, 1444, 41, 71, 11, 1306, 106,
2428 107, 1441, 59, 59, 38, 1313, 328, 1, 83, 65,
2429 56, 11, 82, 60, 1, 56, 36, 58, 1468, 743,
2430 60, 41, 595, 276, 748, 141, 31, 32, 1428, 602,
2431 0, 106, 107, 1135, 1136, 105, 199, 200, 48, 3,
2432 4, 5, 9, 100, 63, 0, 128, 1149, 75, 284,
2433 285, 133, 146, 147, 148, 79, 1509, 1497, 132, 133,
2434 135, 195, 346, 135, 111, 59, 111, 1467, 61, 185,
2435 110, 761, 59, 1, 764, 151, 63, 111, 83, 12,
2436 146, 147, 148, 177, 94, 160, 75, 340, 160, 135,
2437 89, 110, 91, 57, 58, 62, 110, 1547, 1498, 1411,
2438 1533, 106, 107, 513, 61, 55, 182, 1415, 535, 96,
2439 110, 177, 55, 12, 160, 135, 596, 81, 111, 14,
2440 63, 194, 60, 49, 60, 75, 94, 60, 23, 202,
2441 63, 59, 61, 12, 34, 63, 1238, 136, 8, 9,
2442 160, 146, 147, 867, 14, 1247, 1248, 1455, 1250, 63,
2443 191, 386, 387, 661, 111, 27, 28, 227, 199, 200,
2444 32, 60, 337, 1044, 63, 98, 65, 37, 96, 64,
2445 175, 176, 110, 1478, 110, 61, 46, 110, 48, 60,
2446 48, 60, 111, 63, 63, 63, 299, 300, 229, 61,
2447 437, 94, 1500, 65, 48, 75, 110, 48, 445, 98,
2448 633, 314, 277, 417, 317, 94, 333, 320, 283, 48,
2449 323, 324, 287, 75, 321, 287, 906, 907, 242, 98,
2450 75, 334, 614, 7, 94, 111, 94, 95, 123, 110,
2451 887, 626, 110, 431, 432, 444, 663, 961, 94, 111,
2452 94, 287, 110, 94, 95, 685, 321, 147, 148, 973,
2453 145, 464, 39, 1469, 38, 94, 110, 685, 333, 110,
2454 4, 5, 382, 337, 499, 1481, 341, 287, 55, 25,
2455 352, 681, 48, 55, 109, 1491, 346, 177, 283, 48,
2456 443, 444, 61, 48, 1008, 25, 1010, 286, 451, 65,
2457 58, 373, 1508, 75, 1396, 1397, 65, 1178, 871, 373,
2458 463, 4, 5, 59, 379, 4, 5, 63, 383, 61,
2459 9, 1527, 55, 57, 58, 422, 321, 379, 94, 453,
2460 483, 894, 48, 218, 219, 94, 1016, 1017, 333, 94,
2461 95, 4, 5, 48, 1550, 60, 231, 431, 432, 433,
2462 96, 48, 383, 384, 48, 110, 1289, 4, 5, 32,
2463 425, 76, 55, 48, 57, 58, 55, 36, 57, 58,
2464 933, 65, 41, 48, 75, 431, 432, 433, 94, 95,
2465 63, 63, 71, 48, 379, 4, 5, 450, 1150, 94,
2466 95, 501, 81, 75, 57, 58, 461, 94, 868, 461,
2467 94, 95, 461, 466, 59, 436, 95, 60, 61, 94,
2468 57, 58, 443, 444, 511, 1348, 447, 514, 81, 94,
2469 451, 518, 55, 48, 1357, 1358, 529, 530, 313, 94,
2470 425, 321, 48, 191, 531, 4, 431, 432, 57, 58,
2471 48, 199, 200, 4, 5, 542, 511, 461, 63, 514,
2472 547, 461, 48, 518, 519, 520, 521, 522, 888, 576,
2473 75, 959, 81, 48, 349, 888, 531, 36, 226, 94,
2474 888, 502, 41, 55, 111, 48, 573, 542, 94, 87,
2475 88, 709, 579, 711, 92, 93, 94, 95, 716, 60,
2476 61, 4, 5, 75, 876, 59, 57, 58, 94, 95,
2477 489, 3, 4, 5, 921, 3, 4, 5, 48, 94,
2478 575, 576, 48, 4, 5, 55, 511, 94, 276, 514,
2479 81, 94, 55, 518, 519, 520, 521, 522, 1091, 639,
2480 595, 641, 642, 758, 777, 75, 531, 602, 55, 1472,
2481 48, 719, 432, 433, 57, 58, 606, 542, 631, 702,
2482 48, 1114, 55, 55, 94, 57, 58, 55, 94, 57,
2483 58, 873, 3, 4, 5, 6, 57, 58, 81, 48,
2484 76, 681, 48, 458, 25, 640, 27, 28, 661, 644,
2485 575, 576, 340, 63, 1054, 1303, 94, 1305, 1050, 1051,
2486 81, 1053, 3, 4, 5, 75, 94, 592, 593, 55,
2487 595, 42, 876, 1101, 728, 729, 110, 602, 59, 640,
2488 110, 642, 63, 737, 55, 94, 57, 58, 94, 75,
2489 685, 511, 732, 55, 514, 95, 384, 4, 5, 833,
2490 48, 1129, 110, 3, 4, 5, 110, 3, 4, 5,
2491 530, 531, 11, 75, 55, 96, 57, 58, 89, 1049,
2492 681, 111, 542, 55, 60, 61, 541, 48, 3, 55,
2493 725, 63, 727, 725, 55, 727, 725, 63, 733, 734,
2494 418, 702, 734, 75, 705, 734, 94, 425, 743, 75,
2495 57, 58, 61, 748, 75, 443, 444, 57, 58, 59,
2496 685, 57, 58, 451, 48, 94, 732, 733, 55, 27,
2497 28, 55, 733, 94, 81, 463, 63, 55, 739, 4,
2498 5, 725, 602, 727, 76, 725, 78, 727, 75, 733,
2499 734, 75, 60, 61, 734, 483, 113, 75, 956, 957,
2500 958, 418, 1437, 63, 3, 4, 5, 6, 425, 842,
2501 94, 838, 84, 85, 502, 1461, 631, 25, 743, 27,
2502 28, 95, 76, 748, 78, 744, 745, 746, 643, 95,
2503 55, 509, 57, 58, 55, 830, 869, 870, 60, 834,
2504 27, 28, 63, 42, 871, 32, 71, 1002, 1003, 1004,
2505 49, 59, 113, 668, 75, 63, 81, 94, 57, 58,
2506 3, 4, 5, 899, 111, 999, 861, 3, 4, 5,
2507 95, 55, 867, 60, 61, 94, 871, 75, 65, 63,
2508 894, 75, 81, 75, 60, 75, 876, 110, 96, 65,
2509 89, 75, 509, 888, 572, 890, 574, 575, 60, 894,
2510 76, 1035, 1036, 8, 9, 830, 888, 11, 894, 14,
2511 60, 61, 55, 110, 57, 58, 59, 110, 113, 933,
2512 55, 57, 58, 977, 602, 110, 65, 954, 63, 983,
2513 984, 609, 37, 987, 988, 61, 861, 991, 933, 110,
2514 75, 46, 867, 111, 869, 870, 871, 933, 111, 985,
2515 110, 771, 947, 75, 642, 572, 113, 574, 575, 954,
2516 755, 756, 757, 888, 75, 890, 961, 892, 893, 894,
2517 65, 1089, 1090, 60, 61, 1305, 1110, 75, 973, 4,
2518 5, 60, 60, 61, 113, 1119, 1120, 60, 113, 110,
2519 1124, 1125, 609, 681, 1112, 1113, 110, 76, 110, 78,
2520 59, 996, 110, 55, 996, 966, 967, 996, 933, 8,
2521 113, 94, 1359, 1008, 702, 1010, 3, 4, 5, 6,
2522 45, 48, 947, 1056, 1371, 94, 111, 61, 37, 954,
2523 55, 61, 57, 58, 995, 1169, 961, 65, 110, 65,
2524 110, 985, 81, 82, 83, 84, 85, 65, 973, 63,
2525 870, 871, 996, 110, 110, 42, 996, 1093, 4, 5,
2526 110, 65, 79, 9, 879, 65, 113, 65, 65, 60,
2527 57, 58, 887, 94, 894, 1089, 1090, 1091, 1438, 1112,
2528 1113, 1428, 63, 1008, 436, 1010, 103, 1114, 1101, 777,
2529 1438, 1225, 111, 771, 110, 447, 1091, 110, 1112, 1113,
2530 1114, 76, 89, 1089, 1090, 1091, 76, 110, 110, 55,
2531 76, 57, 58, 933, 110, 132, 76, 110, 1465, 1114,
2532 1467, 110, 1452, 63, 141, 71, 1112, 1113, 1114, 25,
2533 1264, 27, 28, 63, 60, 81, 1483, 110, 1165, 1166,
2534 1167, 1168, 3, 4, 5, 63, 7, 8, 9, 1176,
2535 113, 1498, 110, 95, 111, 1150, 834, 110, 1150, 110,
2536 89, 1150, 48, 59, 1089, 1090, 1091, 63, 185, 847,
2537 113, 849, 110, 851, 110, 57, 37, 110, 113, 113,
2538 1141, 1142, 110, 1144, 1145, 110, 1147, 1112, 1113, 1114,
2539 110, 1245, 1246, 60, 55, 111, 57, 58, 59, 65,
2540 96, 218, 1146, 881, 60, 25, 1150, 27, 28, 1343,
2541 1150, 65, 60, 110, 94, 110, 1211, 834, 111, 1211,
2542 1211, 1036, 1211, 94, 94, 242, 1221, 111, 113, 94,
2543 847, 110, 849, 110, 851, 4, 5, 915, 8, 59,
2544 113, 110, 110, 63, 105, 106, 107, 79, 80, 81,
2545 82, 83, 84, 85, 65, 933, 63, 110, 110, 110,
2546 110, 110, 48, 1303, 881, 1305, 1299, 1294, 110, 110,
2547 1090, 1091, 110, 379, 1235, 1236, 96, 110, 113, 1452,
2548 106, 107, 3, 4, 5, 110, 55, 1420, 57, 58,
2549 34, 110, 110, 1113, 1114, 1110, 1221, 110, 915, 97,
2550 110, 110, 71, 63, 1299, 1423, 1424, 1299, 110, 1304,
2551 1299, 1306, 81, 110, 1306, 1306, 110, 1306, 1313, 425,
2552 110, 1313, 1313, 110, 1313, 113, 63, 1381, 345, 61,
2553 61, 9, 61, 16, 61, 94, 57, 58, 94, 61,
2554 94, 1368, 109, 1304, 1305, 94, 4, 5, 99, 7,
2555 8, 9, 17, 705, 12, 61, 14, 61, 110, 11,
2556 110, 61, 110, 110, 1325, 1326, 1327, 61, 1382, 94,
2557 60, 29, 389, 31, 32, 110, 61, 65, 11, 37,
2558 3, 4, 5, 11, 1411, 1412, 61, 739, 46, 61,
2559 1423, 1424, 110, 1208, 110, 61, 1382, 55, 1425, 57,
2560 58, 1535, 0, 0, 3, 4, 5, 0, 2, 1423,
2561 1424, 1425, 407, 1453, 1441, 352, 1411, 1412, 160, 1411,
2562 1415, 1475, 1411, 1415, 1415, 1103, 1415, 1105, 888, 1107,
2563 1425, 1436, 1393, 1394, 57, 58, 160, 1423, 1424, 1425,
2564 98, 458, 733, 1438, 727, 1101, 1441, 93, 493, 1444,
2565 1407, 138, 1444, 1444, 1547, 1444, 279, 283, 57, 58,
2566 1455, 1304, 879, 1455, 1455, 668, 1455, 768, 1495, 486,
2567 1497, 1129, 959, 1468, 220, 996, 1468, 1468, 727, 1468,
2568 1295, 733, 3, 4, 5, 6, 1103, 1412, 1105, 595,
2569 1107, 1148, 1519, 508, 576, 321, 602, 4, 1423, 1424,
2570 1425, 766, 1497, 182, 123, 1500, 1533, 14, 1500, 1500,
2571 337, 1500, 1306, 1438, 1212, 1483, 1441, 1195, 25, 1461,
2572 1458, 42, 1520, 1522, 31, 32, 942, 34, 49, 36,
2573 3, 4, 5, -1, 41, 1350, 57, 58, 1499, 1221,
2574 -1, -1, -1, 4, 5, -1, -1, 54, 9, 56,
2575 -1, -1, 1547, 379, -1, 1547, 1547, 64, 1547, -1,
2576 81, -1, 1382, -1, 71, -1, 39, 40, 89, 42,
2577 -1, 588, 1497, -1, -1, 82, 83, -1, 1195, 685,
2578 -1, -1, 55, -1, 57, 58, -1, 48, 605, -1,
2579 3, 4, 5, 6, 55, -1, 57, 58, 105, -1,
2580 -1, -1, -1, -1, 1424, 1425, -1, -1, -1, -1,
2581 71, -1, -1, -1, 966, 967, -1, 1305, -1, -1,
2582 81, 128, 9, -1, -1, 12, 133, -1, 135, 42,
2583 91, 12, 139, 94, 95, 142, 143, 743, -1, 146,
2584 147, 148, 748, 995, 57, 58, 27, 28, -1, -1,
2585 -1, 32, -1, 160, -1, -1, -1, -1, -1, -1,
2586 -1, 48, -1, -1, -1, -1, -1, 48, 175, 176,
2587 177, -1, -1, 60, -1, 62, 63, 700, 65, 60,
2588 61, -1, 63, -1, 65, 511, -1, -1, 514, 76,
2589 -1, 78, 518, 519, 520, 521, 522, 204, -1, -1,
2590 -1, -1, -1, -1, 1382, 531, -1, 94, 95, -1,
2591 -1, 98, 219, 94, 95, -1, 542, 98, -1, 742,
2592 227, -1, -1, 110, 747, -1, -1, -1, -1, 110,
2593 4, 5, 239, 7, 8, 9, -1, -1, 12, -1,
2594 14, -1, -1, -1, -1, -1, 3, 4, 5, 575,
2595 7, 8, 9, -1, -1, 29, -1, 31, 32, -1,
2596 -1, 867, -1, 37, 1452, 871, 7, 8, 9, 595,
2597 277, 278, 46, 14, 48, -1, 602, -1, -1, -1,
2598 287, 55, 888, 57, 58, -1, -1, -1, 894, 1141,
2599 1142, 32, 1144, 1145, -1, 1147, 37, 71, 4, 5,
2600 57, 58, 8, 9, -1, 46, -1, 81, 14, 3,
2601 4, 5, 6, -1, -1, 9, -1, 91, 81, -1,
2602 94, 95, -1, 29, 98, 31, 333, 933, -1, -1,
2603 337, 37, 339, 340, 341, 175, 176, 177, -1, 862,
2604 46, 864, -1, -1, -1, 352, -1, -1, 42, 55,
2605 -1, 57, 58, 59, 48, 961, -1, -1, 875, 685,
2606 877, 55, -1, 57, 58, -1, 373, 973, -1, -1,
2607 -1, -1, 379, -1, -1, 382, 383, 71, -1, 3,
2608 4, 5, 899, 1235, 1236, -1, 393, 81, 94, 396,
2609 -1, 154, -1, -1, 401, 89, -1, 91, -1, -1,
2610 94, 95, 1008, -1, 1010, -1, -1, 31, -1, -1,
2611 173, 3, 4, 5, 6, -1, -1, 9, -1, -1,
2612 427, -1, 429, 186, 431, 432, 433, -1, -1, -1,
2613 437, 55, -1, 57, 58, 442, -1, -1, 445, 4,
2614 5, -1, -1, 8, 9, -1, -1, -1, -1, 14,
2615 42, -1, -1, -1, 461, -1, 48, 7, 8, 9,
2616 -1, -1, -1, 55, 14, 57, 58, -1, 985, -1,
2617 -1, -1, 37, 1325, 1326, 1327, -1, -1, -1, 71,
2618 -1, 46, 32, 48, 1007, 1091, 1009, 37, -1, 81,
2619 55, -1, 57, 58, 501, -1, 46, 89, -1, 91,
2620 -1, -1, 94, 95, 830, -1, 71, -1, 1114, -1,
2621 -1, 61, 519, 520, 521, 522, 81, -1, 7, 8,
2622 9, -1, -1, -1, -1, 14, 91, -1, -1, 94,
2623 95, -1, -1, -1, -1, 861, -1, -1, -1, -1,
2624 -1, 1393, 1394, 32, -1, 871, -1, 1070, 37, 3,
2625 4, 5, -1, 7, -1, -1, -1, 46, -1, 1076,
2626 -1, -1, 888, -1, 890, -1, -1, -1, 894, 576,
2627 -1, 578, 3, 4, 5, 6, 1093, 31, 9, -1,
2628 -1, -1, 589, -1, 38, 592, 593, 427, 595, 429,
2629 -1, 431, 432, 433, -1, 602, -1, -1, -1, 606,
2630 -1, 55, 442, 57, 58, -1, -1, 933, -1, -1,
2631 1133, 42, -1, -1, 1137, -1, -1, 48, -1, -1,
2632 -1, 947, -1, -1, 55, -1, 57, 58, 954, 1146,
2633 -1, -1, 639, 640, 641, 642, 643, 644, -1, -1,
2634 71, 7, 8, 9, -1, -1, -1, 1499, 14, -1,
2635 81, 3, 4, 5, 6, -1, -1, 9, 89, -1,
2636 91, -1, -1, 94, 95, -1, 32, -1, 1191, -1,
2637 -1, 37, 435, -1, 681, -1, -1, 440, 685, -1,
2638 46, -1, -1, -1, -1, 692, 693, -1, 695, -1,
2639 42, -1, -1, -1, -1, 61, 48, -1, -1, 3,
2640 4, 5, 6, 55, 467, 57, 58, -1, -1, 472,
2641 -1, -1, -1, -1, -1, 722, -1, -1, 725, 71,
2642 727, 484, 485, -1, 487, 732, 733, 734, -1, 81,
2643 -1, 1254, 1255, -1, -1, -1, 743, 89, 42, 91,
2644 -1, 748, 94, 95, 48, -1, -1, 1270, 755, 756,
2645 757, 55, -1, 57, 58, -1, 4, 5, -1, -1,
2646 8, 9, -1, -1, -1, 1091, 14, 71, -1, -1,
2647 777, -1, -1, -1, 3, 4, 5, 81, 7, 8,
2648 9, 29, -1, 31, -1, 89, -1, 91, 1114, 37,
2649 94, 95, -1, -1, -1, 1318, 1319, -1, 46, -1,
2650 -1, -1, 3, 4, 5, 6, -1, 55, 37, 57,
2651 58, -1, -1, -1, 1337, 1338, -1, -1, -1, -1,
2652 -1, -1, -1, 830, -1, 339, 340, 341, 57, 58,
2653 -1, -1, 1438, -1, -1, 598, 599, -1, -1, -1,
2654 603, 42, -1, -1, -1, 852, 94, 854, 49, -1,
2655 -1, -1, 692, 693, 861, 695, 57, 58, 865, -1,
2656 867, -1, 869, 870, 871, -1, -1, -1, -1, 876,
2657 3, 4, 5, 6, -1, -1, 9, -1, -1, -1,
2658 81, 888, -1, 890, -1, 892, 893, 894, 89, -1,
2659 -1, 4, 732, -1, -1, 1221, -1, -1, -1, -1,
2660 -1, 14, -1, -1, -1, -1, -1, -1, -1, 42,
2661 -1, 24, 25, 3, 4, 5, 6, -1, 31, 32,
2662 -1, 34, 55, 36, 57, 58, 933, -1, 41, 4,
2663 5, -1, -1, 8, 9, -1, -1, -1, 71, 14,
2664 947, 54, -1, 56, -1, -1, -1, -1, 81, -1,
2665 -1, 64, 42, -1, 961, -1, 89, -1, 71, -1,
2666 -1, 94, 37, -1, -1, 55, 973, 57, 58, -1,
2667 83, 46, -1, 48, -1, -1, -1, -1, -1, 986,
2668 55, 71, 57, 58, -1, -1, 749, -1, 751, 996,
2669 -1, 81, -1, -1, -1, -1, 71, -1, -1, 89,
2670 -1, 1008, -1, 1010, 94, -1, 81, -1, -1, -1,
2671 -1, 3, 4, 5, 6, 128, 91, -1, -1, 94,
2672 95, -1, 135, -1, -1, -1, 139, -1, -1, -1,
2673 143, -1, -1, 146, 147, 148, -1, -1, -1, -1,
2674 -1, -1, -1, 1050, 1051, -1, 1053, 160, -1, -1,
2675 42, -1, 892, 893, 894, -1, -1, 49, -1, -1,
2676 -1, -1, 175, 176, 177, 57, 58, 4, 5, -1,
2677 7, 8, 9, 836, 837, 12, 839, 14, 592, 593,
2678 1087, 1088, 1089, 1090, 1091, -1, -1, -1, 1095, 81,
2679 -1, 204, 29, 933, 31, 32, -1, 89, -1, 1425,
2680 37, -1, -1, 866, -1, 1112, 1113, 1114, -1, 46,
2681 -1, -1, 1438, -1, 3, 4, 5, 6, 55, -1,
2682 57, 58, -1, -1, -1, 639, 239, 641, 642, -1,
2683 644, -1, -1, 896, -1, -1, 1143, -1, -1, -1,
2684 -1, 1148, 1, 1150, 3, 4, 5, 6, 7, 8,
2685 9, -1, -1, 42, 1, 14, 3, 4, 5, 6,
2686 49, 8, -1, -1, 277, 278, -1, 681, 57, 58,
2687 29, -1, 31, 32, 287, -1, -1, -1, 37, -1,
2688 -1, -1, -1, 42, -1, -1, -1, 46, 47, -1,
2689 49, 1198, 1199, -1, 1201, 42, 55, 960, 57, 58,
2690 89, -1, 49, -1, 63, -1, -1, -1, 55, 972,
2691 57, 58, 71, -1, 1221, -1, -1, -1, -1, -1,
2692 333, -1, 81, -1, 337, -1, 339, 340, 341, -1,
2693 89, -1, -1, 346, -1, 94, -1, -1, -1, 352,
2694 -1, -1, 89, -1, -1, -1, -1, 1087, 1088, 1089,
2695 1090, 1091, -1, -1, -1, 1095, -1, -1, -1, -1,
2696 -1, -1, -1, 777, -1, -1, 379, -1, -1, 382,
2697 383, -1, 1112, 1113, 1114, -1, -1, -1, -1, -1,
2698 393, -1, -1, 396, -1, -1, -1, -1, 401, -1,
2699 -1, -1, -1, -1, -1, -1, 1303, 1304, 1305, -1,
2700 -1, -1, 1065, 1143, -1, -1, -1, -1, -1, 4,
2701 5, -1, -1, -1, 427, -1, 429, -1, 431, 432,
2702 433, -1, -1, -1, 437, -1, -1, -1, -1, 442,
2703 -1, 1094, 445, -1, -1, -1, -1, -1, 852, -1,
2704 854, -1, -1, 3, 4, 5, 6, 460, 461, -1,
2705 -1, 865, -1, 48, -1, 869, 870, -1, 1198, 1199,
2706 55, 1201, 57, 58, -1, -1, -1, -1, -1, -1,
2707 -1, 3, 4, 5, 6, 1382, 71, 9, 892, 893,
2708 -1, -1, 42, -1, -1, -1, 81, -1, 501, -1,
2709 1153, -1, -1, -1, 1157, 55, 91, 57, 58, 94,
2710 95, 61, -1, -1, -1, -1, 519, 520, 521, 522,
2711 42, 71, -1, -1, -1, -1, 1423, 1424, 1425, -1,
2712 -1, 81, -1, 55, -1, 57, 58, -1, -1, 89,
2713 1193, 1438, 4, -1, 94, -1, -1, -1, -1, 71,
2714 -1, -1, -1, -1, -1, -1, 1453, -1, -1, 81,
2715 -1, 3, 4, 5, 6, -1, -1, 89, -1, 31,
2716 32, -1, 94, 576, 36, 578, -1, 1230, -1, 41,
2717 -1, 1234, -1, -1, -1, -1, -1, -1, -1, 592,
2718 593, -1, 595, -1, 56, -1, -1, -1, -1, 602,
2719 42, -1, -1, 1256, 1257, -1, -1, 49, -1, -1,
2720 -1, 614, -1, -1, -1, 57, 58, 3, 4, 5,
2721 6, 3, 4, 5, 6, -1, -1, -1, 631, -1,
2722 -1, -1, -1, -1, -1, -1, 639, 640, 641, 642,
2723 643, 644, -1, -1, -1, -1, -1, 89, -1, -1,
2724 -1, -1, 1382, -1, -1, -1, 42, -1, 661, -1,
2725 42, -1, -1, 49, -1, -1, -1, 49, -1, -1,
2726 -1, 57, 58, 135, -1, 57, 58, 139, 681, -1,
2727 -1, 143, 685, 1087, 1088, 1089, 1090, -1, -1, 692,
2728 693, 1095, 695, 1423, 1424, 1425, -1, -1, 160, 81,
2729 -1, -1, -1, 89, -1, -1, -1, 89, 1112, 1113,
2730 -1, -1, -1, 175, 176, -1, -1, -1, -1, 722,
2731 -1, -1, 725, -1, 727, -1, -1, -1, -1, 732,
2732 733, 734, 3, 4, 5, 6, 7, 8, 9, -1,
2733 743, -1, -1, 14, -1, 748, -1, -1, -1, -1,
2734 -1, -1, 755, 756, 757, -1, -1, -1, 29, -1,
2735 31, 32, -1, -1, -1, -1, 37, -1, -1, -1,
2736 -1, 42, -1, -1, 777, 46, -1, 239, -1, 4,
2737 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2738 61, -1, -1, -1, 1198, 1199, -1, 1201, -1, -1,
2739 71, 339, 340, 341, -1, -1, 31, 32, -1, 34,
2740 81, 36, -1, -1, -1, -1, 41, -1, 89, -1,
2741 -1, -1, -1, 94, -1, 287, -1, 830, -1, 54,
2742 -1, 56, 77, 78, 79, 80, 81, 82, 83, 84,
2743 85, 3, 4, 5, 6, 7, 8, 9, -1, 852,
2744 -1, 854, 14, -1, 79, -1, -1, -1, 861, -1,
2745 -1, -1, 865, -1, 867, -1, 869, 870, 871, -1,
2746 32, -1, -1, 876, -1, 37, -1, -1, -1, -1,
2747 42, -1, -1, -1, 46, 888, 48, 890, -1, 892,
2748 893, 894, -1, 55, -1, 57, 58, -1, -1, -1,
2749 -1, -1, -1, 128, -1, -1, -1, 132, 133, 71,
2750 135, -1, -1, -1, 139, -1, 141, -1, 143, 81,
2751 -1, 146, 147, 148, -1, -1, -1, 89, -1, 91,
2752 933, 393, 94, 95, 396, 160, -1, -1, -1, 401,
2753 -1, -1, -1, -1, 947, -1, -1, -1, -1, -1,
2754 175, 176, 177, -1, -1, -1, 959, -1, 961, -1,
2755 185, -1, -1, -1, -1, 427, -1, 429, -1, -1,
2756 973, -1, -1, -1, -1, -1, -1, -1, -1, 204,
2757 442, 1, -1, 3, 4, 5, 6, 7, 8, 9,
2758 -1, -1, -1, 996, 14, -1, -1, -1, -1, 461,
2759 -1, -1, -1, -1, -1, 1008, -1, 1010, -1, 29,
2760 -1, 31, 32, 33, 239, -1, -1, 37, 38, -1,
2761 -1, -1, 42, -1, -1, -1, 46, 47, -1, 49,
2762 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2763 -1, 61, -1, 63, -1, -1, -1, 1050, 1051, -1,
2764 1053, 71, -1, -1, 592, 593, -1, 595, -1, -1,
2765 -1, 81, 287, -1, 602, -1, -1, -1, -1, 89,
2766 -1, -1, -1, -1, 94, -1, 3, 4, 5, 6,
2767 -1, -1, 9, -1, 1087, 1088, 1089, 1090, 1091, -1,
2768 -1, 111, 1095, -1, -1, -1, 321, -1, 1101, -1,
2769 -1, 639, -1, 641, 642, -1, 644, -1, -1, 1112,
2770 1113, 1114, 337, -1, -1, 42, -1, -1, -1, -1,
2771 345, -1, -1, -1, -1, -1, 1129, 352, 55, -1,
2772 57, 58, -1, 3, 4, 5, 6, -1, -1, 9,
2773 1143, -1, -1, 681, 71, 1148, -1, 1150, 373, -1,
2774 -1, -1, -1, -1, 81, -1, -1, 382, -1, -1,
2775 -1, -1, 89, -1, -1, -1, -1, 94, 393, -1,
2776 -1, 396, 42, -1, -1, -1, 401, -1, 640, -1,
2777 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
2778 -1, -1, -1, -1, -1, 1198, 1199, -1, 1201, -1,
2779 -1, 71, 427, -1, 429, -1, 431, 432, 433, -1,
2780 -1, 81, 437, -1, -1, -1, -1, 442, 1221, 89,
2781 445, -1, -1, 685, 94, -1, -1, -1, -1, -1,
2782 692, 693, -1, 695, -1, -1, 461, -1, -1, 777,
2783 -1, -1, -1, 3, 4, 5, 6, -1, -1, 9,
2784 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2785 83, 84, 85, 725, -1, 727, -1, -1, -1, -1,
2786 732, 733, 734, -1, -1, -1, 501, -1, -1, -1,
2787 -1, -1, 42, -1, -1, -1, 511, -1, -1, 514,
2788 -1, 4, 5, -1, -1, 55, 9, 57, 58, -1,
2789 1303, 1304, 1305, -1, 529, 530, 531, 3, 4, 5,
2790 6, 71, -1, 9, 852, -1, 854, 542, -1, -1,
2791 4, 81, -1, -1, -1, -1, -1, 865, -1, 89,
2792 -1, 869, 870, 871, 94, 48, -1, -1, -1, -1,
2793 -1, -1, 55, -1, 57, 58, 42, 31, 32, -1,
2794 34, -1, 36, -1, 892, 893, 894, 41, 71, 55,
2795 -1, 57, 58, 588, -1, -1, -1, -1, 81, -1,
2796 54, -1, 56, -1, -1, 71, -1, 602, 91, 1382,
2797 -1, 94, 95, -1, -1, 81, -1, -1, -1, -1,
2798 -1, -1, -1, 89, -1, 933, -1, -1, 94, 71,
2799 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2800 82, 83, 84, 85, 639, 640, 641, 642, -1, -1,
2801 1423, 1424, 1425, -1, -1, -1, 34, 4, 5, -1,
2802 892, 893, 9, -1, -1, 1438, -1, -1, -1, -1,
2803 -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
2804 1453, 135, -1, -1, -1, 139, 681, -1, -1, 143,
2805 685, -1, 146, 147, 148, -1, -1, 692, 693, -1,
2806 695, 48, -1, -1, -1, -1, 160, -1, 55, -1,
2807 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
2808 -1, 175, 176, 177, 71, -1, -1, -1, -1, -1,
2809 725, -1, 727, -1, 81, -1, -1, 732, 733, 734,
2810 -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
2811 204, -1, -1, -1, -1, -1, 3, 4, 5, 6,
2812 -1, -1, 9, -1, 996, -1, -1, -1, 146, 147,
2813 148, -1, -1, -1, -1, -1, 771, -1, -1, 1087,
2814 1088, 1089, 1090, 1091, -1, 239, -1, 1095, -1, -1,
2815 -1, -1, -1, -1, -1, 42, -1, 175, 176, 177,
2816 -1, -1, -1, -1, 1112, 1113, 1114, -1, 55, -1,
2817 57, 58, 74, 75, 76, 77, 78, 79, 80, 81,
2818 82, 83, 84, 85, 71, -1, 204, -1, -1, -1,
2819 -1, -1, -1, 287, 81, -1, -1, -1, -1, -1,
2820 -1, -1, 89, -1, -1, -1, -1, 94, -1, -1,
2821 -1, -1, -1, -1, -1, 1087, 1088, -1, -1, -1,
2822 -1, -1, -1, 1095, -1, -1, -1, 3, 4, 5,
2823 6, 7, 8, 9, 869, 870, 871, -1, 14, -1,
2824 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2825 1198, 1199, 346, 1201, -1, -1, 32, 892, 893, 894,
2826 278, 37, -1, -1, 899, -1, 42, -1, -1, -1,
2827 46, 1143, 48, -1, -1, -1, 1148, -1, 1150, 55,
2828 -1, 57, 58, -1, -1, -1, -1, -1, 382, -1,
2829 -1, -1, -1, -1, -1, 71, -1, -1, 933, 393,
2830 -1, -1, 396, -1, -1, 81, -1, 401, 3, 4,
2831 5, 6, -1, 89, 9, 91, -1, -1, 94, 95,
2832 -1, 339, 340, 341, -1, -1, 1198, 1199, -1, 1201,
2833 -1, -1, -1, 427, -1, 429, -1, 431, 432, 433,
2834 -1, -1, -1, 437, -1, -1, -1, 42, 442, -1,
2835 985, 445, -1, -1, -1, -1, -1, -1, -1, -1,
2836 55, 996, 57, 58, 382, -1, -1, 461, -1, -1,
2837 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
2838 -1, -1, -1, 4, 5, -1, 81, 8, 9, -1,
2839 -1, -1, -1, 14, 89, -1, -1, -1, -1, 94,
2840 -1, -1, -1, -1, -1, -1, -1, 501, 29, 427,
2841 31, 429, -1, 431, 432, 433, 37, -1, -1, 437,
2842 -1, -1, -1, -1, 442, 46, -1, 445, -1, -1,
2843 -1, -1, 1304, -1, 55, -1, 57, 58, -1, -1,
2844 -1, 1076, -1, -1, -1, -1, -1, -1, -1, 83,
2845 -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 1093, -1,
2846 1095, -1, 1, -1, 3, 4, 5, 6, 7, 8,
2847 9, -1, 106, 107, -1, 14, -1, 1112, 1113, 1114,
2848 -1, -1, -1, 501, -1, -1, -1, -1, -1, -1,
2849 29, -1, 31, 32, -1, 589, -1, -1, 37, -1,
2850 -1, -1, -1, 42, -1, -1, -1, 46, 1143, -1,
2851 49, -1, -1, 1148, -1, 1150, 55, -1, 57, 58,
2852 -1, -1, 61, -1, -1, -1, -1, -1, -1, -1,
2853 -1, -1, 71, -1, 3, 4, 5, 6, -1, -1,
2854 -1, -1, 81, -1, -1, 639, 640, 641, 642, -1,
2855 89, 3, 4, 5, 6, 94, -1, -1, -1, -1,
2856 578, -1, -1, 1198, 1199, -1, 1201, -1, -1, -1,
2857 -1, -1, -1, 42, 592, 593, -1, 595, -1, 54,
2858 -1, -1, -1, -1, 602, -1, 55, 681, 57, 58,
2859 42, 685, -1, -1, 63, -1, -1, -1, 692, 693,
2860 -1, 695, 71, 55, 79, 57, 58, 82, -1, -1,
2861 -1, 63, 81, -1, -1, -1, -1, -1, -1, 71,
2862 89, 639, -1, 641, 642, 94, 644, -1, 103, 81,
2863 105, 725, -1, 727, -1, -1, -1, 89, 732, 733,
2864 734, -1, 94, -1, -1, -1, -1, -1, -1, 283,
2865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2866 -1, -1, -1, 681, -1, -1, -1, -1, 1303, 1304,
2867 1305, -1, -1, -1, 692, 693, -1, 695, 3, 4,
2868 5, 6, 7, 8, 9, -1, -1, 321, -1, 14,
2869 -1, -1, -1, -1, -1, -1, -1, -1, -1, 333,
2870 175, 176, 177, -1, 29, -1, 31, 32, -1, -1,
2871 185, -1, 37, -1, 732, -1, -1, 42, -1, -1,
2872 -1, 46, -1, 48, -1, -1, -1, -1, -1, 204,
2873 55, -1, 57, 58, -1, -1, -1, 755, 756, 757,
2874 -1, -1, -1, -1, -1, 379, 71, 1382, -1, -1,
2875 -1, -1, 227, -1, -1, -1, 81, -1, -1, 777,
2876 -1, -1, -1, -1, 89, -1, 91, 242, -1, 94,
2877 95, -1, 3, 4, 5, 6, 7, 8, 9, -1,
2878 -1, -1, 876, 14, -1, -1, -1, -1, 1423, 1424,
2879 1425, 425, -1, -1, -1, -1, -1, -1, 892, 893,
2880 894, 32, -1, -1, -1, -1, 37, -1, -1, -1,
2881 -1, 42, -1, -1, -1, 46, -1, 48, 1453, -1,
2882 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
2883 -1, -1, -1, -1, 852, -1, 854, -1, -1, 933,
2884 71, -1, -1, -1, -1, -1, -1, 865, -1, -1,
2885 81, 869, 870, 871, -1, -1, -1, -1, 89, -1,
2886 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
2887 345, 346, -1, -1, 892, 893, 894, 511, -1, -1,
2888 514, -1, -1, -1, 518, 519, 520, 521, 522, -1,
2889 -1, -1, -1, -1, -1, -1, -1, 531, -1, -1,
2890 -1, -1, 996, -1, -1, -1, -1, 382, 542, -1,
2891 -1, -1, -1, -1, -1, 933, -1, -1, -1, -1,
2892 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
2893 12, -1, 14, -1, -1, -1, -1, -1, -1, -1,
2894 -1, 575, 576, -1, -1, -1, -1, 29, -1, 31,
2895 32, -1, 427, -1, 429, 37, 431, 432, 433, -1,
2896 42, 595, 437, -1, 46, -1, 48, 442, 602, -1,
2897 445, -1, -1, 55, -1, 57, 58, -1, -1, -1,
2898 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
2899 -1, -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 81,
2900 -1, 1095, -1, -1, -1, -1, -1, 89, -1, 91,
2901 -1, -1, 94, 95, -1, -1, 98, -1, 1112, 1113,
2902 1114, -1, -1, -1, -1, -1, 501, -1, -1, -1,
2903 -1, -1, 1050, 1051, -1, 1053, -1, -1, -1, -1,
2904 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1143,
2905 -1, 685, -1, -1, 1148, -1, 1150, -1, 3, 4,
2906 5, 6, -1, -1, -1, -1, -1, -1, -1, 1087,
2907 1088, 1089, 1090, 1091, -1, -1, -1, 1095, 70, 71,
2908 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2909 82, 83, 84, 85, 1112, 1113, 1114, 42, -1, -1,
2910 -1, -1, -1, -1, 1198, 1199, -1, 1201, -1, 743,
2911 55, -1, 57, 58, 748, 1, 61, 3, 4, 5,
2912 6, 7, 8, 9, -1, 1143, 71, -1, 14, -1,
2913 605, 606, -1, -1, -1, -1, 81, 3, 4, 5,
2914 6, -1, -1, 29, 89, 31, 32, 33, -1, 94,
2915 -1, 37, 38, -1, -1, -1, 42, -1, -1, -1,
2916 46, 47, -1, 49, 639, -1, 641, 642, -1, 55,
2917 -1, 57, 58, -1, -1, 61, 42, 63, -1, -1,
2918 1198, 1199, -1, 1201, -1, 71, -1, -1, -1, 55,
2919 -1, 57, 58, -1, -1, 81, 830, 63, -1, -1,
2920 -1, -1, -1, 89, -1, 71, 681, -1, 94, 1303,
2921 1304, 1305, -1, -1, -1, 81, -1, 692, 693, -1,
2922 695, -1, -1, 89, -1, 111, -1, 861, 94, -1,
2923 -1, -1, -1, 867, -1, -1, -1, 871, -1, -1,
2924 -1, -1, -1, -1, 719, -1, 283, -1, -1, -1,
2925 3, 4, 5, 6, 888, -1, 890, 732, -1, -1,
2926 894, -1, -1, -1, -1, -1, -1, 3, 4, 5,
2927 6, 7, 8, 9, -1, 312, 12, -1, 14, -1,
2928 -1, -1, -1, -1, -1, 1303, -1, 1305, 1382, 42,
2929 -1, -1, -1, 29, -1, 31, 32, -1, -1, 933,
2930 -1, 37, 55, -1, 57, 58, 42, -1, -1, -1,
2931 46, -1, -1, 947, -1, -1, -1, -1, 71, 55,
2932 954, 57, 58, -1, -1, -1, -1, 961, 81, 1423,
2933 1424, 1425, -1, -1, -1, 71, 89, -1, -1, 973,
2934 -1, 94, 4, 5, -1, 81, 8, 9, -1, -1,
2935 -1, -1, 14, 89, -1, -1, -1, -1, 94, 1453,
2936 3, 4, 5, 6, 1382, -1, -1, 29, -1, 31,
2937 -1, -1, -1, -1, 1008, 37, 1010, -1, -1, -1,
2938 417, 418, -1, -1, 46, -1, -1, -1, 425, -1,
2939 -1, -1, -1, 55, -1, 57, 58, -1, -1, 42,
2940 875, 876, 877, -1, -1, 1423, 1424, 1425, -1, -1,
2941 -1, -1, 55, -1, 57, 58, -1, 892, 893, 894,
2942 -1, -1, 4, 5, 899, 7, 8, 9, 71, -1,
2943 -1, -1, 14, -1, -1, 1453, -1, -1, 81, -1,
2944 -1, -1, 14, -1, -1, -1, 89, 29, -1, 31,
2945 32, 94, 24, 25, -1, 37, -1, 1091, 933, 31,
2946 32, -1, 34, -1, 46, -1, -1, 49, -1, -1,
2947 -1, -1, 509, 55, -1, 57, 58, -1, -1, -1,
2948 1114, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2949 -1, -1, 64, -1, -1, -1, -1, -1, -1, -1,
2950 -1, -1, -1, 540, 541, -1, -1, 544, 545, 546,
2951 985, 548, 549, 550, 551, 552, 553, 554, 555, 556,
2952 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
2953 -1, -1, -1, -1, -1, 572, -1, 574, 575, -1,
2954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2955 -1, 123, -1, 125, -1, -1, 128, -1, -1, -1,
2956 132, 133, -1, -1, -1, 602, -1, 139, -1, 141,
2957 142, 143, 609, -1, 146, 147, 148, -1, -1, -1,
2958 -1, -1, -1, -1, -1, -1, -1, 1221, -1, -1,
2959 -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
2960 5, 1076, 7, 8, 9, -1, -1, -1, -1, 14,
2961 -1, -1, 1087, 1088, 1089, 1090, 1091, -1, 1093, -1,
2962 1095, -1, -1, -1, 29, -1, 31, 32, -1, -1,
2963 -1, 668, 37, -1, -1, -1, -1, 1112, 1113, 1114,
2964 -1, 46, -1, -1, -1, -1, 218, 219, -1, -1,
2965 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
2966 -1, -1, -1, -1, -1, -1, -1, 239, 1143, -1,
2967 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
2968 8, 9, -1, -1, -1, -1, 14, 724, -1, -1,
2969 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2970 -1, 29, -1, 31, 32, 33, 278, -1, -1, 37,
2971 38, -1, -1, -1, 42, -1, -1, -1, 46, 47,
2972 -1, 49, -1, 1198, 1199, -1, 1201, 55, 765, 57,
2973 58, -1, -1, 61, 771, 63, -1, -1, -1, -1,
2974 -1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
2975 -1, -1, -1, 81, -1, -1, -1, 794, -1, -1,
2976 -1, 89, -1, -1, -1, 337, 94, 339, 340, -1,
2977 -1, -1, -1, -1, -1, -1, -1, -1, 1412, -1,
2978 352, -1, -1, 111, -1, -1, -1, -1, -1, -1,
2979 -1, 1425, -1, -1, -1, -1, 833, 834, -1, -1,
2980 -1, 373, -1, -1, 1438, -1, -1, 1441, -1, -1,
2981 847, -1, 849, -1, 851, -1, -1, 389, -1, -1,
2982 -1, 393, -1, -1, 396, -1, -1, -1, 1303, 401,
2983 1305, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2984 -1, 14, -1, -1, 881, -1, -1, -1, -1, -1,
2985 -1, -1, -1, -1, -1, -1, 29, -1, 31, -1,
2986 -1, -1, -1, 1497, 37, -1, -1, 904, -1, -1,
2987 -1, -1, -1, 46, -1, 48, -1, -1, 915, -1,
2988 -1, -1, 55, -1, 57, 58, 458, -1, 460, -1,
2989 -1, -1, -1, -1, -1, -1, 933, 1, 71, 3,
2990 4, 5, 6, 7, 8, 9, -1, 1382, 81, -1,
2991 14, -1, -1, -1, 486, -1, -1, -1, 91, -1,
2992 -1, 94, 95, -1, -1, 29, -1, 31, 32, 33,
2993 -1, -1, -1, 37, 38, -1, -1, -1, 42, 976,
2994 -1, -1, 46, 47, -1, 49, -1, -1, 1423, 1424,
2995 1425, 55, -1, 57, 58, -1, -1, 61, -1, 63,
2996 -1, -1, 999, -1, -1, -1, -1, 71, -1, -1,
2997 -1, -1, -1, -1, -1, -1, -1, 81, 1453, -1,
2998 -1, -1, -1, -1, -1, 89, -1, -1, -1, -1,
2999 94, -1, -1, -1, -1, -1, -1, -1, 1035, 1036,
3000 -1, -1, 1039, -1, -1, -1, 578, 111, -1, -1,
3001 -1, -1, -1, -1, -1, -1, 588, 589, -1, -1,
3002 592, 593, -1, -1, -1, -1, 3, 4, 5, 6,
3003 7, 8, 9, -1, -1, -1, -1, 14, 72, 73,
3004 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3005 84, 85, 29, -1, 31, 32, -1, -1, -1, 631,
3006 37, -1, -1, -1, -1, 42, 1103, -1, 1105, 46,
3007 1107, 643, -1, 1110, -1, -1, -1, -1, 55, -1,
3008 57, 58, 1119, 1120, -1, -1, 63, 1124, 1125, 661,
3009 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
3010 -1, -1, 1139, 1140, 81, -1, -1, -1, 12, -1,
3011 -1, -1, 89, -1, -1, -1, -1, 94, -1, -1,
3012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3013 -1, -1, 1169, -1, 1171, -1, -1, -1, -1, -1,
3014 -1, -1, -1, -1, -1, -1, -1, 719, -1, -1,
3015 722, -1, -1, -1, -1, -1, -1, -1, 1195, 63,
3016 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3017 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3018 84, 85, -1, 755, 756, 757, -1, -1, 1225, -1,
3019 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
3020 11, -1, 13, 14, 1241, 777, -1, -1, -1, -1,
3021 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3022 31, 32, 33, -1, 35, 36, 37, 1264, 39, 40,
3023 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3024 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3025 61, 62, -1, 1290, -1, -1, -1, 68, -1, -1,
3026 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3027 81, -1, -1, -1, -1, 32, 87, 88, 89, -1,
3028 852, -1, 854, 94, -1, -1, 1323, 1324, -1, -1,
3029 -1, -1, -1, 865, -1, 1332, -1, -1, -1, -1,
3030 -1, 112, -1, -1, -1, -1, 1343, 64, 65, 66,
3031 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3032 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
3033 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3034 -1, -1, -1, -1, -1, 1382, -1, -1, -1, -1,
3035 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3036 8, 9, -1, -1, 12, -1, 14, -1, -1, -1,
3037 -1, -1, -1, -1, -1, -1, 1413, 25, -1, 27,
3038 28, -1, -1, -1, 32, -1, -1, 959, -1, 37,
3039 -1, -1, -1, -1, 42, -1, -1, -1, 46, -1,
3040 48, -1, -1, -1, -1, -1, -1, 55, -1, 57,
3041 58, 59, 60, 61, 986, 63, 64, 65, 66, 67,
3042 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3043 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
3044 88, 89, -1, 91, 92, 93, 94, 95, 96, -1,
3045 98, 99, -1, -1, -1, -1, 104, -1, -1, -1,
3046 -1, 109, 110, 111, -1, 113, -1, -1, -1, -1,
3047 -1, -1, -1, -1, -1, -1, -1, -1, 1050, 1051,
3048 1, 1053, 3, 4, 5, 6, 7, 8, 9, -1,
3049 -1, -1, -1, 14, -1, -1, -1, -1, 1535, -1,
3050 -1, -1, -1, -1, -1, -1, -1, -1, 29, -1,
3051 31, 32, 33, -1, -1, -1, 37, -1, -1, -1,
3052 -1, 42, -1, -1, -1, 46, 47, -1, 49, 1101,
3053 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3054 61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
3055 71, -1, -1, -1, -1, -1, -1, 1129, -1, -1,
3056 81, -1, -1, -1, -1, -1, -1, -1, 89, -1,
3057 -1, -1, -1, 94, 1146, 1, 1148, 3, 4, 5,
3058 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3059 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3060 26, 27, 28, 29, 30, 31, 32, 33, -1, 35,
3061 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3062 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3063 -1, 57, 58, 59, -1, 61, 62, -1, -1, -1,
3064 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3065 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3066 -1, 87, 88, 89, -1, -1, -1, -1, 94, -1,
3067 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3068 -1, -1, -1, -1, -1, 111, 112, 1, -1, 3,
3069 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3070 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
3071 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
3072 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3073 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3074 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3075 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3076 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3077 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3078 94, 1, 96, 3, 4, 5, 6, 7, 8, 9,
3079 10, 11, 12, 13, 14, -1, -1, -1, 112, -1,
3080 -1, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3081 30, 31, 32, 33, -1, 35, 36, 37, -1, 39,
3082 40, 41, 42, 43, 44, -1, 46, -1, 48, -1,
3083 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3084 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3085 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3086 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3087 -1, 91, -1, -1, 94, 95, -1, 1, 98, 3,
3088 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3089 14, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3090 -1, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3091 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3092 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3093 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3094 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3095 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3096 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3097 94, 95, -1, 1, 98, 3, 4, 5, 6, 7,
3098 8, 9, 10, 11, 12, 13, 14, -1, 112, -1,
3099 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3100 -1, 29, 30, 31, 32, 33, -1, 35, 36, 37,
3101 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3102 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3103 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3104 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3105 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3106 88, 89, -1, -1, -1, -1, 94, -1, -1, -1,
3107 98, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3108 -1, -1, 110, 1, 112, 3, 4, 5, 6, -1,
3109 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3111 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3112 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3113 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3114 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3115 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3116 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3117 88, 89, -1, -1, -1, -1, 94, 95, 1, -1,
3118 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3119 13, 14, -1, 111, 112, -1, -1, -1, 21, -1,
3120 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3121 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3122 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3123 53, 54, 55, -1, 57, 58, 59, -1, -1, 62,
3124 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3125 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3126 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3127 1, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3128 11, -1, 13, 14, -1, -1, -1, -1, 111, 112,
3129 21, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3130 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3131 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3132 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3133 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3134 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3135 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3136 -1, -1, 1, 94, 3, 4, 5, 6, -1, 8,
3137 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3138 111, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3139 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3140 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3141 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3142 59, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3143 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3144 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3145 89, -1, -1, -1, -1, 94, 95, 1, -1, 3,
3146 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3147 14, -1, -1, 112, -1, -1, -1, -1, -1, -1,
3148 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3149 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3150 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3151 54, 55, -1, 57, 58, 59, -1, -1, 62, -1,
3152 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3153 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3154 -1, -1, -1, 87, 88, 89, -1, -1, -1, -1,
3155 94, -1, -1, 1, -1, 3, 4, 5, 6, 103,
3156 8, 9, 10, 11, -1, 13, 14, -1, 112, -1,
3157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3158 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3159 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3160 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3161 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3162 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3163 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3164 88, 89, -1, -1, -1, 1, 94, 3, 4, 5,
3165 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3166 -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
3167 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3168 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3169 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3170 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3171 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3172 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3173 -1, 87, 88, 89, -1, -1, -1, 1, 94, 3,
3174 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3175 14, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3176 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3177 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3178 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3179 54, 55, -1, 57, 58, -1, -1, -1, 62, 63,
3180 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3181 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3182 -1, -1, -1, 87, 88, 89, -1, -1, -1, 1,
3183 94, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3184 -1, 13, 14, -1, -1, -1, -1, -1, 112, -1,
3185 -1, -1, -1, -1, -1, -1, -1, 29, 30, 31,
3186 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3187 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3188 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3189 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3190 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3191 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3192 -1, 1, 94, 3, 4, 5, 6, -1, 8, 9,
3193 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3194 112, -1, -1, -1, -1, -1, -1, -1, -1, 29,
3195 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3196 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3197 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3198 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3199 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3200 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3201 -1, -1, -1, 1, 94, 3, 4, 5, 6, -1,
3202 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3203 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3204 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3205 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3206 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3207 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3208 68, 1, -1, 71, 4, 5, -1, -1, 8, 9,
3209 -1, 79, 80, 81, 14, -1, -1, -1, -1, 87,
3210 88, 89, -1, -1, -1, -1, 94, -1, -1, 29,
3211 -1, 31, -1, -1, -1, -1, -1, 37, -1, 39,
3212 40, -1, 110, -1, 112, -1, 46, -1, 48, -1,
3213 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3214 60, -1, -1, -1, 64, 65, 66, 67, 68, 69,
3215 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3216 80, 81, 82, 83, 84, -1, -1, 87, 88, 89,
3217 -1, -1, 92, -1, 1, 95, 3, 4, 5, 6,
3218 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3219 -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
3220 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3221 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3222 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3223 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3224 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3225 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3226 87, 88, 89, -1, -1, -1, 1, 94, 3, 4,
3227 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3228 -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3229 -1, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3230 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3231 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3232 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3233 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3234 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3235 -1, -1, 87, 88, 89, -1, -1, -1, 1, 94,
3236 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3237 13, 14, -1, -1, -1, -1, -1, 112, -1, -1,
3238 -1, -1, -1, -1, -1, -1, 29, 30, 31, -1,
3239 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3240 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3241 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3242 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3243 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3244 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3245 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3247 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3248 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3249 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3250 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3251 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3252 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3253 -1, 87, 88, 89, -1, -1, -1, -1, 94, 69,
3254 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3255 80, 81, 82, 83, 84, 85, 112, 113, 3, 4,
3256 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3257 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3258 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
3259 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3260 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3261 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3262 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3263 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3264 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3265 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
3266 -1, -1, -1, -1, -1, -1, 111, 112, 3, 4,
3267 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3268 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3269 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
3270 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3271 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3272 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3273 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3274 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3275 -1, -1, 87, 88, 89, -1, -1, -1, -1, 94,
3276 -1, 96, -1, -1, 3, 4, 5, 6, 7, 8,
3277 9, 10, 11, -1, 13, 14, 15, 112, 17, 18,
3278 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
3279 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3280 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3281 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3282 59, -1, 61, 62, -1, -1, -1, -1, -1, 68,
3283 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3284 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3285 89, -1, -1, -1, -1, 94, -1, 96, -1, -1,
3286 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
3287 13, 14, 15, 112, 17, 18, 19, 20, 21, 22,
3288 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
3289 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3290 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3291 53, 54, 55, -1, 57, 58, -1, -1, 61, 62,
3292 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3293 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3294 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3295 -1, 94, -1, 96, 3, 4, 5, 6, 7, 8,
3296 9, 10, 11, 12, 13, 14, -1, -1, -1, 112,
3297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3298 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3299 39, 40, 41, 42, 43, 44, -1, 46, -1, 48,
3300 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3301 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3302 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3303 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3304 89, -1, 91, -1, -1, 94, 95, -1, -1, 98,
3305 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3306 13, 14, -1, 112, -1, -1, -1, -1, -1, -1,
3307 -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
3308 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3309 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3310 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3311 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3312 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3313 -1, -1, -1, -1, 87, 88, 89, -1, 91, -1,
3314 -1, 94, 95, -1, -1, 98, 3, 4, 5, 6,
3315 -1, 8, 9, 10, 11, -1, 13, 14, -1, 112,
3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3317 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3318 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3319 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3320 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3321 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3322 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3323 87, 88, 89, -1, 91, -1, -1, 94, 95, 3,
3324 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3325 14, -1, -1, -1, -1, 112, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, 29, 30, 31, -1, 33,
3327 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3328 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
3329 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3330 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3331 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3332 -1, -1, -1, 87, 88, 89, -1, 91, -1, -1,
3333 94, 95, 3, 4, 5, 6, -1, 8, 9, 10,
3334 11, -1, 13, 14, -1, -1, -1, -1, 112, -1,
3335 -1, -1, -1, -1, -1, -1, -1, -1, 29, 30,
3336 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3337 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3338 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3339 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3340 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3341 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3342 -1, -1, -1, 94, 3, 4, 5, 6, 7, 8,
3343 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3344 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3345 29, 30, 31, 32, 33, -1, 35, 36, 37, -1,
3346 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3347 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3348 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3349 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3350 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3351 89, 3, 4, 5, 6, 94, 8, 9, 10, 11,
3352 -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
3353 -1, -1, -1, 112, -1, -1, -1, 29, 30, 31,
3354 -1, 33, -1, 35, 36, 37, -1, 39, 40, 41,
3355 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3356 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3357 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3358 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3359 -1, -1, -1, -1, -1, 87, 88, 89, 3, 4,
3360 5, 6, 94, 8, 9, 10, 11, -1, 13, 14,
3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3362 112, -1, -1, -1, 29, 30, 31, -1, 33, -1,
3363 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3364 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3365 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3366 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3367 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3368 -1, -1, 87, 88, 89, 3, 4, 5, 6, 94,
3369 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3370 -1, -1, -1, -1, -1, -1, -1, 112, -1, -1,
3371 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3372 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3373 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3374 58, 59, -1, -1, -1, -1, -1, -1, -1, -1,
3375 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3376 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3377 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3378 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3379 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3380 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3381 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3382 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3383 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3384 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3385 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3386 -1, -1, -1, 94, 95, 3, 4, 5, 6, -1,
3387 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3388 -1, 112, -1, -1, -1, -1, -1, -1, -1, -1,
3389 -1, 29, 30, 31, -1, 33, -1, 35, 36, 37,
3390 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3391 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3392 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3393 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3394 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3395 88, 89, 3, 4, 5, 6, 94, 8, 9, 10,
3396 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
3397 -1, -1, -1, -1, 112, -1, -1, -1, 29, 30,
3398 31, -1, 33, -1, 35, 36, 37, -1, 39, 40,
3399 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3400 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3401 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3402 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3403 81, -1, -1, -1, -1, -1, 87, 88, 89, 3,
3404 4, 5, 6, 94, 8, 9, 10, 11, -1, 13,
3405 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3406 -1, 112, -1, -1, -1, 29, 30, 31, -1, 33,
3407 -1, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3408 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3409 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3410 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3411 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3412 -1, -1, -1, 87, 88, 89, 3, 4, 5, 6,
3413 94, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3414 -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
3415 -1, -1, 29, 30, 31, -1, 33, -1, 35, 36,
3416 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3417 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3418 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3419 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3420 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3421 87, 88, 89, 3, 4, 5, 6, 94, 8, 9,
3422 10, 11, -1, 13, 14, -1, -1, -1, -1, -1,
3423 -1, -1, -1, -1, -1, 112, -1, -1, -1, 29,
3424 30, 31, -1, 33, -1, 35, 36, 37, -1, 39,
3425 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3426 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3427 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3428 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3429 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3430 3, 4, 5, 6, 94, 8, 9, 10, 11, -1,
3431 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
3432 -1, -1, 112, -1, -1, -1, 29, 30, 31, -1,
3433 33, -1, 35, 36, 37, -1, 39, 40, 41, 42,
3434 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3435 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3436 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3437 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3438 -1, -1, -1, -1, 87, 88, 89, 3, 4, 5,
3439 6, 94, 8, 9, 10, 11, -1, 13, 14, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3441 -1, -1, -1, 29, 30, 31, -1, 33, -1, 35,
3442 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3443 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3444 -1, 57, 58, -1, -1, -1, -1, -1, -1, -1,
3445 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3446 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3447 -1, 87, 88, 89, 3, 4, 5, 6, 94, 8,
3448 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3449 -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
3450 29, 30, 31, -1, 33, -1, 35, 36, 37, -1,
3451 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3452 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3453 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3454 -1, 1, 71, 3, 4, 5, 6, 7, 8, 9,
3455 79, 80, 81, -1, 14, -1, -1, -1, 87, 88,
3456 89, -1, -1, -1, -1, 94, -1, 27, 28, 29,
3457 -1, 31, 32, 33, -1, -1, -1, 37, -1, -1,
3458 -1, -1, 42, 112, -1, 45, 46, 47, -1, 49,
3459 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3460 1, 61, 3, 4, 5, 6, 7, 8, 9, -1,
3461 -1, 71, -1, 14, -1, -1, -1, -1, -1, -1,
3462 -1, 81, -1, -1, -1, -1, 27, 28, 29, 89,
3463 31, 32, 33, -1, 94, -1, 37, -1, -1, -1,
3464 100, 42, -1, -1, 45, 46, 47, -1, 49, -1,
3465 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3466 61, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3467 71, -1, 14, -1, -1, -1, -1, -1, -1, -1,
3468 81, -1, -1, -1, -1, -1, -1, 29, 89, 31,
3469 32, -1, -1, 94, -1, 37, -1, -1, -1, 100,
3470 42, -1, -1, -1, 46, -1, 3, 4, 5, 6,
3471 7, 8, 9, 55, -1, 57, 58, 14, -1, 61,
3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
3473 -1, -1, 29, -1, 31, 32, -1, -1, -1, 81,
3474 37, -1, -1, -1, -1, 42, -1, 89, -1, 46,
3475 -1, -1, 94, -1, -1, -1, -1, -1, 55, -1,
3476 57, 58, 3, 4, 5, 6, 7, 8, 9, -1,
3477 -1, -1, -1, 14, 71, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, 81, -1, -1, -1, 29, -1,
3479 31, 32, 89, -1, -1, -1, 37, 94, -1, -1,
3480 -1, 42, -1, -1, -1, 46, -1, -1, -1, -1,
3481 -1, -1, -1, -1, 55, -1, 57, 58, 64, 65,
3482 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3483 71, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3484 81, -1, -1, -1, -1, -1, -1, -1, 89, -1,
3485 -1, -1, -1, 94, 64, 65, 66, 67, 68, 69,
3486 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3487 80, 81, 82, 83, 84, 85, 64, 65, 66, 67,
3488 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
3489 78, 79, 80, 81, 82, 83, 84, 85, -1, -1,
3490 -1, -1, -1, 113, -1, -1, -1, -1, -1, -1,
3491 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
3492 -1, 109, 64, 65, 66, 67, 68, 69, 70, 71,
3493 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3494 82, 83, 84, 85, 63, 64, 65, 66, 67, 68,
3495 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3496 79, 80, 81, 82, 83, 84, 85, 63, 64, 65,
3497 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3498 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3499 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3500 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3501 84, 85, 68, 69, 70, 71, 72, 73, 74, 75,
3502 76, 77, 78, 79, 80, 81, 82, 83, 84, 85
3503 };
3504 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3505 #line 3 "/usr/share/bison.simple"
3506
3507 /* Skeleton output parser for bison,
3508 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3509
3510 This program is free software; you can redistribute it and/or modify
3511 it under the terms of the GNU General Public License as published by
3512 the Free Software Foundation; either version 2, or (at your option)
3513 any later version.
3514
3515 This program is distributed in the hope that it will be useful,
3516 but WITHOUT ANY WARRANTY; without even the implied warranty of
3517 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3518 GNU General Public License for more details.
3519
3520 You should have received a copy of the GNU General Public License
3521 along with this program; if not, write to the Free Software
3522 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
3523
3524 /* As a special exception, when this file is copied by Bison into a
3525 Bison output file, you may use that output file without restriction.
3526 This special exception was added by the Free Software Foundation
3527 in version 1.24 of Bison. */
3528
3529 #ifndef alloca
3530 #ifdef __GNUC__
3531 #define alloca __builtin_alloca
3532 #else /* not GNU C. */
3533 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3534 #include <alloca.h>
3535 #else /* not sparc */
3536 #if defined (MSDOS) && !defined (__TURBOC__)
3537 #include <malloc.h>
3538 #else /* not MSDOS, or __TURBOC__ */
3539 #if defined(_AIX)
3540 #include <malloc.h>
3541 #pragma alloca
3542 #else /* not MSDOS, __TURBOC__, or _AIX */
3543 #ifdef __hpux
3544 #ifdef __cplusplus
3545 extern "C" {
3546 void *alloca (unsigned int);
3547 };
3548 #else /* not __cplusplus */
3549 void *alloca ();
3550 #endif /* not __cplusplus */
3551 #endif /* __hpux */
3552 #endif /* not _AIX */
3553 #endif /* not MSDOS, or __TURBOC__ */
3554 #endif /* not sparc. */
3555 #endif /* not GNU C. */
3556 #endif /* alloca not defined. */
3557
3558 /* This is the parser code that is written into each bison parser
3559 when the %semantic_parser declaration is not specified in the grammar.
3560 It was written by Richard Stallman by simplifying the hairy parser
3561 used when %semantic_parser is specified. */
3562
3563 /* Note: there must be only one dollar sign in this file.
3564 It is replaced by the list of actions, each action
3565 as one case of the switch. */
3566
3567 #define yyerrok (yyerrstatus = 0)
3568 #define yyclearin (yychar = YYEMPTY)
3569 #define YYEMPTY -2
3570 #define YYEOF 0
3571 #define YYACCEPT return(0)
3572 #define YYABORT return(1)
3573 #define YYERROR goto yyerrlab1
3574 /* Like YYERROR except do call yyerror.
3575 This remains here temporarily to ease the
3576 transition to the new meaning of YYERROR, for GCC.
3577 Once GCC version 2 has supplanted version 1, this can go. */
3578 #define YYFAIL goto yyerrlab
3579 #define YYRECOVERING() (!!yyerrstatus)
3580 #define YYBACKUP(token, value) \
3581 do \
3582 if (yychar == YYEMPTY && yylen == 1) \
3583 { yychar = (token), yylval = (value); \
3584 yychar1 = YYTRANSLATE (yychar); \
3585 YYPOPSTACK; \
3586 goto yybackup; \
3587 } \
3588 else \
3589 { yyerror ("syntax error: cannot back up"); YYERROR; } \
3590 while (0)
3591
3592 #define YYTERROR 1
3593 #define YYERRCODE 256
3594
3595 #ifndef YYPURE
3596 #define YYLEX yylex()
3597 #endif
3598
3599 #ifdef YYPURE
3600 #ifdef YYLSP_NEEDED
3601 #ifdef YYLEX_PARAM
3602 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
3603 #else
3604 #define YYLEX yylex(&yylval, &yylloc)
3605 #endif
3606 #else /* not YYLSP_NEEDED */
3607 #ifdef YYLEX_PARAM
3608 #define YYLEX yylex(&yylval, YYLEX_PARAM)
3609 #else
3610 #define YYLEX yylex(&yylval)
3611 #endif
3612 #endif /* not YYLSP_NEEDED */
3613 #endif
3614
3615 /* If nonreentrant, generate the variables here */
3616
3617 #ifndef YYPURE
3618
3619 int yychar; /* the lookahead symbol */
3620 YYSTYPE yylval; /* the semantic value of the */
3621 /* lookahead symbol */
3622
3623 #ifdef YYLSP_NEEDED
3624 YYLTYPE yylloc; /* location data for the lookahead */
3625 /* symbol */
3626 #endif
3627
3628 int yynerrs; /* number of parse errors so far */
3629 #endif /* not YYPURE */
3630
3631 #if YYDEBUG != 0
3632 int yydebug; /* nonzero means print parse trace */
3633 /* Since this is uninitialized, it does not stop multiple parsers
3634 from coexisting. */
3635 #endif
3636
3637 /* YYINITDEPTH indicates the initial size of the parser's stacks */
3638
3639 #ifndef YYINITDEPTH
3640 #define YYINITDEPTH 200
3641 #endif
3642
3643 /* YYMAXDEPTH is the maximum size the stacks can grow to
3644 (effective only if the built-in stack extension method is used). */
3645
3646 #if YYMAXDEPTH == 0
3647 #undef YYMAXDEPTH
3648 #endif
3649
3650 #ifndef YYMAXDEPTH
3651 #define YYMAXDEPTH 10000
3652 #endif
3653
3654 /* Prevent warning if -Wstrict-prototypes. */
3655 #ifdef __GNUC__
3656 int yyparse (void);
3657 #endif
3658 \f
3659 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
3660 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
3661 #else /* not GNU C or C++ */
3662 #ifndef __cplusplus
3663
3664 /* This is the most reliable way to avoid incompatibilities
3665 in available built-in functions on various systems. */
3666 static void
3667 __yy_memcpy (to, from, count)
3668 char *to;
3669 char *from;
3670 int count;
3671 {
3672 register char *f = from;
3673 register char *t = to;
3674 register int i = count;
3675
3676 while (i-- > 0)
3677 *t++ = *f++;
3678 }
3679
3680 #else /* __cplusplus */
3681
3682 /* This is the most reliable way to avoid incompatibilities
3683 in available built-in functions on various systems. */
3684 static void
3685 __yy_memcpy (char *to, char *from, int count)
3686 {
3687 register char *f = from;
3688 register char *t = to;
3689 register int i = count;
3690
3691 while (i-- > 0)
3692 *t++ = *f++;
3693 }
3694
3695 #endif
3696 #endif
3697 \f
3698 #line 196 "/usr/share/bison.simple"
3699
3700 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3701 into yyparse. The argument should have type void *.
3702 It should actually point to an object.
3703 Grammar actions can access the variable by casting it
3704 to the proper pointer type. */
3705
3706 #ifdef YYPARSE_PARAM
3707 #ifdef __cplusplus
3708 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3709 #define YYPARSE_PARAM_DECL
3710 #else /* not __cplusplus */
3711 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3712 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3713 #endif /* not __cplusplus */
3714 #else /* not YYPARSE_PARAM */
3715 #define YYPARSE_PARAM_ARG
3716 #define YYPARSE_PARAM_DECL
3717 #endif /* not YYPARSE_PARAM */
3718
3719 int
3720 yyparse(YYPARSE_PARAM_ARG)
3721 YYPARSE_PARAM_DECL
3722 {
3723 register int yystate;
3724 register int yyn;
3725 register short *yyssp;
3726 register YYSTYPE *yyvsp;
3727 int yyerrstatus; /* number of tokens to shift before error messages enabled */
3728 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
3729
3730 short yyssa[YYINITDEPTH]; /* the state stack */
3731 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
3732
3733 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
3734 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
3735
3736 #ifdef YYLSP_NEEDED
3737 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
3738 YYLTYPE *yyls = yylsa;
3739 YYLTYPE *yylsp;
3740
3741 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
3742 #else
3743 #define YYPOPSTACK (yyvsp--, yyssp--)
3744 #endif
3745
3746 int yystacksize = YYINITDEPTH;
3747
3748 #ifdef YYPURE
3749 int yychar;
3750 YYSTYPE yylval;
3751 int yynerrs;
3752 #ifdef YYLSP_NEEDED
3753 YYLTYPE yylloc;
3754 #endif
3755 #endif
3756
3757 YYSTYPE yyval; /* the variable used to return */
3758 /* semantic values from the action */
3759 /* routines */
3760
3761 int yylen;
3762
3763 #if YYDEBUG != 0
3764 if (yydebug)
3765 fprintf(stderr, "Starting parse\n");
3766 #endif
3767
3768 yystate = 0;
3769 yyerrstatus = 0;
3770 yynerrs = 0;
3771 yychar = YYEMPTY; /* Cause a token to be read. */
3772
3773 /* Initialize stack pointers.
3774 Waste one element of value and location stack
3775 so that they stay on the same level as the state stack.
3776 The wasted elements are never initialized. */
3777
3778 yyssp = yyss - 1;
3779 yyvsp = yyvs;
3780 #ifdef YYLSP_NEEDED
3781 yylsp = yyls;
3782 #endif
3783
3784 /* Push a new state, which is found in yystate . */
3785 /* In all cases, when you get here, the value and location stacks
3786 have just been pushed. so pushing a state here evens the stacks. */
3787 yynewstate:
3788
3789 *++yyssp = yystate;
3790
3791 if (yyssp >= yyss + yystacksize - 1)
3792 {
3793 /* Give user a chance to reallocate the stack */
3794 /* Use copies of these so that the &'s don't force the real ones into memory. */
3795 YYSTYPE *yyvs1 = yyvs;
3796 short *yyss1 = yyss;
3797 #ifdef YYLSP_NEEDED
3798 YYLTYPE *yyls1 = yyls;
3799 #endif
3800
3801 /* Get the current used size of the three stacks, in elements. */
3802 int size = yyssp - yyss + 1;
3803
3804 #ifdef yyoverflow
3805 /* Each stack pointer address is followed by the size of
3806 the data in use in that stack, in bytes. */
3807 #ifdef YYLSP_NEEDED
3808 /* This used to be a conditional around just the two extra args,
3809 but that might be undefined if yyoverflow is a macro. */
3810 yyoverflow("parser stack overflow",
3811 &yyss1, size * sizeof (*yyssp),
3812 &yyvs1, size * sizeof (*yyvsp),
3813 &yyls1, size * sizeof (*yylsp),
3814 &yystacksize);
3815 #else
3816 yyoverflow("parser stack overflow",
3817 &yyss1, size * sizeof (*yyssp),
3818 &yyvs1, size * sizeof (*yyvsp),
3819 &yystacksize);
3820 #endif
3821
3822 yyss = yyss1; yyvs = yyvs1;
3823 #ifdef YYLSP_NEEDED
3824 yyls = yyls1;
3825 #endif
3826 #else /* no yyoverflow */
3827 /* Extend the stack our own way. */
3828 if (yystacksize >= YYMAXDEPTH)
3829 {
3830 yyerror("parser stack overflow");
3831 return 2;
3832 }
3833 yystacksize *= 2;
3834 if (yystacksize > YYMAXDEPTH)
3835 yystacksize = YYMAXDEPTH;
3836 yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3837 __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3838 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3839 __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3840 #ifdef YYLSP_NEEDED
3841 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3842 __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3843 #endif
3844 #endif /* no yyoverflow */
3845
3846 yyssp = yyss + size - 1;
3847 yyvsp = yyvs + size - 1;
3848 #ifdef YYLSP_NEEDED
3849 yylsp = yyls + size - 1;
3850 #endif
3851
3852 #if YYDEBUG != 0
3853 if (yydebug)
3854 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3855 #endif
3856
3857 if (yyssp >= yyss + yystacksize - 1)
3858 YYABORT;
3859 }
3860
3861 #if YYDEBUG != 0
3862 if (yydebug)
3863 fprintf(stderr, "Entering state %d\n", yystate);
3864 #endif
3865
3866 goto yybackup;
3867 yybackup:
3868
3869 /* Do appropriate processing given the current state. */
3870 /* Read a lookahead token if we need one and don't already have one. */
3871 /* yyresume: */
3872
3873 /* First try to decide what to do without reference to lookahead token. */
3874
3875 yyn = yypact[yystate];
3876 if (yyn == YYFLAG)
3877 goto yydefault;
3878
3879 /* Not known => get a lookahead token if don't already have one. */
3880
3881 /* yychar is either YYEMPTY or YYEOF
3882 or a valid token in external form. */
3883
3884 if (yychar == YYEMPTY)
3885 {
3886 #if YYDEBUG != 0
3887 if (yydebug)
3888 fprintf(stderr, "Reading a token: ");
3889 #endif
3890 yychar = YYLEX;
3891 }
3892
3893 /* Convert token to internal form (in yychar1) for indexing tables with */
3894
3895 if (yychar <= 0) /* This means end of input. */
3896 {
3897 yychar1 = 0;
3898 yychar = YYEOF; /* Don't call YYLEX any more */
3899
3900 #if YYDEBUG != 0
3901 if (yydebug)
3902 fprintf(stderr, "Now at end of input.\n");
3903 #endif
3904 }
3905 else
3906 {
3907 yychar1 = YYTRANSLATE(yychar);
3908
3909 #if YYDEBUG != 0
3910 if (yydebug)
3911 {
3912 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3913 /* Give the individual parser a way to print the precise meaning
3914 of a token, for further debugging info. */
3915 #ifdef YYPRINT
3916 YYPRINT (stderr, yychar, yylval);
3917 #endif
3918 fprintf (stderr, ")\n");
3919 }
3920 #endif
3921 }
3922
3923 yyn += yychar1;
3924 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3925 goto yydefault;
3926
3927 yyn = yytable[yyn];
3928
3929 /* yyn is what to do for this token type in this state.
3930 Negative => reduce, -yyn is rule number.
3931 Positive => shift, yyn is new state.
3932 New state is final state => don't bother to shift,
3933 just return success.
3934 0, or most negative number => error. */
3935
3936 if (yyn < 0)
3937 {
3938 if (yyn == YYFLAG)
3939 goto yyerrlab;
3940 yyn = -yyn;
3941 goto yyreduce;
3942 }
3943 else if (yyn == 0)
3944 goto yyerrlab;
3945
3946 if (yyn == YYFINAL)
3947 YYACCEPT;
3948
3949 /* Shift the lookahead token. */
3950
3951 #if YYDEBUG != 0
3952 if (yydebug)
3953 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3954 #endif
3955
3956 /* Discard the token being shifted unless it is eof. */
3957 if (yychar != YYEOF)
3958 yychar = YYEMPTY;
3959
3960 *++yyvsp = yylval;
3961 #ifdef YYLSP_NEEDED
3962 *++yylsp = yylloc;
3963 #endif
3964
3965 /* count tokens shifted since error; after three, turn off error status. */
3966 if (yyerrstatus) yyerrstatus--;
3967
3968 yystate = yyn;
3969 goto yynewstate;
3970
3971 /* Do the default action for the current state. */
3972 yydefault:
3973
3974 yyn = yydefact[yystate];
3975 if (yyn == 0)
3976 goto yyerrlab;
3977
3978 /* Do a reduction. yyn is the number of a rule to reduce with. */
3979 yyreduce:
3980 yylen = yyr2[yyn];
3981 if (yylen > 0)
3982 yyval = yyvsp[1-yylen]; /* implement default value of the action */
3983
3984 #if YYDEBUG != 0
3985 if (yydebug)
3986 {
3987 int i;
3988
3989 fprintf (stderr, "Reducing via rule %d (line %d), ",
3990 yyn, yyrline[yyn]);
3991
3992 /* Print the symbols being reduced, and their result. */
3993 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3994 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3995 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3996 }
3997 #endif
3998
3999
4000 switch (yyn) {
4001
4002 case 2:
4003 #line 320 "parse.y"
4004 {
4005 /* In case there were missing closebraces,
4006 get us back to the global binding level. */
4007 while (! global_bindings_p ())
4008 poplevel (0, 0, 0);
4009 finish_file ();
4010 ;
4011 break;}
4012 case 3:
4013 #line 334 "parse.y"
4014 { yyval.ttype = NULL_TREE; ;
4015 break;}
4016 case 4:
4017 #line 336 "parse.y"
4018 { yyval.ttype = NULL_TREE; ;
4019 break;}
4020 case 5:
4021 #line 338 "parse.y"
4022 { yyval.ttype = NULL_TREE; ;
4023 break;}
4024 case 8:
4025 #line 347 "parse.y"
4026 { have_extern_spec = 1;
4027 used_extern_spec = 0;
4028 yyval.ttype = NULL_TREE; ;
4029 break;}
4030 case 9:
4031 #line 352 "parse.y"
4032 { have_extern_spec = 0; ;
4033 break;}
4034 case 10:
4035 #line 357 "parse.y"
4036 { yyval.itype = pedantic;
4037 pedantic = 0; ;
4038 break;}
4039 case 13:
4040 #line 367 "parse.y"
4041 { if (pending_lang_change) do_pending_lang_change(); ;
4042 break;}
4043 case 14:
4044 #line 369 "parse.y"
4045 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4046 pop_everything (); ;
4047 break;}
4048 case 15:
4049 #line 375 "parse.y"
4050 { if (pending_inlines) do_pending_inlines (); ;
4051 break;}
4052 case 16:
4053 #line 377 "parse.y"
4054 { if (pending_inlines) do_pending_inlines (); ;
4055 break;}
4056 case 17:
4057 #line 379 "parse.y"
4058 { if (pending_inlines) do_pending_inlines (); ;
4059 break;}
4060 case 18:
4061 #line 381 "parse.y"
4062 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4063 assemble_asm (yyvsp[-2].ttype); ;
4064 break;}
4065 case 19:
4066 #line 384 "parse.y"
4067 { pop_lang_context (); ;
4068 break;}
4069 case 20:
4070 #line 386 "parse.y"
4071 { if (pending_inlines) do_pending_inlines ();
4072 pop_lang_context (); ;
4073 break;}
4074 case 21:
4075 #line 389 "parse.y"
4076 { if (pending_inlines) do_pending_inlines ();
4077 pop_lang_context (); ;
4078 break;}
4079 case 22:
4080 #line 392 "parse.y"
4081 { push_namespace (yyvsp[-1].ttype); ;
4082 break;}
4083 case 23:
4084 #line 394 "parse.y"
4085 { pop_namespace (); ;
4086 break;}
4087 case 24:
4088 #line 396 "parse.y"
4089 { push_namespace (NULL_TREE); ;
4090 break;}
4091 case 25:
4092 #line 398 "parse.y"
4093 { pop_namespace (); ;
4094 break;}
4095 case 26:
4096 #line 400 "parse.y"
4097 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4098 break;}
4099 case 27:
4100 #line 402 "parse.y"
4101 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4102 break;}
4103 case 28:
4104 #line 404 "parse.y"
4105 {
4106 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4107 yyvsp[-1].ttype = lastiddecl;
4108 do_using_directive (yyvsp[-1].ttype);
4109 ;
4110 break;}
4111 case 29:
4112 #line 410 "parse.y"
4113 { pedantic = yyvsp[-1].itype; ;
4114 break;}
4115 case 30:
4116 #line 415 "parse.y"
4117 { yyval.ttype = yyvsp[0].ttype; ;
4118 break;}
4119 case 31:
4120 #line 417 "parse.y"
4121 { yyval.ttype = yyvsp[0].ttype; ;
4122 break;}
4123 case 32:
4124 #line 419 "parse.y"
4125 { yyval.ttype = yyvsp[0].ttype; ;
4126 break;}
4127 case 35:
4128 #line 426 "parse.y"
4129 { yyval.ttype = yyvsp[0].ttype; ;
4130 break;}
4131 case 36:
4132 #line 428 "parse.y"
4133 { yyval.ttype = yyvsp[0].ttype; ;
4134 break;}
4135 case 37:
4136 #line 433 "parse.y"
4137 { push_lang_context (yyvsp[0].ttype); ;
4138 break;}
4139 case 38:
4140 #line 435 "parse.y"
4141 { if (current_lang_name != yyvsp[0].ttype)
4142 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4143 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4144 break;}
4145 case 39:
4146 #line 442 "parse.y"
4147 { begin_template_parm_list (); ;
4148 break;}
4149 case 40:
4150 #line 444 "parse.y"
4151 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4152 break;}
4153 case 41:
4154 #line 446 "parse.y"
4155 { begin_specialization();
4156 yyval.ttype = NULL_TREE; ;
4157 break;}
4158 case 42:
4159 #line 452 "parse.y"
4160 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4161 break;}
4162 case 43:
4163 #line 454 "parse.y"
4164 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4165 break;}
4166 case 44:
4167 #line 459 "parse.y"
4168 { yyval.ttype = yyvsp[0].ttype; ;
4169 break;}
4170 case 45:
4171 #line 461 "parse.y"
4172 { yyval.ttype = NULL_TREE; ;
4173 break;}
4174 case 46:
4175 #line 465 "parse.y"
4176 {
4177 yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
4178 if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4179 sorry ("signature as template type parameter");
4180 else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4181 {
4182 pedwarn ("template type parameters must use the keyword `class'");
4183 TREE_PURPOSE (yyval.ttype) = class_type_node;
4184 }
4185 ;
4186 break;}
4187 case 47:
4188 #line 476 "parse.y"
4189 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4190 break;}
4191 case 48:
4192 #line 481 "parse.y"
4193 {
4194 tree decl = build_decl (TYPE_DECL, yyvsp[0].ttype, NULL_TREE);
4195 tree tmpl = build_lang_decl (TEMPLATE_DECL, yyvsp[0].ttype, NULL_TREE);
4196 DECL_TEMPLATE_PARMS (tmpl) = current_template_parms;
4197 DECL_TEMPLATE_RESULT (tmpl) = decl;
4198 SET_DECL_ARTIFICIAL (decl);
4199 end_template_decl ();
4200
4201 if (yyvsp[-1].ttype == signature_type_node)
4202 sorry ("signature as template template parameter");
4203 else if (yyvsp[-1].ttype != class_type_node)
4204 pedwarn ("template template parameters must use the keyword `class'");
4205 yyval.ttype = build_tree_list (class_type_node, tmpl);
4206 ;
4207 break;}
4208 case 49:
4209 #line 506 "parse.y"
4210 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4211 break;}
4212 case 50:
4213 #line 508 "parse.y"
4214 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4215 break;}
4216 case 51:
4217 #line 510 "parse.y"
4218 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4219 break;}
4220 case 52:
4221 #line 512 "parse.y"
4222 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4223 break;}
4224 case 53:
4225 #line 514 "parse.y"
4226 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4227 break;}
4228 case 54:
4229 #line 516 "parse.y"
4230 {
4231 tree defarg;
4232 arg_looking_for_template = 1;
4233 defarg = lookup_name (yyvsp[0].ttype, 0);
4234 arg_looking_for_template = 0;
4235
4236 if (!defarg || defarg == error_mark_node
4237 || (TREE_CODE (defarg) != TEMPLATE_DECL
4238 && TREE_CODE (defarg) != TEMPLATE_TEMPLATE_PARM))
4239 defarg = do_identifier (yyvsp[0].ttype, 1);
4240 yyval.ttype = build_tree_list (defarg, yyvsp[-2].ttype);
4241 ;
4242 break;}
4243 case 55:
4244 #line 533 "parse.y"
4245 {
4246 if (yyvsp[-1].ttype)
4247 end_template_decl ();
4248 else
4249 end_specialization ();
4250 ;
4251 break;}
4252 case 56:
4253 #line 541 "parse.y"
4254 {
4255 if (yyvsp[-1].ttype)
4256 end_template_decl ();
4257 else
4258 end_specialization ();
4259 ;
4260 break;}
4261 case 57:
4262 #line 551 "parse.y"
4263 {;
4264 break;}
4265 case 58:
4266 #line 553 "parse.y"
4267 {;
4268 break;}
4269 case 59:
4270 #line 555 "parse.y"
4271 {
4272 note_list_got_semicolon (yyvsp[-2].ftype.t);
4273 ;
4274 break;}
4275 case 60:
4276 #line 559 "parse.y"
4277 { pedwarn ("empty declaration"); ;
4278 break;}
4279 case 62:
4280 #line 562 "parse.y"
4281 {
4282 tree t, attrs;
4283 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4284 shadow_tag (t);
4285 note_list_got_semicolon (yyvsp[-1].ftype.t);
4286 ;
4287 break;}
4288 case 66:
4289 #line 575 "parse.y"
4290 { yyval.itype = 0; ;
4291 break;}
4292 case 67:
4293 #line 577 "parse.y"
4294 { yyval.itype = 1; ;
4295 break;}
4296 case 73:
4297 #line 593 "parse.y"
4298 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4299 break;}
4300 case 74:
4301 #line 595 "parse.y"
4302 { ;
4303 break;}
4304 case 75:
4305 #line 597 "parse.y"
4306 { ;
4307 break;}
4308 case 76:
4309 #line 602 "parse.y"
4310 {
4311 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4312 if (yyvsp[-2].ttype != current_class_type)
4313 {
4314 push_nested_class (yyvsp[-2].ttype, 3);
4315 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4316 }
4317 ;
4318 break;}
4319 case 77:
4320 #line 611 "parse.y"
4321 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4322 break;}
4323 case 78:
4324 #line 613 "parse.y"
4325 {
4326 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4327 if (yyvsp[-4].ttype != current_class_type)
4328 {
4329 push_nested_class (yyvsp[-4].ttype, 3);
4330 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4331 }
4332 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4333 ;
4334 break;}
4335 case 79:
4336 #line 623 "parse.y"
4337 {
4338 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4339 if (yyvsp[-2].ttype != current_class_type)
4340 {
4341 push_nested_class (yyvsp[-2].ttype, 3);
4342 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4343 }
4344 ;
4345 break;}
4346 case 80:
4347 #line 632 "parse.y"
4348 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4349 break;}
4350 case 81:
4351 #line 634 "parse.y"
4352 {
4353 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4354 if (yyvsp[-4].ttype != current_class_type)
4355 {
4356 push_nested_class (yyvsp[-4].ttype, 3);
4357 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4358 }
4359 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4360 ;
4361 break;}
4362 case 82:
4363 #line 644 "parse.y"
4364 {
4365 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4366 if (yyvsp[-2].ttype != current_class_type)
4367 {
4368 push_nested_class (yyvsp[-2].ttype, 3);
4369 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4370 }
4371 ;
4372 break;}
4373 case 83:
4374 #line 653 "parse.y"
4375 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4376 break;}
4377 case 84:
4378 #line 655 "parse.y"
4379 {
4380 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4381 if (yyvsp[-4].ttype != current_class_type)
4382 {
4383 push_nested_class (yyvsp[-4].ttype, 3);
4384 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4385 }
4386 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4387 ;
4388 break;}
4389 case 85:
4390 #line 665 "parse.y"
4391 {
4392 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4393 if (yyvsp[-2].ttype != current_class_type)
4394 {
4395 push_nested_class (yyvsp[-2].ttype, 3);
4396 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4397 }
4398 ;
4399 break;}
4400 case 86:
4401 #line 674 "parse.y"
4402 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4403 break;}
4404 case 87:
4405 #line 676 "parse.y"
4406 {
4407 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4408 if (yyvsp[-4].ttype != current_class_type)
4409 {
4410 push_nested_class (yyvsp[-4].ttype, 3);
4411 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4412 }
4413 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4414 ;
4415 break;}
4416 case 88:
4417 #line 689 "parse.y"
4418 { tree specs, attrs;
4419 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4420 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4421 YYERROR1;
4422 reinit_parse_for_function ();
4423 yyval.ttype = NULL_TREE; ;
4424 break;}
4425 case 89:
4426 #line 696 "parse.y"
4427 { tree specs, attrs;
4428 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4429 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4430 YYERROR1;
4431 reinit_parse_for_function ();
4432 yyval.ttype = NULL_TREE; ;
4433 break;}
4434 case 90:
4435 #line 703 "parse.y"
4436 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4437 YYERROR1;
4438 reinit_parse_for_function ();
4439 yyval.ttype = NULL_TREE; ;
4440 break;}
4441 case 91:
4442 #line 708 "parse.y"
4443 { tree specs, attrs;
4444 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4445 if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4446 YYERROR1;
4447 reinit_parse_for_function ();
4448 yyval.ttype = NULL_TREE; ;
4449 break;}
4450 case 92:
4451 #line 715 "parse.y"
4452 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4453 YYERROR1;
4454 reinit_parse_for_function ();
4455 yyval.ttype = NULL_TREE; ;
4456 break;}
4457 case 93:
4458 #line 723 "parse.y"
4459 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4460 break;}
4461 case 94:
4462 #line 725 "parse.y"
4463 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4464 break;}
4465 case 95:
4466 #line 727 "parse.y"
4467 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4468 break;}
4469 case 96:
4470 #line 729 "parse.y"
4471 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4472 break;}
4473 case 97:
4474 #line 736 "parse.y"
4475 { tree specs = strip_attrs (yyvsp[-1].ttype);
4476 yyval.ttype = start_method (specs, yyvsp[0].ttype);
4477 rest_of_mdef:
4478 if (! yyval.ttype)
4479 YYERROR1;
4480 if (yychar == YYEMPTY)
4481 yychar = YYLEX;
4482 reinit_parse_for_method (yychar, yyval.ttype); ;
4483 break;}
4484 case 98:
4485 #line 745 "parse.y"
4486 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4487 break;}
4488 case 99:
4489 #line 747 "parse.y"
4490 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4491 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4492 break;}
4493 case 100:
4494 #line 750 "parse.y"
4495 { tree specs = strip_attrs (yyvsp[-1].ttype);
4496 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4497 break;}
4498 case 101:
4499 #line 753 "parse.y"
4500 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4501 break;}
4502 case 102:
4503 #line 755 "parse.y"
4504 { tree specs = strip_attrs (yyvsp[-1].ttype);
4505 yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4506 break;}
4507 case 103:
4508 #line 758 "parse.y"
4509 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4510 break;}
4511 case 104:
4512 #line 760 "parse.y"
4513 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4514 break;}
4515 case 105:
4516 #line 765 "parse.y"
4517 {
4518 if (! current_function_parms_stored)
4519 store_parm_decls ();
4520 yyval.ttype = yyvsp[0].ttype;
4521 ;
4522 break;}
4523 case 106:
4524 #line 774 "parse.y"
4525 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4526 break;}
4527 case 107:
4528 #line 776 "parse.y"
4529 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4530 break;}
4531 case 108:
4532 #line 778 "parse.y"
4533 { store_return_init (yyval.ttype, NULL_TREE); ;
4534 break;}
4535 case 109:
4536 #line 783 "parse.y"
4537 {
4538 if (yyvsp[0].itype == 0)
4539 error ("no base initializers given following ':'");
4540 setup_vtbl_ptr ();
4541 /* Always keep the BLOCK node associated with the outermost
4542 pair of curley braces of a function. These are needed
4543 for correct operation of dwarfout.c. */
4544 keep_next_level ();
4545 ;
4546 break;}
4547 case 110:
4548 #line 796 "parse.y"
4549 {
4550 if (! current_function_parms_stored)
4551 store_parm_decls ();
4552
4553 if (DECL_CONSTRUCTOR_P (current_function_decl))
4554 {
4555 /* Make a contour for the initializer list. */
4556 pushlevel (0);
4557 clear_last_expr ();
4558 expand_start_bindings (0);
4559 }
4560 else if (current_class_type == NULL_TREE)
4561 error ("base initializers not allowed for non-member functions");
4562 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4563 error ("only constructors take base initializers");
4564 ;
4565 break;}
4566 case 111:
4567 #line 816 "parse.y"
4568 { yyval.itype = 0; ;
4569 break;}
4570 case 112:
4571 #line 818 "parse.y"
4572 { yyval.itype = 1; ;
4573 break;}
4574 case 115:
4575 #line 825 "parse.y"
4576 {
4577 if (current_class_name)
4578 pedwarn ("anachronistic old style base class initializer");
4579 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4580 ;
4581 break;}
4582 case 116:
4583 #line 831 "parse.y"
4584 {
4585 if (current_class_name)
4586 pedwarn ("anachronistic old style base class initializer");
4587 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4588 ;
4589 break;}
4590 case 117:
4591 #line 837 "parse.y"
4592 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4593 break;}
4594 case 118:
4595 #line 839 "parse.y"
4596 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4597 break;}
4598 case 119:
4599 #line 841 "parse.y"
4600 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4601 break;}
4602 case 120:
4603 #line 843 "parse.y"
4604 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4605 break;}
4606 case 121:
4607 #line 845 "parse.y"
4608 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4609 yyvsp[-1].ttype); ;
4610 break;}
4611 case 122:
4612 #line 848 "parse.y"
4613 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4614 void_type_node); ;
4615 break;}
4616 case 134:
4617 #line 874 "parse.y"
4618 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4619 yyungetc (';', 1); ;
4620 break;}
4621 case 136:
4622 #line 878 "parse.y"
4623 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4624 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4625 break;}
4626 case 138:
4627 #line 882 "parse.y"
4628 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4629 break;}
4630 case 140:
4631 #line 885 "parse.y"
4632 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4633 break;}
4634 case 142:
4635 #line 888 "parse.y"
4636 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4637 yyungetc (';', 1); ;
4638 break;}
4639 case 144:
4640 #line 893 "parse.y"
4641 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4642 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4643 break;}
4644 case 146:
4645 #line 897 "parse.y"
4646 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4647 break;}
4648 case 148:
4649 #line 900 "parse.y"
4650 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4651 break;}
4652 case 150:
4653 #line 905 "parse.y"
4654 { begin_explicit_instantiation(); ;
4655 break;}
4656 case 151:
4657 #line 908 "parse.y"
4658 { end_explicit_instantiation(); ;
4659 break;}
4660 case 152:
4661 #line 916 "parse.y"
4662 {
4663 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4664 if (yyval.ttype != error_mark_node)
4665 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4666 ;
4667 break;}
4668 case 153:
4669 #line 922 "parse.y"
4670 {
4671 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4672 if (yyval.ttype != error_mark_node)
4673 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4674 ;
4675 break;}
4676 case 155:
4677 #line 932 "parse.y"
4678 {
4679 yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4680 if (yyval.ttype != error_mark_node)
4681 yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4682 ;
4683 break;}
4684 case 157:
4685 #line 942 "parse.y"
4686 {
4687 /* Handle `Class<Class<Type>>' without space in the `>>' */
4688 pedwarn ("`>>' should be `> >' in template class name");
4689 yyungetc ('>', 1);
4690 ;
4691 break;}
4692 case 158:
4693 #line 951 "parse.y"
4694 { yyval.ttype = NULL_TREE; ;
4695 break;}
4696 case 160:
4697 #line 957 "parse.y"
4698 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4699 break;}
4700 case 161:
4701 #line 959 "parse.y"
4702 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4703 break;}
4704 case 162:
4705 #line 963 "parse.y"
4706 { processing_template_arg = 1; ;
4707 break;}
4708 case 163:
4709 #line 965 "parse.y"
4710 { yyval.ttype = yyvsp[0].ttype;
4711 processing_template_arg = 0; ;
4712 break;}
4713 case 164:
4714 #line 970 "parse.y"
4715 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4716 break;}
4717 case 166:
4718 #line 976 "parse.y"
4719 { yyval.code = NEGATE_EXPR; ;
4720 break;}
4721 case 167:
4722 #line 978 "parse.y"
4723 { yyval.code = CONVERT_EXPR; ;
4724 break;}
4725 case 168:
4726 #line 980 "parse.y"
4727 { yyval.code = PREINCREMENT_EXPR; ;
4728 break;}
4729 case 169:
4730 #line 982 "parse.y"
4731 { yyval.code = PREDECREMENT_EXPR; ;
4732 break;}
4733 case 170:
4734 #line 984 "parse.y"
4735 { yyval.code = TRUTH_NOT_EXPR; ;
4736 break;}
4737 case 171:
4738 #line 989 "parse.y"
4739 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4740 break;}
4741 case 173:
4742 #line 995 "parse.y"
4743 { error ("ANSI C++ forbids an empty condition for `%s'",
4744 cond_stmt_keyword);
4745 yyval.ttype = integer_zero_node; ;
4746 break;}
4747 case 174:
4748 #line 999 "parse.y"
4749 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4750 break;}
4751 case 175:
4752 #line 1004 "parse.y"
4753 { error ("ANSI C++ forbids an empty condition for `%s'",
4754 cond_stmt_keyword);
4755 yyval.ttype = integer_zero_node; ;
4756 break;}
4757 case 176:
4758 #line 1008 "parse.y"
4759 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4760 break;}
4761 case 177:
4762 #line 1013 "parse.y"
4763 { yyval.ttype = NULL_TREE; ;
4764 break;}
4765 case 178:
4766 #line 1015 "parse.y"
4767 { yyval.ttype = condition_conversion (yyval.ttype); ;
4768 break;}
4769 case 179:
4770 #line 1017 "parse.y"
4771 { yyval.ttype = NULL_TREE; ;
4772 break;}
4773 case 180:
4774 #line 1022 "parse.y"
4775 { {
4776 tree d;
4777 for (d = getdecls (); d; d = TREE_CHAIN (d))
4778 if (TREE_CODE (d) == TYPE_DECL) {
4779 tree s = TREE_TYPE (d);
4780 if (TREE_CODE (s) == RECORD_TYPE)
4781 cp_error ("definition of class `%T' in condition", s);
4782 else if (TREE_CODE (s) == ENUMERAL_TYPE)
4783 cp_error ("definition of enum `%T' in condition", s);
4784 }
4785 }
4786 current_declspecs = yyvsp[-4].ftype.t;
4787 yyvsp[0].itype = suspend_momentary ();
4788 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4789 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4790 /*prefix_attributes*/ NULL_TREE);
4791 ;
4792 break;}
4793 case 181:
4794 #line 1040 "parse.y"
4795 {
4796 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4797 resume_momentary (yyvsp[-2].itype);
4798 yyval.ttype = yyvsp[-1].ttype;
4799 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4800 cp_error ("definition of array `%#D' in condition", yyval.ttype);
4801 ;
4802 break;}
4803 case 187:
4804 #line 1059 "parse.y"
4805 {
4806 if (processing_template_decl)
4807 {
4808 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4809 COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4810 add_tree (yyval.ttype);
4811 }
4812 ;
4813 break;}
4814 case 188:
4815 #line 1068 "parse.y"
4816 {
4817 if (processing_template_decl)
4818 {
4819 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4820 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4821 last_tree = yyvsp[-1].ttype;
4822 }
4823 finish_stmt ();
4824 ;
4825 break;}
4826 case 190:
4827 #line 1083 "parse.y"
4828 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4829 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4830 break;}
4831 case 191:
4832 #line 1086 "parse.y"
4833 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype,
4834 build_expr_list (NULL_TREE, error_mark_node)); ;
4835 break;}
4836 case 192:
4837 #line 1089 "parse.y"
4838 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4839 break;}
4840 case 193:
4841 #line 1091 "parse.y"
4842 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4843 break;}
4844 case 194:
4845 #line 1096 "parse.y"
4846 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4847 break;}
4848 case 196:
4849 #line 1102 "parse.y"
4850 { yyval.ttype = yyvsp[0].ttype; ;
4851 break;}
4852 case 197:
4853 #line 1105 "parse.y"
4854 { yyval.ttype = yyvsp[0].ttype;
4855 pedantic = yyvsp[-1].itype; ;
4856 break;}
4857 case 198:
4858 #line 1108 "parse.y"
4859 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4860 break;}
4861 case 199:
4862 #line 1110 "parse.y"
4863 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4864 break;}
4865 case 200:
4866 #line 1112 "parse.y"
4867 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4868 break;}
4869 case 201:
4870 #line 1114 "parse.y"
4871 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4872 if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4873 TREE_NEGATED_INT (yyval.ttype) = 1;
4874 overflow_warning (yyval.ttype);
4875 ;
4876 break;}
4877 case 202:
4878 #line 1121 "parse.y"
4879 { tree label = lookup_label (yyvsp[0].ttype);
4880 if (pedantic)
4881 pedwarn ("ANSI C++ forbids `&&'");
4882 if (label == NULL_TREE)
4883 yyval.ttype = null_pointer_node;
4884 else
4885 {
4886 TREE_USED (label) = 1;
4887 yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4888 TREE_CONSTANT (yyval.ttype) = 1;
4889 }
4890 ;
4891 break;}
4892 case 203:
4893 #line 1134 "parse.y"
4894 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4895 break;}
4896 case 204:
4897 #line 1136 "parse.y"
4898 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4899 break;}
4900 case 205:
4901 #line 1138 "parse.y"
4902 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4903 break;}
4904 case 206:
4905 #line 1140 "parse.y"
4906 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
4907 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4908 break;}
4909 case 207:
4910 #line 1146 "parse.y"
4911 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
4912 check_for_new_type ("new", yyvsp[0].ftype); ;
4913 break;}
4914 case 208:
4915 #line 1149 "parse.y"
4916 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
4917 check_for_new_type ("new", yyvsp[-1].ftype); ;
4918 break;}
4919 case 209:
4920 #line 1152 "parse.y"
4921 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
4922 check_for_new_type ("new", yyvsp[0].ftype); ;
4923 break;}
4924 case 210:
4925 #line 1155 "parse.y"
4926 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
4927 check_for_new_type ("new", yyvsp[-1].ftype); ;
4928 break;}
4929 case 211:
4930 #line 1158 "parse.y"
4931 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4932 NULL_TREE, yyvsp[-3].itype);
4933 check_for_new_type ("new", yyvsp[-1].ftype); ;
4934 break;}
4935 case 212:
4936 #line 1162 "parse.y"
4937 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
4938 check_for_new_type ("new", yyvsp[-2].ftype); ;
4939 break;}
4940 case 213:
4941 #line 1165 "parse.y"
4942 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
4943 check_for_new_type ("new", yyvsp[-1].ftype); ;
4944 break;}
4945 case 214:
4946 #line 1168 "parse.y"
4947 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
4948 check_for_new_type ("new", yyvsp[-2].ftype); ;
4949 break;}
4950 case 215:
4951 #line 1172 "parse.y"
4952 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4953 break;}
4954 case 216:
4955 #line 1174 "parse.y"
4956 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4957 if (yychar == YYEMPTY)
4958 yychar = YYLEX; ;
4959 break;}
4960 case 217:
4961 #line 1178 "parse.y"
4962 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4963 if (yychar == YYEMPTY)
4964 yychar = YYLEX; ;
4965 break;}
4966 case 218:
4967 #line 1182 "parse.y"
4968 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4969 break;}
4970 case 219:
4971 #line 1184 "parse.y"
4972 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4973 break;}
4974 case 220:
4975 #line 1189 "parse.y"
4976 { yyval.ttype = yyvsp[-1].ttype; ;
4977 break;}
4978 case 221:
4979 #line 1191 "parse.y"
4980 {
4981 yyval.ttype = yyvsp[-1].ttype;
4982 pedwarn ("old style placement syntax, use () instead");
4983 ;
4984 break;}
4985 case 222:
4986 #line 1199 "parse.y"
4987 { yyval.ttype = yyvsp[-1].ttype; ;
4988 break;}
4989 case 223:
4990 #line 1201 "parse.y"
4991 { yyval.ttype = NULL_TREE; ;
4992 break;}
4993 case 224:
4994 #line 1203 "parse.y"
4995 {
4996 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4997 yyval.ttype = error_mark_node;
4998 ;
4999 break;}
5000 case 225:
5001 #line 1211 "parse.y"
5002 {
5003 if (pedantic)
5004 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5005 yyval.ttype = yyvsp[0].ttype;
5006 ;
5007 break;}
5008 case 226:
5009 #line 1221 "parse.y"
5010 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5011 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5012 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5013 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5014 break;}
5015 case 227:
5016 #line 1226 "parse.y"
5017 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
5018 TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
5019 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5020 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5021 break;}
5022 case 229:
5023 #line 1235 "parse.y"
5024 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5025 break;}
5026 case 230:
5027 #line 1237 "parse.y"
5028 {
5029 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5030 nreverse (yyvsp[-2].ttype));
5031 if (pedantic)
5032 pedwarn ("ANSI C++ forbids constructor-expressions");
5033 /* Indicate that this was a GNU C constructor expression. */
5034 TREE_HAS_CONSTRUCTOR (init) = 1;
5035
5036 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5037 ;
5038 break;}
5039 case 232:
5040 #line 1253 "parse.y"
5041 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5042 break;}
5043 case 233:
5044 #line 1255 "parse.y"
5045 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5046 break;}
5047 case 234:
5048 #line 1257 "parse.y"
5049 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5050 break;}
5051 case 235:
5052 #line 1259 "parse.y"
5053 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5054 break;}
5055 case 236:
5056 #line 1261 "parse.y"
5057 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5058 break;}
5059 case 237:
5060 #line 1263 "parse.y"
5061 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5062 break;}
5063 case 238:
5064 #line 1265 "parse.y"
5065 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5066 break;}
5067 case 239:
5068 #line 1267 "parse.y"
5069 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5070 break;}
5071 case 240:
5072 #line 1269 "parse.y"
5073 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5074 break;}
5075 case 241:
5076 #line 1271 "parse.y"
5077 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5078 break;}
5079 case 242:
5080 #line 1273 "parse.y"
5081 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5082 break;}
5083 case 243:
5084 #line 1275 "parse.y"
5085 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5086 break;}
5087 case 244:
5088 #line 1277 "parse.y"
5089 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5090 break;}
5091 case 245:
5092 #line 1279 "parse.y"
5093 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5094 break;}
5095 case 246:
5096 #line 1281 "parse.y"
5097 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5098 break;}
5099 case 247:
5100 #line 1283 "parse.y"
5101 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5102 break;}
5103 case 248:
5104 #line 1285 "parse.y"
5105 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5106 break;}
5107 case 249:
5108 #line 1287 "parse.y"
5109 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5110 break;}
5111 case 250:
5112 #line 1289 "parse.y"
5113 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5114 break;}
5115 case 251:
5116 #line 1291 "parse.y"
5117 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5118 break;}
5119 case 252:
5120 #line 1293 "parse.y"
5121 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5122 if (yyval.ttype != error_mark_node)
5123 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5124 break;}
5125 case 253:
5126 #line 1297 "parse.y"
5127 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5128 break;}
5129 case 254:
5130 #line 1299 "parse.y"
5131 { yyval.ttype = build_throw (NULL_TREE); ;
5132 break;}
5133 case 255:
5134 #line 1301 "parse.y"
5135 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5136 break;}
5137 case 256:
5138 #line 1319 "parse.y"
5139 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5140 break;}
5141 case 262:
5142 #line 1328 "parse.y"
5143 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
5144 break;}
5145 case 263:
5146 #line 1332 "parse.y"
5147 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5148 break;}
5149 case 264:
5150 #line 1334 "parse.y"
5151 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5152 break;}
5153 case 265:
5154 #line 1339 "parse.y"
5155 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5156 break;}
5157 case 266:
5158 #line 1341 "parse.y"
5159 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5160 break;}
5161 case 267:
5162 #line 1344 "parse.y"
5163 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5164 break;}
5165 case 272:
5166 #line 1356 "parse.y"
5167 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5168 break;}
5169 case 273:
5170 #line 1358 "parse.y"
5171 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5172 break;}
5173 case 274:
5174 #line 1360 "parse.y"
5175 { yyval.ttype = yyvsp[-1].ttype; ;
5176 break;}
5177 case 275:
5178 #line 1365 "parse.y"
5179 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5180 break;}
5181 case 276:
5182 #line 1367 "parse.y"
5183 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5184 break;}
5185 case 280:
5186 #line 1375 "parse.y"
5187 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5188 break;}
5189 case 281:
5190 #line 1380 "parse.y"
5191 {
5192 if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5193 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5194 else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5195 {
5196 if (processing_template_arg)
5197 {
5198 tree id;
5199 arg_looking_for_template = processing_template_arg;
5200 id = lookup_name (yyval.ttype, 0);
5201 arg_looking_for_template = 0;
5202
5203 if (!id || id == error_mark_node
5204 || (TREE_CODE (id) != TEMPLATE_DECL
5205 && TREE_CODE (id) != TEMPLATE_TEMPLATE_PARM))
5206 id = do_identifier (yyval.ttype, 1);
5207 yyval.ttype = id;
5208 }
5209 else
5210 yyval.ttype = do_identifier (yyval.ttype, 1);
5211 }
5212 ;
5213 break;}
5214 case 284:
5215 #line 1403 "parse.y"
5216 {
5217 if (processing_template_decl)
5218 push_obstacks (&permanent_obstack, &permanent_obstack);
5219 yyval.ttype = combine_strings (yyval.ttype);
5220 if (processing_template_decl)
5221 pop_obstacks ();
5222 ;
5223 break;}
5224 case 285:
5225 #line 1411 "parse.y"
5226 { char class;
5227 yyval.ttype = yyvsp[-1].ttype;
5228 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5229 if (class == 'e' || class == '1'
5230 || class == '2' || class == '<')
5231 /* This inhibits warnings in truthvalue_conversion. */
5232 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5233 break;}
5234 case 286:
5235 #line 1419 "parse.y"
5236 { char class;
5237 yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5238 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5239 if (class == 'e' || class == '1'
5240 || class == '2' || class == '<')
5241 /* This inhibits warnings in truthvalue_conversion. */
5242 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5243 break;}
5244 case 287:
5245 #line 1427 "parse.y"
5246 { yyval.ttype = error_mark_node; ;
5247 break;}
5248 case 288:
5249 #line 1429 "parse.y"
5250 { if (current_function_decl == 0)
5251 {
5252 error ("braced-group within expression allowed only inside a function");
5253 YYERROR;
5254 }
5255 keep_next_level ();
5256 yyval.ttype = expand_start_stmt_expr (); ;
5257 break;}
5258 case 289:
5259 #line 1437 "parse.y"
5260 { tree rtl_exp;
5261 if (pedantic)
5262 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5263 rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5264 /* The statements have side effects, so the group does. */
5265 TREE_SIDE_EFFECTS (rtl_exp) = 1;
5266
5267 if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5268 {
5269 /* Make a BIND_EXPR for the BLOCK already made. */
5270 yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5271 NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5272 /* Remove the block from the tree at this point.
5273 It gets put back at the proper place
5274 when the BIND_EXPR is expanded. */
5275 delete_block (yyvsp[-1].ttype);
5276 }
5277 else
5278 yyval.ttype = yyvsp[-1].ttype;
5279 ;
5280 break;}
5281 case 290:
5282 #line 1458 "parse.y"
5283 {
5284 yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref);
5285 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5286 && TREE_TYPE (yyval.ttype) != void_type_node)
5287 yyval.ttype = require_complete_type (yyval.ttype);
5288 ;
5289 break;}
5290 case 291:
5291 #line 1465 "parse.y"
5292 {
5293 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5294 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5295 && TREE_TYPE (yyval.ttype) != void_type_node)
5296 yyval.ttype = require_complete_type (yyval.ttype);
5297 ;
5298 break;}
5299 case 292:
5300 #line 1472 "parse.y"
5301 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5302 break;}
5303 case 293:
5304 #line 1474 "parse.y"
5305 { /* If we get an OFFSET_REF, turn it into what it really
5306 means (e.g., a COMPONENT_REF). This way if we've got,
5307 say, a reference to a static member that's being operated
5308 on, we don't end up trying to find a member operator for
5309 the class it's in. */
5310 if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5311 yyval.ttype = resolve_offset_ref (yyval.ttype);
5312 yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5313 break;}
5314 case 294:
5315 #line 1483 "parse.y"
5316 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5317 yyval.ttype = resolve_offset_ref (yyval.ttype);
5318 yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5319 break;}
5320 case 295:
5321 #line 1488 "parse.y"
5322 { if (current_class_ptr)
5323 {
5324 #ifdef WARNING_ABOUT_CCD
5325 TREE_USED (current_class_ptr) = 1;
5326 #endif
5327 yyval.ttype = current_class_ptr;
5328 }
5329 else if (current_function_decl
5330 && DECL_STATIC_FUNCTION_P (current_function_decl))
5331 {
5332 error ("`this' is unavailable for static member functions");
5333 yyval.ttype = error_mark_node;
5334 }
5335 else
5336 {
5337 if (current_function_decl)
5338 error ("invalid use of `this' in non-member function");
5339 else
5340 error ("invalid use of `this' at top level");
5341 yyval.ttype = error_mark_node;
5342 }
5343 ;
5344 break;}
5345 case 296:
5346 #line 1511 "parse.y"
5347 {
5348 tree type = NULL_TREE;
5349 tree id = yyval.ttype;
5350
5351 /* This is a C cast in C++'s `functional' notation. */
5352 if (yyvsp[-1].ttype == error_mark_node)
5353 {
5354 yyval.ttype = error_mark_node;
5355 break;
5356 }
5357 #if 0
5358 if (yyvsp[-1].ttype == NULL_TREE)
5359 {
5360 error ("cannot cast null list to type `%s'",
5361 IDENTIFIER_POINTER (TYPE_NAME (id)));
5362 yyval.ttype = error_mark_node;
5363 break;
5364 }
5365 #endif
5366 #if 0
5367 /* type is not set! (mrs) */
5368 if (type == error_mark_node)
5369 yyval.ttype = error_mark_node;
5370 else
5371 #endif
5372 {
5373 if (id == ridpointers[(int) RID_CONST])
5374 type = build_type_variant (integer_type_node, 1, 0);
5375 else if (id == ridpointers[(int) RID_VOLATILE])
5376 type = build_type_variant (integer_type_node, 0, 1);
5377 #if 0
5378 /* should not be able to get here (mrs) */
5379 else if (id == ridpointers[(int) RID_FRIEND])
5380 {
5381 error ("cannot cast expression to `friend' type");
5382 yyval.ttype = error_mark_node;
5383 break;
5384 }
5385 #endif
5386 else my_friendly_abort (79);
5387 yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5388 }
5389 ;
5390 break;}
5391 case 298:
5392 #line 1556 "parse.y"
5393 { tree type = groktypename (yyvsp[-4].ftype.t);
5394 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5395 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5396 break;}
5397 case 299:
5398 #line 1560 "parse.y"
5399 { tree type = groktypename (yyvsp[-4].ftype.t);
5400 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5401 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5402 break;}
5403 case 300:
5404 #line 1564 "parse.y"
5405 { tree type = groktypename (yyvsp[-4].ftype.t);
5406 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5407 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5408 break;}
5409 case 301:
5410 #line 1568 "parse.y"
5411 { tree type = groktypename (yyvsp[-4].ftype.t);
5412 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5413 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5414 break;}
5415 case 302:
5416 #line 1572 "parse.y"
5417 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5418 break;}
5419 case 303:
5420 #line 1574 "parse.y"
5421 { tree type = groktypename (yyvsp[-1].ftype.t);
5422 check_for_new_type ("typeid", yyvsp[-1].ftype);
5423 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5424 break;}
5425 case 304:
5426 #line 1578 "parse.y"
5427 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5428 break;}
5429 case 305:
5430 #line 1580 "parse.y"
5431 {
5432 got_scope = NULL_TREE;
5433 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5434 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5435 else
5436 yyval.ttype = yyvsp[0].ttype;
5437 ;
5438 break;}
5439 case 306:
5440 #line 1588 "parse.y"
5441 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5442 break;}
5443 case 307:
5444 #line 1590 "parse.y"
5445 { if (processing_template_decl)
5446 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5447 else
5448 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5449 break;}
5450 case 308:
5451 #line 1595 "parse.y"
5452 { if (processing_template_decl)
5453 yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype),
5454 NULL_TREE, NULL_TREE);
5455 else
5456 yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5457 break;}
5458 case 309:
5459 #line 1601 "parse.y"
5460 {
5461 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5462 ;
5463 break;}
5464 case 310:
5465 #line 1605 "parse.y"
5466 {
5467 yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype,
5468 NULL_TREE, LOOKUP_NORMAL);
5469 ;
5470 break;}
5471 case 311:
5472 #line 1610 "parse.y"
5473 {
5474 yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5475 NULL_TREE, LOOKUP_NORMAL);
5476 ;
5477 break;}
5478 case 312:
5479 #line 1615 "parse.y"
5480 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5481 break;}
5482 case 313:
5483 #line 1617 "parse.y"
5484 { if (processing_template_decl)
5485 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5486 else
5487 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5488 break;}
5489 case 314:
5490 #line 1622 "parse.y"
5491 {
5492 #if 0
5493 /* This is a future direction of this code, but because
5494 build_x_function_call cannot always undo what is done
5495 in build_component_ref entirely yet, we cannot do this. */
5496 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5497 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5498 && TREE_TYPE (yyval.ttype) != void_type_node)
5499 yyval.ttype = require_complete_type (yyval.ttype);
5500 #else
5501 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5502 LOOKUP_NORMAL);
5503 #endif
5504 ;
5505 break;}
5506 case 315:
5507 #line 1637 "parse.y"
5508 {
5509 #if 0
5510 /* This is a future direction of this code, but because
5511 build_x_function_call cannot always undo what is done
5512 in build_component_ref entirely yet, we cannot do this. */
5513 yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5514 if (TREE_CODE (yyval.ttype) == CALL_EXPR
5515 && TREE_TYPE (yyval.ttype) != void_type_node)
5516 yyval.ttype = require_complete_type (yyval.ttype);
5517 #else
5518 yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5519 LOOKUP_NORMAL);
5520 #endif
5521 ;
5522 break;}
5523 case 316:
5524 #line 1652 "parse.y"
5525 {
5526 if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5527 {
5528 warning ("signature name in scope resolution ignored");
5529 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5530 LOOKUP_NORMAL);
5531 }
5532 else
5533 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5534 ;
5535 break;}
5536 case 317:
5537 #line 1663 "parse.y"
5538 {
5539 if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5540 {
5541 warning ("signature name in scope resolution ignored");
5542 yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5543 LOOKUP_NORMAL);
5544 }
5545 else
5546 yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5547 ;
5548 break;}
5549 case 318:
5550 #line 1675 "parse.y"
5551 {
5552 if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5553 && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype))
5554 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5555 cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5556 yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5557 ;
5558 break;}
5559 case 319:
5560 #line 1683 "parse.y"
5561 {
5562 if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5563 cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5564 if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5565 != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5566 cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5567 yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5568 ;
5569 break;}
5570 case 320:
5571 #line 1692 "parse.y"
5572 {
5573 yyval.ttype = error_mark_node;
5574 ;
5575 break;}
5576 case 321:
5577 #line 1737 "parse.y"
5578 { yyval.itype = 0; ;
5579 break;}
5580 case 322:
5581 #line 1739 "parse.y"
5582 { got_scope = NULL_TREE; yyval.itype = 1; ;
5583 break;}
5584 case 323:
5585 #line 1744 "parse.y"
5586 { yyval.itype = 0; ;
5587 break;}
5588 case 324:
5589 #line 1746 "parse.y"
5590 { got_scope = NULL_TREE; yyval.itype = 1; ;
5591 break;}
5592 case 325:
5593 #line 1751 "parse.y"
5594 { yyval.ttype = boolean_true_node; ;
5595 break;}
5596 case 326:
5597 #line 1753 "parse.y"
5598 { yyval.ttype = boolean_false_node; ;
5599 break;}
5600 case 328:
5601 #line 1760 "parse.y"
5602 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5603 break;}
5604 case 329:
5605 #line 1765 "parse.y"
5606 {
5607 if (! current_function_parms_stored)
5608 store_parm_decls ();
5609 setup_vtbl_ptr ();
5610 /* Always keep the BLOCK node associated with the outermost
5611 pair of curley braces of a function. These are needed
5612 for correct operation of dwarfout.c. */
5613 keep_next_level ();
5614 ;
5615 break;}
5616 case 330:
5617 #line 1778 "parse.y"
5618 { got_object = TREE_TYPE (yyval.ttype); ;
5619 break;}
5620 case 331:
5621 #line 1780 "parse.y"
5622 {
5623 yyval.ttype = build_x_arrow (yyval.ttype);
5624 got_object = TREE_TYPE (yyval.ttype);
5625 ;
5626 break;}
5627 case 332:
5628 #line 1788 "parse.y"
5629 {
5630 resume_momentary (yyvsp[-1].itype);
5631 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5632 note_got_semicolon (yyvsp[-2].ftype.t);
5633 ;
5634 break;}
5635 case 333:
5636 #line 1794 "parse.y"
5637 {
5638 resume_momentary (yyvsp[-1].itype);
5639 note_list_got_semicolon (yyvsp[-2].ftype.t);
5640 ;
5641 break;}
5642 case 334:
5643 #line 1799 "parse.y"
5644 { resume_momentary (yyvsp[-1].itype); ;
5645 break;}
5646 case 335:
5647 #line 1801 "parse.y"
5648 {
5649 shadow_tag (yyvsp[-1].ftype.t);
5650 note_list_got_semicolon (yyvsp[-1].ftype.t);
5651 ;
5652 break;}
5653 case 336:
5654 #line 1806 "parse.y"
5655 { warning ("empty declaration"); ;
5656 break;}
5657 case 337:
5658 #line 1808 "parse.y"
5659 { pedantic = yyvsp[-1].itype; ;
5660 break;}
5661 case 340:
5662 #line 1822 "parse.y"
5663 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5664 NULL_TREE, NULL_TREE); ;
5665 break;}
5666 case 341:
5667 #line 1825 "parse.y"
5668 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5669 NULL_TREE); ;
5670 break;}
5671 case 342:
5672 #line 1832 "parse.y"
5673 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5674 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5675 break;}
5676 case 343:
5677 #line 1835 "parse.y"
5678 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5679 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5680 break;}
5681 case 344:
5682 #line 1838 "parse.y"
5683 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
5684 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5685 break;}
5686 case 345:
5687 #line 1841 "parse.y"
5688 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5689 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5690 break;}
5691 case 346:
5692 #line 1844 "parse.y"
5693 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5694 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5695 break;}
5696 case 349:
5697 #line 1860 "parse.y"
5698 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5699 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5700 break;}
5701 case 350:
5702 #line 1863 "parse.y"
5703 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5704 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5705 break;}
5706 case 351:
5707 #line 1866 "parse.y"
5708 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5709 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5710 break;}
5711 case 352:
5712 #line 1869 "parse.y"
5713 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5714 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5715 break;}
5716 case 353:
5717 #line 1872 "parse.y"
5718 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5719 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5720 break;}
5721 case 354:
5722 #line 1875 "parse.y"
5723 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5724 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5725 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5726 break;}
5727 case 355:
5728 #line 1882 "parse.y"
5729 { if (extra_warnings)
5730 warning ("`%s' is not at beginning of declaration",
5731 IDENTIFIER_POINTER (yyval.ttype));
5732 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5733 break;}
5734 case 356:
5735 #line 1887 "parse.y"
5736 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5737 break;}
5738 case 357:
5739 #line 1889 "parse.y"
5740 { if (extra_warnings)
5741 warning ("`%s' is not at beginning of declaration",
5742 IDENTIFIER_POINTER (yyvsp[0].ttype));
5743 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5744 break;}
5745 case 358:
5746 #line 1894 "parse.y"
5747 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5748 break;}
5749 case 359:
5750 #line 1896 "parse.y"
5751 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5752 break;}
5753 case 360:
5754 #line 1906 "parse.y"
5755 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5756 break;}
5757 case 361:
5758 #line 1908 "parse.y"
5759 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5760 break;}
5761 case 362:
5762 #line 1910 "parse.y"
5763 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5764 TREE_STATIC (yyval.ttype) = 1; ;
5765 break;}
5766 case 363:
5767 #line 1913 "parse.y"
5768 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5769 warning ("`%s' is not at beginning of declaration",
5770 IDENTIFIER_POINTER (yyvsp[0].ttype));
5771 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5772 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5773 break;}
5774 case 364:
5775 #line 1919 "parse.y"
5776 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5777 break;}
5778 case 365:
5779 #line 1921 "parse.y"
5780 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5781 break;}
5782 case 366:
5783 #line 1932 "parse.y"
5784 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t);
5785 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5786 break;}
5787 case 367:
5788 #line 1935 "parse.y"
5789 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
5790 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5791 break;}
5792 case 368:
5793 #line 1938 "parse.y"
5794 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5795 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5796 break;}
5797 case 369:
5798 #line 1941 "parse.y"
5799 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
5800 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5801 break;}
5802 case 370:
5803 #line 1947 "parse.y"
5804 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5805 break;}
5806 case 371:
5807 #line 1949 "parse.y"
5808 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5809 break;}
5810 case 373:
5811 #line 1959 "parse.y"
5812 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5813 break;}
5814 case 374:
5815 #line 1961 "parse.y"
5816 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5817 break;}
5818 case 375:
5819 #line 1963 "parse.y"
5820 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5821 yyval.ftype.new_type_flag = 0; ;
5822 break;}
5823 case 376:
5824 #line 1966 "parse.y"
5825 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5826 yyval.ftype.new_type_flag = 0; ;
5827 break;}
5828 case 377:
5829 #line 1969 "parse.y"
5830 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5831
5832 yyval.ftype.new_type_flag = 0;
5833 if (IS_AGGR_TYPE (type))
5834 {
5835 sorry ("sigof type specifier");
5836 yyval.ftype.t = type;
5837 }
5838 else
5839 {
5840 error ("`sigof' applied to non-aggregate expression");
5841 yyval.ftype.t = error_mark_node;
5842 }
5843 ;
5844 break;}
5845 case 378:
5846 #line 1984 "parse.y"
5847 { tree type = groktypename (yyvsp[-1].ftype.t);
5848
5849 yyval.ftype.new_type_flag = 0;
5850 if (IS_AGGR_TYPE (type))
5851 {
5852 sorry ("sigof type specifier");
5853 yyval.ftype.t = type;
5854 }
5855 else
5856 {
5857 error("`sigof' applied to non-aggregate type");
5858 yyval.ftype.t = error_mark_node;
5859 }
5860 ;
5861 break;}
5862 case 379:
5863 #line 2004 "parse.y"
5864 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5865 break;}
5866 case 380:
5867 #line 2006 "parse.y"
5868 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5869 break;}
5870 case 388:
5871 #line 2027 "parse.y"
5872 { yyval.ttype = NULL_TREE; ;
5873 break;}
5874 case 389:
5875 #line 2029 "parse.y"
5876 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5877 break;}
5878 case 390:
5879 #line 2034 "parse.y"
5880 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5881 &prefix_attributes);
5882 if (current_declspecs
5883 && TREE_CODE (current_declspecs) != TREE_LIST)
5884 current_declspecs = get_decl_list (current_declspecs);
5885 if (have_extern_spec && !used_extern_spec)
5886 {
5887 current_declspecs = decl_tree_cons
5888 (NULL_TREE, get_identifier ("extern"),
5889 current_declspecs);
5890 used_extern_spec = 1;
5891 }
5892 yyvsp[0].itype = suspend_momentary ();
5893 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5894 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5895 break;}
5896 case 391:
5897 #line 2051 "parse.y"
5898 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5899 yyval.itype = yyvsp[-2].itype; ;
5900 break;}
5901 case 392:
5902 #line 2054 "parse.y"
5903 { tree d;
5904 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5905 &prefix_attributes);
5906 if (current_declspecs
5907 && TREE_CODE (current_declspecs) != TREE_LIST)
5908 current_declspecs = get_decl_list (current_declspecs);
5909 if (have_extern_spec && !used_extern_spec)
5910 {
5911 current_declspecs = decl_tree_cons
5912 (NULL_TREE, get_identifier ("extern"),
5913 current_declspecs);
5914 used_extern_spec = 1;
5915 }
5916 yyval.itype = suspend_momentary ();
5917 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5918 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5919 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5920 break;}
5921 case 393:
5922 #line 2075 "parse.y"
5923 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5924 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5925 break;}
5926 case 394:
5927 #line 2079 "parse.y"
5928 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5929 break;}
5930 case 395:
5931 #line 2081 "parse.y"
5932 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5933 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5934 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5935 break;}
5936 case 396:
5937 #line 2088 "parse.y"
5938 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5939 &prefix_attributes);
5940 yyvsp[0].itype = suspend_momentary ();
5941 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5942 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5943 break;}
5944 case 397:
5945 #line 2095 "parse.y"
5946 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5947 yyval.itype = yyvsp[-2].itype; ;
5948 break;}
5949 case 398:
5950 #line 2098 "parse.y"
5951 { tree d;
5952 split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5953 &prefix_attributes);
5954 yyval.itype = suspend_momentary ();
5955 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5956 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5957 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5958 break;}
5959 case 399:
5960 #line 2109 "parse.y"
5961 { current_declspecs = NULL_TREE;
5962 prefix_attributes = NULL_TREE;
5963 yyvsp[0].itype = suspend_momentary ();
5964 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5965 cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5966 break;}
5967 case 400:
5968 #line 2116 "parse.y"
5969 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5970 yyval.itype = yyvsp[-2].itype; ;
5971 break;}
5972 case 401:
5973 #line 2119 "parse.y"
5974 { tree d;
5975 current_declspecs = NULL_TREE;
5976 prefix_attributes = NULL_TREE;
5977 yyval.itype = suspend_momentary ();
5978 d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5979 cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5980 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5981 break;}
5982 case 402:
5983 #line 2132 "parse.y"
5984 { yyval.ttype = NULL_TREE; ;
5985 break;}
5986 case 403:
5987 #line 2134 "parse.y"
5988 { yyval.ttype = yyvsp[0].ttype; ;
5989 break;}
5990 case 404:
5991 #line 2139 "parse.y"
5992 { yyval.ttype = yyvsp[0].ttype; ;
5993 break;}
5994 case 405:
5995 #line 2141 "parse.y"
5996 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5997 break;}
5998 case 406:
5999 #line 2146 "parse.y"
6000 { yyval.ttype = yyvsp[-2].ttype; ;
6001 break;}
6002 case 407:
6003 #line 2151 "parse.y"
6004 { yyval.ttype = yyvsp[0].ttype; ;
6005 break;}
6006 case 408:
6007 #line 2153 "parse.y"
6008 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6009 break;}
6010 case 409:
6011 #line 2158 "parse.y"
6012 { yyval.ttype = NULL_TREE; ;
6013 break;}
6014 case 410:
6015 #line 2160 "parse.y"
6016 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6017 break;}
6018 case 411:
6019 #line 2162 "parse.y"
6020 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6021 break;}
6022 case 412:
6023 #line 2164 "parse.y"
6024 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6025 break;}
6026 case 413:
6027 #line 2166 "parse.y"
6028 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6029 break;}
6030 case 418:
6031 #line 2182 "parse.y"
6032 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6033 break;}
6034 case 419:
6035 #line 2184 "parse.y"
6036 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6037 break;}
6038 case 420:
6039 #line 2189 "parse.y"
6040 { yyval.ttype = NULL_TREE; ;
6041 break;}
6042 case 421:
6043 #line 2191 "parse.y"
6044 { yyval.ttype = yyvsp[0].ttype; ;
6045 break;}
6046 case 423:
6047 #line 2199 "parse.y"
6048 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6049 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6050 break;}
6051 case 424:
6052 #line 2202 "parse.y"
6053 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6054 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6055 break;}
6056 case 425:
6057 #line 2205 "parse.y"
6058 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6059 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6060 break;}
6061 case 426:
6062 #line 2208 "parse.y"
6063 { yyval.ttype = NULL_TREE; ;
6064 break;}
6065 case 427:
6066 #line 2215 "parse.y"
6067 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6068 break;}
6069 case 428:
6070 #line 2217 "parse.y"
6071 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6072 break;}
6073 case 429:
6074 #line 2220 "parse.y"
6075 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6076 break;}
6077 case 430:
6078 #line 2222 "parse.y"
6079 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6080 break;}
6081 case 431:
6082 #line 2224 "parse.y"
6083 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6084 break;}
6085 case 432:
6086 #line 2226 "parse.y"
6087 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6088 break;}
6089 case 433:
6090 #line 2231 "parse.y"
6091 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6092 NULL_TREE, 1);
6093 reinit_parse_for_function (); ;
6094 break;}
6095 case 434:
6096 #line 2237 "parse.y"
6097 {
6098 int nested = (hack_decl_function_context
6099 (current_function_decl) != NULL_TREE);
6100 finish_function (lineno, (int)yyvsp[-1].itype, nested);
6101 process_next_inline (yyvsp[-3].ttype);
6102 ;
6103 break;}
6104 case 435:
6105 #line 2244 "parse.y"
6106 { process_next_inline (yyvsp[-2].ttype); ;
6107 break;}
6108 case 436:
6109 #line 2246 "parse.y"
6110 { process_next_inline (yyvsp[-2].ttype); ;
6111 break;}
6112 case 439:
6113 #line 2258 "parse.y"
6114 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6115 break;}
6116 case 440:
6117 #line 2260 "parse.y"
6118 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6119 break;}
6120 case 442:
6121 #line 2265 "parse.y"
6122 { do_pending_defargs (); ;
6123 break;}
6124 case 443:
6125 #line 2267 "parse.y"
6126 { do_pending_defargs (); ;
6127 break;}
6128 case 444:
6129 #line 2272 "parse.y"
6130 { yyvsp[0].itype = suspend_momentary ();
6131 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6132 break;}
6133 case 445:
6134 #line 2275 "parse.y"
6135 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6136 yyval.ftype.new_type_flag = 1;
6137 resume_momentary ((int) yyvsp[-4].itype);
6138 check_for_missing_semicolon (yyvsp[-3].ttype); ;
6139 break;}
6140 case 446:
6141 #line 2280 "parse.y"
6142 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6143 yyval.ftype.new_type_flag = 1;
6144 check_for_missing_semicolon (yyval.ftype.t); ;
6145 break;}
6146 case 447:
6147 #line 2284 "parse.y"
6148 { yyvsp[0].itype = suspend_momentary ();
6149 yyval.ttype = start_enum (make_anon_name ()); ;
6150 break;}
6151 case 448:
6152 #line 2287 "parse.y"
6153 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6154 resume_momentary ((int) yyvsp[-5].itype);
6155 check_for_missing_semicolon (yyvsp[-3].ttype);
6156 yyval.ftype.new_type_flag = 1; ;
6157 break;}
6158 case 449:
6159 #line 2292 "parse.y"
6160 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6161 yyval.ftype.new_type_flag = 1;
6162 check_for_missing_semicolon (yyval.ftype.t); ;
6163 break;}
6164 case 450:
6165 #line 2296 "parse.y"
6166 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6167 yyval.ftype.new_type_flag = 0; ;
6168 break;}
6169 case 451:
6170 #line 2299 "parse.y"
6171 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1);
6172 yyval.ftype.new_type_flag = 0; ;
6173 break;}
6174 case 452:
6175 #line 2302 "parse.y"
6176 { yyval.ftype.t = yyvsp[0].ttype;
6177 yyval.ftype.new_type_flag = 0; ;
6178 break;}
6179 case 453:
6180 #line 2307 "parse.y"
6181 {
6182 int semi;
6183
6184 yyval.ttype = yyvsp[-4].ttype;
6185 #if 0
6186 /* Need to rework class nesting in the
6187 presence of nested classes, etc. */
6188 shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-4].ttype)); */
6189 #endif
6190 if (yychar == YYEMPTY)
6191 yychar = YYLEX;
6192 semi = yychar == ';';
6193 /* finish_struct nukes this anyway; if
6194 finish_exception does too, then it can go. */
6195 if (semi)
6196 note_got_semicolon (yyvsp[-4].ttype);
6197
6198 if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
6199 ;
6200 else
6201 {
6202 yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6203 if (semi) note_got_semicolon (yyval.ttype);
6204 }
6205
6206 pop_obstacks ();
6207
6208 if (! semi)
6209 check_for_missing_semicolon (yyvsp[-4].ttype);
6210 if (current_scope () == current_function_decl)
6211 do_pending_defargs ();
6212 ;
6213 break;}
6214 case 454:
6215 #line 2341 "parse.y"
6216 {
6217 if (pending_inlines
6218 && current_scope () == current_function_decl)
6219 do_pending_inlines ();
6220 ;
6221 break;}
6222 case 455:
6223 #line 2347 "parse.y"
6224 {
6225 yyval.ftype.t = yyvsp[-3].ttype;
6226 yyval.ftype.new_type_flag = 1;
6227 if (current_class_type == NULL_TREE)
6228 clear_inline_text_obstack ();
6229
6230 /* Undo the begin_tree in left_curly. */
6231 end_tree ();
6232 ;
6233 break;}
6234 case 456:
6235 #line 2357 "parse.y"
6236 {
6237 yyval.ftype.new_type_flag = 0;
6238 if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
6239 {
6240 cp_error ("%T is not a class type", yyvsp[0].ttype);
6241 yyval.ftype.t = error_mark_node;
6242 }
6243 else
6244 {
6245 yyval.ftype.t = yyvsp[0].ttype;
6246 /* struct B: public A; is not accepted by the WP grammar. */
6247 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6248 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6249 cp_error ("base clause without member specification for `%#T'",
6250 yyval.ftype.t);
6251 }
6252 ;
6253 break;}
6254 case 460:
6255 #line 2384 "parse.y"
6256 { if (pedantic && !in_system_header)
6257 pedwarn ("comma at end of enumerator list"); ;
6258 break;}
6259 case 462:
6260 #line 2391 "parse.y"
6261 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6262 break;}
6263 case 463:
6264 #line 2393 "parse.y"
6265 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6266 break;}
6267 case 464:
6268 #line 2395 "parse.y"
6269 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6270 break;}
6271 case 465:
6272 #line 2397 "parse.y"
6273 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6274 break;}
6275 case 466:
6276 #line 2402 "parse.y"
6277 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6278 break;}
6279 case 467:
6280 #line 2407 "parse.y"
6281 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6282 break;}
6283 case 468:
6284 #line 2412 "parse.y"
6285 {
6286 current_aggr = yyvsp[-2].ttype;
6287 yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6288 ;
6289 break;}
6290 case 469:
6291 #line 2417 "parse.y"
6292 {
6293 current_aggr = yyvsp[-3].ttype;
6294 yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6295 ;
6296 break;}
6297 case 470:
6298 #line 2422 "parse.y"
6299 {
6300 current_aggr = yyvsp[-2].ttype;
6301 yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6302 ;
6303 break;}
6304 case 471:
6305 #line 2427 "parse.y"
6306 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6307 break;}
6308 case 472:
6309 #line 2429 "parse.y"
6310 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6311 break;}
6312 case 473:
6313 #line 2434 "parse.y"
6314 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6315 break;}
6316 case 474:
6317 #line 2439 "parse.y"
6318 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6319 break;}
6320 case 475:
6321 #line 2442 "parse.y"
6322 {
6323 yyval.ttype = yyvsp[-1].ttype;
6324 if (yyvsp[0].ttype)
6325 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6326 ;
6327 break;}
6328 case 476:
6329 #line 2448 "parse.y"
6330 {
6331 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6332 if (TREE_INT_CST_LOW (current_aggr) == union_type
6333 && TREE_CODE (yyval.ttype) != UNION_TYPE)
6334 cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6335 else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6336 && TREE_INT_CST_LOW (current_aggr) != union_type)
6337 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6338 if (yyvsp[0].ttype)
6339 {
6340 if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6341 {
6342 if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6343 && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6344 {
6345 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6346 if (processing_template_decl)
6347 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6348 }
6349 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6350 cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6351 }
6352 xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype);
6353 }
6354 ;
6355 break;}
6356 case 477:
6357 #line 2477 "parse.y"
6358 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6359 yyungetc ('{', 1); ;
6360 break;}
6361 case 480:
6362 #line 2488 "parse.y"
6363 { yyval.ttype = NULL_TREE; ;
6364 break;}
6365 case 481:
6366 #line 2490 "parse.y"
6367 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6368 break;}
6369 case 482:
6370 #line 2492 "parse.y"
6371 { yyval.ttype = yyvsp[0].ttype; ;
6372 break;}
6373 case 484:
6374 #line 2498 "parse.y"
6375 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6376 break;}
6377 case 485:
6378 #line 2503 "parse.y"
6379 {
6380 tree type = TREE_TYPE (yyvsp[0].ttype);
6381 if (! is_aggr_type (type, 1))
6382 yyval.ttype = NULL_TREE;
6383 else if (current_aggr == signature_type_node
6384 && (! type) && (! IS_SIGNATURE (type)))
6385 {
6386 error ("class name not allowed as base signature");
6387 yyval.ttype = NULL_TREE;
6388 }
6389 else if (current_aggr == signature_type_node)
6390 {
6391 sorry ("signature inheritance, base type `%s' ignored",
6392 IDENTIFIER_POINTER (yyval.ttype));
6393 yyval.ttype = build_tree_list (access_public_node, type);
6394 }
6395 else if (type && IS_SIGNATURE (type))
6396 {
6397 error ("signature name not allowed as base class");
6398 yyval.ttype = NULL_TREE;
6399 }
6400 else
6401 yyval.ttype = build_tree_list (access_default_node, type);
6402 ;
6403 break;}
6404 case 486:
6405 #line 2528 "parse.y"
6406 {
6407 tree type = TREE_TYPE (yyvsp[0].ttype);
6408 if (current_aggr == signature_type_node)
6409 error ("access and source specifiers not allowed in signature");
6410 if (! IS_AGGR_TYPE (type))
6411 yyval.ttype = NULL_TREE;
6412 else if (current_aggr == signature_type_node
6413 && (! type) && (! IS_SIGNATURE (type)))
6414 {
6415 error ("class name not allowed as base signature");
6416 yyval.ttype = NULL_TREE;
6417 }
6418 else if (current_aggr == signature_type_node)
6419 {
6420 sorry ("signature inheritance, base type `%s' ignored",
6421 IDENTIFIER_POINTER (yyval.ttype));
6422 yyval.ttype = build_tree_list (access_public_node, type);
6423 }
6424 else if (type && IS_SIGNATURE (type))
6425 {
6426 error ("signature name not allowed as base class");
6427 yyval.ttype = NULL_TREE;
6428 }
6429 else
6430 yyval.ttype = build_tree_list (yyval.ttype, type);
6431 ;
6432 break;}
6433 case 487:
6434 #line 2558 "parse.y"
6435 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6436 break;}
6437 case 489:
6438 #line 2561 "parse.y"
6439 {
6440 if (current_aggr == signature_type_node)
6441 {
6442 if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6443 {
6444 sorry ("`sigof' as base signature specifier");
6445 yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6446 }
6447 else
6448 {
6449 error ("`sigof' applied to non-aggregate expression");
6450 yyval.ttype = error_mark_node;
6451 }
6452 }
6453 else
6454 {
6455 error ("`sigof' in struct or class declaration");
6456 yyval.ttype = error_mark_node;
6457 }
6458 ;
6459 break;}
6460 case 490:
6461 #line 2582 "parse.y"
6462 {
6463 if (current_aggr == signature_type_node)
6464 {
6465 if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6466 {
6467 sorry ("`sigof' as base signature specifier");
6468 yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6469 }
6470 else
6471 {
6472 error ("`sigof' applied to non-aggregate expression");
6473 yyval.ttype = error_mark_node;
6474 }
6475 }
6476 else
6477 {
6478 error ("`sigof' in struct or class declaration");
6479 yyval.ttype = error_mark_node;
6480 }
6481 ;
6482 break;}
6483 case 492:
6484 #line 2607 "parse.y"
6485 { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
6486 sorry ("non-virtual access");
6487 yyval.ttype = access_default_virtual_node; ;
6488 break;}
6489 case 493:
6490 #line 2611 "parse.y"
6491 { int err = 0;
6492 if (yyvsp[-1].ttype == access_protected_node)
6493 {
6494 warning ("`protected' access not implemented");
6495 yyvsp[-1].ttype = access_public_node;
6496 err++;
6497 }
6498 else if (yyvsp[-1].ttype == access_public_node)
6499 {
6500 if (yyvsp[-2].ttype == access_private_node)
6501 {
6502 mixed:
6503 error ("base class cannot be public and private");
6504 }
6505 else if (yyvsp[-2].ttype == access_default_virtual_node)
6506 yyval.ttype = access_public_virtual_node;
6507 }
6508 else /* $2 == access_private_node */
6509 {
6510 if (yyvsp[-2].ttype == access_public_node)
6511 goto mixed;
6512 else if (yyvsp[-2].ttype == access_default_virtual_node)
6513 yyval.ttype = access_private_virtual_node;
6514 }
6515 ;
6516 break;}
6517 case 494:
6518 #line 2637 "parse.y"
6519 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6520 sorry ("non-virtual access");
6521 if (yyval.ttype == access_public_node)
6522 yyval.ttype = access_public_virtual_node;
6523 else if (yyval.ttype == access_private_node)
6524 yyval.ttype = access_private_virtual_node; ;
6525 break;}
6526 case 495:
6527 #line 2647 "parse.y"
6528 { tree t = yyvsp[-1].ttype;
6529 push_obstacks_nochange ();
6530 end_temporary_allocation ();
6531
6532 if (t == error_mark_node
6533 || ! IS_AGGR_TYPE (t))
6534 {
6535 t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6536 pushtag (make_anon_name (), t, 0);
6537 }
6538 if (TYPE_SIZE (t))
6539 duplicate_tag_error (t);
6540 if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6541 {
6542 t = make_lang_type (TREE_CODE (t));
6543 pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6544 yyvsp[-1].ttype = t;
6545 }
6546 if (processing_template_decl && TYPE_CONTEXT (t)
6547 && ! current_class_type)
6548 push_template_decl (TYPE_STUB_DECL (t));
6549 pushclass (t, 0);
6550 TYPE_BEING_DEFINED (t) = 1;
6551 if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6552 {
6553 if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6554 && TYPE_SIZE (t) == NULL_TREE)
6555 {
6556 SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6557 if (processing_template_decl)
6558 push_template_decl (TYPE_MAIN_DECL (t));
6559 }
6560 else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6561 cp_error ("specialization after instantiation of `%T'", t);
6562 }
6563 /* Reset the interface data, at the earliest possible
6564 moment, as it might have been set via a class foo;
6565 before. */
6566 /* Don't change signatures. */
6567 if (! IS_SIGNATURE (t))
6568 {
6569 extern tree pending_vtables;
6570 int needs_writing;
6571 tree name = TYPE_IDENTIFIER (t);
6572
6573 if (! ANON_AGGRNAME_P (name))
6574 {
6575 CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6576 SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6577 (t, interface_unknown);
6578 }
6579
6580 /* Record how to set the access of this class's
6581 virtual functions. If write_virtuals == 2 or 3, then
6582 inline virtuals are ``extern inline''. */
6583 switch (write_virtuals)
6584 {
6585 case 0:
6586 case 1:
6587 needs_writing = 1;
6588 break;
6589 case 2:
6590 needs_writing = !! value_member (name, pending_vtables);
6591 break;
6592 case 3:
6593 needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6594 && CLASSTYPE_INTERFACE_KNOWN (t);
6595 break;
6596 default:
6597 needs_writing = 0;
6598 }
6599 CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6600 }
6601 #if 0
6602 t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6603 if (t && IDENTIFIER_TEMPLATE (t))
6604 overload_template_name (t, 1);
6605 #endif
6606 reset_specialization();
6607
6608 /* In case this is a local class within a template
6609 function, we save the current tree structure so
6610 that we can get it back later. */
6611 begin_tree ();
6612 ;
6613 break;}
6614 case 496:
6615 #line 2736 "parse.y"
6616 {
6617 yyval.ttype = build_self_reference ();
6618 ;
6619 break;}
6620 case 497:
6621 #line 2743 "parse.y"
6622 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6623 break;}
6624 case 498:
6625 #line 2745 "parse.y"
6626 {
6627 if (current_aggr == signature_type_node)
6628 yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6629 else
6630 yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6631 if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6632 ;
6633 break;}
6634 case 499:
6635 #line 2753 "parse.y"
6636 {
6637 tree visspec = yyvsp[-2].ttype;
6638
6639 if (current_aggr == signature_type_node)
6640 {
6641 error ("access specifier not allowed in signature");
6642 visspec = access_public_node;
6643 }
6644 yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6645 ;
6646 break;}
6647 case 500:
6648 #line 2764 "parse.y"
6649 {
6650 if (current_aggr == signature_type_node)
6651 error ("access specifier not allowed in signature");
6652 ;
6653 break;}
6654 case 501:
6655 #line 2774 "parse.y"
6656 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE;
6657 ;
6658 break;}
6659 case 502:
6660 #line 2777 "parse.y"
6661 { /* In pushdecl, we created a reverse list of names
6662 in this binding level. Make sure that the chain
6663 of what we're trying to add isn't the item itself
6664 (which can happen with what pushdecl's doing). */
6665 if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6666 {
6667 if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6668 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6669 else
6670 yyval.ttype = yyvsp[0].ttype;
6671 }
6672 ;
6673 break;}
6674 case 503:
6675 #line 2793 "parse.y"
6676 { ;
6677 break;}
6678 case 504:
6679 #line 2795 "parse.y"
6680 { error ("missing ';' before right brace");
6681 yyungetc ('}', 0); ;
6682 break;}
6683 case 505:
6684 #line 2800 "parse.y"
6685 { yyval.ttype = finish_method (yyval.ttype); ;
6686 break;}
6687 case 506:
6688 #line 2802 "parse.y"
6689 { yyval.ttype = finish_method (yyval.ttype); ;
6690 break;}
6691 case 507:
6692 #line 2804 "parse.y"
6693 { yyval.ttype = finish_method (yyval.ttype); ;
6694 break;}
6695 case 508:
6696 #line 2806 "parse.y"
6697 { yyval.ttype = finish_method (yyval.ttype); ;
6698 break;}
6699 case 509:
6700 #line 2808 "parse.y"
6701 { yyval.ttype = NULL_TREE; ;
6702 break;}
6703 case 510:
6704 #line 2810 "parse.y"
6705 { yyval.ttype = yyvsp[0].ttype;
6706 pedantic = yyvsp[-1].itype; ;
6707 break;}
6708 case 511:
6709 #line 2819 "parse.y"
6710 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6711 break;}
6712 case 512:
6713 #line 2821 "parse.y"
6714 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6715 break;}
6716 case 513:
6717 #line 2823 "parse.y"
6718 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6719 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6720 break;}
6721 case 514:
6722 #line 2826 "parse.y"
6723 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6724 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6725 break;}
6726 case 515:
6727 #line 2829 "parse.y"
6728 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6729 break;}
6730 case 516:
6731 #line 2831 "parse.y"
6732 { yyval.ttype = NULL_TREE; ;
6733 break;}
6734 case 517:
6735 #line 2842 "parse.y"
6736 { tree specs, attrs;
6737 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6738 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6739 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6740 break;}
6741 case 518:
6742 #line 2847 "parse.y"
6743 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6744 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6745 break;}
6746 case 519:
6747 #line 2850 "parse.y"
6748 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6749 break;}
6750 case 520:
6751 #line 2852 "parse.y"
6752 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6753 break;}
6754 case 521:
6755 #line 2858 "parse.y"
6756 { yyval.ttype = NULL_TREE; ;
6757 break;}
6758 case 523:
6759 #line 2861 "parse.y"
6760 {
6761 /* In this context, void_type_node encodes
6762 friends. They have been recorded elsewhere. */
6763 if (yyval.ttype == void_type_node)
6764 yyval.ttype = yyvsp[0].ttype;
6765 else
6766 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6767 ;
6768 break;}
6769 case 524:
6770 #line 2873 "parse.y"
6771 { yyval.ttype = NULL_TREE; ;
6772 break;}
6773 case 526:
6774 #line 2876 "parse.y"
6775 {
6776 /* In this context, void_type_node encodes
6777 friends. They have been recorded elsewhere. */
6778 if (yyval.ttype == void_type_node)
6779 yyval.ttype = yyvsp[0].ttype;
6780 else
6781 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6782 ;
6783 break;}
6784 case 531:
6785 #line 2898 "parse.y"
6786 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6787 &prefix_attributes);
6788 yyvsp[-4].ttype = current_declspecs;
6789 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6790 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6791 break;}
6792 case 532:
6793 #line 2904 "parse.y"
6794 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6795 &prefix_attributes);
6796 yyvsp[-4].ttype = current_declspecs;
6797 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6798 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6799 break;}
6800 case 533:
6801 #line 2913 "parse.y"
6802 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6803 &prefix_attributes);
6804 yyvsp[-4].ttype = current_declspecs;
6805 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6806 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6807 break;}
6808 case 534:
6809 #line 2919 "parse.y"
6810 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6811 &prefix_attributes);
6812 yyvsp[-4].ttype = current_declspecs;
6813 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6814 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6815 break;}
6816 case 535:
6817 #line 2925 "parse.y"
6818 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6819 &prefix_attributes);
6820 yyvsp[-4].ttype = current_declspecs;
6821 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6822 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6823 break;}
6824 case 536:
6825 #line 2931 "parse.y"
6826 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6827 &prefix_attributes);
6828 yyvsp[-3].ttype = current_declspecs;
6829 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6830 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6831 break;}
6832 case 537:
6833 #line 2940 "parse.y"
6834 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6835 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6836 break;}
6837 case 538:
6838 #line 2943 "parse.y"
6839 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6840 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6841 break;}
6842 case 539:
6843 #line 2949 "parse.y"
6844 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6845 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6846 break;}
6847 case 540:
6848 #line 2952 "parse.y"
6849 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6850 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6851 break;}
6852 case 541:
6853 #line 2955 "parse.y"
6854 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6855 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6856 break;}
6857 case 543:
6858 #line 2966 "parse.y"
6859 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6860 break;}
6861 case 544:
6862 #line 2971 "parse.y"
6863 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6864 break;}
6865 case 545:
6866 #line 2973 "parse.y"
6867 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6868 break;}
6869 case 546:
6870 #line 2979 "parse.y"
6871 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6872 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6873 break;}
6874 case 547:
6875 #line 2982 "parse.y"
6876 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6877 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6878 break;}
6879 case 548:
6880 #line 2987 "parse.y"
6881 {
6882 if (pedantic)
6883 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6884 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6885 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6886 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6887 ;
6888 break;}
6889 case 549:
6890 #line 2998 "parse.y"
6891 { yyval.ttype = NULL_TREE; ;
6892 break;}
6893 case 550:
6894 #line 3000 "parse.y"
6895 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6896 break;}
6897 case 551:
6898 #line 3005 "parse.y"
6899 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
6900 yyval.ftype.new_type_flag = 0; ;
6901 break;}
6902 case 552:
6903 #line 3008 "parse.y"
6904 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6905 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6906 break;}
6907 case 553:
6908 #line 3017 "parse.y"
6909 { yyval.itype = suspend_momentary (); ;
6910 break;}
6911 case 554:
6912 #line 3022 "parse.y"
6913 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6914 break;}
6915 case 555:
6916 #line 3028 "parse.y"
6917 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6918 break;}
6919 case 556:
6920 #line 3030 "parse.y"
6921 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6922 break;}
6923 case 557:
6924 #line 3032 "parse.y"
6925 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6926 break;}
6927 case 558:
6928 #line 3034 "parse.y"
6929 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6930 break;}
6931 case 559:
6932 #line 3041 "parse.y"
6933 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6934 break;}
6935 case 560:
6936 #line 3043 "parse.y"
6937 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6938 break;}
6939 case 561:
6940 #line 3045 "parse.y"
6941 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6942 break;}
6943 case 562:
6944 #line 3047 "parse.y"
6945 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6946 break;}
6947 case 563:
6948 #line 3049 "parse.y"
6949 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6950 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6951 ;
6952 break;}
6953 case 565:
6954 #line 3057 "parse.y"
6955 {
6956 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6957 {
6958 arg_looking_for_template = processing_template_arg;
6959 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6960 arg_looking_for_template = 0;
6961
6962 if (current_class_type
6963 && TYPE_BEING_DEFINED (current_class_type)
6964 && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6965 {
6966 /* Remember that this name has been used in the class
6967 definition, as per [class.scope0] */
6968 pushdecl_class_level (yyval.ttype);
6969 }
6970 }
6971 else
6972 yyval.ttype = yyvsp[0].ttype;
6973 ;
6974 break;}
6975 case 566:
6976 #line 3077 "parse.y"
6977 {
6978 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6979 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6980 else
6981 yyval.ttype = yyvsp[0].ttype;
6982 got_scope = NULL_TREE;
6983 ;
6984 break;}
6985 case 569:
6986 #line 3090 "parse.y"
6987 { yyval.ttype = yyvsp[0].ttype; ;
6988 break;}
6989 case 570:
6990 #line 3095 "parse.y"
6991 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6992 break;}
6993 case 571:
6994 #line 3100 "parse.y"
6995 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6996 break;}
6997 case 572:
6998 #line 3102 "parse.y"
6999 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7000 break;}
7001 case 573:
7002 #line 3104 "parse.y"
7003 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7004 break;}
7005 case 574:
7006 #line 3106 "parse.y"
7007 { yyval.ttype = yyvsp[-1].ttype; ;
7008 break;}
7009 case 575:
7010 #line 3108 "parse.y"
7011 { push_nested_class (yyvsp[-1].ttype, 3);
7012 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7013 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7014 break;}
7015 case 577:
7016 #line 3119 "parse.y"
7017 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7018 break;}
7019 case 578:
7020 #line 3121 "parse.y"
7021 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7022 break;}
7023 case 579:
7024 #line 3123 "parse.y"
7025 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7026 break;}
7027 case 580:
7028 #line 3125 "parse.y"
7029 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7030 break;}
7031 case 581:
7032 #line 3127 "parse.y"
7033 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7034 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7035 ;
7036 break;}
7037 case 583:
7038 #line 3135 "parse.y"
7039 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7040 break;}
7041 case 584:
7042 #line 3137 "parse.y"
7043 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7044 break;}
7045 case 585:
7046 #line 3139 "parse.y"
7047 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7048 break;}
7049 case 586:
7050 #line 3141 "parse.y"
7051 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7052 break;}
7053 case 587:
7054 #line 3143 "parse.y"
7055 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7056 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7057 ;
7058 break;}
7059 case 589:
7060 #line 3151 "parse.y"
7061 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7062 break;}
7063 case 590:
7064 #line 3153 "parse.y"
7065 { yyval.ttype = yyvsp[-1].ttype; ;
7066 break;}
7067 case 591:
7068 #line 3155 "parse.y"
7069 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7070 break;}
7071 case 592:
7072 #line 3157 "parse.y"
7073 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7074 break;}
7075 case 593:
7076 #line 3159 "parse.y"
7077 { if (OP0 (yyval.ttype) != current_class_type)
7078 {
7079 push_nested_class (OP0 (yyval.ttype), 3);
7080 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7081 }
7082 ;
7083 break;}
7084 case 594:
7085 #line 3166 "parse.y"
7086 { got_scope = NULL_TREE;
7087 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7088 if (yyvsp[-1].ttype != current_class_type)
7089 {
7090 push_nested_class (yyvsp[-1].ttype, 3);
7091 TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7092 }
7093 ;
7094 break;}
7095 case 595:
7096 #line 3178 "parse.y"
7097 { got_scope = NULL_TREE;
7098 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7099 break;}
7100 case 596:
7101 #line 3181 "parse.y"
7102 { got_scope = NULL_TREE;
7103 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7104 break;}
7105 case 597:
7106 #line 3187 "parse.y"
7107 { got_scope = NULL_TREE;
7108 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7109 break;}
7110 case 598:
7111 #line 3190 "parse.y"
7112 { got_scope = NULL_TREE;
7113 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7114 break;}
7115 case 600:
7116 #line 3197 "parse.y"
7117 { yyval.ttype = yyvsp[0].ttype; ;
7118 break;}
7119 case 601:
7120 #line 3202 "parse.y"
7121 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7122 break;}
7123 case 602:
7124 #line 3204 "parse.y"
7125 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7126 break;}
7127 case 603:
7128 #line 3206 "parse.y"
7129 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7130 break;}
7131 case 608:
7132 #line 3218 "parse.y"
7133 { yyval.ttype = yyvsp[0].ttype; ;
7134 break;}
7135 case 609:
7136 #line 3225 "parse.y"
7137 {
7138 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7139 {
7140 yyval.ttype = lastiddecl;
7141 /* Remember that this name has been used in the class
7142 definition, as per [class.scope0] */
7143 if (current_class_type
7144 && TYPE_BEING_DEFINED (current_class_type)
7145 && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7146 pushdecl_class_level (yyval.ttype);
7147 }
7148 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7149 ;
7150 break;}
7151 case 610:
7152 #line 3239 "parse.y"
7153 {
7154 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7155 yyval.ttype = lastiddecl;
7156 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7157 ;
7158 break;}
7159 case 611:
7160 #line 3245 "parse.y"
7161 {
7162 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7163 yyval.ttype = lastiddecl;
7164 got_scope = yyval.ttype;
7165 ;
7166 break;}
7167 case 612:
7168 #line 3251 "parse.y"
7169 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7170 break;}
7171 case 614:
7172 #line 3267 "parse.y"
7173 { yyval.ttype = yyvsp[0].ttype; ;
7174 break;}
7175 case 615:
7176 #line 3272 "parse.y"
7177 {
7178 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7179 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7180 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7181 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7182 else
7183 {
7184 yyval.ttype = yyvsp[0].ttype;
7185 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7186 yyval.ttype = TREE_TYPE (yyval.ttype);
7187 }
7188 ;
7189 break;}
7190 case 616:
7191 #line 3288 "parse.y"
7192 {
7193 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7194 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7195 ;
7196 break;}
7197 case 617:
7198 #line 3293 "parse.y"
7199 {
7200 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7201 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7202 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7203 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7204 else
7205 {
7206 yyval.ttype = yyvsp[0].ttype;
7207 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7208 yyval.ttype = TREE_TYPE (yyval.ttype);
7209 }
7210 ;
7211 break;}
7212 case 618:
7213 #line 3309 "parse.y"
7214 {
7215 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7216 yyval.ttype = lastiddecl;
7217 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7218 ;
7219 break;}
7220 case 619:
7221 #line 3315 "parse.y"
7222 {
7223 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7224 yyval.ttype = lastiddecl;
7225 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7226 ;
7227 break;}
7228 case 620:
7229 #line 3321 "parse.y"
7230 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7231 break;}
7232 case 623:
7233 #line 3325 "parse.y"
7234 {
7235 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7236 yyval.ttype = lastiddecl;
7237 got_scope = yyval.ttype;
7238 ;
7239 break;}
7240 case 624:
7241 #line 3334 "parse.y"
7242 {
7243 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7244 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7245 else
7246 yyval.ttype = yyvsp[0].ttype;
7247 got_scope = NULL_TREE;
7248 ;
7249 break;}
7250 case 626:
7251 #line 3343 "parse.y"
7252 { yyval.ttype = yyvsp[0].ttype; ;
7253 break;}
7254 case 627:
7255 #line 3348 "parse.y"
7256 { got_scope = NULL_TREE; ;
7257 break;}
7258 case 628:
7259 #line 3350 "parse.y"
7260 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7261 break;}
7262 case 629:
7263 #line 3357 "parse.y"
7264 { got_scope = void_type_node; ;
7265 break;}
7266 case 630:
7267 #line 3363 "parse.y"
7268 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7269 break;}
7270 case 631:
7271 #line 3365 "parse.y"
7272 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7273 break;}
7274 case 632:
7275 #line 3367 "parse.y"
7276 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7277 break;}
7278 case 633:
7279 #line 3369 "parse.y"
7280 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7281 break;}
7282 case 634:
7283 #line 3371 "parse.y"
7284 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7285 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7286 ;
7287 break;}
7288 case 635:
7289 #line 3375 "parse.y"
7290 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7291 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7292 ;
7293 break;}
7294 case 637:
7295 #line 3384 "parse.y"
7296 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7297 break;}
7298 case 638:
7299 #line 3386 "parse.y"
7300 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7301 break;}
7302 case 639:
7303 #line 3392 "parse.y"
7304 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7305 break;}
7306 case 640:
7307 #line 3394 "parse.y"
7308 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7309 break;}
7310 case 641:
7311 #line 3396 "parse.y"
7312 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7313 break;}
7314 case 642:
7315 #line 3398 "parse.y"
7316 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7317 break;}
7318 case 643:
7319 #line 3400 "parse.y"
7320 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7321 break;}
7322 case 644:
7323 #line 3402 "parse.y"
7324 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7325 break;}
7326 case 645:
7327 #line 3404 "parse.y"
7328 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7329 break;}
7330 case 646:
7331 #line 3406 "parse.y"
7332 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7333 break;}
7334 case 647:
7335 #line 3408 "parse.y"
7336 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7337 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7338 ;
7339 break;}
7340 case 648:
7341 #line 3412 "parse.y"
7342 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7343 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7344 ;
7345 break;}
7346 case 650:
7347 #line 3421 "parse.y"
7348 { yyval.ttype = yyvsp[-1].ttype; ;
7349 break;}
7350 case 652:
7351 #line 3425 "parse.y"
7352 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7353 break;}
7354 case 653:
7355 #line 3427 "parse.y"
7356 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7357 break;}
7358 case 654:
7359 #line 3429 "parse.y"
7360 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7361 break;}
7362 case 655:
7363 #line 3431 "parse.y"
7364 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7365 break;}
7366 case 656:
7367 #line 3433 "parse.y"
7368 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7369 break;}
7370 case 657:
7371 #line 3435 "parse.y"
7372 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7373 break;}
7374 case 658:
7375 #line 3437 "parse.y"
7376 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7377 break;}
7378 case 659:
7379 #line 3439 "parse.y"
7380 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7381 break;}
7382 case 660:
7383 #line 3441 "parse.y"
7384 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7385 break;}
7386 case 666:
7387 #line 3465 "parse.y"
7388 { do_pushlevel (); ;
7389 break;}
7390 case 667:
7391 #line 3470 "parse.y"
7392 { yyval.ttype = do_poplevel (); ;
7393 break;}
7394 case 669:
7395 #line 3478 "parse.y"
7396 { if (pedantic)
7397 pedwarn ("ANSI C++ forbids label declarations"); ;
7398 break;}
7399 case 672:
7400 #line 3489 "parse.y"
7401 { tree link;
7402 for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7403 {
7404 tree label = shadow_label (TREE_VALUE (link));
7405 C_DECLARED_LABEL_FLAG (label) = 1;
7406 declare_nonlocal_label (label);
7407 }
7408 ;
7409 break;}
7410 case 673:
7411 #line 3503 "parse.y"
7412 {;
7413 break;}
7414 case 675:
7415 #line 3509 "parse.y"
7416 {
7417 if (processing_template_decl)
7418 {
7419 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7420 add_tree (yyval.ttype);
7421 }
7422 ;
7423 break;}
7424 case 676:
7425 #line 3517 "parse.y"
7426 {
7427 if (processing_template_decl)
7428 {
7429 TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7430 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7431 last_tree = yyvsp[-3].ttype;
7432 }
7433 yyval.ttype = yyvsp[0].ttype;
7434 ;
7435 break;}
7436 case 677:
7437 #line 3530 "parse.y"
7438 {
7439 if (processing_template_decl)
7440 {
7441 yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7442 NULL_TREE);
7443 add_tree (yyval.ttype);
7444 }
7445 cond_stmt_keyword = "if";
7446 ;
7447 break;}
7448 case 678:
7449 #line 3540 "parse.y"
7450 {
7451 if (processing_template_decl)
7452 {
7453 if (last_tree != yyvsp[-2].ttype)
7454 {
7455 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7456 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7457 last_tree = yyvsp[-2].ttype;
7458 }
7459 else
7460 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7461 }
7462 else
7463 {
7464 emit_line_note (input_filename, lineno);
7465 expand_start_cond (yyvsp[0].ttype, 0);
7466 }
7467 ;
7468 break;}
7469 case 679:
7470 #line 3559 "parse.y"
7471 {
7472 if (processing_template_decl)
7473 {
7474 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7475 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7476 yyval.ttype = last_tree = yyvsp[-4].ttype;
7477 }
7478 ;
7479 break;}
7480 case 680:
7481 #line 3571 "parse.y"
7482 { finish_stmt (); ;
7483 break;}
7484 case 681:
7485 #line 3573 "parse.y"
7486 {
7487 if (processing_template_decl)
7488 {
7489 yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7490 add_tree (yyval.ttype);
7491 }
7492 ;
7493 break;}
7494 case 682:
7495 #line 3581 "parse.y"
7496 {
7497 if (processing_template_decl)
7498 {
7499 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7500 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7501 last_tree = yyvsp[-2].ttype;
7502 }
7503 yyval.ttype = yyvsp[0].ttype;
7504 ;
7505 break;}
7506 case 683:
7507 #line 3594 "parse.y"
7508 { finish_stmt (); ;
7509 break;}
7510 case 685:
7511 #line 3600 "parse.y"
7512 { finish_stmt (); ;
7513 break;}
7514 case 686:
7515 #line 3602 "parse.y"
7516 {
7517 tree expr = yyvsp[-1].ttype;
7518 if (! processing_template_decl)
7519 {
7520 emit_line_note (input_filename, lineno);
7521 /* Do default conversion if safe and possibly important,
7522 in case within ({...}). */
7523 if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7524 && lvalue_p (expr))
7525 || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7526 expr = default_conversion (expr);
7527 }
7528 cplus_expand_expr_stmt (expr);
7529 clear_momentary ();
7530 finish_stmt (); ;
7531 break;}
7532 case 687:
7533 #line 3618 "parse.y"
7534 { if (! processing_template_decl) expand_start_else (); ;
7535 break;}
7536 case 688:
7537 #line 3620 "parse.y"
7538 {
7539 if (processing_template_decl)
7540 {
7541 TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7542 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7543 last_tree = yyvsp[-3].ttype;
7544 }
7545 else
7546 expand_end_cond ();
7547 ;
7548 break;}
7549 case 689:
7550 #line 3631 "parse.y"
7551 { finish_stmt (); ;
7552 break;}
7553 case 690:
7554 #line 3633 "parse.y"
7555 { if (! processing_template_decl) expand_end_cond ();
7556 do_poplevel ();
7557 finish_stmt (); ;
7558 break;}
7559 case 691:
7560 #line 3637 "parse.y"
7561 {
7562 if (processing_template_decl)
7563 {
7564 yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7565 add_tree (yyval.ttype);
7566 }
7567 else
7568 {
7569 emit_nop ();
7570 emit_line_note (input_filename, lineno);
7571 expand_start_loop (1);
7572 }
7573 cond_stmt_keyword = "while";
7574 ;
7575 break;}
7576 case 692:
7577 #line 3652 "parse.y"
7578 {
7579 if (processing_template_decl)
7580 {
7581 if (last_tree != yyvsp[-2].ttype)
7582 {
7583 TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7584 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7585 last_tree = yyvsp[-2].ttype;
7586 }
7587 else
7588 TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7589 }
7590 else
7591 {
7592 emit_line_note (input_filename, lineno);
7593 expand_exit_loop_if_false (0, yyvsp[0].ttype);
7594 }
7595 ;
7596 break;}
7597 case 693:
7598 #line 3671 "parse.y"
7599 {
7600 if (processing_template_decl)
7601 {
7602 TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7603 TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7604 last_tree = yyvsp[-5].ttype;
7605 }
7606 else
7607 expand_end_loop ();
7608 finish_stmt ();
7609 ;
7610 break;}
7611 case 694:
7612 #line 3683 "parse.y"
7613 {
7614 if (processing_template_decl)
7615 {
7616 yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7617 add_tree (yyval.ttype);
7618 }
7619 else
7620 {
7621 emit_nop ();
7622 emit_line_note (input_filename, lineno);
7623 expand_start_loop_continue_elsewhere (1);
7624 }
7625 ;
7626 break;}
7627 case 695:
7628 #line 3697 "parse.y"
7629 {
7630 if (processing_template_decl)
7631 {
7632 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7633 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7634 last_tree = yyvsp[-2].ttype;
7635 }
7636 else
7637 {
7638 expand_loop_continue_here ();
7639 cond_stmt_keyword = "do";
7640 }
7641 ;
7642 break;}
7643 case 696:
7644 #line 3711 "parse.y"
7645 {
7646 if (processing_template_decl)
7647 TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7648 else
7649 {
7650 emit_line_note (input_filename, lineno);
7651 expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7652 expand_end_loop ();
7653 }
7654 clear_momentary ();
7655 finish_stmt ();
7656 ;
7657 break;}
7658 case 697:
7659 #line 3724 "parse.y"
7660 { if (processing_template_decl)
7661 {
7662 yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
7663 NULL_TREE, NULL_TREE);
7664 add_tree (yyval.ttype);
7665 }
7666 else
7667 emit_line_note (input_filename, lineno);
7668 if (flag_new_for_scope > 0)
7669 {
7670 /* Conditionalize .pushlevel */
7671 pushlevel (0);
7672 note_level_for_for ();
7673 clear_last_expr ();
7674 push_momentary ();
7675 expand_start_bindings (0);
7676 }
7677 ;
7678 break;}
7679 case 698:
7680 #line 3743 "parse.y"
7681 {
7682 if (processing_template_decl)
7683 {
7684 if (last_tree != yyvsp[-2].ttype)
7685 {
7686 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7687 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7688 last_tree = yyvsp[-2].ttype;
7689 }
7690 }
7691 else
7692 {
7693 emit_nop ();
7694 emit_line_note (input_filename, lineno);
7695 expand_start_loop_continue_elsewhere (1);
7696 }
7697 ;
7698 break;}
7699 case 699:
7700 #line 3761 "parse.y"
7701 {
7702 if (processing_template_decl)
7703 {
7704 if (last_tree != yyvsp[-6].ttype)
7705 {
7706 TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7707 TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7708 last_tree = yyvsp[-6].ttype;
7709 }
7710 else
7711 TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7712 }
7713 else
7714 {
7715 emit_line_note (input_filename, lineno);
7716 if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7717 }
7718 ;
7719 break;}
7720 case 700:
7721 #line 3782 "parse.y"
7722 {
7723 if (processing_template_decl)
7724 TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7725 push_momentary ();
7726 ;
7727 break;}
7728 case 701:
7729 #line 3788 "parse.y"
7730 {
7731 if (processing_template_decl)
7732 {
7733 TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7734 TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7735 last_tree = yyvsp[-12].ttype;
7736 }
7737 else
7738 {
7739 emit_line_note (input_filename, lineno);
7740 expand_loop_continue_here ();
7741 if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7742 expand_end_loop ();
7743 }
7744 pop_momentary ();
7745 if (flag_new_for_scope > 0)
7746 {
7747 do_poplevel ();
7748 }
7749 finish_stmt (); ;
7750 break;}
7751 case 702:
7752 #line 3809 "parse.y"
7753 {
7754 if (processing_template_decl)
7755 {
7756 yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7757 add_tree (yyval.ttype);
7758 }
7759 else
7760 {
7761 emit_line_note (input_filename, lineno);
7762 c_expand_start_case (yyvsp[-1].ttype);
7763 }
7764 push_switch ();
7765 /* Don't let the tree nodes for $4 be discarded by
7766 clear_momentary during the parsing of the next stmt. */
7767 push_momentary ();
7768 ;
7769 break;}
7770 case 703:
7771 #line 3826 "parse.y"
7772 {
7773 if (processing_template_decl)
7774 {
7775 TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7776 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7777 last_tree = yyvsp[-1].ttype;
7778 }
7779 else
7780 expand_end_case (yyvsp[-3].ttype);
7781 pop_momentary ();
7782 pop_switch ();
7783 ;
7784 break;}
7785 case 704:
7786 #line 3839 "parse.y"
7787 { finish_stmt (); ;
7788 break;}
7789 case 705:
7790 #line 3841 "parse.y"
7791 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7792 break;}
7793 case 707:
7794 #line 3844 "parse.y"
7795 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7796 break;}
7797 case 709:
7798 #line 3847 "parse.y"
7799 { do_case (NULL_TREE, NULL_TREE); ;
7800 break;}
7801 case 711:
7802 #line 3850 "parse.y"
7803 { emit_line_note (input_filename, lineno);
7804 if (processing_template_decl)
7805 add_tree (build_min_nt (BREAK_STMT));
7806 else if ( ! expand_exit_something ())
7807 error ("break statement not within loop or switch"); ;
7808 break;}
7809 case 712:
7810 #line 3856 "parse.y"
7811 { emit_line_note (input_filename, lineno);
7812 if (processing_template_decl)
7813 add_tree (build_min_nt (CONTINUE_STMT));
7814 else if (! expand_continue_loop (0))
7815 error ("continue statement not within a loop"); ;
7816 break;}
7817 case 713:
7818 #line 3862 "parse.y"
7819 { emit_line_note (input_filename, lineno);
7820 c_expand_return (NULL_TREE); ;
7821 break;}
7822 case 714:
7823 #line 3865 "parse.y"
7824 { emit_line_note (input_filename, lineno);
7825 c_expand_return (yyvsp[-1].ttype);
7826 finish_stmt ();
7827 ;
7828 break;}
7829 case 715:
7830 #line 3870 "parse.y"
7831 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7832 emit_line_note (input_filename, lineno);
7833 expand_asm (yyvsp[-2].ttype);
7834 finish_stmt ();
7835 ;
7836 break;}
7837 case 716:
7838 #line 3877 "parse.y"
7839 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7840 emit_line_note (input_filename, lineno);
7841 c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7842 yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7843 input_filename, lineno);
7844 finish_stmt ();
7845 ;
7846 break;}
7847 case 717:
7848 #line 3886 "parse.y"
7849 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7850 emit_line_note (input_filename, lineno);
7851 c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7852 yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7853 input_filename, lineno);
7854 finish_stmt ();
7855 ;
7856 break;}
7857 case 718:
7858 #line 3896 "parse.y"
7859 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7860 emit_line_note (input_filename, lineno);
7861 c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7862 yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7863 input_filename, lineno);
7864 finish_stmt ();
7865 ;
7866 break;}
7867 case 719:
7868 #line 3904 "parse.y"
7869 {
7870 if (processing_template_decl)
7871 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7872 else
7873 { emit_line_note (input_filename, lineno);
7874 expand_computed_goto (yyvsp[-1].ttype); }
7875 ;
7876 break;}
7877 case 720:
7878 #line 3912 "parse.y"
7879 {
7880 if (processing_template_decl)
7881 add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7882 else
7883 {
7884 tree decl;
7885 emit_line_note (input_filename, lineno);
7886 decl = lookup_label (yyvsp[-1].ttype);
7887 TREE_USED (decl) = 1;
7888 expand_goto (decl);
7889 }
7890 ;
7891 break;}
7892 case 721:
7893 #line 3925 "parse.y"
7894 { finish_stmt (); ;
7895 break;}
7896 case 722:
7897 #line 3927 "parse.y"
7898 { error ("label must be followed by statement");
7899 yyungetc ('}', 0);
7900 finish_stmt (); ;
7901 break;}
7902 case 723:
7903 #line 3931 "parse.y"
7904 { finish_stmt (); ;
7905 break;}
7906 case 725:
7907 #line 3937 "parse.y"
7908 {
7909 if (! current_function_parms_stored)
7910 store_parm_decls ();
7911 expand_start_early_try_stmts ();
7912 ;
7913 break;}
7914 case 726:
7915 #line 3943 "parse.y"
7916 { expand_start_all_catch (); ;
7917 break;}
7918 case 727:
7919 #line 3945 "parse.y"
7920 {
7921 int nested = (hack_decl_function_context
7922 (current_function_decl) != NULL_TREE);
7923 expand_end_all_catch ();
7924 finish_function (lineno, (int)yyvsp[-3].itype, nested);
7925 ;
7926 break;}
7927 case 728:
7928 #line 3955 "parse.y"
7929 {
7930 if (processing_template_decl)
7931 {
7932 yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7933 NULL_TREE);
7934 add_tree (yyval.ttype);
7935 }
7936 else
7937 {
7938 emit_line_note (input_filename, lineno);
7939 expand_start_try_stmts ();
7940 }
7941 ;
7942 break;}
7943 case 729:
7944 #line 3969 "parse.y"
7945 {
7946 if (processing_template_decl)
7947 {
7948 TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7949 TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7950 last_tree = yyvsp[-1].ttype;
7951 }
7952 else
7953 expand_start_all_catch ();
7954 ;
7955 break;}
7956 case 730:
7957 #line 3980 "parse.y"
7958 {
7959 if (processing_template_decl)
7960 {
7961 TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7962 TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7963 last_tree = yyvsp[-3].ttype;
7964 }
7965 else
7966 expand_end_all_catch ();
7967 ;
7968 break;}
7969 case 733:
7970 #line 3999 "parse.y"
7971 {
7972 if (processing_template_decl)
7973 {
7974 yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7975 NULL_TREE);
7976 add_tree (yyval.ttype);
7977 }
7978 ;
7979 break;}
7980 case 734:
7981 #line 4008 "parse.y"
7982 {
7983 if (processing_template_decl)
7984 {
7985 TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7986 TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7987 last_tree = yyvsp[-2].ttype;
7988 }
7989 ;
7990 break;}
7991 case 735:
7992 #line 4017 "parse.y"
7993 {
7994 if (processing_template_decl)
7995 {
7996 TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7997 TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7998 last_tree = yyvsp[-4].ttype;
7999 }
8000 else
8001 expand_end_catch_block ();
8002 ;
8003 break;}
8004 case 739:
8005 #line 4037 "parse.y"
8006 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
8007 break;}
8008 case 740:
8009 #line 4053 "parse.y"
8010 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
8011 expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
8012 TREE_VALUE (yyvsp[-1].ftype.t)); ;
8013 break;}
8014 case 741:
8015 #line 4060 "parse.y"
8016 { tree label;
8017 do_label:
8018 label = define_label (input_filename, lineno, yyvsp[-1].ttype);
8019 if (label && ! minimal_parse_mode)
8020 expand_label (label);
8021 ;
8022 break;}
8023 case 742:
8024 #line 4067 "parse.y"
8025 { goto do_label; ;
8026 break;}
8027 case 743:
8028 #line 4069 "parse.y"
8029 { goto do_label; ;
8030 break;}
8031 case 744:
8032 #line 4071 "parse.y"
8033 { goto do_label; ;
8034 break;}
8035 case 745:
8036 #line 4076 "parse.y"
8037 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
8038 break;}
8039 case 747:
8040 #line 4079 "parse.y"
8041 { if (pedantic)
8042 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
8043 ;
8044 break;}
8045 case 748:
8046 #line 4088 "parse.y"
8047 { emit_line_note (input_filename, lineno);
8048 yyval.ttype = NULL_TREE; ;
8049 break;}
8050 case 749:
8051 #line 4091 "parse.y"
8052 { emit_line_note (input_filename, lineno); ;
8053 break;}
8054 case 750:
8055 #line 4096 "parse.y"
8056 { yyval.ttype = NULL_TREE; ;
8057 break;}
8058 case 752:
8059 #line 4099 "parse.y"
8060 { yyval.ttype = NULL_TREE; ;
8061 break;}
8062 case 753:
8063 #line 4106 "parse.y"
8064 { yyval.ttype = NULL_TREE; ;
8065 break;}
8066 case 756:
8067 #line 4113 "parse.y"
8068 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8069 break;}
8070 case 757:
8071 #line 4118 "parse.y"
8072 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8073 break;}
8074 case 758:
8075 #line 4123 "parse.y"
8076 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8077 break;}
8078 case 759:
8079 #line 4125 "parse.y"
8080 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8081 break;}
8082 case 760:
8083 #line 4136 "parse.y"
8084 {
8085 yyval.ttype = empty_parms();
8086 ;
8087 break;}
8088 case 762:
8089 #line 4141 "parse.y"
8090 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8091 TREE_PARMLIST (yyval.ttype) = 1;
8092 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8093 break;}
8094 case 763:
8095 #line 4150 "parse.y"
8096 {
8097 yyval.ttype = chainon (yyval.ttype, void_list_node);
8098 TREE_PARMLIST (yyval.ttype) = 1;
8099 ;
8100 break;}
8101 case 764:
8102 #line 4155 "parse.y"
8103 {
8104 TREE_PARMLIST (yyval.ttype) = 1;
8105 ;
8106 break;}
8107 case 765:
8108 #line 4160 "parse.y"
8109 {
8110 TREE_PARMLIST (yyval.ttype) = 1;
8111 ;
8112 break;}
8113 case 766:
8114 #line 4164 "parse.y"
8115 {
8116 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8117 TREE_PARMLIST (yyval.ttype) = 1;
8118 ;
8119 break;}
8120 case 767:
8121 #line 4169 "parse.y"
8122 {
8123 yyval.ttype = NULL_TREE;
8124 ;
8125 break;}
8126 case 768:
8127 #line 4173 "parse.y"
8128 {
8129 TREE_PARMLIST (yyval.ttype) = 1;
8130 ;
8131 break;}
8132 case 769:
8133 #line 4177 "parse.y"
8134 {
8135 TREE_PARMLIST (yyval.ttype) = 1;
8136 ;
8137 break;}
8138 case 770:
8139 #line 4181 "parse.y"
8140 {
8141 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8142 TREE_PARMLIST (yyval.ttype) = 1;
8143 ;
8144 break;}
8145 case 771:
8146 #line 4186 "parse.y"
8147 {
8148 /* This helps us recover from really nasty
8149 parse errors, for example, a missing right
8150 parenthesis. */
8151 yyerror ("possibly missing ')'");
8152 yyval.ttype = chainon (yyval.ttype, void_list_node);
8153 TREE_PARMLIST (yyval.ttype) = 1;
8154 yyungetc (':', 0);
8155 yychar = ')';
8156 ;
8157 break;}
8158 case 772:
8159 #line 4197 "parse.y"
8160 {
8161 /* This helps us recover from really nasty
8162 parse errors, for example, a missing right
8163 parenthesis. */
8164 yyerror ("possibly missing ')'");
8165 yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8166 TREE_PARMLIST (yyval.ttype) = 1;
8167 yyungetc (':', 0);
8168 yychar = ')';
8169 ;
8170 break;}
8171 case 773:
8172 #line 4212 "parse.y"
8173 { maybe_snarf_defarg (); ;
8174 break;}
8175 case 774:
8176 #line 4214 "parse.y"
8177 { yyval.ttype = yyvsp[0].ttype; ;
8178 break;}
8179 case 777:
8180 #line 4225 "parse.y"
8181 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8182 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8183 break;}
8184 case 778:
8185 #line 4228 "parse.y"
8186 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8187 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8188 break;}
8189 case 779:
8190 #line 4231 "parse.y"
8191 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8192 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8193 break;}
8194 case 780:
8195 #line 4234 "parse.y"
8196 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8197 break;}
8198 case 781:
8199 #line 4236 "parse.y"
8200 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8201 break;}
8202 case 783:
8203 #line 4242 "parse.y"
8204 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8205 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8206 break;}
8207 case 784:
8208 #line 4252 "parse.y"
8209 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8210 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8211 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8212 break;}
8213 case 785:
8214 #line 4256 "parse.y"
8215 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
8216 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8217 break;}
8218 case 786:
8219 #line 4259 "parse.y"
8220 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
8221 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8222 break;}
8223 case 787:
8224 #line 4262 "parse.y"
8225 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8226 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8227 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8228 break;}
8229 case 788:
8230 #line 4266 "parse.y"
8231 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8232 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
8233 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8234 break;}
8235 case 789:
8236 #line 4270 "parse.y"
8237 { tree specs = strip_attrs (yyvsp[-1].ttype);
8238 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8239 yyval.ftype.new_type_flag = 0; ;
8240 break;}
8241 case 790:
8242 #line 4277 "parse.y"
8243 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8244 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8245 break;}
8246 case 791:
8247 #line 4280 "parse.y"
8248 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8249 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8250 break;}
8251 case 794:
8252 #line 4291 "parse.y"
8253 { see_typename (); ;
8254 break;}
8255 case 795:
8256 #line 4296 "parse.y"
8257 {
8258 error ("type specifier omitted for parameter");
8259 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8260 ;
8261 break;}
8262 case 796:
8263 #line 4301 "parse.y"
8264 {
8265 error ("type specifier omitted for parameter");
8266 if (TREE_CODE (yyval.ttype) == SCOPE_REF
8267 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
8268 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
8269 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
8270 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8271 ;
8272 break;}
8273 case 797:
8274 #line 4313 "parse.y"
8275 { yyval.ttype = NULL_TREE; ;
8276 break;}
8277 case 798:
8278 #line 4315 "parse.y"
8279 { yyval.ttype = yyvsp[-1].ttype; ;
8280 break;}
8281 case 799:
8282 #line 4317 "parse.y"
8283 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8284 break;}
8285 case 800:
8286 #line 4322 "parse.y"
8287 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8288 break;}
8289 case 802:
8290 #line 4328 "parse.y"
8291 {
8292 TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8293 yyval.ttype = yyvsp[0].ttype;
8294 ;
8295 break;}
8296 case 803:
8297 #line 4336 "parse.y"
8298 { yyval.ttype = NULL_TREE; ;
8299 break;}
8300 case 804:
8301 #line 4338 "parse.y"
8302 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8303 break;}
8304 case 805:
8305 #line 4340 "parse.y"
8306 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8307 break;}
8308 case 806:
8309 #line 4342 "parse.y"
8310 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8311 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8312 ;
8313 break;}
8314 case 807:
8315 #line 4349 "parse.y"
8316 { got_scope = NULL_TREE; ;
8317 break;}
8318 case 808:
8319 #line 4354 "parse.y"
8320 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8321 break;}
8322 case 809:
8323 #line 4356 "parse.y"
8324 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8325 break;}
8326 case 810:
8327 #line 4358 "parse.y"
8328 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8329 break;}
8330 case 811:
8331 #line 4360 "parse.y"
8332 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8333 break;}
8334 case 812:
8335 #line 4362 "parse.y"
8336 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8337 break;}
8338 case 813:
8339 #line 4364 "parse.y"
8340 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8341 break;}
8342 case 814:
8343 #line 4366 "parse.y"
8344 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8345 break;}
8346 case 815:
8347 #line 4368 "parse.y"
8348 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8349 break;}
8350 case 816:
8351 #line 4370 "parse.y"
8352 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8353 break;}
8354 case 817:
8355 #line 4372 "parse.y"
8356 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8357 break;}
8358 case 818:
8359 #line 4374 "parse.y"
8360 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8361 break;}
8362 case 819:
8363 #line 4376 "parse.y"
8364 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8365 break;}
8366 case 820:
8367 #line 4378 "parse.y"
8368 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8369 break;}
8370 case 821:
8371 #line 4380 "parse.y"
8372 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8373 break;}
8374 case 822:
8375 #line 4382 "parse.y"
8376 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8377 break;}
8378 case 823:
8379 #line 4384 "parse.y"
8380 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8381 break;}
8382 case 824:
8383 #line 4386 "parse.y"
8384 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8385 break;}
8386 case 825:
8387 #line 4388 "parse.y"
8388 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8389 break;}
8390 case 826:
8391 #line 4390 "parse.y"
8392 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8393 break;}
8394 case 827:
8395 #line 4392 "parse.y"
8396 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8397 break;}
8398 case 828:
8399 #line 4394 "parse.y"
8400 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8401 break;}
8402 case 829:
8403 #line 4396 "parse.y"
8404 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8405 break;}
8406 case 830:
8407 #line 4398 "parse.y"
8408 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8409 break;}
8410 case 831:
8411 #line 4400 "parse.y"
8412 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8413 break;}
8414 case 832:
8415 #line 4402 "parse.y"
8416 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8417 break;}
8418 case 833:
8419 #line 4404 "parse.y"
8420 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8421 break;}
8422 case 834:
8423 #line 4406 "parse.y"
8424 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8425 break;}
8426 case 835:
8427 #line 4408 "parse.y"
8428 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8429 break;}
8430 case 836:
8431 #line 4410 "parse.y"
8432 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8433 break;}
8434 case 837:
8435 #line 4412 "parse.y"
8436 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8437 break;}
8438 case 838:
8439 #line 4414 "parse.y"
8440 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8441 break;}
8442 case 839:
8443 #line 4416 "parse.y"
8444 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8445 break;}
8446 case 840:
8447 #line 4418 "parse.y"
8448 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8449 break;}
8450 case 841:
8451 #line 4421 "parse.y"
8452 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8453 break;}
8454 case 842:
8455 #line 4423 "parse.y"
8456 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8457 break;}
8458 }
8459 /* the action file gets copied in in place of this dollarsign */
8460 #line 498 "/usr/share/bison.simple"
8461 \f
8462 yyvsp -= yylen;
8463 yyssp -= yylen;
8464 #ifdef YYLSP_NEEDED
8465 yylsp -= yylen;
8466 #endif
8467
8468 #if YYDEBUG != 0
8469 if (yydebug)
8470 {
8471 short *ssp1 = yyss - 1;
8472 fprintf (stderr, "state stack now");
8473 while (ssp1 != yyssp)
8474 fprintf (stderr, " %d", *++ssp1);
8475 fprintf (stderr, "\n");
8476 }
8477 #endif
8478
8479 *++yyvsp = yyval;
8480
8481 #ifdef YYLSP_NEEDED
8482 yylsp++;
8483 if (yylen == 0)
8484 {
8485 yylsp->first_line = yylloc.first_line;
8486 yylsp->first_column = yylloc.first_column;
8487 yylsp->last_line = (yylsp-1)->last_line;
8488 yylsp->last_column = (yylsp-1)->last_column;
8489 yylsp->text = 0;
8490 }
8491 else
8492 {
8493 yylsp->last_line = (yylsp+yylen-1)->last_line;
8494 yylsp->last_column = (yylsp+yylen-1)->last_column;
8495 }
8496 #endif
8497
8498 /* Now "shift" the result of the reduction.
8499 Determine what state that goes to,
8500 based on the state we popped back to
8501 and the rule number reduced by. */
8502
8503 yyn = yyr1[yyn];
8504
8505 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8506 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8507 yystate = yytable[yystate];
8508 else
8509 yystate = yydefgoto[yyn - YYNTBASE];
8510
8511 goto yynewstate;
8512
8513 yyerrlab: /* here on detecting error */
8514
8515 if (! yyerrstatus)
8516 /* If not already recovering from an error, report this error. */
8517 {
8518 ++yynerrs;
8519
8520 #ifdef YYERROR_VERBOSE
8521 yyn = yypact[yystate];
8522
8523 if (yyn > YYFLAG && yyn < YYLAST)
8524 {
8525 int size = 0;
8526 char *msg;
8527 int x, count;
8528
8529 count = 0;
8530 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8531 for (x = (yyn < 0 ? -yyn : 0);
8532 x < (sizeof(yytname) / sizeof(char *)); x++)
8533 if (yycheck[x + yyn] == x)
8534 size += strlen(yytname[x]) + 15, count++;
8535 msg = (char *) malloc(size + 15);
8536 if (msg != 0)
8537 {
8538 strcpy(msg, "parse error");
8539
8540 if (count < 5)
8541 {
8542 count = 0;
8543 for (x = (yyn < 0 ? -yyn : 0);
8544 x < (sizeof(yytname) / sizeof(char *)); x++)
8545 if (yycheck[x + yyn] == x)
8546 {
8547 strcat(msg, count == 0 ? ", expecting `" : " or `");
8548 strcat(msg, yytname[x]);
8549 strcat(msg, "'");
8550 count++;
8551 }
8552 }
8553 yyerror(msg);
8554 free(msg);
8555 }
8556 else
8557 yyerror ("parse error; also virtual memory exceeded");
8558 }
8559 else
8560 #endif /* YYERROR_VERBOSE */
8561 yyerror("parse error");
8562 }
8563
8564 goto yyerrlab1;
8565 yyerrlab1: /* here on error raised explicitly by an action */
8566
8567 if (yyerrstatus == 3)
8568 {
8569 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8570
8571 /* return failure if at end of input */
8572 if (yychar == YYEOF)
8573 YYABORT;
8574
8575 #if YYDEBUG != 0
8576 if (yydebug)
8577 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8578 #endif
8579
8580 yychar = YYEMPTY;
8581 }
8582
8583 /* Else will try to reuse lookahead token
8584 after shifting the error token. */
8585
8586 yyerrstatus = 3; /* Each real token shifted decrements this */
8587
8588 goto yyerrhandle;
8589
8590 yyerrdefault: /* current state does not do anything special for the error token. */
8591
8592 #if 0
8593 /* This is wrong; only states that explicitly want error tokens
8594 should shift them. */
8595 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8596 if (yyn) goto yydefault;
8597 #endif
8598
8599 yyerrpop: /* pop the current state because it cannot handle the error token */
8600
8601 if (yyssp == yyss) YYABORT;
8602 yyvsp--;
8603 yystate = *--yyssp;
8604 #ifdef YYLSP_NEEDED
8605 yylsp--;
8606 #endif
8607
8608 #if YYDEBUG != 0
8609 if (yydebug)
8610 {
8611 short *ssp1 = yyss - 1;
8612 fprintf (stderr, "Error: state stack now");
8613 while (ssp1 != yyssp)
8614 fprintf (stderr, " %d", *++ssp1);
8615 fprintf (stderr, "\n");
8616 }
8617 #endif
8618
8619 yyerrhandle:
8620
8621 yyn = yypact[yystate];
8622 if (yyn == YYFLAG)
8623 goto yyerrdefault;
8624
8625 yyn += YYTERROR;
8626 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8627 goto yyerrdefault;
8628
8629 yyn = yytable[yyn];
8630 if (yyn < 0)
8631 {
8632 if (yyn == YYFLAG)
8633 goto yyerrpop;
8634 yyn = -yyn;
8635 goto yyreduce;
8636 }
8637 else if (yyn == 0)
8638 goto yyerrpop;
8639
8640 if (yyn == YYFINAL)
8641 YYACCEPT;
8642
8643 #if YYDEBUG != 0
8644 if (yydebug)
8645 fprintf(stderr, "Shifting error token, ");
8646 #endif
8647
8648 *++yyvsp = yylval;
8649 #ifdef YYLSP_NEEDED
8650 *++yylsp = yylloc;
8651 #endif
8652
8653 yystate = yyn;
8654 goto yynewstate;
8655 }
8656 #line 4426 "parse.y"
8657
8658
8659 #ifdef SPEW_DEBUG
8660 const char *
8661 debug_yytranslate (value)
8662 int value;
8663 {
8664 return yytname[YYTRANSLATE (value)];
8665 }
8666
8667 #endif