OSDN Git Service

Update mainline egcs to gcc2 snapshot 971021.
[pf3gnuchains/gcc-fork.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 extern tree last_tree;
128
129 /* FSF LOCAL dje prefix attributes */
130 extern tree strip_attrs         PROTO((tree));
131 /* END FSF LOCAL */
132
133 /* Like YYERROR but do call yyerror.  */
134 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
135
136 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
137 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
138
139 /* Contains the statement keyword (if/while/do) to include in an
140    error message if the user supplies an empty conditional expression.  */
141 static char *cond_stmt_keyword;
142
143 static tree empty_parms PROTO((void));
144
145 /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
146 int have_extern_spec;
147 int used_extern_spec;
148
149 /* Cons up an empty parameter list.  */
150 #ifdef __GNUC__
151 __inline
152 #endif
153 static tree
154 empty_parms ()
155 {
156   tree parms;
157
158   if (strict_prototype
159       || current_class_type != NULL)
160     parms = void_list_node;
161   else
162     parms = NULL_TREE;
163   return parms;
164 }
165
166 #line 101 "parse.y"
167 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
168 #line 289 "parse.y"
169
170 /* List of types and structure classes of the current declaration.  */
171 static tree current_declspecs = NULL_TREE;
172 /* List of prefix attributes in effect.
173    Prefix attributes are parsed by the reserved_declspecs and declmods
174    rules.  They create a list that contains *both* declspecs and attrs.  */
175 /* ??? It is not clear yet that all cases where an attribute can now appear in
176    a declspec list have been updated.  */
177 static tree prefix_attributes = NULL_TREE;
178
179 /* When defining an aggregate, this is the most recent one being defined.  */
180 static tree current_aggr;
181
182 /* Tell yyparse how to print a token's value, if yydebug is set.  */
183
184 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
185 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
186 extern tree combine_strings             PROTO((tree));
187 #include <stdio.h>
188
189 #ifndef __cplusplus
190 #ifndef __STDC__
191 #define const
192 #endif
193 #endif
194
195
196
197 #define YYFINAL         1529
198 #define YYFLAG          -32768
199 #define YYNTBASE        114
200
201 #define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 376)
202
203 static const char yytranslate[] = {     0,
204      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
205      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
206      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
207      2,     2,   112,     2,     2,     2,    83,    71,     2,    94,
208    110,    81,    79,    60,    80,    93,    82,     2,     2,     2,
209      2,     2,     2,     2,     2,     2,     2,    63,    61,    75,
210     65,    76,    66,     2,     2,     2,     2,     2,     2,     2,
211      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
212      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
213     95,     2,   113,    70,     2,     2,     2,     2,     2,     2,
214      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
215      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
216      2,     2,    59,    69,   111,    89,     2,     2,     2,     2,
217      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
218      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
219      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
220      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
221      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
222      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
223      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
224      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
225      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
226      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
227      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
228      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
229      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
230      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
231     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
232     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
233     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
234     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
235     56,    57,    58,    62,    64,    67,    68,    72,    73,    74,
236     77,    78,    84,    85,    86,    87,    88,    90,    91,    92,
237     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
238    106,   107,   108,   109
239 };
240
241 #if YYDEBUG != 0
242 static const short yyprhs[] = {     0,
243      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
244     17,    19,    21,    22,    25,    28,    30,    32,    38,    43,
245     49,    54,    55,    62,    63,    69,    75,    78,    83,    86,
246     89,    93,    97,    99,   101,   104,   107,   109,   112,   113,
247    119,   123,   125,   129,   131,   134,   136,   139,   141,   145,
248    147,   151,   154,   157,   160,   164,   168,   171,   174,   177,
249    180,   183,   185,   187,   189,   190,   192,   195,   196,   198,
250    203,   207,   211,   212,   221,   227,   228,   238,   245,   246,
251    255,   261,   262,   272,   279,   282,   285,   287,   290,   292,
252    299,   304,   311,   316,   319,   321,   324,   327,   329,   332,
253    334,   337,   340,   343,   348,   351,   355,   356,   357,   359,
254    363,   366,   370,   372,   377,   380,   385,   388,   393,   396,
255    398,   400,   402,   404,   406,   408,   410,   412,   414,   416,
256    418,   422,   426,   429,   432,   437,   442,   446,   450,   455,
257    459,   464,   468,   470,   475,   479,   481,   483,   485,   489,
258    491,   493,   495,   497,   499,   501,   503,   505,   507,   509,
259    513,   515,   519,   520,   522,   524,   525,   533,   535,   537,
260    541,   546,   550,   551,   555,   557,   561,   565,   569,   573,
261    575,   577,   579,   582,   585,   588,   591,   594,   597,   600,
262    605,   608,   613,   616,   620,   624,   629,   634,   640,   646,
263    653,   656,   661,   667,   670,   673,   677,   681,   685,   687,
264    691,   694,   698,   703,   705,   708,   714,   716,   720,   724,
265    728,   732,   736,   740,   744,   748,   752,   756,   760,   764,
266    768,   772,   776,   780,   784,   788,   792,   798,   802,   806,
267    808,   811,   815,   817,   819,   821,   823,   825,   830,   834,
268    839,   843,   849,   855,   861,   863,   865,   867,   869,   872,
269    875,   879,   884,   889,   891,   893,   895,   899,   901,   903,
270    905,   907,   911,   915,   919,   920,   925,   930,   933,   938,
271    941,   944,   946,   951,   953,   961,   969,   977,   985,   990,
272    995,   998,  1001,  1003,  1008,  1011,  1014,  1020,  1024,  1027,
273   1030,  1036,  1040,  1046,  1050,  1055,  1062,  1065,  1067,  1070,
274   1072,  1075,  1077,  1079,  1081,  1084,  1085,  1088,  1091,  1095,
275   1099,  1103,  1106,  1109,  1112,  1114,  1116,  1118,  1121,  1124,
276   1127,  1130,  1132,  1134,  1136,  1138,  1141,  1144,  1148,  1152,
277   1156,  1161,  1163,  1166,  1169,  1172,  1174,  1176,  1178,  1181,
278   1184,  1187,  1189,  1191,  1194,  1197,  1201,  1203,  1206,  1208,
279   1210,  1212,  1217,  1222,  1227,  1232,  1234,  1236,  1238,  1240,
280   1244,  1246,  1250,  1252,  1256,  1257,  1262,  1263,  1270,  1274,
281   1275,  1282,  1286,  1287,  1294,  1298,  1299,  1306,  1310,  1311,
282   1313,  1315,  1318,  1325,  1327,  1331,  1332,  1334,  1339,  1346,
283   1351,  1353,  1355,  1357,  1359,  1361,  1365,  1366,  1369,  1371,
284   1374,  1378,  1383,  1385,  1387,  1391,  1396,  1403,  1407,  1413,
285   1415,  1420,  1424,  1428,  1429,  1433,  1437,  1441,  1442,  1445,
286   1448,  1449,  1457,  1462,  1463,  1470,  1474,  1477,  1480,  1483,
287   1484,  1485,  1486,  1497,  1499,  1500,  1502,  1503,  1505,  1507,
288   1510,  1513,  1516,  1519,  1522,  1525,  1529,  1534,  1538,  1541,
289   1545,  1546,  1548,  1552,  1555,  1558,  1560,  1562,  1563,  1566,
290   1570,  1572,  1577,  1579,  1583,  1585,  1587,  1592,  1597,  1600,
291   1603,  1607,  1611,  1613,  1614,  1616,  1619,  1624,  1628,  1630,
292   1633,  1636,  1639,  1642,  1645,  1648,  1651,  1653,  1656,  1659,
293   1662,  1667,  1672,  1675,  1677,  1683,  1688,  1690,  1693,  1694,
294   1696,  1700,  1701,  1703,  1707,  1709,  1711,  1713,  1715,  1720,
295   1725,  1730,  1735,  1740,  1744,  1749,  1754,  1759,  1764,  1768,
296   1770,  1774,  1776,  1780,  1783,  1785,  1792,  1793,  1796,  1798,
297   1801,  1802,  1805,  1810,  1815,  1818,  1823,  1827,  1831,  1834,
298   1837,  1841,  1843,  1845,  1848,  1850,  1852,  1855,  1858,  1863,
299   1868,  1872,  1876,  1879,  1881,  1885,  1889,  1892,  1895,  1899,
300   1901,  1905,  1909,  1912,  1915,  1919,  1921,  1926,  1930,  1935,
301   1939,  1941,  1944,  1947,  1950,  1953,  1956,  1958,  1961,  1966,
302   1971,  1974,  1976,  1978,  1980,  1982,  1985,  1988,  1991,  1994,
303   1997,  1999,  2002,  2005,  2007,  2010,  2013,  2016,  2019,  2022,
304   2025,  2028,  2031,  2033,  2036,  2039,  2043,  2045,  2049,  2052,
305   2056,  2059,  2062,  2066,  2068,  2072,  2077,  2081,  2084,  2087,
306   2089,  2093,  2096,  2099,  2101,  2104,  2108,  2110,  2114,  2116,
307   2123,  2128,  2133,  2137,  2143,  2147,  2151,  2155,  2158,  2160,
308   2162,  2165,  2168,  2171,  2172,  2173,  2174,  2176,  2178,  2181,
309   2185,  2187,  2190,  2191,  2197,  2198,  2199,  2206,  2208,  2209,
310   2214,  2216,  2218,  2220,  2223,  2224,  2225,  2232,  2234,  2235,
311   2236,  2244,  2245,  2246,  2254,  2255,  2256,  2257,  2258,  2273,
312   2274,  2275,  2285,  2286,  2292,  2293,  2301,  2302,  2307,  2310,
313   2313,  2316,  2320,  2327,  2336,  2347,  2360,  2365,  2369,  2372,
314   2375,  2377,  2379,  2380,  2381,  2388,  2389,  2390,  2396,  2398,
315   2401,  2402,  2403,  2404,  2413,  2415,  2417,  2421,  2425,  2428,
316   2431,  2434,  2437,  2440,  2442,  2445,  2446,  2448,  2449,  2451,
317   2453,  2454,  2456,  2458,  2462,  2467,  2469,  2473,  2474,  2476,
318   2478,  2480,  2483,  2486,  2489,  2491,  2493,  2496,  2499,  2502,
319   2505,  2506,  2510,  2512,  2514,  2516,  2519,  2522,  2525,  2530,
320   2533,  2536,  2539,  2542,  2545,  2548,  2550,  2553,  2555,  2558,
321   2560,  2562,  2563,  2564,  2566,  2567,  2572,  2575,  2577,  2579,
322   2583,  2584,  2588,  2592,  2596,  2598,  2601,  2604,  2607,  2610,
323   2613,  2616,  2619,  2622,  2625,  2628,  2631,  2634,  2637,  2640,
324   2643,  2646,  2649,  2652,  2655,  2658,  2661,  2664,  2667,  2671,
325   2674,  2677,  2680,  2683,  2687,  2690,  2693,  2698,  2703,  2707
326 };
327
328 static const short yyrhs[] = {    -1,
329    115,     0,     0,   116,   122,     0,   115,   122,     0,   115,
330      0,     0,     0,     0,    33,     0,    27,     0,    28,     0,
331      0,   123,   124,     0,   140,   139,     0,   136,     0,   135,
332      0,   121,    94,   194,   110,    61,     0,   129,    59,   117,
333    111,     0,   129,   118,   140,   119,   139,     0,   129,   118,
334    136,   119,     0,     0,    45,   155,    59,   125,   117,   111,
335      0,     0,    45,    59,   126,   117,   111,     0,    45,   155,
336     65,   128,    61,     0,   127,    61,     0,    47,    45,   128,
337     61,     0,   120,   124,     0,    47,   287,     0,    47,   300,
338    287,     0,    47,   300,   185,     0,   185,     0,   287,     0,
339    300,   287,     0,   300,   185,     0,   100,     0,   129,   100,
340      0,     0,    49,    75,   131,   132,    76,     0,    49,    75,
341     76,     0,   134,     0,   132,    60,   134,     0,   244,     0,
342    244,   155,     0,    46,     0,    46,   155,     0,   133,     0,
343    133,    65,   200,     0,   367,     0,   367,    65,   181,     0,
344    130,   124,     0,   130,     1,     0,   211,    61,     0,   204,
345    210,    61,     0,   201,   209,    61,     0,   204,    61,     0,
346    158,    61,     0,   201,    61,     0,     1,    61,     0,     1,
347    111,     0,    61,     0,   195,     0,   151,     0,     0,   150,
348      0,   150,    61,     0,     0,   109,     0,   146,   138,   137,
349    312,     0,   146,   138,   337,     0,   146,   138,     1,     0,
350      0,   292,     5,    94,   142,   358,   110,   274,   370,     0,
351    292,     5,    48,   274,   370,     0,     0,   300,   292,     5,
352     94,   143,   358,   110,   274,   370,     0,   300,   292,     5,
353     48,   274,   370,     0,     0,   292,   160,    94,   144,   358,
354    110,   274,   370,     0,   292,   160,    48,   274,   370,     0,
355      0,   300,   292,   160,    94,   145,   358,   110,   274,   370,
356      0,   300,   292,   160,    48,   274,   370,     0,   201,   198,
357      0,   204,   284,     0,   284,     0,   204,   141,     0,   141,
358      0,     5,    94,   358,   110,   274,   370,     0,     5,    48,
359    274,   370,     0,   160,    94,   358,   110,   274,   370,     0,
360    160,    48,   274,   370,     0,   204,   147,     0,   147,     0,
361    201,   198,     0,   204,   284,     0,   284,     0,   204,   141,
362      0,   141,     0,   130,   148,     0,    25,     3,     0,   149,
363    228,     0,   149,    94,   175,   110,     0,   149,    48,     0,
364     63,   152,   153,     0,     0,     0,   154,     0,   153,    60,
365    154,     0,   153,     1,     0,    94,   175,   110,     0,    48,
366      0,   156,    94,   175,   110,     0,   156,    48,     0,   280,
367     94,   175,   110,     0,   280,    48,     0,   294,    94,   175,
368    110,     0,   294,    48,     0,     3,     0,     4,     0,     5,
369      0,    57,     0,    58,     0,     3,     0,    57,     0,    58,
370      0,   106,     0,   105,     0,   107,     0,    49,   207,    61,
371      0,    49,   201,   198,     0,    49,   284,     0,    49,   141,
372      0,     7,    49,   207,    61,     0,     7,    49,   201,   198,
373      0,     7,    49,   284,     0,     7,    49,   141,     0,    57,
374     75,   162,   161,     0,    57,    75,   161,     0,     4,    75,
375    162,   161,     0,     4,    75,   161,     0,   160,     0,     5,
376     75,   162,   161,     0,     5,    75,   161,     0,    76,     0,
377     78,     0,   163,     0,   162,    60,   163,     0,   200,     0,
378    181,     0,    80,     0,    79,     0,    87,     0,    88,     0,
379    112,     0,   174,     0,   181,     0,    48,     0,    94,   165,
380    110,     0,    48,     0,    94,   169,   110,     0,     0,   169,
381      0,     1,     0,     0,   348,   198,   212,   221,    65,   170,
382    229,     0,   165,     0,   111,     0,   309,   305,   111,     0,
383    309,   305,     1,   111,     0,   309,     1,   111,     0,     0,
384     59,   173,   171,     0,   321,     0,   181,    60,   181,     0,
385    181,    60,     1,     0,   174,    60,   181,     0,   174,    60,
386      1,     0,   181,     0,   174,     0,   189,     0,   120,   180,
387      0,    81,   180,     0,    71,   180,     0,    89,   180,     0,
388    164,   180,     0,    68,   155,     0,    13,   176,     0,    13,
389     94,   200,   110,     0,    30,   176,     0,    30,    94,   200,
390    110,     0,   191,   273,     0,   191,   273,   178,     0,   191,
391    177,   273,     0,   191,   177,   273,   178,     0,   191,    94,
392    200,   110,     0,   191,    94,   200,   110,   178,     0,   191,
393    177,    94,   200,   110,     0,   191,   177,    94,   200,   110,
394    178,     0,   192,   180,     0,   192,    95,   113,   180,     0,
395    192,    95,   165,   113,   180,     0,    35,   180,     0,    36,
396    180,     0,    94,   175,   110,     0,    59,   175,   111,     0,
397     94,   175,   110,     0,    48,     0,    94,   207,   110,     0,
398     65,   229,     0,    94,   200,   110,     0,   179,    94,   200,
399    110,     0,   176,     0,   179,   176,     0,   179,    59,   230,
400    242,   111,     0,   180,     0,   181,    84,   181,     0,   181,
401     85,   181,     0,   181,    79,   181,     0,   181,    80,   181,
402      0,   181,    81,   181,     0,   181,    82,   181,     0,   181,
403     83,   181,     0,   181,    77,   181,     0,   181,    78,   181,
404      0,   181,    74,   181,     0,   181,    75,   181,     0,   181,
405     76,   181,     0,   181,    73,   181,     0,   181,    72,   181,
406      0,   181,    71,   181,     0,   181,    69,   181,     0,   181,
407     70,   181,     0,   181,    68,   181,     0,   181,    67,   181,
408      0,   181,    66,   353,    63,   181,     0,   181,    65,   181,
409      0,   181,    64,   181,     0,    62,     0,    62,   181,     0,
410     89,   368,   155,     0,   183,     0,   375,     0,     3,     0,
411     57,     0,    58,     0,     6,    75,   162,   161,     0,     6,
412     75,   161,     0,   375,    75,   162,   161,     0,   375,    75,
413    161,     0,    49,   155,    75,   162,   161,     0,    49,     6,
414     75,   162,   161,     0,    49,   375,    75,   162,   161,     0,
415    182,     0,     4,     0,     5,     0,   182,     0,    81,   186,
416      0,    71,   186,     0,    94,   186,   110,     0,     3,    75,
417    162,   161,     0,    58,    75,   162,   161,     0,   286,     0,
418    182,     0,   187,     0,    94,   186,   110,     0,   182,     0,
419     10,     0,   193,     0,   194,     0,    94,   165,   110,     0,
420     94,   186,   110,     0,    94,     1,   110,     0,     0,    94,
421    190,   313,   110,     0,   189,    94,   175,   110,     0,   189,
422     48,     0,   189,    95,   165,   113,     0,   189,    87,     0,
423    189,    88,     0,    41,     0,     9,    94,   175,   110,     0,
424    290,     0,    51,    75,   200,    76,    94,   165,   110,     0,
425     52,    75,   200,    76,    94,   165,   110,     0,    53,    75,
426    200,    76,    94,   165,   110,     0,    54,    75,   200,    76,
427     94,   165,   110,     0,    50,    94,   165,   110,     0,    50,
428     94,   200,   110,     0,   300,     3,     0,   300,   375,     0,
429    289,     0,   289,    94,   175,   110,     0,   289,    48,     0,
430    196,   184,     0,   196,   184,    94,   175,   110,     0,   196,
431    184,    48,     0,   196,   185,     0,   196,   289,     0,   196,
432    185,    94,   175,   110,     0,   196,   185,    48,     0,   196,
433    289,    94,   175,   110,     0,   196,   289,    48,     0,   196,
434     89,     8,    48,     0,   196,     8,    55,    89,     8,    48,
435      0,   196,     1,     0,    40,     0,   300,    40,     0,    39,
436      0,   300,   192,     0,    43,     0,    44,     0,    11,     0,
437    194,    11,     0,     0,   189,    93,     0,   189,    92,     0,
438    207,   209,    61,     0,   201,   209,    61,     0,   204,   210,
439     61,     0,   201,    61,     0,   204,    61,     0,   120,   197,
440      0,   279,     0,   284,     0,    48,     0,   199,    48,     0,
441    205,   303,     0,   275,   303,     0,   207,   303,     0,   205,
442      0,   275,     0,   205,     0,   202,     0,   204,   207,     0,
443    207,   203,     0,   207,   206,   203,     0,   204,   207,   203,
444      0,   204,   207,   206,     0,   204,   207,   206,   203,     0,
445      7,     0,   203,   208,     0,   203,     7,     0,   203,   222,
446      0,   222,     0,   275,     0,     7,     0,   204,     9,     0,
447    204,     7,     0,   204,   222,     0,   222,     0,   207,     0,
448    275,   207,     0,   207,   206,     0,   275,   207,   206,     0,
449    208,     0,   206,   208,     0,   236,     0,     8,     0,   281,
450      0,    29,    94,   165,   110,     0,    29,    94,   200,   110,
451      0,    31,    94,   165,   110,     0,    31,    94,   200,   110,
452      0,     8,     0,     9,     0,   236,     0,   213,     0,   209,
453     60,   215,     0,   217,     0,   210,    60,   215,     0,   219,
454      0,   211,    60,   215,     0,     0,   121,    94,   194,   110,
455      0,     0,   198,   212,   221,    65,   214,   229,     0,   198,
456    212,   221,     0,     0,   198,   212,   221,    65,   216,   229,
457      0,   198,   212,   221,     0,     0,   284,   212,   221,    65,
458    218,   229,     0,   284,   212,   221,     0,     0,   284,   212,
459    221,    65,   220,   229,     0,   284,   212,   221,     0,     0,
460    222,     0,   223,     0,   222,   223,     0,    32,    94,    94,
461    224,   110,   110,     0,   225,     0,   224,    60,   225,     0,
462      0,   226,     0,   226,    94,     3,   110,     0,   226,    94,
463      3,    60,   175,   110,     0,   226,    94,   175,   110,     0,
464    155,     0,     7,     0,     8,     0,     9,     0,   155,     0,
465    227,    60,   155,     0,     0,    65,   229,     0,   181,     0,
466     59,   111,     0,    59,   230,   111,     0,    59,   230,    60,
467    111,     0,     1,     0,   229,     0,   230,    60,   229,     0,
468     95,   181,   113,   229,     0,   230,    60,    21,   181,    63,
469    229,     0,   155,    63,   229,     0,   230,    60,   155,    63,
470    229,     0,    99,     0,   231,   138,   137,   312,     0,   231,
471    138,   337,     0,   231,   138,     1,     0,     0,   233,   232,
472    139,     0,   104,   181,   109,     0,   104,     1,   109,     0,
473      0,   235,   234,     0,   235,     1,     0,     0,    14,   155,
474     59,   237,   271,   243,   111,     0,    14,   155,    59,   111,
475      0,     0,    14,    59,   238,   271,   243,   111,     0,    14,
476     59,   111,     0,    14,   155,     0,    14,   298,     0,    46,
477    294,     0,     0,     0,     0,   251,   257,   239,   259,   111,
478    221,   240,   235,   241,   233,     0,   251,     0,     0,    60,
479      0,     0,    60,     0,    37,     0,   244,     7,     0,   244,
480      8,     0,   244,     9,     0,   244,    37,     0,   244,   155,
481      0,   244,   157,     0,   244,   292,   155,     0,   244,   300,
482    292,   155,     0,   244,   300,   155,     0,   244,   159,     0,
483    244,   292,   159,     0,     0,   245,     0,   246,   248,   252,
484      0,   247,   252,     0,   244,    59,     0,   250,     0,   249,
485      0,     0,    63,   368,     0,    63,   368,   253,     0,   254,
486      0,   253,    60,   368,   254,     0,   255,     0,   256,   368,
487    255,     0,   294,     0,   280,     0,    31,    94,   165,   110,
488      0,    31,    94,   200,   110,     0,    38,   368,     0,     7,
489    368,     0,   256,    38,   368,     0,   256,     7,   368,     0,
490     59,     0,     0,   258,     0,   258,   260,     0,   259,    38,
491     63,   260,     0,   259,    38,    63,     0,   261,     0,   260,
492    261,     0,   262,    61,     0,   262,   111,     0,   148,    63,
493      0,   148,    96,     0,   148,    25,     0,   148,    59,     0,
494     61,     0,   120,   261,     0,   201,   263,     0,   204,   264,
495      0,   284,   212,   221,   228,     0,   141,   212,   221,   228,
496      0,    63,   181,     0,     1,     0,   204,   147,   212,   221,
497    228,     0,   147,   212,   221,   228,     0,   127,     0,   130,
498    262,     0,     0,   265,     0,   263,    60,   266,     0,     0,
499    268,     0,   264,    60,   270,     0,   267,     0,   268,     0,
500    269,     0,   270,     0,   279,   212,   221,   228,     0,     4,
501     63,   181,   221,     0,   284,   212,   221,   228,     0,   141,
502    212,   221,   228,     0,     3,    63,   181,   221,     0,    63,
503    181,   221,     0,   279,   212,   221,   228,     0,     4,    63,
504    181,   221,     0,   284,   212,   221,   228,     0,     3,    63,
505    181,   221,     0,    63,   181,   221,     0,   272,     0,   271,
506     60,   272,     0,   155,     0,   155,    65,   181,     0,   348,
507    301,     0,   348,     0,    94,   200,   110,    95,   165,   113,
508      0,     0,   274,     9,     0,     9,     0,   275,     9,     0,
509      0,   276,   165,     0,   276,    94,   175,   110,     0,   276,
510     94,   358,   110,     0,   276,    48,     0,   276,    94,     1,
511    110,     0,    81,   275,   279,     0,    71,   275,   279,     0,
512     81,   279,     0,    71,   279,     0,   299,   274,   279,     0,
513    283,     0,   291,     0,   300,   291,     0,   280,     0,   282,
514      0,   300,   282,     0,   292,   291,     0,   283,   278,   274,
515    370,     0,   283,    95,   277,   113,     0,   283,    95,   113,
516      0,    94,   279,   110,     0,   292,   291,     0,   291,     0,
517     81,   275,   284,     0,    71,   275,   284,     0,    81,   284,
518      0,    71,   284,     0,   299,   274,   284,     0,   188,     0,
519     81,   275,   284,     0,    71,   275,   284,     0,    81,   285,
520      0,    71,   285,     0,   299,   274,   284,     0,   286,     0,
521    188,   278,   274,   370,     0,    94,   285,   110,     0,   188,
522     95,   277,   113,     0,   188,    95,   113,     0,   288,     0,
523    292,   187,     0,   292,   185,     0,   292,   184,     0,   292,
524    182,     0,   292,   184,     0,   288,     0,   300,   288,     0,
525    207,    94,   175,   110,     0,   207,    94,   186,   110,     0,
526    207,   199,     0,     4,     0,     5,     0,   159,     0,   293,
527      0,   292,   293,     0,     4,    55,     0,     5,    55,     0,
528     58,    55,     0,   159,    55,     0,   295,     0,   300,   295,
529      0,   296,   155,     0,   297,     0,   296,   297,     0,     4,
530     55,     0,     5,    55,     0,   159,    55,     0,    57,    55,
531      0,     3,    55,     0,    58,    55,     0,   300,   291,     0,
532    282,     0,   300,   282,     0,   292,    81,     0,   300,   292,
533     81,     0,    55,     0,    81,   274,   301,     0,    81,   274,
534      0,    71,   274,   301,     0,    71,   274,     0,   299,   274,
535      0,   299,   274,   301,     0,   302,     0,    95,   165,   113,
536      0,   302,    95,   277,   113,     0,    81,   275,   303,     0,
537     81,   303,     0,    81,   275,     0,    81,     0,    71,   275,
538    303,     0,    71,   303,     0,    71,   275,     0,    71,     0,
539    299,   274,     0,   299,   274,   303,     0,   304,     0,    94,
540    303,   110,     0,    91,     0,   304,    94,   358,   110,   274,
541    370,     0,   304,    48,   274,   370,     0,   304,    95,   277,
542    113,     0,   304,    95,   113,     0,    94,   359,   110,   274,
543    370,     0,   179,   274,   370,     0,   199,   274,   370,     0,
544     95,   277,   113,     0,    95,   113,     0,   320,     0,   306,
545      0,   305,   320,     0,   305,   306,     0,     1,    61,     0,
546      0,     0,     0,   310,     0,   311,     0,   310,   311,     0,
547     34,   227,    61,     0,   313,     0,     1,   313,     0,     0,
548     59,   314,   307,   171,   308,     0,     0,     0,    15,   316,
549    307,   167,   317,   318,     0,   313,     0,     0,   307,   319,
550    321,   308,     0,   313,     0,   321,     0,   197,     0,   165,
551     61,     0,     0,     0,   315,    16,   322,   318,   323,   308,
552      0,   315,     0,     0,     0,    17,   324,   307,   167,   325,
553    172,   308,     0,     0,     0,    18,   326,   318,    17,   327,
554    166,    61,     0,     0,     0,     0,     0,    19,   328,    94,
555    351,   329,   307,   168,    61,   330,   353,   110,   331,   172,
556    308,     0,     0,     0,    20,   307,    94,   169,   110,   332,
557    318,   333,   308,     0,     0,    21,   181,    63,   334,   320,
558      0,     0,    21,   181,    12,   181,    63,   335,   320,     0,
559      0,    22,    63,   336,   320,     0,    23,    61,     0,    24,
560     61,     0,    25,    61,     0,    25,   165,    61,     0,   121,
561    352,    94,   194,   110,    61,     0,   121,   352,    94,   194,
562     63,   354,   110,    61,     0,   121,   352,    94,   194,    63,
563    354,    63,   354,   110,    61,     0,   121,   352,    94,   194,
564     63,   354,    63,   354,    63,   357,   110,    61,     0,    26,
565     81,   165,    61,     0,    26,   155,    61,     0,   350,   320,
566      0,   350,   111,     0,    61,     0,   340,     0,     0,     0,
567     96,   338,   137,   313,   339,   343,     0,     0,     0,    96,
568    341,   313,   342,   343,     0,   344,     0,   343,   344,     0,
569      0,     0,     0,    97,   345,   307,   349,   346,   313,   347,
570    308,     0,   205,     0,   275,     0,    94,    12,   110,     0,
571     94,   367,   110,     0,     3,    63,     0,    57,    63,     0,
572      4,    63,     0,     5,    63,     0,   353,    61,     0,   197,
573      0,    59,   171,     0,     0,     9,     0,     0,   165,     0,
574      1,     0,     0,   355,     0,   356,     0,   355,    60,   356,
575      0,    11,    94,   165,   110,     0,    11,     0,   357,    60,
576     11,     0,     0,   359,     0,   200,     0,   363,     0,   364,
577     12,     0,   363,    12,     0,   200,    12,     0,    12,     0,
578     98,     0,   363,    98,     0,   200,    98,     0,   363,    63,
579      0,   200,    63,     0,     0,    65,   361,   362,     0,   103,
580      0,   229,     0,   365,     0,   367,   360,     0,   364,   366,
581      0,   364,   369,     0,   364,   369,    65,   229,     0,   363,
582     60,     0,   200,    60,     0,   202,   198,     0,   205,   198,
583      0,   207,   198,     0,   202,   303,     0,   202,     0,   204,
584    284,     0,   367,     0,   367,   360,     0,   365,     0,   200,
585      0,     0,     0,   284,     0,     0,    62,    94,   372,   110,
586      0,    62,    48,     0,   200,     0,   371,     0,   372,    60,
587    371,     0,     0,    81,   274,   373,     0,    71,   274,   373,
588      0,   299,   274,   373,     0,    42,     0,   374,    81,     0,
589    374,    82,     0,   374,    83,     0,   374,    79,     0,   374,
590     80,     0,   374,    71,     0,   374,    69,     0,   374,    70,
591      0,   374,    89,     0,   374,    60,     0,   374,    74,     0,
592    374,    75,     0,   374,    76,     0,   374,    73,     0,   374,
593     64,     0,   374,    65,     0,   374,    77,     0,   374,    78,
594      0,   374,    87,     0,   374,    88,     0,   374,    68,     0,
595    374,    67,     0,   374,   112,     0,   374,    66,    63,     0,
596    374,    72,     0,   374,    92,     0,   374,    84,     0,   374,
597     48,     0,   374,    95,   113,     0,   374,    40,     0,   374,
598     39,     0,   374,    40,    95,   113,     0,   374,    39,    95,
599    113,     0,   374,   348,   373,     0,   374,     1,     0
600 };
601
602 #endif
603
604 #if YYDEBUG != 0
605 static const short yyrline[] = { 0,
606    310,   312,   326,   329,   330,   334,   336,   339,   344,   348,
607    354,   356,   359,   362,   366,   369,   371,   373,   376,   378,
608    381,   384,   386,   388,   390,   392,   394,   396,   402,   406,
609    409,   411,   415,   417,   418,   420,   424,   427,   433,   436,
610    438,   443,   446,   450,   463,   465,   467,   471,   481,   483,
611    485,   489,   498,   508,   511,   513,   517,   519,   520,   527,
612    528,   529,   532,   535,   539,   541,   542,   545,   547,   550,
613    553,   555,   559,   569,   571,   581,   590,   592,   602,   611,
614    613,   623,   632,   634,   646,   654,   661,   666,   673,   680,
615    683,   685,   687,   693,   703,   705,   708,   711,   713,   716,
616    718,   741,   750,   753,   755,   759,   772,   792,   795,   797,
617    798,   801,   808,   814,   816,   818,   820,   822,   825,   830,
618    832,   833,   834,   835,   838,   840,   841,   844,   846,   847,
619    850,   854,   857,   859,   861,   864,   867,   869,   877,   884,
620    890,   896,   902,   905,   912,   920,   922,   930,   933,   937,
621    940,   943,   946,   948,   950,   952,   956,   959,   962,   967,
622    971,   976,   980,   983,   985,   989,  1009,  1016,  1019,  1021,
623   1022,  1023,  1026,  1037,  1046,  1050,  1054,  1057,  1059,  1063,
624   1066,  1069,  1073,  1076,  1078,  1080,  1082,  1089,  1102,  1104,
625   1106,  1108,  1114,  1117,  1120,  1123,  1126,  1130,  1133,  1136,
626   1140,  1142,  1146,  1150,  1152,  1156,  1159,  1166,  1169,  1171,
627   1179,  1188,  1194,  1201,  1203,  1205,  1218,  1221,  1223,  1225,
628   1227,  1229,  1231,  1233,  1235,  1237,  1239,  1241,  1243,  1245,
629   1247,  1249,  1251,  1253,  1255,  1257,  1259,  1261,  1265,  1267,
630   1269,  1286,  1289,  1290,  1291,  1292,  1293,  1296,  1299,  1301,
631   1304,  1309,  1312,  1314,  1318,  1320,  1321,  1324,  1326,  1328,
632   1330,  1334,  1337,  1341,  1343,  1344,  1345,  1349,  1357,  1358,
633   1359,  1367,  1375,  1383,  1385,  1393,  1414,  1421,  1428,  1430,
634   1439,  1444,  1467,  1511,  1512,  1516,  1520,  1524,  1528,  1530,
635   1534,  1536,  1544,  1546,  1551,  1557,  1561,  1566,  1571,  1573,
636   1578,  1593,  1608,  1619,  1631,  1639,  1648,  1692,  1695,  1699,
637   1702,  1706,  1709,  1714,  1716,  1720,  1733,  1736,  1743,  1750,
638   1755,  1757,  1762,  1764,  1771,  1773,  1777,  1781,  1787,  1791,
639   1794,  1797,  1800,  1810,  1812,  1815,  1819,  1822,  1825,  1828,
640   1831,  1837,  1843,  1845,  1850,  1852,  1861,  1864,  1866,  1869,
641   1875,  1877,  1887,  1891,  1894,  1897,  1902,  1905,  1913,  1915,
642   1917,  1919,  1922,  1925,  1940,  1959,  1962,  1964,  1967,  1969,
643   1972,  1974,  1977,  1979,  1982,  1985,  1989,  2008,  2010,  2030,
644   2036,  2037,  2043,  2052,  2054,  2064,  2073,  2075,  2087,  2090,
645   2094,  2097,  2101,  2106,  2109,  2113,  2116,  2118,  2120,  2122,
646   2129,  2131,  2132,  2133,  2137,  2140,  2144,  2147,  2153,  2155,
647   2158,  2161,  2164,  2170,  2173,  2176,  2178,  2180,  2182,  2186,
648   2192,  2200,  2202,  2206,  2208,  2213,  2216,  2219,  2221,  2223,
649   2227,  2231,  2236,  2240,  2243,  2248,  2252,  2255,  2258,  2262,
650   2264,  2299,  2305,  2311,  2323,  2325,  2328,  2330,  2335,  2337,
651   2339,  2341,  2343,  2347,  2352,  2357,  2363,  2368,  2373,  2375,
652   2379,  2384,  2387,  2394,  2422,  2428,  2430,  2433,  2436,  2438,
653   2442,  2444,  2448,  2474,  2503,  2506,  2507,  2528,  2551,  2553,
654   2557,  2583,  2592,  2675,  2682,  2685,  2693,  2704,  2713,  2717,
655   2732,  2735,  2740,  2742,  2744,  2746,  2748,  2750,  2755,  2761,
656   2763,  2766,  2769,  2771,  2782,  2787,  2790,  2792,  2816,  2819,
657   2820,  2831,  2834,  2835,  2846,  2848,  2851,  2853,  2856,  2863,
658   2871,  2878,  2884,  2890,  2898,  2902,  2907,  2911,  2914,  2923,
659   2925,  2929,  2932,  2937,  2941,  2946,  2956,  2959,  2963,  2967,
660   2975,  2980,  2986,  2989,  2991,  2993,  2999,  3002,  3004,  3006,
661   3008,  3012,  3015,  3036,  3046,  3048,  3049,  3053,  3058,  3061,
662   3063,  3065,  3067,  3071,  3077,  3080,  3082,  3084,  3086,  3090,
663   3093,  3096,  3098,  3100,  3102,  3106,  3109,  3112,  3114,  3116,
664   3118,  3125,  3136,  3140,  3145,  3149,  3154,  3156,  3160,  3163,
665   3165,  3169,  3171,  3172,  3175,  3177,  3183,  3198,  3204,  3210,
666   3224,  3226,  3230,  3242,  3248,  3259,  3266,  3272,  3274,  3275,
667   3276,  3284,  3293,  3294,  3298,  3301,  3307,  3313,  3316,  3318,
668   3320,  3322,  3326,  3330,  3334,  3337,  3342,  3345,  3347,  3349,
669   3351,  3353,  3355,  3357,  3359,  3363,  3367,  3371,  3375,  3376,
670   3378,  3380,  3382,  3384,  3386,  3388,  3390,  3392,  3400,  3402,
671   3403,  3404,  3407,  3415,  3420,  3427,  3429,  3434,  3436,  3439,
672   3453,  3456,  3459,  3468,  3480,  3491,  3511,  3521,  3524,  3532,
673   3544,  3547,  3550,  3553,  3569,  3572,  3583,  3584,  3588,  3603,
674   3622,  3634,  3648,  3662,  3675,  3694,  3712,  3731,  3739,  3760,
675   3778,  3791,  3792,  3795,  3795,  3798,  3798,  3801,  3801,  3807,
676   3813,  3816,  3821,  3828,  3837,  3846,  3855,  3863,  3876,  3878,
677   3882,  3884,  3887,  3894,  3897,  3905,  3921,  3932,  3944,  3946,
678   3949,  3959,  3969,  3980,  3982,  3984,  3987,  4004,  4010,  4018,
679   4020,  4022,  4026,  4029,  4030,  4038,  4042,  4046,  4049,  4050,
680   4056,  4059,  4062,  4064,  4068,  4073,  4076,  4086,  4091,  4092,
681   4100,  4106,  4111,  4115,  4120,  4124,  4128,  4132,  4137,  4148,
682   4162,  4166,  4169,  4171,  4175,  4179,  4182,  4185,  4187,  4191,
683   4193,  4200,  4207,  4210,  4213,  4217,  4221,  4227,  4231,  4236,
684   4238,  4241,  4246,  4252,  4262,  4265,  4267,  4271,  4276,  4278,
685   4285,  4288,  4290,  4292,  4298,  4303,  4306,  4308,  4310,  4312,
686   4314,  4316,  4318,  4320,  4322,  4324,  4326,  4328,  4330,  4332,
687   4334,  4336,  4338,  4340,  4342,  4344,  4346,  4348,  4350,  4352,
688   4354,  4356,  4358,  4360,  4362,  4364,  4366,  4368,  4371,  4373
689 };
690 #endif
691
692
693 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
694
695 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
696 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
697 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
698 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD",
699 "TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART",
700 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
701 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
702 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
703 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
704 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
705 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
706 "PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH","TYPENAME_ELLIPSIS",
707 "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
708 "DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
709 "END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
710 "@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
711 "@2","extdef","@3","@4","using_decl","any_id","extern_lang_string","template_header",
712 "@5","template_parm_list","template_type_parm","template_parm","template_def",
713 "datadef","ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef",
714 "constructor_declarator","@6","@7","@8","@9","fn.def1","component_constructor_declarator",
715 "fn.def2","return_id","return_init","base_init",".set_base_init","member_init_list",
716 "member_init","identifier","notype_identifier","identifier_defn","explicit_instantiation",
717 "template_type","self_template_type","template_close_bracket","template_arg_list",
718 "template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
719 "condition","@10","compstmtend","already_scoped_stmt","@11","nontrivial_exprlist",
720 "nonnull_exprlist","unary_expr","new_placement","new_initializer","regcast_or_absdcl",
721 "cast_expr","expr_no_commas","notype_unqualified_id","template_id","object_template_id",
722 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
723 "primary","@12","new","delete","boolean.literal","string","nodecls","object",
724 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
725 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
726 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
727 "initdcl0","@13","initdcl","@14","notype_initdcl0","@15","nomods_initdcl0","@16",
728 "maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
729 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
730 "pending_inlines","defarg_again","pending_defargs","structsp","@17","@18","@19",
731 "@20","@21","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
732 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
733 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
734 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
735 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
736 "component_decl_1","components","notype_components","component_declarator0",
737 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
738 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
739 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
740 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
741 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
742 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
743 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
744 "typename_sub","typename_sub0","typename_sub1","typename_sub2","complex_type_name",
745 "ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
746 "direct_abstract_declarator","stmts","errstmt",".pushlevel",".poplevel","maybe_label_decls",
747 "label_decls","label_decl","compstmt_or_error","compstmt","@22","simple_if",
748 "@23","@24","implicitly_scoped_stmt","@25","stmt","simple_stmt","@26","@27",
749 "@28","@29","@30","@31","@32","@33","@34","@35","@36","@37","@38","@39","@40",
750 "function_try_block","@41","@42","try_block","@43","@44","handler_seq","handler",
751 "@45","@46","@47","type_specifier_seq","handler_args","label_colon","for.init.statement",
752 "maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
753 "asm_clobbers","parmlist","complex_parmlist","defarg","@48","defarg1","parms",
754 "parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
755 "ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
756 "operator_name", NULL
757 };
758 #endif
759
760 static const short yyr1[] = {     0,
761    114,   114,   116,   115,   115,   117,   117,   118,   119,   120,
762    121,   121,   123,   122,   124,   124,   124,   124,   124,   124,
763    124,   125,   124,   126,   124,   124,   124,   124,   124,   127,
764    127,   127,   128,   128,   128,   128,   129,   129,   131,   130,
765    130,   132,   132,   133,   133,   133,   133,   134,   134,   134,
766    134,   135,   135,   136,   136,   136,   136,   136,   136,   136,
767    136,   136,   137,   137,   138,   138,   138,   139,   139,   140,
768    140,   140,   142,   141,   141,   143,   141,   141,   144,   141,
769    141,   145,   141,   141,   146,   146,   146,   146,   146,   147,
770    147,   147,   147,   148,   148,   148,   148,   148,   148,   148,
771    148,   149,   150,   150,   150,   151,   152,   153,   153,   153,
772    153,   154,   154,   154,   154,   154,   154,   154,   154,   155,
773    155,   155,   155,   155,   156,   156,   156,   157,   157,   157,
774    158,   158,   158,   158,   158,   158,   158,   158,   159,   159,
775    159,   159,   159,   160,   160,   161,   161,   162,   162,   163,
776    163,   164,   164,   164,   164,   164,   165,   165,   166,   166,
777    167,   167,   168,   168,   168,   170,   169,   169,   171,   171,
778    171,   171,   173,   172,   172,   174,   174,   174,   174,   175,
779    175,   176,   176,   176,   176,   176,   176,   176,   176,   176,
780    176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
781    176,   176,   176,   176,   176,   177,   177,   178,   178,   178,
782    178,   179,   179,   180,   180,   180,   181,   181,   181,   181,
783    181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
784    181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
785    181,   182,   182,   182,   182,   182,   182,   183,   183,   183,
786    183,   184,   184,   184,   185,   185,   185,   186,   186,   186,
787    186,   187,   187,   188,   188,   188,   188,   189,   189,   189,
788    189,   189,   189,   189,   190,   189,   189,   189,   189,   189,
789    189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
790    189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
791    189,   189,   189,   189,   189,   189,   189,   191,   191,   192,
792    192,   193,   193,   194,   194,   195,   196,   196,   197,   197,
793    197,   197,   197,   197,   198,   198,   199,   199,   200,   200,
794    200,   200,   200,   201,   201,   202,   202,   202,   202,   202,
795    202,   203,   203,   203,   203,   203,   204,   204,   204,   204,
796    204,   204,   205,   205,   205,   205,   206,   206,   207,   207,
797    207,   207,   207,   207,   207,   208,   208,   208,   209,   209,
798    210,   210,   211,   211,   212,   212,   214,   213,   213,   216,
799    215,   215,   218,   217,   217,   220,   219,   219,   221,   221,
800    222,   222,   223,   224,   224,   225,   225,   225,   225,   225,
801    226,   226,   226,   226,   227,   227,   228,   228,   229,   229,
802    229,   229,   229,   230,   230,   230,   230,   230,   230,   231,
803    232,   232,   232,   233,   233,   234,   234,   235,   235,   235,
804    237,   236,   236,   238,   236,   236,   236,   236,   236,   239,
805    240,   241,   236,   236,   242,   242,   243,   243,   244,   244,
806    244,   244,   244,   245,   246,   247,   247,   247,   247,   247,
807    248,   249,   249,   249,   250,   251,   251,   252,   252,   252,
808    253,   253,   254,   254,   255,   255,   255,   255,   256,   256,
809    256,   256,   257,   258,   259,   259,   259,   259,   260,   260,
810    261,   261,   261,   261,   261,   261,   261,   261,   262,   262,
811    262,   262,   262,   262,   262,   262,   262,   262,   263,   263,
812    263,   264,   264,   264,   265,   265,   266,   266,   267,   267,
813    268,   268,   268,   268,   269,   269,   270,   270,   270,   271,
814    271,   272,   272,   273,   273,   273,   274,   274,   275,   275,
815    276,   277,   278,   278,   278,   278,   279,   279,   279,   279,
816    279,   279,   280,   280,   281,   281,   281,   282,   283,   283,
817    283,   283,   283,   283,   284,   284,   284,   284,   284,   284,
818    285,   285,   285,   285,   285,   285,   286,   286,   286,   286,
819    286,   286,   287,   287,   288,   288,   289,   289,   290,   290,
820    290,   291,   291,   291,   292,   292,   293,   293,   293,   293,
821    294,   294,   295,   296,   296,   297,   297,   297,   297,   297,
822    297,   298,   298,   298,   299,   299,   300,   301,   301,   301,
823    301,   301,   301,   301,   302,   302,   303,   303,   303,   303,
824    303,   303,   303,   303,   303,   303,   303,   304,   304,   304,
825    304,   304,   304,   304,   304,   304,   304,   304,   305,   305,
826    305,   305,   306,   307,   308,   309,   309,   310,   310,   311,
827    312,   312,   314,   313,   316,   317,   315,   318,   319,   318,
828    320,   320,   321,   321,   322,   323,   321,   321,   324,   325,
829    321,   326,   327,   321,   328,   329,   330,   331,   321,   332,
830    333,   321,   334,   321,   335,   321,   336,   321,   321,   321,
831    321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
832    321,   321,   338,   339,   337,   341,   342,   340,   343,   343,
833    345,   346,   347,   344,   348,   348,   349,   349,   350,   350,
834    350,   350,   351,   351,   351,   352,   352,   353,   353,   353,
835    354,   354,   355,   355,   356,   357,   357,   358,   358,   358,
836    359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
837    361,   360,   362,   362,   363,   363,   363,   363,   363,   364,
838    364,   365,   365,   365,   365,   365,   365,   366,   366,   367,
839    367,   368,   369,   369,   370,   370,   370,   371,   372,   372,
840    373,   373,   373,   373,   374,   375,   375,   375,   375,   375,
841    375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
842    375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
843    375,   375,   375,   375,   375,   375,   375,   375,   375,   375
844 };
845
846 static const short yyr2[] = {     0,
847      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
848      1,     1,     0,     2,     2,     1,     1,     5,     4,     5,
849      4,     0,     6,     0,     5,     5,     2,     4,     2,     2,
850      3,     3,     1,     1,     2,     2,     1,     2,     0,     5,
851      3,     1,     3,     1,     2,     1,     2,     1,     3,     1,
852      3,     2,     2,     2,     3,     3,     2,     2,     2,     2,
853      2,     1,     1,     1,     0,     1,     2,     0,     1,     4,
854      3,     3,     0,     8,     5,     0,     9,     6,     0,     8,
855      5,     0,     9,     6,     2,     2,     1,     2,     1,     6,
856      4,     6,     4,     2,     1,     2,     2,     1,     2,     1,
857      2,     2,     2,     4,     2,     3,     0,     0,     1,     3,
858      2,     3,     1,     4,     2,     4,     2,     4,     2,     1,
859      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
860      3,     3,     2,     2,     4,     4,     3,     3,     4,     3,
861      4,     3,     1,     4,     3,     1,     1,     1,     3,     1,
862      1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
863      1,     3,     0,     1,     1,     0,     7,     1,     1,     3,
864      4,     3,     0,     3,     1,     3,     3,     3,     3,     1,
865      1,     1,     2,     2,     2,     2,     2,     2,     2,     4,
866      2,     4,     2,     3,     3,     4,     4,     5,     5,     6,
867      2,     4,     5,     2,     2,     3,     3,     3,     1,     3,
868      2,     3,     4,     1,     2,     5,     1,     3,     3,     3,
869      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
870      3,     3,     3,     3,     3,     3,     5,     3,     3,     1,
871      2,     3,     1,     1,     1,     1,     1,     4,     3,     4,
872      3,     5,     5,     5,     1,     1,     1,     1,     2,     2,
873      3,     4,     4,     1,     1,     1,     3,     1,     1,     1,
874      1,     3,     3,     3,     0,     4,     4,     2,     4,     2,
875      2,     1,     4,     1,     7,     7,     7,     7,     4,     4,
876      2,     2,     1,     4,     2,     2,     5,     3,     2,     2,
877      5,     3,     5,     3,     4,     6,     2,     1,     2,     1,
878      2,     1,     1,     1,     2,     0,     2,     2,     3,     3,
879      3,     2,     2,     2,     1,     1,     1,     2,     2,     2,
880      2,     1,     1,     1,     1,     2,     2,     3,     3,     3,
881      4,     1,     2,     2,     2,     1,     1,     1,     2,     2,
882      2,     1,     1,     2,     2,     3,     1,     2,     1,     1,
883      1,     4,     4,     4,     4,     1,     1,     1,     1,     3,
884      1,     3,     1,     3,     0,     4,     0,     6,     3,     0,
885      6,     3,     0,     6,     3,     0,     6,     3,     0,     1,
886      1,     2,     6,     1,     3,     0,     1,     4,     6,     4,
887      1,     1,     1,     1,     1,     3,     0,     2,     1,     2,
888      3,     4,     1,     1,     3,     4,     6,     3,     5,     1,
889      4,     3,     3,     0,     3,     3,     3,     0,     2,     2,
890      0,     7,     4,     0,     6,     3,     2,     2,     2,     0,
891      0,     0,    10,     1,     0,     1,     0,     1,     1,     2,
892      2,     2,     2,     2,     2,     3,     4,     3,     2,     3,
893      0,     1,     3,     2,     2,     1,     1,     0,     2,     3,
894      1,     4,     1,     3,     1,     1,     4,     4,     2,     2,
895      3,     3,     1,     0,     1,     2,     4,     3,     1,     2,
896      2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
897      4,     4,     2,     1,     5,     4,     1,     2,     0,     1,
898      3,     0,     1,     3,     1,     1,     1,     1,     4,     4,
899      4,     4,     4,     3,     4,     4,     4,     4,     3,     1,
900      3,     1,     3,     2,     1,     6,     0,     2,     1,     2,
901      0,     2,     4,     4,     2,     4,     3,     3,     2,     2,
902      3,     1,     1,     2,     1,     1,     2,     2,     4,     4,
903      3,     3,     2,     1,     3,     3,     2,     2,     3,     1,
904      3,     3,     2,     2,     3,     1,     4,     3,     4,     3,
905      1,     2,     2,     2,     2,     2,     1,     2,     4,     4,
906      2,     1,     1,     1,     1,     2,     2,     2,     2,     2,
907      1,     2,     2,     1,     2,     2,     2,     2,     2,     2,
908      2,     2,     1,     2,     2,     3,     1,     3,     2,     3,
909      2,     2,     3,     1,     3,     4,     3,     2,     2,     1,
910      3,     2,     2,     1,     2,     3,     1,     3,     1,     6,
911      4,     4,     3,     5,     3,     3,     3,     2,     1,     1,
912      2,     2,     2,     0,     0,     0,     1,     1,     2,     3,
913      1,     2,     0,     5,     0,     0,     6,     1,     0,     4,
914      1,     1,     1,     2,     0,     0,     6,     1,     0,     0,
915      7,     0,     0,     7,     0,     0,     0,     0,    14,     0,
916      0,     9,     0,     5,     0,     7,     0,     4,     2,     2,
917      2,     3,     6,     8,    10,    12,     4,     3,     2,     2,
918      1,     1,     0,     0,     6,     0,     0,     5,     1,     2,
919      0,     0,     0,     8,     1,     1,     3,     3,     2,     2,
920      2,     2,     2,     1,     2,     0,     1,     0,     1,     1,
921      0,     1,     1,     3,     4,     1,     3,     0,     1,     1,
922      1,     2,     2,     2,     1,     1,     2,     2,     2,     2,
923      0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
924      2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
925      1,     0,     0,     1,     0,     4,     2,     1,     1,     3,
926      0,     3,     3,     3,     1,     2,     2,     2,     2,     2,
927      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
928      2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
929      2,     2,     2,     3,     2,     2,     4,     4,     3,     2
930 };
931
932 static const short yydefact[] = {     3,
933     13,    13,     5,     0,     4,     0,   245,   592,   593,     0,
934    348,   360,   539,     0,    11,    12,     0,     0,     0,    10,
935    449,   795,     0,     0,     0,     0,   617,   246,   247,    62,
936      0,     0,   782,     0,    37,     0,     0,    14,     0,     8,
937      0,    17,    16,    68,    89,    65,     0,   594,   143,   265,
938    243,   266,   570,     0,   335,     0,   334,   353,     0,   373,
939    352,   391,   359,     0,   462,   461,   468,   467,   466,   444,
940    347,   555,   361,   556,    87,   264,   581,   553,     0,   595,
941    537,     0,     0,   244,    60,    61,     0,   597,     0,   598,
942      0,     0,     0,   120,   121,   122,   123,   124,   434,   437,
943      0,   613,     0,   438,     0,     0,     0,     0,   121,   122,
944    123,   124,    24,     0,     0,     0,     0,     0,     0,     0,
945    439,   601,     0,   604,     0,     0,     0,     0,     0,     0,
946     30,     0,     0,   348,    39,   134,     0,     0,   353,   133,
947      0,   599,     0,     0,   568,     0,     0,     0,   567,     0,
948      0,     0,     0,   265,     0,   541,     0,   264,   537,    29,
949      0,    27,     3,    38,     0,    53,    52,    69,    15,     0,
950      0,   407,    66,    58,   600,   541,     0,   537,    59,     0,
951      0,     0,    85,     0,   369,   325,   552,   326,   564,     0,
952    537,   350,   349,    57,    88,   336,     0,   371,   351,    86,
953    342,   366,   367,   337,   355,   357,   346,   368,     0,    54,
954    392,   450,   451,   452,   453,   465,   129,   128,   130,   454,
955    455,   459,     0,     0,   468,   782,   464,   483,   440,   540,
956    354,     0,     0,   389,   593,     0,   615,   143,   585,   586,
957    582,   558,   596,     0,   557,   554,     0,   830,   826,   825,
958    823,   805,   810,   811,     0,   817,   816,   802,   803,   801,
959    820,   809,   806,   807,   808,   812,   813,   799,   800,   796,
960    797,   798,   822,   814,   815,   804,   821,     0,   818,   725,
961    353,   726,   791,     0,   245,   539,   269,   314,     0,     0,
962      0,     0,   310,   308,   282,   312,   313,     0,     0,     0,
963      0,     0,   247,   240,     0,     0,   153,   152,     0,   154,
964    155,     0,     0,   156,     0,     0,   148,     0,   214,     0,
965    217,   151,   268,   182,     0,     0,   270,   271,     0,   150,
966    332,   353,   333,   587,   293,   284,     0,     0,   146,   147,
967    142,     0,   145,     0,   249,     0,   138,     0,   353,   137,
968    436,     0,   431,   614,   612,     0,   157,   158,     0,     0,
969      0,   396,     3,    22,     0,   610,   606,   607,   609,   611,
970    608,   120,   121,   122,   123,   124,   603,   605,   602,   256,
971    257,     0,   255,    33,    34,     0,   584,   583,    32,    31,
972     41,     0,   132,   131,   140,     0,     0,   566,     0,   565,
973    242,   260,     0,   574,   259,     0,   573,     0,   267,   578,
974      0,     0,    13,     0,     0,     9,     9,   102,    72,   107,
975    713,     0,    64,    63,    71,   105,     0,     0,   103,    67,
976    580,     0,     0,   545,     0,   785,     0,   550,     0,   549,
977      0,     0,     0,     0,   537,   389,     0,    56,   541,   537,
978    563,     0,   339,   340,     0,    55,   389,   344,   343,   345,
979    338,   358,   375,   374,   456,   460,   458,     0,   463,   469,
980    484,   356,     0,   388,   390,   537,    73,     0,     0,     0,
981    537,    79,   538,   569,   593,   616,   143,     0,     0,   819,
982    824,   355,   537,   537,     0,   537,   829,   251,     0,     0,
983      0,     0,   189,     0,     0,   191,   204,   205,     0,     0,
984      0,     0,     0,   241,   188,   185,   184,   186,     0,     0,
985      0,     0,     0,   268,     0,     0,     0,   183,     0,   262,
986    187,     0,     0,   215,     0,     0,     0,     0,     0,     0,
987      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
988      0,     0,     0,     0,     0,     0,   278,   280,   281,   318,
989    317,     0,     0,     0,     0,     0,   193,   535,     0,   201,
990    315,   307,     0,   782,   296,   299,   300,     0,     0,   327,
991    634,   630,   639,     0,   541,   537,   537,   537,   329,   637,
992      0,   591,   331,     0,     0,   330,   295,     0,   291,   309,
993    311,   588,     0,   292,   141,   144,   248,   136,   135,   532,
994    447,   530,   433,     0,   362,     0,     0,   363,   364,   365,
995    402,   403,   404,   401,     0,   394,   397,     0,     3,     0,
996     28,    36,    35,    46,     0,    48,    42,   781,   776,     0,
997    332,   353,    44,   333,   780,    50,   139,   263,   572,   571,
998    267,   575,     0,    19,    21,    68,   108,   316,     0,   663,
999     70,   661,   413,     0,   409,   408,   181,     0,   180,   542,
1000    579,     0,   755,   756,     0,   750,   353,     0,   749,   751,
1001    783,   765,     0,     0,   577,   548,   547,     0,     0,   562,
1002      0,   379,   370,   561,     0,   785,   551,   341,   372,   385,
1003    389,   457,   592,   593,   782,     0,   782,   594,   470,   471,
1004    473,   782,   476,   475,     0,     0,     0,     0,   386,   785,
1005    748,     0,     0,     0,   785,   748,   537,    76,   537,    82,
1006    828,   827,   791,   791,   791,   250,     0,     0,     0,   591,
1007      0,     0,     0,     0,   353,     0,     0,     0,   274,     0,
1008    272,   273,     0,   212,   149,   245,   592,   593,   246,   247,
1009      0,     0,   414,   445,     0,   239,   238,   740,   739,     0,
1010    236,   235,   233,   234,   232,   231,   230,   227,   228,   229,
1011    225,   226,   220,   221,   222,   223,   224,   218,   219,     0,
1012      0,     0,     0,     0,     0,   195,   209,     0,     0,   194,
1013    537,   537,     0,   537,   534,   624,     0,     0,     0,     0,
1014    298,     0,   302,     0,   304,     0,   633,   632,   629,   628,
1015    781,     0,     0,   648,     0,     0,   785,   328,   785,   635,
1016    537,   748,   541,   634,   630,     0,     0,   537,     0,     0,
1017      0,     0,     0,     0,   448,     0,   447,   179,   178,   177,
1018    176,   396,     0,     0,    25,     0,    26,    47,     0,    40,
1019      0,   634,   630,     0,   772,   537,   775,   777,     0,   773,
1020    774,   454,     0,    18,    20,   125,   113,   126,   127,     0,
1021    106,   109,     0,     0,     0,     0,   662,   654,   410,     0,
1022    104,   546,   543,   754,   771,   760,   758,     0,   544,   753,
1023    770,   759,   757,   752,   784,   767,   778,   768,   761,   766,
1024    787,     0,   377,   560,   559,   383,   382,   480,     0,   479,
1025    782,   782,   782,     0,   504,   593,     0,     0,   497,     0,
1026      0,   507,     0,   100,    95,     0,   143,   509,   512,     0,
1027    489,     0,    98,     0,   389,   376,     0,    75,     0,     0,
1028      0,     0,    81,     0,   785,   748,   785,   748,   793,   792,
1029    794,   283,   190,   192,   289,   290,     0,     0,     0,     0,
1030    273,   276,     0,     0,     0,     0,   213,     0,   277,   279,
1031    207,   206,   197,     0,   196,   211,     0,     0,   621,   619,
1032      0,   622,   541,   202,     0,     0,   305,     0,     0,     0,
1033    631,   627,   638,   537,   647,   645,   646,   636,   785,     0,
1034    643,     0,   589,   590,     0,   294,   533,   531,   435,     0,
1035    395,   393,   245,     0,    23,    43,    49,   633,   629,   634,
1036    630,     0,   553,     0,   537,   635,    51,     0,   111,     0,
1037    115,     0,   117,     0,   119,     0,   714,   656,     0,   411,
1038    634,   630,     0,   268,     0,   587,   779,     0,     0,   788,
1039    789,     0,     0,     0,   380,     0,     0,     0,   482,   481,
1040    474,   537,   748,   503,   498,   101,   508,   389,   389,   495,
1041    496,   493,   494,   537,   748,   245,   592,     0,   375,    96,
1042    499,   510,   515,   516,   375,   375,     0,     0,   375,    94,
1043    500,   513,   375,   490,   491,   492,   389,     0,   441,   387,
1044    537,   253,   252,   254,   537,    78,     0,    84,     0,     0,
1045      0,     0,     0,     0,   418,     0,     0,   415,   216,   237,
1046      0,   198,   199,   208,   210,   620,   618,   625,   623,     0,
1047    203,     0,   297,   301,   303,   785,   641,   537,   642,   432,
1048      0,   398,   400,   633,   629,   558,   635,   112,   110,     0,
1049      0,     0,     0,     0,   169,   655,     0,   657,   658,   412,
1050      0,   590,   769,   763,   764,   762,     0,   786,   378,   384,
1051      0,   477,   478,   472,   785,     0,   407,   407,   785,     0,
1052      0,     0,   389,   389,     0,   389,   389,     0,   389,     0,
1053    407,     0,   428,   785,   785,   537,   537,     0,     0,     0,
1054      0,   416,     0,     0,     0,   200,   626,   306,   644,   785,
1055      0,   114,   116,   118,   721,   715,   719,   405,     0,   664,
1056      0,   245,   592,   593,   665,   679,   682,   685,   654,     0,
1057      0,     0,     0,     0,     0,   246,   711,   716,     0,   736,
1058      0,   673,     0,     0,   353,     0,   650,   671,   678,   649,
1059    672,   712,     0,   659,   273,   790,   381,    91,   537,   502,
1060    506,    93,   537,   389,   389,   524,   407,   245,   592,     0,
1061    511,   517,   518,   375,   375,   407,   407,     0,   407,   514,
1062    501,     0,    74,    80,   785,   785,   285,   286,   287,   288,
1063      0,   419,   536,   640,   399,   654,   720,     0,   660,   653,
1064    172,   729,   731,   732,   654,   654,   654,     0,     0,     0,
1065    697,   699,   700,   701,     0,     0,     0,   730,     0,   324,
1066    737,     0,   674,   322,   375,     0,   323,     0,   375,     0,
1067      0,     0,   170,   652,   651,   675,   710,   709,   785,   785,
1068    523,   520,   522,     0,     0,   389,   389,   389,   519,   521,
1069    505,   430,     0,   429,   424,    77,    83,   417,     0,   406,
1070      0,     0,   669,   668,     0,     0,     0,     0,   693,     0,
1071    702,     0,   708,   717,     0,   320,   321,     0,     0,     0,
1072    319,   171,   654,    90,    92,   389,   389,   529,   407,   407,
1073      0,     0,   443,     0,   722,   161,     0,   666,   680,     0,
1074    683,   656,   734,   686,     0,   168,     0,   353,     0,     0,
1075      0,   698,   707,     0,     0,   676,   528,   526,   525,   527,
1076    427,   426,   420,    65,    68,     0,     0,     0,     0,   654,
1077      0,   655,     0,   735,   654,   733,   690,   375,   695,   694,
1078    718,   741,     0,   655,     0,   425,   727,   728,   723,   162,
1079    667,   173,   655,   175,   670,   159,     0,     0,     0,   654,
1080    389,     0,     0,     0,   742,   743,   703,   677,   423,     0,
1081    422,   655,   656,   681,     0,   684,   165,     0,   164,   691,
1082      0,   696,     0,   741,     0,     0,   421,   724,   174,   160,
1083    687,   655,   166,     0,     0,   704,   744,     0,   692,     0,
1084    745,     0,     0,     0,   167,   746,     0,   705,   688,     0,
1085      0,     0,   747,   706,   655,   689,     0,     0,     0
1086 };
1087
1088 static const short yydefgoto[] = {  1527,
1089    413,     2,   414,   165,   655,   315,   233,     3,     4,    38,
1090    629,   363,   932,   382,    40,   933,   392,   635,   636,   637,
1091     42,    43,   422,   171,   169,    44,   934,   721,   956,   726,
1092    958,    46,   935,   936,   172,   173,   423,   657,   881,   882,
1093    610,   883,   221,    47,    48,    49,   341,   316,   317,   318,
1094   1251,  1468,  1408,  1488,  1417,  1510,  1166,  1463,  1483,   357,
1095    837,   319,   566,   800,   320,   321,   358,   323,    51,   240,
1096    384,   402,    52,    53,   324,   526,   325,   326,   327,   328,
1097    424,   329,  1252,   463,   587,   330,  1253,    55,   204,   640,
1098    331,   205,   504,   206,   184,   197,    59,   446,   185,  1063,
1099    464,  1181,   198,  1064,    60,   947,   474,    61,    62,   625,
1100    626,   627,  1229,   429,   763,   764,  1434,  1435,  1403,  1364,
1101   1292,    63,   614,   352,   471,  1203,  1365,   976,   846,    64,
1102     65,    66,    67,   225,    68,    69,    70,   227,   709,   710,
1103    711,   712,   229,   716,   717,   940,   941,   942,  1091,  1101,
1104   1092,  1281,  1093,  1094,  1282,  1283,   611,   612,   567,   827,
1105    333,   432,   433,   178,   186,    72,    73,    74,   187,   188,
1106    157,    76,   131,   334,   335,   336,    78,   337,    80,   714,
1107    122,   123,   124,   104,    81,   338,   805,   806,   822,   590,
1108   1256,  1257,  1373,  1230,  1167,  1168,  1169,   661,  1258,   888,
1109   1259,  1315,  1440,  1375,  1410,  1260,  1261,  1393,  1454,  1316,
1110   1441,  1317,  1443,  1318,  1445,  1508,  1522,  1470,  1502,  1421,
1111   1472,  1380,   425,   658,  1163,  1262,  1329,  1424,  1226,  1227,
1112   1306,  1438,  1482,  1419,  1405,  1263,  1414,  1332,   770,  1474,
1113   1475,  1476,  1517,   678,   679,   910,  1059,  1176,   680,   681,
1114    682,   906,   683,   150,   908,   685,  1061,  1062,   497,    83,
1115     84
1116 };
1117
1118 static const short yypact[] = {   114,
1119    129,-32768,-32768, 10013,-32768,    40,    57,    45,    73,    68,
1120    155,-32768,-32768,  1229,-32768,-32768,   202,   239,   260,-32768,
1121 -32768,-32768,  1097,  1036,   915, 10243,-32768,   264,   168,-32768,
1122   2214,  2214,-32768,  2014,-32768, 10013,   323,-32768,   317,   182,
1123  10072,-32768,-32768,   311,-32768,   398,   366,   389,-32768,-32768,
1124 -32768,-32768,   246,  3367,-32768,  4571,-32768,   975,   284,-32768,
1125    414,-32768,-32768,  1604,-32768,-32768,   415,-32768,-32768,   438,
1126  10673,-32768,-32768,-32768,  1694,-32768,-32768,-32768,  2132,-32768,
1127 -32768,   609,  7413,   377,-32768,-32768,  8981,-32768,  8529,-32768,
1128   8529,  8529, 10450,-32768,    45,    73,   264,   447,   408,   467,
1129    389,-32768,   609,-32768,   609,  8981,  8981,   450,-32768,-32768,
1130 -32768,-32768,-32768,   207,   528,   419,   503,   556,   537,   578,
1131 -32768,-32768,   814,-32768,  1121,    45,    73,   508,   264,   447,
1132 -32768,  1164,  1000,-32768,   495,-32768,  5263,  5847,  1894,-32768,
1133   8529,-32768,  8981,  4134,-32768,  2240,   649,  4134,-32768,  1259,
1134   4258,  4258,  2014,   531,   552,   570,   559,   562,-32768,-32768,
1135    670,-32768,   573,-32768,  5005,    40,-32768,-32768,-32768,   694,
1136    130,   370,   642,-32768,-32768,   610,   212,-32768,-32768,  4314,
1137   4314,  5429,  1694,   399,-32768,-32768,   256,-32768,-32768,  2528,
1138 -32768,-32768,-32768,-32768,-32768,   975,   492,-32768,   414,  1694,
1139 -32768,-32768,-32768,  1501,   975,-32768,   414,-32768,  5263,-32768,
1140 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1141 -32768,   389,  1289,  1289,   415,-32768,-32768,-32768,-32768,-32768,
1142    767,   609,   627,   414,   441,  1133,-32768,   338,-32768,-32768,
1143 -32768,-32768,-32768,  4666,-32768,-32768,   231,-32768,   632,   645,
1144 -32768,-32768,-32768,-32768,   674,-32768,-32768,-32768,-32768,-32768,
1145 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1146 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   620,-32768,-32768,
1147    767, 10673,   820,  8529,-32768,   668,-32768,-32768,  9596,  9683,
1148   9770,  9770,-32768,-32768,-32768,-32768,-32768,   679,   704,   708,
1149    714,   719,   447,  9068,  1259,  9770,-32768,-32768,  9770,-32768,
1150 -32768,  9770,  6885,-32768,  9770,   270,-32768,  9770,-32768,  9155,
1151 -32768, 10546,-32768,  1405,  3136,  9242,-32768,   786,  1307,-32768,
1152    752,  3651,  3496,-32768,   360,-32768,  1295,  2118,-32768,-32768,
1153 -32768,   270,-32768,   270,-32768,   270,-32768,  5263,  1999,-32768,
1154 -32768,  1259,   697,-32768,-32768,   693,   745, 10765,   705,   716,
1155    724,  1784,   573,-32768,   508,-32768,-32768,-32768,-32768,-32768,
1156 -32768,   528,   419,   503,   556,   537,-32768,-32768,-32768,    45,
1157     73,   784,-32768,-32768,-32768,  1000,-32768,-32768,-32768,-32768,
1158 -32768, 10666,-32768,-32768,-32768,   270,   270,-32768,   536,-32768,
1159 -32768,-32768,  4134,-32768,-32768,  4134,-32768,   732,-32768,-32768,
1160   4666,    36,   741,   748, 10450,-32768,-32768,-32768,-32768,-32768,
1161 -32768,   124,-32768,-32768,-32768,-32768,  6977,  9068,-32768,-32768,
1162 -32768,  9068,   750,-32768,  6213,   103,  4770,-32768,  4770,-32768,
1163   4797,  4797,  5429,   757,-32768,   414,  5263,-32768,   761,-32768,
1164 -32768,  5108,  1501,   975,  5263,-32768,   414,-32768,-32768,   414,
1165   1501,-32768,   673,-32768,-32768,   389,-32768,  1289,-32768,  1596,
1166 -32768,   767,   670,   762,   414,-32768,-32768,   801,   807,   809,
1167 -32768,-32768,-32768,-32768,   580,-32768,   374,   772,   775,-32768,
1168 -32768,   767,-32768,-32768,   551,-32768,-32768,-32768,   270,  9068,
1169    668,  6885,-32768,   451,  6885,-32768,-32768,-32768,  8981, 10680,
1170  10680, 10680, 10680, 10833,-32768,-32768,-32768,-32768,   782,  9857,
1171   9857,  6885,   785,   531,   789,   841,   795,-32768,  8981,-32768,
1172 -32768,  6694,  6885,-32768,  9068,  9068,  7069,  9068,  9068,  9068,
1173   9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,  9068,
1174   9068,  9068,  9068,  9068,  9068,  9068,-32768,-32768,-32768,-32768,
1175 -32768,  9068,  9068,  9068,  8981,  4897,   439,   876,  7777,-32768,
1176 -32768,-32768,   859,   914,   491,   516,   525,  1537,   649,-32768,
1177   1863,  1863,-32768,  2957,   813,   834,   882,-32768,-32768,   269,
1178   8337,   648,-32768,   730,   609,-32768,-32768,  9068,-32768,-32768,
1179 -32768,-32768,   200,-32768,-32768,-32768,-32768,-32768,-32768,   872,
1180    881,-32768,-32768,  1259,-32768,  7506,  7598,-32768,-32768,-32768,
1181 -32768,-32768,-32768,-32768,    78,-32768,   849,   835,   573,   884,
1182 -32768,-32768,-32768,  1058,   187,   885,-32768,-32768,  3026, 10506,
1183   3026, 10131,  1604,  5167,-32768,   886,-32768,-32768,-32768,-32768,
1184    848,-32768,   898,-32768,-32768,   311,   322,   903,   841,-32768,
1185 -32768,-32768,-32768,  6415, 10833,-32768,   745,   866, 10765,-32768,
1186 -32768,   867,-32768,-32768,   869,   188, 10187,   870,-32768,   245,
1187  10299,   922,   923,   526,-32768,-32768,-32768,  4770,  4770,-32768,
1188   5108,   926,-32768,-32768,   883,   103,-32768,  1501,-32768,   933,
1189    414,-32768,   419,   503,-32768,   906,-32768,   578,   942,-32768,
1190 -32768,   220,-32768,-32768,  1330,  3254,    58,    66,-32768,   103,
1191   1767,  8981,  8981,  8981,   103,  1767,-32768,-32768,-32768,-32768,
1192 -32768,-32768,   618,   618,   618,-32768,   899,   904,  9335,   882,
1193    905,   913,   917,   948,  4231,   955,   958,   961,-32768,   934,
1194 -32768,-32768,   941,-32768,-32768,   980,   684,   717,   286,   201,
1195   9068,   990,-32768,   994,   945, 10833, 10833,-32768,-32768,   993,
1196   3688,  4340,  3916,  4445,  4416,  2273,  2982,  2009,  2009,  2009,
1197   1064,  1064,  1243,  1243,   664,   664,   664,-32768,-32768,   950,
1198    957,   962,   966,   967, 10680,   439,-32768,  6977,  9068,-32768,
1199 -32768,-32768,  9068,-32768,-32768,   977,  9770,   971,  1010,  1031,
1200 -32768,  9068,-32768,  9068,-32768,  9068,  3128,-32768,  3128,-32768,
1201    205,   995,   999,-32768,  1007, 10680,   103,-32768,   103,  3833,
1202 -32768,  1767,  1008,  8616,  8616,  6002,  1013,  9155,  1017,  3489,
1203   2118,   773,  1018,  9068,  1259,   992,   881,-32768, 10833,-32768,
1204  10833,  1784,  1021,  9422,-32768,  1029,-32768,-32768, 10666,-32768,
1205  10680,  2070,  2070,  3775,-32768,-32768,-32768,-32768,  2528,-32768,
1206 -32768,    59,  9068,-32768,-32768,   528,-32768,   556,   537,  9068,
1207   1069,-32768,   553,   591,   611,   841,-32768,-32768,-32768,    31,
1208 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  8433,-32768,-32768,
1209 -32768,-32768,-32768,-32768,-32768,-32768,   923,  1076,-32768,-32768,
1210 -32768, 10680,-32768,-32768,-32768,-32768,  1085,-32768,  8981,-32768,
1211 -32768,-32768,-32768,  1404,-32768,   608,  1191,  1082,-32768,  9068,
1212   5357,-32768,  3428,   291,   291,   365,   622,  1689, 10344,  5508,
1213 -32768,   110,   291,  1095,   414,-32768,  6977,-32768,  1049,   270,
1214    270,   270,-32768,  1051,   103,  1767,   103,  1767,-32768,-32768,
1215 -32768,-32768,-32768,-32768,-32768,-32768,  1070,  1072,  1077,  1078,
1216    848,-32768, 10697,  6977,  6510,  1073,-32768,  9068,-32768,-32768,
1217 -32768,-32768,   388,  1071,-32768,-32768,  1083,    42,   633,   633,
1218   1074,   633,-32768,-32768,  9770,  1175,-32768,  1087,  1089,  1093,
1219 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   103,  1099,
1220 -32768,  1092,-32768,-32768,  3635,-32768, 10833,-32768,-32768,  1096,
1221 -32768,-32768,   142,  1100,-32768,-32768,-32768,  2358,  2358,  2480,
1222   2480,  3775,-32768,  2528,-32768,  2623, 10546,  1102,-32768,   322,
1223 -32768,  9068,-32768,  9068,-32768,  9068,-32768,    64,  6602,-32768,
1224   8709,  8709,  6098,   305,  1106,   356,-32768,  6977,  6789,-32768,
1225 -32768,   151,  6977,  6977,-32768,  1108,  1109,  1596,-32768,-32768,
1226 -32768,-32768,  1767, 10833,-32768,-32768,-32768,   414,   414,-32768,
1227 -32768,-32768,-32768,-32768,  1767,   297,   727,  9068,   673,-32768,
1228   1160,-32768,-32768,-32768,   181,   879,  2132,   649,   936,   291,
1229   1163,-32768,  1055,-32768,-32768,-32768,   414,  5635,-32768,-32768,
1230 -32768,-32768,-32768,-32768,-32768,-32768,  1115,-32768,  1119,  9068,
1231   9068,  9068,  9068,  6977,-32768,  9068,  1168,-32768,-32768, 10833,
1232   9068,-32768,   388,-32768,-32768,-32768,-32768,-32768,-32768,  1122,
1233 -32768,  1189,-32768,-32768,-32768,   103,-32768,-32768,-32768,-32768,
1234   9068,-32768,-32768,  2358,  2358,-32768,  2623,-32768,-32768,  1129,
1235   1130,  1132,  1147,  1259,-32768,-32768,  5908,  1217,-32768,-32768,
1236   1144,  1610,-32768,-32768,-32768,-32768, 10680,-32768,-32768,-32768,
1237   6977,-32768,-32768,-32768,   103,  1145,  1192,  1192,   103,  1146,
1238   9068,  9068, 10675,   414,  3067,   414,   414,   780,   414,  4911,
1239   1192,  7846,-32768,   103,   103,-32768,-32768,  1157,  1166,  1167,
1240   1170,-32768, 10788,  6977,  1161,-32768,-32768,-32768,-32768,   103,
1241   1171,-32768,-32768,-32768,-32768,  1147,-32768,-32768,   692,-32768,
1242    158,  1207,   766,   781,-32768,-32768,-32768,-32768,-32768,  9068,
1243   1226,  1234,  1235,  8802,   518,   428,-32768,-32768,  8894,  1296,
1244   1245,-32768,  5246, 10405, 10551,  5754,-32768,-32768,  1288,-32768,
1245 -32768,-32768,  7941,-32768,   436,-32768,-32768,-32768,-32768,-32768,
1246 -32768,-32768,-32768, 10675, 10675,-32768,  1192,   605,   893,  9068,
1247 -32768,-32768,-32768,   673,   673,  1192,  1192,   580,  1192,-32768,
1248 -32768,  4001,-32768,-32768,   103,   103,-32768,-32768,-32768,-32768,
1249   6977,-32768,-32768,-32768,-32768,-32768,-32768,  1259,-32768,-32768,
1250 -32768,-32768,-32768,-32768,-32768,-32768,   841,  1213,  1215, 10584,
1251 -32768,-32768,-32768,-32768,  1253,  9068,  1261,-32768,   841,-32768,
1252 -32768,  1236,-32768,-32768,   673,   707,-32768,   779,   673,  9509,
1253    788,   164,-32768,-32768,-32768,-32768,-32768,-32768,   103,   103,
1254 -32768,-32768,-32768,  9068,  9068, 10675,   414,   414,-32768,-32768,
1255 -32768,-32768,  7690,-32768,-32768,-32768,-32768,-32768,  1237,-32768,
1256    638,   638,-32768,-32768,  1321,  6323,  8981,  9068,-32768,  8051,
1257 -32768,  1281,-32768,-32768,   670,-32768,-32768,  9944,  9944,  7161,
1258 -32768,-32768,   841,-32768,-32768, 10675, 10675,-32768,  1192,  1192,
1259   1239, 10719,  1246,  5696,-32768,-32768,  8981,-32768,-32768,  8243,
1260 -32768,    64,-32768,-32768,  1290,-32768,  1240,   373,  5263, 10811,
1261   8051,-32768,-32768,  1147,    44,-32768,-32768,-32768,-32768,-32768,
1262 -32768,-32768,-32768,   398,   311,  1244,  1247,   841,  1251,   841,
1263   8147,-32768,   647,-32768,-32768,-32768,-32768,   673,-32768,-32768,
1264   1147,  1352,  1305,-32768,   132,-32768,-32768,-32768,-32768,-32768,
1265 -32768,-32768,-32768,-32768,-32768,-32768,  9068,  1306,  7253,   841,
1266    414,  8051,  1275,   257,  1310,-32768,-32768,-32768,-32768,   124,
1267 -32768,-32768,    64,-32768,  1264,-32768,-32768,  1314,-32768,-32768,
1268   1312,-32768,  9068,  1352,  1332,  1352,-32768,-32768,-32768,-32768,
1269 -32768,-32768,-32768,  1272,   274,-32768,-32768,  7345,-32768,  6977,
1270 -32768,  1380,  1333,  1285,-32768,-32768,   171,-32768,-32768,  1386,
1271   1340,  8147,-32768,-32768,-32768,-32768,  1412,  1413,-32768
1272 };
1273
1274 static const short yypgoto[] = {-32768,
1275   1415,-32768,  -329,-32768,  1001,     9,    10,  1414,-32768,    69,
1276 -32768,-32768,   226,  1056,-32768,   393,-32768,-32768,-32768,   565,
1277 -32768,  1260,  -657,    -8,  -649,  1262,   136,-32768,-32768,-32768,
1278 -32768,-32768,   489,   496,-32768,-32768,-32768,-32768,-32768,   394,
1279    219,-32768,-32768,-32768,  5249,    77,   146,   -30,   907,-32768,
1280   1490,-32768,    61,-32768, -1303,-32768, -1330,   -83,-32768,  1186,
1281   -230,  -249,-32768,  -767,  3615,    83,  1019,  3530,-32768,   -97,
1282    -79,    15,   -49,   288,-32768,-32768,-32768,  -313,-32768,  -157,
1283 -32768,-32768, -1173,   -51,  -330,  1866,   119,   808,  -163,    22,
1284     80,  -188,    -4,   -96,  -917,   186,-32768,   -70,-32768,-32768,
1285   -176,-32768,-32768,-32768,-32768,-32768,   845,   540,    11,-32768,
1286    590,-32768,-32768, -1107,  -415,   794,-32768,-32768,-32768,-32768,
1287 -32768,   -47,-32768,-32768,-32768,-32768,-32768,-32768,   598,  -374,
1288 -32768,-32768,-32768,-32768,-32768,-32768,-32768,  1223,-32768,   381,
1289    542,-32768,-32768,-32768,-32768,   344,  -904,   534,-32768,-32768,
1290 -32768,-32768,-32768,   530,-32768,   273,   856,   629,   910,  2154,
1291     34,     3,  -421,  1291,  1443,  -461,-32768,    17,-32768,  2697,
1292   -128,   328,   -55,  4100,  1148,-32768,  4430,  1823,  2703,    -5,
1293   -110,-32768,  1357,-32768,  4154,  2763,  -422,-32768,  4073,-32768,
1294 -32768,   227,  -868, -1069,-32768,-32768,   318,     8,  -348,-32768,
1295 -32768,-32768,-32768, -1246,-32768, -1199, -1315,-32768,-32768,-32768,
1296 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1297 -32768,-32768,    41,-32768,-32768,-32768,-32768,-32768,    67, -1205,
1298 -32768,-32768,-32768,   -66,-32768,-32768,-32768,-32768, -1307,     1,
1299 -32768,     6,-32768,  -682,  -371,   597,-32768,-32768,-32768,-32768,
1300   -386,-32768,  -382,  -158,-32768,   978,   330,-32768,   176,-32768,
1301   -220
1302 };
1303
1304
1305 #define YYLAST          10918
1306
1307
1308 static const short yytable[] = {    58,
1309    886,   592,   183,   412,   234,   645,   875,   454,   713,   646,
1310    208,   666,    36,    37,   379,   480,   283,   643,   121,  1048,
1311   1307,   139,   404,   407,   601,    56,  1075,   695,   985,   241,
1312    102,    58,   453,   628,   387,  1104,    58,    71,   949,   503,
1313    506,   461,   472,   954,    36,    37,   571,   138,   155,    36,
1314     37,   196,   388,   389,   571,   177,  1345,    56,   342,    71,
1315    344,   346,    56,  1348,   144,   148,   231,   470,  1415,    71,
1316    534,   211,   385,   662,    71,  1330,   571,   390,   281,  1270,
1317   1271,  1444,   332,    57,   332,   393,   332,   332,   349,   580,
1318   1049,   208,   492,  1291,  1442,   944,   241,  1164,   245,    88,
1319     85,   332,   332,  1439,   160,    57,  1452,   459,   462,   167,
1320    396,   483,   397,    -1,   138,    57,   282,   604,   -45,    89,
1321     57,   354,    54,   -45,   659,  1464,    71,    90,    -2,   457,
1322    419,    87,  1479,   196,   -45,   739,   332,   852,   332,    45,
1323    241,  1050,    92,   492,   137,   653,  1426,    91,   208,  1010,
1324     86,  1135,  1499,  1453,    54,   238,   208,   208,   177,    54,
1325     58,   136,   280,   825,   684,  1489,   405,   408,   945,  1353,
1326   1105,    45,    57,   740,  1165,   946,    45,   753,  1359,  1360,
1327   1422,  1361,   660,   208,   403,   406,    56,   853,  -316,   177,
1328   -316,   195,   420,  1461,   420,   884,   155,   668,    71,   894,
1329   1514,  1151,  1413,    93,   675,  -325,  1464,    15,    16,   211,
1330   1177,   348,   823,   437,   439,  1132,   894,   211,  1310,   823,
1331   1106,  1450,   142,  1490,  1310,   421,   922,   421,   347,    39,
1332   1520,   575,   100,   208,     8,   485,   343,   345,   293,  -325,
1333    163,   114,   143,  -325,    57,  1307,   859,   895,   245,   576,
1334    896,  1152,  -781,   499,    27,   142,   900,   923,   568,   434,
1335   1178,    39,   860,  -124,   895,   364,    39,   896,  1311,   737,
1336    693,   365,  1492,  1117,  1392,  1119,  -325,   231,   699,   332,
1337   1521,   164,   220,    54,   208,   897,   395,   129,   130,   601,
1338    698,  1429,  1430,  -541,   645,   106,   608,  1104,   907,   856,
1339     45,   208,   897,  -541,   901,   435,   632,   902,   332,   385,
1340    887,   486,   404,   407,   754,   718,   831,    15,    16,  1494,
1341    281,   156,  -375,   487,   876,   703,   704,   525,   231,   529,
1342    633,   790,   107,   792,   793,  1336,  1512,  1341,   141,  -541,
1343    176,   377,   903,   209,   210,   339,   592,   340,  -123,  -541,
1344    449,  -375,  -265,   108,   245,  -375,   459,   462,   282,  1191,
1345    141,   158,   832,   833,   459,  1216,  1495,   843,   401,   877,
1346   1319,    87,  1465,   507,   508,   462,    27,   162,   878,   879,
1347    202,   203,   986,  1513,  1478,   481,    14,   642,   516,  1080,
1348   1186,   517,   701,  1484,   518,   462,    41,   528,  -265,  -265,
1349    531,  -375,  1190,  -581,   280,   208,   208,   597,   570,    21,
1350    139,  1012,  1498,   208,  -258,   880,   161,   426,    24,   168,
1351    580,   729,   170,  1081,   208,   644,   174,  1082,    41,   498,
1352    677,   482,  1509,    41,   427,   797,   138,  1369,   156,   156,
1353    156,   465,   467,   175,   208,    19,  1371,  1372,    71,  -581,
1354   -581,   284,   798,   598,   479,  1526,   405,   408,   447,   448,
1355   1083,   530,   713,   428,   823,  -581,   739,   730,   644,   156,
1356    211,   641,   645,   367,   688,   689,   646,   226,   158,   158,
1357    158,   799,  1131,  -267,   643,   211,   797,   605,   476,   606,
1358   1328,   607,   823,    89,    57,    90,   228,   332,   580,   568,
1359    332,   142,   141,   798,   332,   745,   745,   745,   745,   158,
1360    285,   380,   381,    10,   641,    91,   525,   332,   351,   525,
1361     94,   109,   110,   515,   332,   353,   823,   601,   332,  -267,
1362   -267,  1110,   799,   137,   477,   405,   750,  1047,   811,   126,
1363    127,   647,   648,   362,   739,  -261,   918,   525,   920,    22,
1364    136,   455,   456,   924,   126,   127,   492,   368,  1125,  1128,
1365    332,   281,    27,   813,    28,   303,  1136,  1137,   987,  1139,
1366    391,  1140,   815,   911,   111,   112,  1469,    91,   884,   642,
1367    624,   998,   366,   999,   812,  1000,   677,   865,   534,   870,
1368    871,   370,   129,   130,   208,   199,    33,   207,  1326,   282,
1369   1041,   459,   516,   517,   379,   839,   713,   129,   130,   814,
1370    369,   245,     8,     9,   817,   819,   486,   644,   816,   912,
1371    604,   126,   127,  1024,   644,   871,   483,   727,   121,   208,
1372    141,   237,   371,  1128,    90,   196,   126,   127,  1043,   231,
1373   -258,   483,  1173,  1175,   736,   280,  1042,  1179,  1180,  1038,
1374    208,   885,   126,   127,    91,  1072,  -537,   740,  1045,  -537,
1375    823,   409,    90,   641,   176,   129,   130,  1354,   410,  1084,
1376    641,  -576,    27,   728,   129,   130,   642,   199,   207,    87,
1377    288,   823,    91,    -7,  1044,  1406,   702,    27,   493,   129,
1378    130,   950,   951,   952,  1466,   828,   418,   208,   494,    15,
1379     16,  1073,   430,   801,  1046,   129,   130,  -537,  1212,  -537,
1380   -537,    58,  -537,   802,   644,  1085,   642,   332,   332,   332,
1381    473,   642,   431,  -537,   931,  -537,   488,   803,   156,   156,
1382    156,  1407,   491,     8,     9,   207,   490,   939,    88,   489,
1383   1467,  -537,  -537,   460,   207,  -537,  -121,   555,   556,    71,
1384    762,  1308,  1309,   839,   644,   126,   127,  -537,    89,   644,
1385    641,   500,  1068,  1069,  1070,  1267,   447,  1386,   158,   158,
1386    158,    90,   509,   475,   202,   203,     8,     9,   510,  -122,
1387     14,    88,   511,   126,  1288,  1456,   129,   130,   512,  1192,
1388    745,    91,   937,   513,   988,    57,   571,  1480,  1302,   580,
1389    641,    89,   615,    21,   616,   641,    27,   613,   129,   130,
1390    237,  1160,    24,  1161,   618,  1162,   372,   373,   374,   241,
1391     88,   745,   581,   126,   127,   619,   719,   642,  1313,   129,
1392    130,   677,   582,   620,   938,    90,   129,   130,   455,  1387,
1393     89,   651,   583,  1314,   631,   584,   585,   447,  1391,   405,
1394    750,    -6,   858,   486,   642,    91,   745,   245,   654,   642,
1395    486,   872,   671,  1078,  1079,   644,   690,   817,   819,   644,
1396    375,   376,  1107,   694,    27,   722,   129,   130,   155,   126,
1397    127,   723,   762,   724,   731,  1368,  1090,   732,   207,   994,
1398    493,   749,   644,   677,   751,  1028,  1029,   644,   752,   660,
1399    494,   404,   407,  -326,   754,    15,    16,   745,   959,   960,
1400    961,   641,  1055,   809,   332,   641,   516,   517,   126,   127,
1401   1221,   810,   404,   407,   740,   824,    58,   826,    58,   828,
1402     27,   644,   129,   130,   196,    58,   844,  -326,   641,   931,
1403    845,  -326,   854,   641,   857,   855,   801,    88,   931,   861,
1404    873,   642,   939,   642,   939,  1355,   802,  -261,   874,   128,
1405    -99,   939,    15,    16,    71,   420,    71,    89,  1374,    27,
1406    803,   129,   130,    71,  -326,   891,   892,   641,   893,   899,
1407   1384,   201,   202,   203,   241,   475,  -780,   909,    14,   644,
1408    913,   644,   460,   207,   -99,   914,   475,   916,   -99,   919,
1409    460,   921,   285,   380,   381,    10,    19,   937,   962,   937,
1410     57,    21,    57,   963,   964,   937,   937,   645,  1194,    57,
1411     24,  1437,   965,   967,  1196,  1197,   966,   642,  1194,  1199,
1412    968,   -99,  1197,   969,   885,   641,   970,   641,   115,   116,
1413    117,    22,  -120,   971,  1374,   405,   408,   241,   677,   938,
1414    972,   938,   974,   975,   977,   978,    28,   303,   938,   979,
1415    372,   373,   374,  1154,  1155,   644,   405,  1171,   642,   980,
1416    624,   993,   981,  1089,  1099,   982,   983,  1141,   997,   -97,
1417    642,    15,    16,   995,  1154,  1155,   644,   740,    33,  1459,
1418     27,  1374,   118,   119,  1515,  1112,  1113,  1114,   996,    94,
1419    109,   110,  1019,    58,  1003,   322,   644,   322,  1004,   322,
1420    322,   641,    27,   -97,   375,   376,   931,   -97,   644,  1005,
1421   1011,  1374,  1013,   115,   116,   117,  1014,  1016,  1040,   939,
1422   1022,   662,   641,   516,   517,    94,   109,   110,   478,  1025,
1423   1058,    71,   550,   551,   552,   553,   554,   555,   556,  1065,
1424    -97,   156,   641,   111,   112,   113,   135,  1108,  1111,   322,
1425   1115,   322,  1255,  1120,   641,  1121,   285,   380,   381,    10,
1426   1122,  1123,   745,   238,    22,  1249,  1250,   118,   119,   199,
1427   1133,   207,  1142,  1129,   937,   156,  1138,    57,  1254,   111,
1428    112,   158,  1134,  1127,   126,   127,  1143,    58,  1144,   639,
1429     71,  1335,  1145,  1335,  1149,    22,  1150,   208,  1148,  1153,
1430    931,  1158,   236,  1357,  1358,  1172,   207,  1182,  1183,  1195,
1431     28,   303,  1200,   939,  1206,   158,   938,  1425,  1207,   492,
1432   1214,    94,    95,    96,  1217,    71,  1218,   460,  1222,  1223,
1433    475,  1224,   639,  1225,  1255,    27,    57,   129,   130,   196,
1434   1164,  1255,    33,  1265,  1269,  1273,   427,  1249,  1255,   404,
1435    407,    94,   109,   110,  1249,  1250,  1297,  1127,   457,  1312,
1436   1254,  1249,  1250,  1303,   487,  1298,  1299,  1254,   937,  1300,
1437   1305,    57,    71,    27,  1254,    97,    98,    99,  1321,    71,
1438    692,    94,    95,    96,  1322,  1323,    71,   285,     8,     9,
1439     10,   700,   322,  1346,  1331,  1333,  1376,   572,  1377,   285,
1440    380,   381,    10,  1381,   573,   111,   112,   156,   156,   156,
1441    938,  1383,   514,   552,   553,   554,   555,   556,    57,  1385,
1442   1404,   528,   115,   703,   704,    57,    22,  1411,   156,   156,
1443    156,  1423,    57,   236,  1433,    97,    98,  1431,    22,  1447,
1444   1446,    28,   303,  1457,  1055,   236,  1458,   158,   158,   158,
1445   1460,    27,  1473,    28,   303,  1477,  1486,  1448,  1493,  1496,
1446    208,  1255,  1418,  1500,  1501,  1255,  1503,  1471,   158,   158,
1447    158,  1511,  1228,    33,  1249,   332,   118,   119,  1249,  1250,
1448   1516,   639,  1506,  1518,  1519,   574,  1523,  1254,   639,   642,
1449   1524,  1254,  1418,   405,  1171,  1255,   115,   703,   704,    71,
1450    282,  1528,  1529,    71,     1,     5,  1255,   656,  1249,  1250,
1451    630,   688,   689,  1026,   416,  1455,   417,  1100,  1076,  1249,
1452   1250,  1254,  1409,  1159,   706,   755,  1255,   644,  1525,  1338,
1453    282,  1021,  1254,    71,  1020,   665,   669,   469,  1184,  1249,
1454   1250,  1202,   557,   669,    71,    57,   280,   890,    27,    57,
1455    118,   119,  1254,  1327,  1418,  1071,  1077,  1255,  1102,   847,
1456    516,   517,  1290,  1018,    71,   796,   577,   450,   199,   378,
1457   1249,  1250,  1344,   641,   475,  1264,   280,  1497,   639,    57,
1458   1451,   558,   559,  1254,  1505,  1481,   560,   561,   562,   563,
1459     57,  1507,   282,  1057,     0,    71,  1266,   458,   202,   203,
1460      0,     0,     0,     0,    14,     0,     0,  1255,   669,     0,
1461     57,     0,     0,     0,     0,     0,  1370,     0,   639,     0,
1462   1249,  1250,    19,   639,     0,     0,     0,    21,     0,   285,
1463    126,   127,    10,  1254,     0,   917,    24,   322,   280,     0,
1464    665,    57,     0,   766,   767,    71,   771,   772,   773,   774,
1465    775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
1466    785,   786,   787,   788,   789,     0,     0,     0,    22,     0,
1467    669,     0,   669,   669,     0,   236,     0,     0,     0,     0,
1468      0,     0,     0,    28,   303,   356,   360,     0,   115,   703,
1469    704,    57,   705,     0,     0,     0,    94,    95,    96,   669,
1470    212,   213,   214,   667,     0,     0,   669,   475,   475,     0,
1471    667,  -267,   438,   440,   444,    33,   706,   156,     0,     0,
1472      0,     0,     0,   707,   849,   851,  -267,  -267,     0,   639,
1473    215,  -267,     0,   639,     0,     0,   475,     0,     0,     0,
1474     27,     0,   118,   119,     0,     0,     0,  -267,    27,     0,
1475     97,    98,   216,     0,     0,     0,   639,   158,     0,  -267,
1476   -267,   639,  -267,   915,  -267,   156,   156,   156,     0,     0,
1477      0,     0,   665,     0,     0,   667,     0,     0,     0,     0,
1478      0,  1086,  1087,     9,    10,     0,     0,   948,     0,     0,
1479      0,     0,   953,  -267,  -267,   639,     0,  -267,   217,   218,
1480    219,     0,     0,     0,     0,   158,   158,   158,     0,  -267,
1481     15,    16,     0,     0,     0,  -375,     0,     0,     0,     0,
1482     22,     0,   475,   475,     0,   475,   475,     0,   475,     0,
1483    322,   322,   322,    27,     0,    28,    29,   667,     0,   667,
1484    667,  1088,     0,  -375,  -375,     0,     0,   669,  -375,   180,
1485      0,     0,     0,   639,     0,   639,     0,     0,     0,   181,
1486      8,     9,     0,   134,    12,    13,   667,    33,   673,   973,
1487     14,     0,   182,   667,     0,     0,    94,   109,   110,  1109,
1488    621,   622,   623,   199,   207,    17,     0,    18,    19,     0,
1489      0,     0,   523,    21,  1006,     0,  1007,     0,     0,     0,
1490      0,     0,    24,   475,   475,     0,   665,   669,     0,     0,
1491      0,    27,     0,   129,   130,     0,    79,     0,     0,     0,
1492    669,     0,   669,     0,   669,     0,   103,     0,     0,   639,
1493    111,   112,     0,     0,     0,     0,     0,   132,    79,     0,
1494      0,     0,     0,   146,   146,     0,   146,     0,    79,     0,
1495    639,     0,  1017,    79,   674,     0,   126,   127,     0,     0,
1496      0,    13,   669,     0,     0,     0,   190,     0,    79,   686,
1497    639,   687,     0,   438,   440,   444,   223,     0,     0,     0,
1498      0,  1037,   639,   103,   697,   475,   475,   475,   669,     0,
1499    201,   202,   203,     0,   247,   103,     0,    14,     0,     0,
1500    580,     0,     0,     0,     0,    79,   669,    27,     0,   129,
1501    130,   670,  1187,  1188,   667,    19,     0,   103,     0,     0,
1502     21,     0,  1116,   581,  1118,   475,   475,     0,     0,    24,
1503      0,     0,     0,   582,     0,     0,     0,     0,  1074,     0,
1504    132,  1201,     0,   583,   394,   132,   584,   585,     0,   190,
1505    103,     0,     0,     0,     0,   665,   146,     0,     0,   399,
1506    146,   359,   361,   146,   146,   146,     0,     0,     0,     0,
1507      0,     0,     0,     0,   667,     0,  1147,    79,     0,     0,
1508      0,   523,   665,   665,   523,     0,  1130,   667,   742,   667,
1509      0,   667,   190,   190,   190,   201,   202,   203,     0,     0,
1510    475,   523,    14,     0,     0,     0,     7,   126,   127,    10,
1511      0,     0,   523,     0,     0,     0,   769,     0,     0,     0,
1512     19,   190,     0,     0,     0,    21,     0,  1276,  1277,   667,
1513   1286,  1287,     0,  1289,    24,     0,   468,     0,     0,     0,
1514      0,     0,   791,     0,   103,    22,     0,     0,   808,   609,
1515    669,     0,   669,     0,   669,   667,   146,   665,    27,     0,
1516     28,    29,     7,     8,     9,    10,   665,   665,    13,     0,
1517      0,   665,   665,   667,   151,   548,   549,   550,   551,   552,
1518    553,   554,   555,   556,   152,     0,     0,     0,     0,     0,
1519      0,     0,    33,     0,   103,   495,  1193,   153,     0,     0,
1520      0,    22,     0,     0,     0,     0,     0,   580,  1351,  1352,
1521    599,     8,     9,  1219,    27,     0,    28,    29,     0,     0,
1522    686,   687,     0,   697,     7,     8,   235,    10,     0,     0,
1523    862,     0,   665,     0,  1213,     0,     0,   103,     0,     0,
1524    863,   578,     0,   495,   495,   594,   293,   600,    33,    22,
1525    583,     0,  1268,   864,   585,     0,  1272,     0,     0,   669,
1526    190,     0,    27,    22,   129,   130,     0,     0,   527,     0,
1527    236,  1293,  1294,     0,     0,     0,     0,   132,    28,    29,
1528      0,     0,     0,     0,     0,     0,     0,  1304,     0,   665,
1529   1398,  1399,  1400,     0,     0,     0,     0,     0,   132,  1274,
1530   1275,   639,   237,     0,   103,     0,     7,   126,   127,    10,
1531     33,     0,    13,     0,     0,   146,     0,   667,   146,   667,
1532      0,   667,   665,   146,   244,     0,     0,    79,     0,     0,
1533   1427,  1428,     7,   126,   127,    10,     0,     0,     0,     0,
1534      0,     0,     0,     0,     0,    22,     0,   638,  1320,   190,
1535      0,   190,     0,   190,   190,   190,     0,     0,    27,   190,
1536     28,    29,  1366,  1367,   190,     0,     0,   190,     0,     0,
1537      0,    22,     0,     0,    31,     0,     0,     0,   236,     0,
1538      0,     0,   991,     0,    32,     0,    28,    29,  1356,     0,
1539    676,     0,    33,     0,   438,   440,   444,    34,     0,     0,
1540      0,     0,   411,     0,     0,  1491,     0,     0,     0,   665,
1541    237,     0,     0,     0,     0,   523,  1394,  1395,    33,     0,
1542      0,   436,   103,   103,   103,   103,   667,     0,     0,     0,
1543    444,     0,     0,     0,   452,   544,   545,   546,   547,   548,
1544    549,   550,   551,   552,   553,   554,   555,   556,   669,     0,
1545      7,     8,     9,    10,     0,     0,   230,   738,     0,     0,
1546    741,     0,  1396,  1397,   743,   744,   746,   747,   748,     0,
1547   1095,  1402,     0,     0,     0,     0,     0,   527,   103,     0,
1548    495,     0,     0,     0,     0,     0,  1420,     0,   765,    22,
1549      0,   578,     0,   495,   495,   580,   594,     0,  1066,     0,
1550      0,     0,    27,   840,    28,    29,     0,   842,     0,     0,
1551      0,     0,     0,     0,     0,     0,     0,     0,   862,     0,
1552    794,     0,     0,     0,     0,     0,     0,     0,   863,     0,
1553      0,     0,     0,     0,     0,     0,    33,     0,   583,   821,
1554      0,   864,   585,     0,     0,     0,   821,     0,     0,     0,
1555      0,   190,   869,   190,   190,   223,   594,     0,     0,     0,
1556    686,   687,   438,   440,   444,     0,     0,     0,   697,     0,
1557      0,     0,     7,     8,     9,    10,     0,     0,    13,     0,
1558      0,     0,     0,   438,   440,   444,     0,     0,     0,   190,
1559      0,     0,     0,   869,     0,     0,     0,     0,     0,     0,
1560    190,   190,     0,   190,     0,     0,     0,     0,     0,     0,
1561      0,    22,     0,     0,     0,   667,     0,   580,   665,     0,
1562      7,     8,     9,    10,    27,     0,    28,    29,    79,     0,
1563      0,     0,   523,   103,     0,     0,   638,     0,   103,     0,
1564   1030,     0,     0,     0,     0,   495,   495,   495,     0,     0,
1565   1031,     0,     0,     0,     0,     0,     0,   495,    33,    22,
1566    583,     0,     0,  1032,   585,     0,   236,     0,     0,     0,
1567      0,     0,     0,     0,    28,    29,   676,     0,     0,     0,
1568      0,   676,     0,     0,     0,     0,   686,   687,   691,   697,
1569      0,     0,     0,   696,     0,     0,     0,     0,   237,  1208,
1570   1209,  1210,  1211,     0,     0,     0,    33,   103,     0,     0,
1571   1215,     0,     0,     0,     0,     7,     8,     9,    10,   720,
1572      0,   483,     0,     0,   725,     0,     0,  1284,     0,   495,
1573      0,   495,     0,     0,     0,     0,   733,   734,   103,   735,
1574      0,     0,   495,     0,   103,     0,   840,   840,   840,     0,
1575    984,     0,     0,  1015,    22,     0,     0,     0,     0,     0,
1576    580,     0,     0,     0,     0,     0,     0,    27,     0,    28,
1577     29,   103,     0,   103,   190,   190,  1034,     0,     0,     0,
1578      0,   765,     0,   862,     0,     0,     0,   676,     0,     0,
1579     75,   821,     0,   863,     0,     0,     0,     0,     0,     0,
1580      0,    33,     0,   583,     0,     0,   864,   585,     0,     0,
1581   1034,     0,   140,     0,   638,     0,  1027,   145,   149,   821,
1582      0,     0,    75,  1325,   103,     0,     0,    75,     0,     0,
1583    829,   830,     0,     0,     0,   829,     0,     0,     0,   132,
1584      0,     0,   200,    79,     0,    79,     0,     0,     0,     0,
1585   1097,    79,    79,   821,     0,     0,    82,     0,     0,     0,
1586      0,     0,     0,     0,     0,     0,   105,  1060,   103,     0,
1587    103,   243,   444,     0,  1067,     0,   125,   133,    82,   350,
1588      0,     0,     0,   147,   147,     0,   147,     0,    82,     0,
1589      0,     0,     0,    82,     0,   243,     0,     0,     0,     0,
1590      0,   495,   495,     0,   495,  1382,   147,     0,    82,     0,
1591      0,   676,     0,   676,     0,     0,   224,     0,     0,     0,
1592    438,   440,   444,   232,   243,     0,     0,     0,     0,     0,
1593    398,     0,     0,     0,   400,   232,     0,     0,   243,     0,
1594    190,   190,   190,   190,  1034,    82,     0,     0,   190,     0,
1595      0,    75,     0,     0,     0,   769,  1416,     0,     0,     0,
1596      0,     0,     0,  1034,  1034,  1034,   145,   149,     0,   523,
1597    955,     0,   957,     0,     0,     0,     0,     0,     0,     0,
1598    386,     0,   243,     0,     0,   103,  1416,   821,     0,   147,
1599    232,     0,     0,     0,     0,     0,   147,   103,     0,     0,
1600    147,     0,     0,   147,   147,   147,     0,     0,   821,     0,
1601   1198,     0,     0,     0,     0,   243,     0,    82,     0,     0,
1602     79,     0,     0,     0,     0,     0,     0,     0,   676,     0,
1603    484,     0,   147,   147,   147,     0,     0,     0,     0,   243,
1604    676,     0,     0,     0,   989,   990,  1485,   992,  1416,     0,
1605      8,     9,     0,   134,    12,    13,     0,     0,   673,     0,
1606     14,   147,     0,     0,     0,     0,   190,   190,     0,   190,
1607      0,     0,  1504,     0,  1009,    17,     0,    18,    19,     0,
1608      0,     0,     0,    21,     0,     0,     0,   769,     0,   103,
1609      0,     0,    24,     0,   580,     0,   147,     0,     0,     0,
1610      0,    27,     0,   129,   130,     0,     0,   190,     0,  1036,
1611      0,     0,   146,     0,    79,     0,     0,   581,     7,     8,
1612      9,    10,     0,     0,     0,     0,     0,   582,     0,   243,
1613      0,     0,  1060,     0,   232,   147,     0,   583,     0,     0,
1614    584,   585,     0,     0,   674,   545,   546,   547,   548,   549,
1615    550,   551,   552,   553,   554,   555,   556,    22,     0,  1278,
1616   1279,     9,    10,   580,     0,   190,   869,   190,     0,     0,
1617     27,     0,    28,    29,     0,     0,     0,   232,     0,     0,
1618      0,   579,     0,   147,   147,   595,   862,     0,     0,   649,
1619    603,   243,   650,     0,     0,     0,   863,   652,    22,     0,
1620    147,   140,     0,     0,    33,     0,   583,     0,     0,   864,
1621    585,    27,     0,    28,    29,     0,     0,   386,     0,  1280,
1622      0,   126,   127,   398,     0,   400,   230,   180,     0,     8,
1623      9,     0,     0,    12,    13,     0,     0,   181,   484,    14,
1624      0,     0,     0,     0,   232,    33,     0,  1146,     0,     0,
1625    182,     0,  1034,     0,    17,   147,    18,     0,   147,     0,
1626    243,     0,    21,   147,     0,   580,     0,    82,     0,     0,
1627      0,    24,    27,     0,   129,   130,     0,     0,  1157,     0,
1628     27,     0,   129,   130,   564,     0,     0,   243,   581,   147,
1629      0,   147,     0,   147,   147,   147,     0,     0,   582,   147,
1630   1034,  1034,  1034,     0,   147,     0,     0,   147,   583,     0,
1631      0,   584,   585,     0,     0,  1185,   103,     0,     0,   565,
1632      0,     0,   715,     0,     0,     0,     0,  1189,     0,     0,
1633      0,   190,     0,     0,     0,     0,     0,     0,     0,     0,
1634      0,     0,     0,     0,   925,   527,     7,     8,   926,    10,
1635    134,    12,    13,     0,  1204,     0,     0,    14,  1205,   638,
1636      0,     0,   232,   232,   232,   232,     0,     0,     0,     0,
1637    243,     0,    17,     0,    18,    19,    20,     0,     0,     0,
1638     21,  -485,     0,     0,     0,    22,   243,     0,     0,    24,
1639    927,  1220,   928,     0,     0,     0,     0,     0,    27,     0,
1640     28,    29,     0,     0,   929,     0,   930,     0,     0,     0,
1641      0,     0,     0,     0,    31,     0,     0,     0,   232,     0,
1642    147,     0,     0,     0,    32,     0,   868,     0,     0,     0,
1643      0,     0,    33,   147,   147,     0,   595,    34,     0,     0,
1644      0,     0,     0,   841,     0,     0,     0,     0,     0,  1295,
1645   1296,     0,     0,     0,  -485,   603,     0,     0,     0,     7,
1646      8,     9,    10,     0,     0,     0,     0,   905,     0,     0,
1647      0,     0,     0,     0,   649,   650,     0,   652,     0,     0,
1648      0,     0,     0,     0,     0,     0,   125,     0,     0,     0,
1649      0,   147,   595,   147,   147,   224,   595,     0,    22,     0,
1650      0,     0,   943,     0,     0,     0,     0,     0,     0,   715,
1651      0,    27,  1349,    28,    29,     0,  1350,   179,   925,     0,
1652      7,     8,   926,    10,   134,    12,    13,   180,     0,   147,
1653      0,    14,     0,   595,     0,     0,     0,   181,     0,     0,
1654    147,   147,     0,   147,     0,    33,    17,     0,    18,    19,
1655    182,     0,     0,     0,    21,     0,     0,     0,     0,    22,
1656      0,     0,     0,    24,   927,     0,   928,     0,    82,     0,
1657      0,     0,    27,   232,    28,    29,     0,     0,   232,     0,
1658    930,   285,     8,     9,    10,   147,   147,   147,    31,     8,
1659      9,     0,     0,    12,   230,     0,     0,   147,    32,    14,
1660      0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
1661      0,    34,     0,     0,    17,     0,    18,     0,     0,     0,
1662     22,     0,    21,    50,     0,     0,     0,   236,     0,     0,
1663      0,    24,   243,   580,   243,    28,   303,     0,     0,     0,
1664     27,     0,   129,   130,     0,    50,     0,   232,   145,   149,
1665     50,    50,     0,   154,     0,    50,   581,     0,     0,   237,
1666     50,   243,     0,     0,     0,     0,   582,    33,     0,   147,
1667      0,   147,     0,    50,     0,    50,   583,     0,   232,   584,
1668    585,     0,   147,     0,   232,     0,   841,   841,   841,     0,
1669      0,     0,     0,   603,     0,     0,     0,     0,   239,     0,
1670      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1671      0,   232,    50,   232,   147,   147,   595,   943,     0,   943,
1672      0,     0,     0,     0,  1096,  1103,   943,   285,     8,     9,
1673     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674      0,     0,     0,     0,   126,   127,     0,   383,   202,   203,
1675    841,   383,   383,     0,    14,     0,    50,     0,     0,     0,
1676      0,     0,     0,    50,   232,   239,    22,    50,     0,     0,
1677    154,   154,   154,   236,     0,     0,   715,    21,     0,   133,
1678      0,    28,   303,    82,    50,    82,    24,     0,   580,     0,
1679   1098,    82,    82,     0,     0,    27,     0,   129,   130,    50,
1680     50,   154,     0,     0,     0,   486,     0,   243,   232,   239,
1681    232,   581,     0,    33,   398,   400,     0,     0,     0,     0,
1682      0,   582,   484,     0,     0,     0,   243,     0,    50,     0,
1683      0,   583,     0,     0,   591,   585,     0,     0,     0,     0,
1684      0,   147,   147,     0,   147,   539,   540,   541,   542,   543,
1685    544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
1686    554,   555,   556,    50,     0,     0,     0,     7,     8,     9,
1687     10,   134,    12,    13,     0,     0,   673,     0,    14,     0,
1688    147,   147,   147,   147,   595,     0,     0,     0,   147,   243,
1689      0,     0,   715,    17,   943,    18,    19,     0,     0,     0,
1690      0,    21,     0,   841,   841,   841,    22,     0,     0,     0,
1691     24,     0,   580,     0,     0,     0,     0,     0,     0,    27,
1692    715,    28,    29,     0,     0,   232,   126,   127,     0,     0,
1693      0,   483,   524,     0,     0,  1030,     0,   232,     0,     0,
1694    649,   650,     0,   652,     0,  1031,     0,     0,   383,     0,
1695      0,     0,     0,    33,     0,   583,   239,     0,  1032,   585,
1696     82,     0,   674,     0,     0,     0,     0,    50,     0,     0,
1697    580,     0,     0,     0,     0,     0,     0,    27,     0,   129,
1698    130,  1285,     0,     0,   383,     0,  1285,     0,   943,     0,
1699    243,     0,     0,   581,     0,     0,     0,     0,     0,     0,
1700      0,     0,     0,   582,     0,   383,   147,   147,     0,   147,
1701      0,     0,     0,   583,     0,     0,   584,   585,     0,     0,
1702      0,     0,    50,     0,     0,    50,     0,     0,     0,   232,
1703     50,     0,     0,     0,    50,   586,   586,   586,     0,     0,
1704   1339,     0,     0,     0,     0,     0,     0,   147,     0,     0,
1705      0,     0,   147,     0,    82,     0,    50,     0,    50,     0,
1706    154,   154,   154,     0,     0,     0,    50,     0,     0,     0,
1707      0,    50,     0,     0,    50,   541,   542,   543,   544,   545,
1708    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
1709    556,  1362,     0,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
1710      0,     0,  -442,     0,  -442,   147,   595,   147,     0,     0,
1711      0,     0,     0,     0,     0,  -442,     0,  -442,  -442,     0,
1712      0,   524,  -442,     0,   524,     0,     0,  -442,     0,     0,
1713      0,     0,  -442,     0,     0,     0,  -442,     0,  -442,   524,
1714    524,   524,     0,     0,     0,  -442,     0,  -442,  -442,  -442,
1715   -442,  -442,   524,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
1716   -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
1717   -442,  -442,  -442,  -442,  -442,  -442,     0,  -442,  -442,  -442,
1718      0,  -442,  -442,  -442,  -442,  -442,  -442,     0,  -442,  -442,
1719      0,     0,   841,    77,  1363,     0,     0,   239,     0,  -442,
1720   -442,  -442,     0,  -442,     0,     0,     0,     0,     0,     0,
1721    524,     0,     0,     0,     0,    77,     0,     0,     0,     0,
1722     77,    77,     0,    77,     0,    77,     7,   126,   127,    10,
1723     77,     0,   230,     0,     0,     0,     0,     0,     0,     0,
1724    841,   841,   841,    77,     0,    77,     0,     0,     0,     0,
1725      0,     0,     0,     0,     0,     0,   232,     0,    50,    50,
1726     50,    50,     0,     0,     0,    22,     0,     0,     0,     0,
1727      0,   147,     0,     0,     0,     0,     0,   159,    27,     0,
1728     28,    29,    77,     0,     0,   586,   586,     0,   586,     0,
1729      0,     0,     0,     0,    31,   838,    50,   191,     0,     0,
1730     50,     0,     0,     0,    32,     0,     0,    50,    50,     0,
1731     50,     0,    33,     0,     0,     0,     0,    34,     0,     0,
1732      0,     0,     0,     0,   126,   127,    77,     0,   202,   203,
1733      0,     0,     0,    77,    14,    50,     0,    77,     0,     0,
1734     77,    77,    77,   586,     0,   586,   586,     0,   586,     0,
1735      7,   126,   127,    10,    77,     0,    13,    21,   524,     0,
1736      0,     0,     0,     0,     0,     0,    24,     0,   580,    77,
1737     77,    77,     0,     0,     0,    27,     0,   129,   130,     0,
1738    191,   586,     0,     0,     0,     0,     0,     0,     0,    22,
1739      0,   581,     0,     0,   159,   159,   159,     0,    77,     0,
1740      0,   582,    27,     0,    28,    29,     7,     8,     9,    10,
1741      0,   583,    13,     0,   584,   585,     0,     0,   151,     0,
1742      0,     0,     0,   191,   191,   445,     0,     0,   152,     0,
1743      0,     0,     0,    77,     0,     0,    33,     0,     0,     0,
1744      0,   153,     0,     0,     0,    22,     0,     0,     0,   586,
1745      0,     0,   191,   524,   524,   524,     0,     0,    27,   239,
1746     28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
1747      0,     0,     0,     0,   180,     0,     0,     0,     0,     0,
1748      0,    50,    50,   154,   181,     0,     0,     0,   239,     0,
1749      0,     0,    33,   589,   593,   596,     0,   182,   540,   541,
1750    542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
1751    552,   553,   554,   555,   556,     0,     0,  1054,     0,     0,
1752      0,   586,     0,   586,     0,     0,   496,   602,     0,     0,
1753      0,     0,     0,     0,   586,     0,     0,    77,   838,   838,
1754    838,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1755     50,     0,    50,     0,     0,     0,     0,    50,    50,    50,
1756      0,     0,     0,     0,     0,     0,   586,   586,   586,     0,
1757      0,     0,     0,   189,   588,   588,   588,   543,   544,   545,
1758    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
1759    556,   191,    77,     0,     0,    77,     0,     0,   242,     0,
1760     77,   246,   838,     0,    77,   542,   543,   544,   545,   546,
1761    547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
1762      0,     0,   242,     0,   355,     0,    77,     0,    77,     0,
1763     77,    77,    77,     0,   239,     0,    77,     0,     0,     0,
1764      0,    77,     0,     0,    77,     0,     0,    50,    50,   154,
1765    154,   154,     0,   239,     0,    50,   189,     0,     0,     0,
1766      0,     0,     0,     7,     8,     9,    10,   192,    12,   193,
1767   1054,  1054,  1054,     0,    14,     0,     0,     0,     0,     0,
1768    191,     0,   191,     0,   445,   445,   445,     0,     0,    17,
1769    191,    18,    19,     0,     0,   191,     0,    21,   191,   189,
1770    189,   189,    22,     0,     0,     0,    24,     0,     0,   451,
1771      0,     0,     0,     0,     0,    27,   239,    28,    29,     0,
1772      0,   194,     0,     0,     0,     0,     0,    50,   189,     0,
1773      0,    31,   586,   586,   586,   586,   586,     0,     0,     0,
1774    586,    32,     0,   818,   820,     0,     0,     0,     0,    33,
1775      0,   246,     0,     0,    34,   838,   838,   838,     7,   126,
1776    127,    10,     0,     0,   483,     0,   242,     0,   602,     0,
1777      0,     0,     0,    50,    50,     0,    50,     0,     0,     0,
1778      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779      0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
1780      0,   867,     0,   589,   593,     0,   596,     0,     0,     0,
1781     27,   804,    28,    29,    50,     0,     0,     0,     0,    50,
1782      0,    50,     0,     0,   588,   588,    31,   588,    77,    77,
1783     77,    77,     0,     0,   588,     0,    32,     0,     0,   593,
1784      0,     0,     0,     0,    33,     0,     0,     0,     0,    34,
1785      0,     0,     0,     0,     0,     0,   242,   246,   586,   586,
1786      0,   586,     7,     8,     9,    10,    77,   189,   230,     0,
1787     77,     0,    50,    50,    50,     0,     0,    77,    77,     0,
1788     77,     0,   866,     0,   866,   866,     0,   588,     0,     7,
1789      8,     9,    10,     0,     0,    13,     0,     0,     0,     0,
1790      0,    22,     0,     0,     0,    77,     0,   593,     0,     0,
1791      0,     0,     0,     0,    27,     0,    28,    29,     0,     0,
1792    866,     0,     0,     0,     0,     0,     0,     0,    22,     0,
1793    180,   191,   191,     0,   191,     0,     0,     0,     0,     0,
1794    181,    27,     0,    28,    29,     0,     0,     0,    33,     0,
1795      0,     0,     0,   182,     0,     0,   189,   441,   189,  1054,
1796    189,   189,   189,     0,     0,     0,   189,   442,     0,     0,
1797      0,   189,     0,     0,   189,    33,   496,   496,   496,  1001,
1798    443,  1002,     0,     0,     0,     0,     0,     0,   588,     0,
1799      8,     9,  1008,     0,    12,    13,   818,   820,     0,     0,
1800     14,     0,     0,  1278,   126,   127,    10,  1054,  1054,  1054,
1801      0,     0,     0,     0,     0,    17,     0,    18,     0,     0,
1802      0,     0,     0,    21,   818,   820,     0,     0,     0,     0,
1803    602,     0,    24,     0,     0,     0,     0,     0,    50,     0,
1804      0,    27,    22,   129,   130,     0,     0,     0,     0,     0,
1805      0,    77,    77,    77,     0,    27,     0,    28,    29,     0,
1806    588,     0,   588,  1280,     0,     0,     0,     0,     0,     0,
1807      0,    31,     0,   588,     0,     0,     0,   588,   588,   588,
1808    795,    32,     0,     0,     0,     0,     0,  1056,     0,    33,
1809      0,     0,     0,     0,    34,     6,     0,     7,     8,     9,
1810     10,    11,    12,    13,     0,   866,   866,  1035,    14,     0,
1811      0,     0,     0,   242,   246,     0,     0,     0,     0,     0,
1812     77,     0,    77,    17,     0,    18,    19,    77,    77,    77,
1813      0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
1814     24,  1035,     0,   415,     0,     0,     0,     0,     0,    27,
1815      0,    28,    29,     0,     0,    30,     0,     0,   189,     0,
1816    189,   189,     0,     0,     0,    31,     0,     0,     0,     0,
1817      0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
1818      0,   191,     0,    33,     0,     0,     0,     0,    34,     0,
1819   1001,  1002,   818,   820,     0,     0,   189,     0,  1008,     0,
1820      7,     8,     9,    10,     0,     0,   483,   189,   189,     0,
1821    189,     0,     0,   818,   820,     0,     0,    77,    77,    77,
1822     77,    77,     0,     0,     0,    77,     0,     0,     0,     0,
1823      0,     0,   804,   804,   246,   804,     0,     0,     0,    22,
1824   1056,  1056,  1056,     0,     0,     0,     0,     0,     0,     0,
1825      0,     0,    27,     0,    28,    29,     0,     0,     0,  -347,
1826      8,     9,  -347,  -347,    12,   230,     0,     0,   180,     0,
1827     14,   866,   866,  1035,  1035,  1035,     0,     0,   181,   866,
1828      0,     0,     0,     0,     0,    17,    33,    18,  -347,     0,
1829      0,   182,     0,    21,  1035,  1035,  1035,    77,  -347,     0,
1830      0,     0,    24,     0,   580,     0,     0,     0,     0,     0,
1831      0,    27,     0,   129,   130,     0,  1001,  1002,     0,  1008,
1832      0,     0,     0,     0,     0,     0,     0,   581,     0,     0,
1833      0,     0,     0,     0,     0,     0,     0,   582,     7,     8,
1834      9,    10,     0,    77,    77,  -347,    77,   583,     0,     0,
1835    584,   585,   101,     0,     0,     7,     8,     9,    10,   242,
1836    246,   242,   120,   101,     0,     0,     0,     0,     0,   101,
1837    101,     0,   101,     0,     0,     0,     0,    22,     0,     0,
1838      0,   189,   189,  1033,    77,     0,     0,     0,   242,    77,
1839     27,    77,    28,    29,    22,     0,  1334,   866,   866,     0,
1840    866,     0,   222,     0,     0,     0,   180,    27,     0,    28,
1841     29,     0,     0,     0,     0,     0,   181,  1033,     0,     0,
1842      0,     0,     0,   180,    33,     0,     0,     0,     0,   182,
1843      0,     0,     0,   181,     0,     0,     0,     0,   191,     0,
1844      0,    33,    77,    77,    77,     0,   182,   925,     0,     7,
1845      8,   926,    10,   134,    12,    13,     0,   189,     0,     0,
1846     14,   120,     0,   120,     0,     0,   101,     0,     0,     0,
1847    101,   101,     0,     0,     0,    17,     0,    18,    19,    20,
1848      0,     0,   101,    21,   101,   101,   101,     0,    22,   101,
1849    101,   101,    24,   927,     0,   928,   191,     0,   191,     0,
1850      0,    27,     0,    28,    29,     0,     0,   929,     0,   930,
1851      0,     0,     0,     0,     0,     0,     0,    31,     0,     0,
1852      0,     7,     8,     9,    10,     0,     0,    32,     0,  1056,
1853      0,     0,     0,     0,   242,    33,     0,     0,     0,     0,
1854     34,     0,     0,     0,     0,     0,     0,   189,   189,   189,
1855    189,  1033,     0,  1156,     0,   189,     0,     0,     0,     0,
1856     22,   466,   101,     0,     0,     0,     0,     0,     0,     0,
1857   1033,  1033,  1033,    27,     0,    28,    29,  1056,  1056,  1056,
1858      0,     0,   101,   445,     0,     0,     0,     0,     0,   441,
1859      0,     0,     0,     0,     0,     0,     0,     0,   925,   442,
1860      7,     8,   926,    10,   134,    12,    13,    33,    77,     0,
1861      0,    14,   443,     0,     0,     0,   451,     0,     0,     0,
1862      0,   101,     0,     0,     0,     0,    17,     0,    18,    19,
1863     20,   445,   445,   445,    21,  -486,     0,     0,     0,    22,
1864      0,     0,     0,    24,   927,     0,   928,     0,     0,     0,
1865      0,     0,    27,     0,    28,    29,     0,     0,   929,     0,
1866    930,     0,   191,     0,     0,     0,     0,   101,    31,   101,
1867    101,     0,     0,   189,   189,     0,   189,     0,    32,     0,
1868      0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
1869      0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
1870      0,     0,     0,   101,     0,     0,     0,     0,  -486,     0,
1871      0,     0,     0,     0,   189,     0,     0,     0,     0,     0,
1872      0,     0,     0,     0,   101,   925,     0,     7,     8,   926,
1873     10,   134,    12,    13,     0,     0,     0,   101,    14,     0,
1874      0,   101,     0,     0,   101,     0,     0,     0,     0,   101,
1875      0,     0,     0,    17,     0,    18,    19,    20,     0,     0,
1876      0,    21,  -488,     0,     0,     0,    22,     0,     0,     0,
1877     24,   927,   189,   928,   189,     0,     0,     0,     0,    27,
1878      0,    28,    29,     0,     0,   929,     0,   930,     0,     8,
1879      9,     0,   134,    12,    13,    31,     0,  1436,     0,    14,
1880      0,     0,     0,     0,     0,    32,   101,     0,   708,     0,
1881      0,     0,     0,    33,    17,     0,    18,    19,    34,     0,
1882      0,     0,    21,     0,     0,     0,     0,     0,     0,     0,
1883      0,    24,     0,   101,     0,  -488,     0,     0,     0,     0,
1884     27,     0,   129,   130,  1342,     0,  1232,  1233,  1234,    10,
1885    134,    12,   286,   287,   288,     0,   289,    14,  1235,  1033,
1886   1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,
1887     15,    16,    17,   290,    18,    19,    20,     0,   291,   292,
1888     21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
1889      0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
1890   1246,   303,   660,     0,  1247,   304,   101,  1033,  1033,  1033,
1891      0,   305,     0,     0,   306,     0,   101,   101,     0,   101,
1892    101,     0,   307,   308,   309,     0,     0,     0,     0,     0,
1893    310,   311,   312,     0,     0,     0,     0,   313,   189,  1248,
1894      8,     9,     0,   192,    12,   193,     0,     0,     0,     0,
1895     14,     0,     0,     0,  1343,   314,     0,     0,     0,     0,
1896      0,     0,     0,     0,     0,    17,     0,    18,    19,     0,
1897      0,     0,   120,    21,     0,     0,     0,     0,     0,     0,
1898      0,   222,    24,     0,     0,     0,     0,     0,     0,     0,
1899      0,    27,     0,   129,   130,   708,     0,     0,  1231,     0,
1900   1232,  1233,  1234,    10,   134,    12,   286,   287,   288,     0,
1901    289,    14,  1235,     0,  1236,  1237,  1238,  1239,  1240,  1241,
1902   1242,  1243,  1244,  1245,    15,    16,    17,   290,    18,    19,
1903     20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
1904    296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
1905    301,   302,    27,   708,  1246,   303,   660,     0,  1247,   304,
1906      0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
1907      0,   101,   101,   101,     0,     0,   307,   308,   309,     0,
1908      0,     0,     0,   101,   310,   311,   312,     0,     0,     0,
1909      0,   313,   519,  1248,   285,     8,     9,    10,   134,    12,
1910    286,   287,   288,   673,   289,    14,     0,     0,     0,   314,
1911      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1912     17,   290,    18,    19,    20,     0,   291,   292,    21,     0,
1913    293,   294,   295,    22,   296,   297,     0,    24,     0,   580,
1914      0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
1915   -275,     0,     0,   304,     0,   101,     0,   101,     0,   305,
1916      0,     0,   834,     0,     0,     0,     0,     0,   101,     0,
1917    307,   308,   835,     0,     0,     0,     0,     0,   310,   311,
1918    312,     0,   583,     0,     0,   836,   585,     0,   519,   674,
1919      7,     8,     9,    10,   134,    12,   286,   287,   288,   673,
1920    289,    14,     0,   314,     0,     0,     0,     0,     0,     0,
1921      0,     0,     0,     0,     0,     0,    17,   290,    18,    19,
1922     20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
1923    296,   297,     0,    24,     0,   580,     0,   298,   299,   300,
1924    301,   302,    27,     0,    28,    29,  -275,     0,     0,   304,
1925      0,     0,     0,     0,     0,   305,     0,     0,  1051,     0,
1926      0,     0,   708,     0,     0,   101,   307,   308,  1052,     0,
1927      0,     0,     0,     0,   310,   311,   312,     0,   583,     0,
1928      0,  1053,   585,     0,     0,   674,     0,     0,     0,     0,
1929      0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
1930      0,     0,     0,   672,     0,   285,     8,     9,    10,   134,
1931     12,   286,   287,   288,   673,   289,    14,     0,     0,     0,
1932      0,     0,     0,     0,     0,     0,     0,   101,   101,     0,
1933    101,    17,   290,    18,    19,    20,     0,   291,   292,    21,
1934      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
1935      0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
1936    303,     0,     0,     0,   304,     0,     0,     0,     0,     0,
1937    305,     0,     0,   306,     0,     0,     0,     0,   708,     0,
1938      0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
1939    311,   312,     0,     0,     0,     0,   313,     0,     0,     0,
1940    674,     0,     0,     0,     0,     0,   708,     0,     0,     0,
1941      0,     0,  -748,   768,   314,   285,     8,     9,    10,   134,
1942     12,   286,   287,   288,     0,   289,    14,     0,     0,     0,
1943      0,     0,     0,     0,     0,     0,   101,     0,     0,     0,
1944      0,    17,   290,    18,    19,    20,     0,   291,   292,    21,
1945      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
1946      0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
1947    303,  1412,     0,  -738,   304,     0,     0,     0,     0,     0,
1948    305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
1949      0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
1950    311,   312,     0,     0,     0,   663,   313,   756,   757,   758,
1951     10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
1952      0,     0,     0,     0,   314,     0,     0,     0,     0,     0,
1953      0,     0,     0,    17,   290,    18,   101,    20,   101,   291,
1954    292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
1955     24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
1956      0,   759,   760,   664,     0,     0,   304,     0,     0,     0,
1957      0,     0,   305,     0,     0,   306,     0,     0,     0,     0,
1958      0,     0,     0,   307,   308,   309,     0,     0,     0,     0,
1959      0,   310,   311,   312,     0,     0,     0,     0,   313,   761,
1960    663,     0,   756,   757,   758,    10,     0,    12,   501,   287,
1961    288,     0,   289,    14,     0,   889,   314,     0,     0,     0,
1962   1126,     0,     0,     0,     0,     0,     0,     0,    17,   290,
1963     18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
1964    295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
1965    299,   300,   301,   302,    27,     0,   759,   760,   664,     0,
1966      0,   304,     0,     0,     0,     0,     0,   305,     0,     0,
1967    306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
1968    309,     0,     0,     0,     0,     0,   310,   311,   312,     0,
1969      0,     0,   663,   313,   756,   757,   758,    10,     0,    12,
1970    501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
1971   -446,   314,  1126,     0,     0,     0,     0,     0,     0,     0,
1972     17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
1973    293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
1974      0,   298,   299,   300,   301,   302,    27,     0,   759,   760,
1975    664,     0,     0,   304,     0,     0,     0,     0,     0,   305,
1976      0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
1977    307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
1978    312,     0,     0,     0,   663,   313,   756,   757,   758,    10,
1979      0,    12,   501,   287,   288,     0,   289,    14,     0,     0,
1980      0,     0,  1170,   314,     0,     0,     0,     0,     0,     0,
1981      0,     0,    17,   290,    18,     0,    20,     0,   291,   292,
1982     21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
1983      0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
1984    759,   760,   664,     0,     0,   304,     0,     0,     0,     0,
1985      0,   305,     0,     0,   306,     0,     0,     0,     0,     0,
1986      0,     0,   307,   308,   309,     0,     0,     0,     0,     0,
1987    310,   311,   312,     0,     0,     0,     0,   313,   761,   663,
1988      0,   285,     8,     9,    10,     0,    12,   501,   287,   288,
1989      0,   289,    14,     0,     0,   314,     0,     0,     0,     0,
1990      0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
1991      0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
1992     22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
1993    300,   301,   302,    27,     0,    28,   303,   664,     0,     0,
1994    304,     0,     0,     0,     0,     0,   305,     0,     0,   306,
1995      0,     0,     0,     0,     0,     0,     0,   307,   308,   309,
1996      0,     0,     0,     0,     0,   310,   311,   312,     0,     0,
1997      0,     0,   313,     0,     0,   519,     0,   285,     8,     9,
1998     10,  1174,    12,   286,   287,   288,     0,   289,    14,     0,
1999    314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2000      0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
2001    292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
2002     24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
2003      0,    28,   303,  -275,     0,     0,   304,     0,     0,     0,
2004      0,     0,   305,     0,     0,   520,     0,     0,     0,     0,
2005      0,     0,     0,   307,   308,   521,     0,     0,     0,     0,
2006      0,   310,   311,   312,     0,     0,     0,   663,   522,   285,
2007      8,     9,    10,     0,    12,   501,   287,   288,     0,   289,
2008     14,     0,     0,     0,     0,     0,   314,     0,     0,     0,
2009      0,     0,     0,     0,     0,    17,   290,    18,     0,    20,
2010      0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
2011    297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
2012    302,    27,     0,    28,   303,   664,     0,     0,   304,     0,
2013      0,     0,     0,     0,   305,     0,     0,   306,     0,     0,
2014      0,     0,     0,     0,     0,   307,   308,   309,     0,     0,
2015      0,     0,     0,   310,   311,   312,     0,     0,     0,   768,
2016    313,   285,     8,     9,    10,     0,    12,   501,   287,   288,
2017      0,   289,    14,     0,     0,     0,     0,     0,   314,     0,
2018      0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
2019      0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
2020     22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
2021    300,   301,   302,    27,     0,    28,   303,     0,     0,     0,
2022    304,  -738,     0,     0,     0,     0,   305,     0,     0,   306,
2023      0,     0,     0,     0,     0,     0,     0,   307,   308,   309,
2024      0,     0,     0,     0,     0,   310,   311,   312,     0,     0,
2025      0,   519,   313,     7,     8,     9,    10,     0,    12,   286,
2026    287,   288,     0,   289,    14,     0,     0,     0,     0,     0,
2027    314,     0,     0,     0,     0,     0,     0,     0,     0,    17,
2028    290,    18,     0,    20,     0,   291,   292,    21,     0,   293,
2029    294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
2030    298,   299,   300,   301,   302,    27,     0,    28,    29,  -275,
2031      0,     0,   304,     0,     0,     0,     0,     0,   305,     0,
2032      0,  1388,     0,     0,     0,     0,     0,     0,     0,   307,
2033    308,  1389,     0,     0,     0,     0,     0,   310,   311,   312,
2034      0,     0,     0,  1487,  1390,   285,     8,     9,    10,     0,
2035     12,   286,   287,   288,     0,   289,    14,     0,     0,     0,
2036      0,     0,   314,     0,     0,     0,     0,     0,     0,     0,
2037      0,    17,   290,    18,     0,    20,     0,   291,   292,    21,
2038      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
2039      0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
2040    303,     0,     0,  -163,   304,     0,     0,     0,     0,     0,
2041    305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
2042      0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
2043    311,   312,     0,     0,     0,   768,   313,   285,     8,     9,
2044     10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
2045      0,     0,     0,     0,   314,     0,     0,     0,     0,     0,
2046      0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
2047    292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
2048     24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
2049      0,    28,   303,     0,     0,     0,   304,     0,     0,     0,
2050      0,     0,   305,   248,     0,   306,     8,     9,     0,     0,
2051     12,    13,     0,   307,   308,   309,    14,     0,     0,     0,
2052      0,   310,   311,   312,     0,     0,     0,     0,   313,     0,
2053      0,    17,     0,    18,     0,     0,     0,     0,     0,    21,
2054      0,   249,   250,     0,  -738,     0,   314,     0,    24,     0,
2055    251,     0,     0,     0,     0,     0,     0,    27,     0,   129,
2056    130,     0,   252,     0,     0,     0,   253,   254,   255,   256,
2057    257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2058    267,   268,   269,   270,   271,   272,   273,     0,     0,   274,
2059    275,   276,     0,     0,   277,     0,   848,   278,   285,     8,
2060      9,    10,     0,    12,   501,   287,   288,     0,   289,    14,
2061      0,     0,     0,     0,   279,     0,     0,     0,     0,     0,
2062      0,     0,     0,     0,    17,   290,    18,     0,    20,     0,
2063    291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
2064      0,    24,     0,     0,     0,   298,   299,   300,   301,   302,
2065     27,     0,    28,   303,     0,     0,     0,   304,     0,     0,
2066      0,     0,     0,   305,     0,     0,   306,     0,     0,     0,
2067      0,     0,     0,     0,   307,   308,   309,     0,     0,     0,
2068      0,     0,   310,   311,   312,     0,     0,     0,   850,   313,
2069    285,     8,     9,    10,     0,    12,   501,   287,   288,     0,
2070    289,    14,     0,     0,     0,     0,     0,   314,     0,     0,
2071      0,     0,     0,     0,     0,     0,    17,   290,    18,     0,
2072     20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
2073    296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
2074    301,   302,    27,     0,    28,   303,     0,     0,     0,   304,
2075      0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
2076      0,     0,     0,     0,     0,     0,   307,   308,   309,     0,
2077      0,     0,     0,     0,   310,   311,   312,     0,     0,     0,
2078   1401,   313,   285,     8,     9,    10,     0,    12,   501,   287,
2079    288,     0,   289,    14,     0,     0,     0,     0,     0,   314,
2080      0,     0,     0,     0,     0,     0,     0,     0,    17,   290,
2081     18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
2082    295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
2083    299,   300,   301,   302,    27,     0,    28,   303,     0,     0,
2084      0,   304,     0,     0,     0,     0,     0,   305,     0,     0,
2085    306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
2086    309,     0,     0,     0,     0,     0,   310,   311,   312,   285,
2087      8,     9,    10,   313,    12,   501,   287,   288,     0,   289,
2088     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2089      0,   314,     0,     0,     0,    17,   290,    18,     0,    20,
2090      0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
2091    297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
2092    302,    27,     0,    28,   303,     0,     0,     0,   304,     0,
2093      0,     0,     0,     0,   305,     0,   925,   306,     7,     8,
2094    926,    10,   134,    12,    13,   307,   308,   309,     0,    14,
2095      0,     0,     0,   310,   311,   312,     0,     0,     0,     0,
2096    313,     0,     0,     0,    17,     0,    18,    19,    20,     0,
2097      0,     0,    21,  -487,     0,     0,     0,    22,   314,   807,
2098      0,    24,   927,     0,   928,     0,     0,     0,     0,     0,
2099     27,     0,    28,    29,     0,     0,   929,     0,   930,     0,
2100      0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
2101      0,     0,     0,     0,     0,     0,    32,     0,     0,     0,
2102      0,     0,     0,     0,    33,     0,     0,     0,     0,    34,
2103      0,     0,     0,  1232,  1233,  1234,    10,   134,    12,   286,
2104    287,   288,     0,   289,    14,  1235,  -487,  1236,  1237,  1238,
2105   1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,    16,    17,
2106    290,    18,    19,    20,     0,   291,   292,    21,     0,   293,
2107    294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
2108    298,   299,   300,   301,   302,    27,     0,  1246,   303,   660,
2109      0,  1247,   304,     0,     0,     0,     0,     0,   305,     0,
2110      0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
2111    308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
2112      0,     0,     0,     0,   313,     0,  1248,     0,     0,     0,
2113      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2114      0,  1347,   314,  1232,  1233,  1234,    10,   134,    12,   286,
2115    287,   288,     0,   289,    14,  1235,     0,  1236,  1237,  1238,
2116   1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,    16,    17,
2117    290,    18,    19,    20,     0,   291,   292,    21,     0,   293,
2118    294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
2119    298,   299,   300,   301,   302,    27,     0,  1246,   303,   660,
2120      0,  1247,   304,     0,     0,     0,     0,     0,   305,     0,
2121      0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
2122    308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
2123      0,     0,     0,     0,   313,     0,  1248,     0,     0,  1232,
2124   1233,  1234,    10,   134,    12,   286,   287,   288,     0,   289,
2125     14,  1235,   314,  1236,  1237,  1238,  1239,  1240,  1241,  1242,
2126   1243,  1244,  1245,    15,    16,    17,   290,    18,    19,    20,
2127      0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
2128    297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
2129    302,    27,     0,  1246,   303,  1462,     0,  1247,   304,     0,
2130      0,     0,     0,     0,   305,     0,     0,   306,     0,     0,
2131      0,     0,     0,     0,     0,   307,   308,   309,     0,     0,
2132      0,     0,     0,   310,   311,   312,     0,     0,     0,     0,
2133    313,     0,  1248,     0,     0,  1232,  1233,  1234,    10,   134,
2134     12,   286,   287,   288,     0,   289,    14,  1235,   314,  1236,
2135   1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,    15,
2136     16,    17,   290,    18,    19,    20,     0,   291,   292,    21,
2137      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
2138      0,     0,   298,   299,   300,   301,   302,    27,     0,  1246,
2139    303,     0,     0,  1247,   304,     0,     0,     0,     0,     0,
2140    305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
2141      0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
2142    311,   312,     0,     0,     0,     0,   313,     0,  1248,   285,
2143      8,     9,    10,   134,    12,   286,   287,   288,   673,   289,
2144     14,     0,     0,     0,   314,     0,     0,     0,     0,     0,
2145      0,     0,     0,     0,     0,    17,   290,    18,    19,    20,
2146      0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
2147    297,     0,    24,     0,   580,     0,   298,   299,   300,   301,
2148    302,    27,     0,    28,   303,     0,     0,     0,   304,     0,
2149      0,     0,     0,     0,   305,     0,     0,   834,     0,     0,
2150      0,     0,     0,     0,     0,   307,   308,   835,     0,     0,
2151      0,     0,     0,   310,   311,   312,     0,   583,     0,     0,
2152    836,   585,     0,     0,   674,     7,     8,     9,    10,   134,
2153     12,   286,   287,   288,   673,   289,    14,     0,   314,     0,
2154      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2155      0,    17,   290,    18,    19,    20,     0,   291,   292,    21,
2156      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
2157    580,     0,   298,   299,   300,   301,   302,    27,     0,    28,
2158     29,     0,     0,     0,   304,     0,     0,     0,     0,     0,
2159    305,     0,     0,  1051,     0,     0,     0,     0,     0,     0,
2160      0,   307,   308,  1052,     0,     0,     0,     0,     0,   310,
2161    311,   312,     0,   583,     0,     0,  1053,   585,     0,     0,
2162    674,   285,     8,     9,    10,     0,    12,   286,   287,   288,
2163      0,   289,    14,     0,   314,     0,     0,     0,     0,     0,
2164      0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
2165      0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
2166     22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
2167    300,   301,   302,    27,     0,    28,   303,     0,     0,     0,
2168    304,     0,     0,     0,     0,     0,   305,     0,     0,   306,
2169      0,     0,     0,     0,   339,     0,   340,   307,   308,   309,
2170      0,     0,     0,     0,     0,   310,   311,   312,   285,     8,
2171      9,    10,   313,    12,   286,   287,   288,     0,   289,    14,
2172      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2173    314,     0,     0,     0,    17,   290,    18,     0,    20,     0,
2174    291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
2175      0,    24,     0,   580,     0,   298,   299,   300,   301,   302,
2176     27,     0,    28,   303,     0,     0,     0,     0,     0,     0,
2177      0,     0,     0,   305,     0,     0,   834,     0,     0,     0,
2178      0,     0,     0,     0,   307,   308,   835,     0,     0,     0,
2179      0,     0,   310,   311,   312,     0,   583,     0,     0,   836,
2180    585,     7,     8,     9,    10,     0,    12,   286,   287,   288,
2181      0,   289,    14,     0,     0,     0,     0,   314,     0,     0,
2182      0,     0,     0,     0,     0,     0,     0,    17,   290,    18,
2183      0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
2184     22,   296,   297,     0,    24,     0,   580,     0,   298,   299,
2185    300,   301,   302,    27,     0,    28,    29,     0,     0,     0,
2186      0,     0,     0,     0,     0,     0,   305,     0,     0,  1051,
2187      0,     0,     0,     0,     0,     0,     0,   307,   308,  1052,
2188      0,     0,     0,     0,     0,   310,   311,   312,     0,   583,
2189      0,     0,  1053,   585,   285,     8,     9,    10,     0,    12,
2190    501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
2191    314,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2192     17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
2193    293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
2194      0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
2195      0,     0,  1324,   304,     0,     0,     0,     0,     0,   305,
2196      0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
2197    307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
2198    312,     0,     0,     0,     0,   313,   285,     8,     9,    10,
2199    134,    12,   286,   287,   288,     0,   289,    14,     0,     0,
2200      0,     0,     0,   314,     0,     0,     0,     0,     0,     0,
2201      0,     0,    17,   290,    18,    19,    20,     0,   291,   292,
2202     21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
2203      0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
2204     28,   303,     0,     0,     0,     0,     0,     0,     0,     0,
2205      0,   305,     0,     0,   306,     0,     0,     0,     0,     0,
2206      0,     0,   307,   308,   309,     0,     0,     0,     0,     0,
2207    310,   311,   312,   285,     8,     9,    10,   313,    12,   286,
2208    287,   288,     0,   289,    14,     0,     0,     0,     0,     0,
2209      0,     0,     0,     0,     0,   314,     0,     0,     0,    17,
2210    290,    18,     0,    20,     0,   291,   292,    21,     0,   293,
2211    294,   295,    22,   296,   297,     0,    24,     0,     0,     0,
2212    298,   299,   300,   301,   302,    27,     0,    28,   303,     0,
2213      0,     0,   304,     0,     0,     0,     0,     0,   305,     0,
2214      0,   306,     0,     0,     0,     0,     0,     0,     0,   307,
2215    308,   309,     0,     0,     0,     0,     0,   310,   311,   312,
2216    285,     8,     9,    10,   313,    12,   501,   287,   288,     0,
2217    289,    14,     0,     0,     0,     0,     0,     0,     0,     0,
2218      0,     0,   314,     0,     0,     0,    17,   290,    18,     0,
2219     20,     0,   291,   292,    21,     0,   293,   294,   295,    22,
2220    296,   297,     0,    24,     0,     0,     0,   298,   299,   300,
2221    301,   302,    27,     0,    28,   303,     0,     0,     0,   304,
2222      0,     0,     0,     0,     0,   305,     0,     0,   306,     0,
2223      0,     0,     0,     0,     0,     0,   307,   308,   309,     0,
2224      0,     0,     0,     0,   310,   311,   312,   285,     8,     9,
2225     10,   313,    12,   501,   287,   288,     0,   289,    14,     0,
2226      0,     0,     0,     0,     0,     0,     0,     0,     0,   314,
2227      0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
2228    292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
2229     24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
2230      0,    28,   303,   532,     0,     0,     0,     0,     0,     0,
2231      0,     0,   305,     0,     0,   306,     0,     0,     0,     0,
2232      0,     0,     0,   307,   308,   309,     0,     0,     0,     0,
2233      0,   310,   311,   312,   285,     8,     9,    10,   533,    12,
2234    501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
2235      0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
2236     17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
2237    293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
2238      0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
2239      0,     0,     0,     0,     0,     0,     0,     0,     0,   305,
2240      0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
2241    307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
2242    312,     0,     0,     0,     0,   313,   569,   285,     8,     9,
2243     10,     0,    12,   501,   287,   288,     0,   289,    14,     0,
2244      0,     0,     0,   314,     0,     0,     0,     0,     0,     0,
2245      0,     0,     0,    17,   290,    18,     0,    20,     0,   291,
2246    292,    21,     0,   293,   294,   295,    22,   296,   297,     0,
2247     24,     0,     0,     0,   298,   299,   300,   301,   302,    27,
2248      0,    28,   303,     0,     0,     0,   304,     0,     0,     0,
2249      0,     0,   305,     0,     0,   520,     0,     0,     0,     0,
2250      0,     0,     0,   307,   308,   521,     0,     0,     0,     0,
2251      0,   310,   311,   312,  1023,     8,     9,    10,   522,    12,
2252    501,   287,   288,     0,   289,    14,     0,     0,     0,     0,
2253      0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
2254     17,   290,    18,     0,    20,     0,   291,   292,    21,     0,
2255    293,   294,   295,    22,   296,   297,     0,    24,     0,     0,
2256      0,   298,   299,   300,   301,   302,    27,     0,    28,   303,
2257      0,     0,     0,   304,     0,     0,     0,     0,     0,   305,
2258      0,     0,   306,     0,     0,     0,     0,     0,     0,     0,
2259    307,   308,   309,     0,     0,     0,     0,     0,   310,   311,
2260    312,     7,     8,     9,    10,   313,    12,   501,   287,   288,
2261      0,   289,    14,     0,     0,     0,     0,     0,     0,     0,
2262      0,     0,     0,   314,     0,     0,     0,    17,   290,    18,
2263      0,    20,     0,   291,   292,    21,     0,   293,   294,   295,
2264     22,   296,   297,     0,    24,     0,     0,     0,   298,   299,
2265    300,   301,   302,    27,     0,    28,    29,     0,     0,     0,
2266    304,     0,     0,     0,     0,     0,   305,     0,     0,  1388,
2267      0,     0,     0,     0,     0,     0,     0,   307,   308,  1389,
2268      0,     0,     0,     0,     0,   310,   311,   312,   285,     8,
2269      9,    10,  1390,    12,   501,   287,   288,     0,   289,    14,
2270      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2271    314,     0,     0,     0,    17,   290,    18,     0,    20,     0,
2272    291,   292,    21,     0,   293,   294,   295,    22,   296,   297,
2273      0,    24,     0,     0,     0,   298,   299,   300,   301,   302,
2274     27,     0,    28,   303,     0,     0,     0,     0,     0,     0,
2275      0,     0,     0,   305,     0,     0,   306,     0,     0,     0,
2276      0,     0,     0,     0,   307,   308,   309,     0,     0,     0,
2277      0,     0,   310,   311,   312,   285,     8,     9,    10,   502,
2278     12,   501,   287,   288,     0,   289,    14,     0,     0,     0,
2279      0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
2280      0,    17,   290,    18,     0,    20,     0,   291,   292,    21,
2281      0,   293,   294,   295,    22,   296,   297,     0,    24,     0,
2282      0,     0,   298,   299,   300,   301,   302,    27,     0,    28,
2283    303,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2284    305,     0,     0,   306,     0,     0,     0,     0,     0,     0,
2285      0,   307,   308,   309,     0,     0,     0,     0,     0,   310,
2286    311,   312,   285,     8,     9,    10,   505,    12,   501,   287,
2287    288,     0,   289,    14,     0,     0,     0,     0,     0,     0,
2288      0,     0,     0,     0,   314,     0,     0,     0,    17,   290,
2289     18,     0,    20,     0,   291,   292,    21,     0,   293,   294,
2290    295,    22,   296,   297,     0,    24,     0,     0,     0,   298,
2291    299,   300,   301,   302,    27,     0,    28,   303,     0,     0,
2292      0,     0,     0,     0,     0,     0,     0,   305,     0,     0,
2293    306,     0,     0,     0,     0,     0,     0,     0,   307,   308,
2294    309,     0,     0,     0,     0,     0,   310,   311,   312,   285,
2295      8,     9,    10,   313,    12,   501,   287,   288,     0,   289,
2296     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2297      0,   314,     0,     0,     0,    17,   290,    18,     0,    20,
2298      0,   291,   292,    21,     0,   293,   294,   295,    22,   296,
2299    297,     0,    24,     0,     0,     0,   298,   299,   300,   301,
2300    302,    27,     0,    28,   303,     0,     0,     0,     0,     0,
2301      0,     0,     0,     0,   305,     0,     0,   520,     0,     0,
2302      0,     0,     0,     0,     0,   307,   308,   521,     0,     0,
2303      0,     0,     0,   310,   311,   312,     7,     8,     9,    10,
2304    522,    12,   286,   287,   288,     0,   289,    14,     0,     0,
2305      0,     0,     0,     0,     0,     0,     0,     0,   314,     0,
2306      0,     0,    17,   290,    18,     0,    20,     0,   291,   292,
2307     21,     0,   293,   294,   295,    22,   296,   297,     0,    24,
2308      0,     0,     0,   298,   299,   300,   301,   302,    27,     0,
2309     28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
2310      0,   305,     0,     6,  1388,     7,     8,     9,    10,    11,
2311     12,    13,   307,   308,  1389,     0,    14,     0,     0,     0,
2312    310,   311,   312,     0,     0,     0,     0,  1390,     0,    15,
2313     16,    17,     0,    18,    19,    20,     0,     0,     0,    21,
2314      0,     0,     0,     0,    22,   314,     0,    23,    24,    25,
2315      0,    26,     0,     0,     0,     0,     0,    27,     0,    28,
2316     29,     0,   166,    30,     7,     8,     9,    10,    11,    12,
2317     13,     0,     0,    31,     0,    14,     0,     0,     0,     0,
2318      0,     0,     0,    32,     0,     0,     0,     0,    15,    16,
2319     17,    33,    18,    19,    20,     0,    34,     0,    21,     0,
2320      0,     0,    35,    22,     0,     0,    23,    24,    25,     0,
2321     26,     0,     0,     0,     0,     0,    27,     0,    28,    29,
2322      0,     0,    30,     7,     8,     9,    10,   201,   202,   203,
2323      0,     0,    31,     0,    14,     0,     0,     0,     0,     0,
2324      0,     0,    32,     0,     0,     0,     0,     0,     0,     0,
2325     33,     0,    19,     0,     0,    34,     0,    21,     0,     0,
2326      0,    35,    22,     0,     0,     0,    24,     0,   580,     0,
2327      0,     0,     0,     0,     0,    27,     0,    28,    29,     7,
2328      8,     9,    10,   201,   202,   203,     0,     0,     0,     0,
2329     14,   862,     0,     0,     0,     0,     0,     0,     0,     0,
2330      0,   863,     0,     0,     0,     0,     0,     0,    19,    33,
2331      0,   583,     0,    21,   864,   585,     0,     0,    22,     0,
2332      0,     0,    24,     0,   580,     0,     0,     0,     0,     0,
2333      0,    27,     0,    28,    29,     7,     8,     9,    10,   134,
2334     12,    13,     0,     0,     0,     0,    14,   862,     0,     0,
2335      0,     0,     0,     0,     0,     0,     0,   863,     0,     0,
2336      0,    17,     0,    18,    19,    33,     0,   583,     0,    21,
2337    898,   585,     0,     0,    22,     0,     0,     0,    24,     0,
2338      0,     0,     0,     0,     0,     0,     0,    27,     0,    28,
2339     29,     7,     8,     9,    10,   134,    12,    13,     0,     0,
2340    904,     0,    14,    31,     0,     0,     0,   135,     0,     0,
2341      0,     0,     0,    32,     0,     0,     0,    17,     0,    18,
2342     19,    33,     0,     0,     0,    21,    34,     0,     0,     0,
2343     22,     0,     0,     0,    24,     0,  1086,     8,   926,    10,
2344    192,    12,   193,    27,     0,    28,    29,    14,     0,     0,
2345      0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
2346      0,     0,    17,     0,    18,    19,     0,     0,     0,    32,
2347     21,     0,     0,     0,     0,    22,     0,    33,     0,    24,
2348      0,     0,    34,     0,     0,     0,     0,     0,    27,     0,
2349     28,    29,     0,     0,     0,     0,  1088,     7,     8,     9,
2350     10,   192,    12,   193,    31,     0,     0,     0,    14,     0,
2351      0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
2352      0,     0,    33,    17,     0,    18,    19,    34,     0,     0,
2353      0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
2354     24,     0,     7,     8,     9,    10,   134,    12,    13,    27,
2355      0,    28,    29,    14,     0,  1337,     0,     0,     0,     0,
2356      0,     0,     0,     0,     0,    31,     0,     0,    17,     0,
2357     18,    19,     0,     0,     0,    32,    21,     0,     0,     0,
2358      0,    22,     0,    33,     0,    24,     0,     0,    34,     0,
2359      0,     0,     0,     0,    27,     0,    28,    29,     7,     8,
2360      9,    10,   192,    12,   193,     0,     0,     0,     0,    14,
2361     31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2362     32,     0,     0,     0,    17,     0,    18,    19,    33,     0,
2363      0,     0,    21,    34,     0,     0,     0,    22,     0,     0,
2364      0,    24,     0,     7,     8,     9,    10,   201,   202,   203,
2365     27,     0,    28,    29,    14,     0,     0,     0,     0,     0,
2366      0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
2367      0,     0,    19,     0,     0,     0,    32,    21,     0,     0,
2368      0,     0,    22,     0,    33,  1378,    24,     0,   580,    34,
2369      0,     0,     0,     0,     0,    27,     0,    28,    29,   535,
2370    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2371    546,   180,   548,   549,   550,   551,   552,   553,   554,   555,
2372    556,   181,     0,     0,     0,     0,     0,     0,     0,    33,
2373      0,     0,     0,     0,  1340,     0,  1379,   535,   536,   537,
2374    538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
2375    548,   549,   550,   551,   552,   553,   554,   555,   556,     8,
2376      9,     0,   134,    12,    13,     0,     8,     9,     0,    14,
2377     12,   230,     0,     8,     9,     0,    14,    12,    13,     0,
2378      0,     0,     0,    14,    17,     0,    18,    19,     0,     0,
2379      0,    17,    21,    18,     0,     0,    19,     0,    17,    21,
2380     18,   634,     0,     0,     0,     0,    21,     0,    24,     0,
2381     27,     0,   129,   130,     0,    24,     0,    27,     0,   129,
2382    130,     0,     0,     0,    27,     0,   129,   130,   535,   536,
2383    537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2384    547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
2385    535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
2386    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
2387    555,   556,   535,   536,   537,   538,   539,   540,   541,   542,
2388    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2389    553,   554,   555,   556,     0,     0,     0,     0,     0,  1124,
2390      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2391      0,     0,     0,     0,   617,     0,     0,  1432,   535,   536,
2392    537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2393    547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
2394   1301,   535,   536,   537,   538,   539,   540,   541,   542,   543,
2395    544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
2396    554,   555,   556,  1449,   535,   536,   537,   538,   539,   540,
2397    541,   542,   543,   544,   545,   546,   547,   548,   549,   550,
2398    551,   552,   553,   554,   555,   556,   535,   536,   537,   538,
2399    539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
2400    549,   550,   551,   552,   553,   554,   555,   556
2401 };
2402
2403 static const short yycheck[] = {     4,
2404    658,   332,    54,   161,    75,   392,   656,   196,   470,   392,
2405     58,   427,     4,     4,   125,   236,    83,   392,    24,   888,
2406   1226,    26,   151,   152,   338,     4,   931,   449,   796,    79,
2407     14,    36,   196,   363,   132,   940,    41,     4,   721,   289,
2408    290,   205,   231,   726,    36,    36,    11,    26,    34,    41,
2409     41,    56,   132,   133,    11,    53,  1256,    36,    89,    26,
2410     91,    92,    41,  1263,    31,    32,    71,   226,  1376,    36,
2411    320,    61,   128,   422,    41,  1249,    11,   133,    83,  1187,
2412   1188,  1412,    87,     4,    89,   137,    91,    92,    93,    48,
2413     60,   139,   281,  1201,  1410,    38,   146,    34,    82,    55,
2414     61,   106,   107,  1407,    36,    26,    63,   204,   205,    41,
2415    141,     9,   143,     0,    93,    36,    83,   338,    60,    75,
2416     41,   105,     4,    65,     1,  1441,    93,    55,     0,   200,
2417      1,    75,     1,   138,    76,    94,   141,    60,   143,     4,
2418    190,   111,    75,   332,    26,   110,  1393,    75,   196,   832,
2419    111,   110,  1483,   110,    36,    79,   204,   205,   156,    41,
2420    165,    26,    83,   585,    62,  1469,   152,   153,   111,  1277,
2421     61,    36,    93,   504,   111,   110,    41,   526,  1286,  1287,
2422   1380,  1289,    59,   231,   151,   152,   165,   110,    59,   187,
2423     59,    56,    63,  1440,    63,   657,   182,   428,   165,    12,
2424   1508,    60,  1376,    49,   435,    25,  1522,    27,    28,   199,
2425     60,    93,   584,   180,   181,   983,    12,   207,    61,   591,
2426    111,  1421,    55,  1470,    61,    96,     7,    96,    93,     4,
2427     60,   329,    14,   281,     4,     5,    91,    92,    39,    59,
2428     59,    23,    75,    63,   165,  1451,    60,    60,   232,   329,
2429     63,   110,    65,   284,    55,    55,    12,    38,   325,    48,
2430    110,    36,    76,    63,    60,    59,    41,    63,   111,   500,
2431    447,    65,  1472,   956,   111,   958,    96,   282,   455,   284,
2432    110,   100,    64,   165,   332,    98,   141,    57,    58,   603,
2433    454,  1399,  1400,    48,   681,    94,   348,  1202,   681,   629,
2434    165,   349,    98,    48,    60,    94,   386,    63,   313,   365,
2435    659,    81,   441,   442,   110,   473,    48,    27,    28,    63,
2436    325,    34,    32,   247,     3,     4,     5,   313,   333,    60,
2437    386,   562,    94,   564,   565,  1253,    63,  1255,    75,    94,
2438     95,   123,    98,    60,    61,    76,   677,    78,    63,    94,
2439     95,    61,    48,    94,   338,    65,   453,   454,   325,    63,
2440     75,    34,    94,    95,   461,  1133,   110,   598,   150,    48,
2441   1239,    75,  1442,   291,   292,   472,    55,    61,    57,    58,
2442      8,     9,   798,   110,  1454,    48,    14,   392,   306,    25,
2443   1073,   309,   463,  1463,   312,   492,     4,   315,    94,    95,
2444    318,   111,  1085,    48,   325,   453,   454,    48,   326,    37,
2445    415,   833,  1482,   461,   110,    94,    94,    48,    46,   109,
2446     48,    48,    25,    59,   472,   392,    61,    63,    36,   284,
2447    435,    94,  1502,    41,    65,    48,   415,  1306,   151,   152,
2448    153,   223,   224,    55,   492,    32,  1315,  1316,   415,    94,
2449     95,    75,    65,    94,   236,  1525,   442,   443,    60,    61,
2450     96,   316,   924,    94,   836,   110,    94,    94,   435,   182,
2451    460,   392,   859,    55,   441,   442,   859,    63,   151,   152,
2452    153,    94,    95,    48,   859,   475,    48,   342,    48,   344,
2453     63,   346,   864,    75,   415,    55,    59,   502,    48,   566,
2454    505,    55,    75,    65,   509,   510,   511,   512,   513,   182,
2455      3,     4,     5,     6,   435,    75,   502,   522,   111,   505,
2456      3,     4,     5,   305,   529,    59,   898,   841,   533,    94,
2457     95,   947,    94,   415,    94,   521,   522,   886,    48,     4,
2458      5,   396,   397,    94,    94,   110,   705,   533,   707,    42,
2459    415,    60,    61,   712,     4,     5,   745,    55,   974,   975,
2460    565,   566,    55,    48,    57,    58,   989,   990,   799,   992,
2461     76,   993,    48,    48,    57,    58,  1445,    75,  1040,   584,
2462    362,   812,    55,   814,    94,   816,   591,   639,   838,   641,
2463    642,    55,    57,    58,   642,    56,    89,    58,    81,   566,
2464     48,   698,   520,   521,   715,   591,  1068,    57,    58,    94,
2465     55,   595,     4,     5,   581,   582,    81,   584,    94,    94,
2466    841,     4,     5,   854,   591,   677,     9,    48,   634,   677,
2467     75,    81,    55,  1049,    55,   640,     4,     5,    48,   644,
2468    110,     9,  1058,  1059,   499,   566,    94,  1063,  1064,   880,
2469    698,   657,     4,     5,    75,    48,     9,   988,    48,    12,
2470   1032,   110,    55,   584,    95,    57,    58,    63,   110,    48,
2471    591,   110,    55,    94,    57,    58,   681,   138,   139,    75,
2472     11,  1053,    75,   111,    94,    48,   468,    55,    71,    57,
2473     58,   722,   723,   724,    48,    48,     3,   745,    81,    27,
2474     28,    94,    61,    71,    94,    57,    58,    60,  1124,    62,
2475     63,   716,    65,    81,   681,    94,   721,   722,   723,   724,
2476     94,   726,   113,    76,   716,    78,    95,    95,   441,   442,
2477    443,    94,   113,     4,     5,   196,    63,   716,    55,    95,
2478     94,    94,    95,   204,   205,    98,    63,    84,    85,   716,
2479    532,    60,    61,   739,   721,     4,     5,   110,    75,   726,
2480    681,    94,   921,   922,   923,  1181,    60,    61,   441,   442,
2481    443,    55,    94,   234,     8,     9,     4,     5,    75,    63,
2482     14,    55,    75,     4,     5,  1435,    57,    58,    75,    63,
2483    795,    75,   716,    75,   799,   716,    11,  1455,  1214,    48,
2484    721,    75,   110,    37,    60,   726,    55,   111,    57,    58,
2485     81,  1042,    46,  1044,   110,  1046,     3,     4,     5,   869,
2486     55,   826,    71,     4,     5,   110,    65,   832,    63,    57,
2487     58,   836,    81,   110,   716,    55,    57,    58,    60,    61,
2488     75,   110,    91,    63,    61,    94,    95,    60,    61,   835,
2489    836,   111,   634,    81,   859,    75,   861,   841,   111,   864,
2490     81,   643,   113,   934,   935,   832,   110,   834,   835,   836,
2491     57,    58,   943,   113,    55,    75,    57,    58,   864,     4,
2492      5,    75,   664,    75,   113,  1301,   938,   113,   349,   807,
2493     71,   110,   859,   898,   110,   862,   863,   864,   110,    59,
2494     81,  1030,  1031,    25,   110,    27,    28,   912,   733,   734,
2495    735,   832,   898,    55,   919,   836,   834,   835,     4,     5,
2496   1151,     8,  1051,  1052,  1255,   113,   931,    94,   933,    48,
2497     55,   898,    57,    58,   939,   940,    65,    59,   859,   931,
2498     60,    63,    94,   864,    61,   111,    71,    55,   940,    65,
2499     65,   956,   931,   958,   933,    63,    81,   110,    61,    45,
2500     25,   940,    27,    28,   931,    63,   933,    75,  1317,    55,
2501     95,    57,    58,   940,    96,   110,   110,   898,   110,   110,
2502   1329,     7,     8,     9,  1034,   446,    65,    65,    14,   956,
2503     65,   958,   453,   454,    59,   113,   457,    65,    63,    94,
2504    461,    60,     3,     4,     5,     6,    32,   931,   110,   933,
2505    931,    37,   933,   110,   110,   939,   940,  1404,  1089,   940,
2506     46,  1404,   110,    76,  1095,  1096,   110,  1032,  1099,  1100,
2507     76,    96,  1103,    76,  1040,   956,    76,   958,     3,     4,
2508      5,    42,    63,   110,  1393,  1031,  1032,  1097,  1053,   931,
2509    110,   933,    63,    60,   110,    63,    57,    58,   940,   110,
2510      3,     4,     5,  1030,  1031,  1032,  1052,  1053,  1073,   113,
2511    852,    95,   111,   938,   939,   110,   110,   995,    48,    25,
2512   1085,    27,    28,   113,  1051,  1052,  1053,  1418,    89,  1438,
2513     55,  1440,    57,    58,  1510,   950,   951,   952,    89,     3,
2514      4,     5,   111,  1108,   110,    87,  1073,    89,   110,    91,
2515     92,  1032,    55,    59,    57,    58,  1108,    63,  1085,   113,
2516    113,  1470,   110,     3,     4,     5,   110,   110,    60,  1108,
2517    110,  1480,  1053,  1051,  1052,     3,     4,     5,     6,   111,
2518     65,  1108,    79,    80,    81,    82,    83,    84,    85,    65,
2519     96,   864,  1073,    57,    58,    59,    75,    63,   110,   141,
2520    110,   143,  1167,    94,  1085,    94,     3,     4,     5,     6,
2521     94,    94,  1177,  1097,    42,  1167,  1167,    57,    58,   640,
2522    110,   642,     8,   111,  1108,   898,   113,  1108,  1167,    57,
2523     58,   864,   110,   975,     4,     5,   110,  1202,   110,   392,
2524   1167,  1253,   110,  1255,   113,    42,   111,  1255,   110,   110,
2525   1202,   110,    49,  1284,  1285,   110,   677,   110,   110,    60,
2526     57,    58,    60,  1202,   110,   898,  1108,  1385,   110,  1418,
2527     63,     3,     4,     5,   113,  1202,    48,   698,   110,   110,
2528    701,   110,   435,    97,  1249,    55,  1167,    57,    58,  1254,
2529     34,  1256,    89,   110,   110,   110,    65,  1249,  1263,  1388,
2530   1389,     3,     4,     5,  1256,  1256,   110,  1049,  1339,    63,
2531   1249,  1263,  1263,   113,  1198,   110,   110,  1256,  1202,   110,
2532    110,  1202,  1249,    55,  1263,    57,    58,    59,    63,  1256,
2533    446,     3,     4,     5,    61,    61,  1263,     3,     4,     5,
2534      6,   457,   284,    16,     9,    61,    94,     1,    94,     3,
2535      4,     5,     6,    61,     8,    57,    58,  1030,  1031,  1032,
2536   1202,    61,   304,    81,    82,    83,    84,    85,  1249,    94,
2537     94,  1249,     3,     4,     5,  1256,    42,    17,  1051,  1052,
2538   1053,    61,  1263,    49,    99,    57,    58,   109,    42,   110,
2539     61,    57,    58,   110,  1340,    49,   110,  1030,  1031,  1032,
2540    110,    55,    11,    57,    58,    61,    61,  1419,    94,    60,
2541   1418,  1376,  1377,   110,    61,  1380,    65,  1448,  1051,  1052,
2542   1053,   110,  1164,    89,  1376,  1390,    57,    58,  1380,  1380,
2543     11,   584,    61,    61,   110,    89,    11,  1376,   591,  1404,
2544     61,  1380,  1407,  1389,  1390,  1410,     3,     4,     5,  1376,
2545   1377,     0,     0,  1380,     0,     2,  1421,   417,  1410,  1410,
2546    365,  1388,  1389,   859,   165,  1434,   165,   939,   933,  1421,
2547   1421,  1410,  1372,  1040,    31,   529,  1441,  1404,  1522,  1254,
2548   1407,   852,  1421,  1410,   847,   427,   428,   225,  1068,  1441,
2549   1441,  1108,    48,   435,  1421,  1376,  1377,   664,    55,  1380,
2550     57,    58,  1441,  1245,  1469,   924,   933,  1472,   939,   614,
2551   1388,  1389,  1200,   845,  1441,   566,   329,   187,   939,   123,
2552   1472,  1472,  1256,  1404,   945,  1168,  1407,  1480,   681,  1410,
2553   1424,    87,    88,  1472,  1494,  1455,    92,    93,    94,    95,
2554   1421,  1496,  1469,   907,    -1,  1472,  1177,     7,     8,     9,
2555     -1,    -1,    -1,    -1,    14,    -1,    -1,  1522,   500,    -1,
2556   1441,    -1,    -1,    -1,    -1,    -1,  1308,    -1,   721,    -1,
2557   1522,  1522,    32,   726,    -1,    -1,    -1,    37,    -1,     3,
2558      4,     5,     6,  1522,    -1,   701,    46,   529,  1469,    -1,
2559    532,  1472,    -1,   535,   536,  1522,   538,   539,   540,   541,
2560    542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
2561    552,   553,   554,   555,   556,    -1,    -1,    -1,    42,    -1,
2562    562,    -1,   564,   565,    -1,    49,    -1,    -1,    -1,    -1,
2563     -1,    -1,    -1,    57,    58,   106,   107,    -1,     3,     4,
2564      5,  1522,     7,    -1,    -1,    -1,     3,     4,     5,   591,
2565      7,     8,     9,   428,    -1,    -1,   598,  1078,  1079,    -1,
2566    435,    12,   180,   181,   182,    89,    31,  1340,    -1,    -1,
2567     -1,    -1,    -1,    38,   616,   617,    27,    28,    -1,   832,
2568     37,    32,    -1,   836,    -1,    -1,  1107,    -1,    -1,    -1,
2569     55,    -1,    57,    58,    -1,    -1,    -1,    48,    55,    -1,
2570     57,    58,    59,    -1,    -1,    -1,   859,  1340,    -1,    60,
2571     61,   864,    63,   696,    65,  1388,  1389,  1390,    -1,    -1,
2572     -1,    -1,   664,    -1,    -1,   500,    -1,    -1,    -1,    -1,
2573     -1,     3,     4,     5,     6,    -1,    -1,   720,    -1,    -1,
2574     -1,    -1,   725,    94,    95,   898,    -1,    98,   105,   106,
2575    107,    -1,    -1,    -1,    -1,  1388,  1389,  1390,    -1,   110,
2576     27,    28,    -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,
2577     42,    -1,  1193,  1194,    -1,  1196,  1197,    -1,  1199,    -1,
2578    722,   723,   724,    55,    -1,    57,    58,   562,    -1,   564,
2579    565,    63,    -1,    60,    61,    -1,    -1,   739,    65,    71,
2580     -1,    -1,    -1,   956,    -1,   958,    -1,    -1,    -1,    81,
2581      4,     5,    -1,     7,     8,     9,   591,    89,    12,   761,
2582     14,    -1,    94,   598,    -1,    -1,     3,     4,     5,   945,
2583      7,     8,     9,  1254,  1255,    29,    -1,    31,    32,    -1,
2584     -1,    -1,   313,    37,   827,    -1,   829,    -1,    -1,    -1,
2585     -1,    -1,    46,  1274,  1275,    -1,   798,   799,    -1,    -1,
2586     -1,    55,    -1,    57,    58,    -1,     4,    -1,    -1,    -1,
2587    812,    -1,   814,    -1,   816,    -1,    14,    -1,    -1,  1032,
2588     57,    58,    -1,    -1,    -1,    -1,    -1,    25,    26,    -1,
2589     -1,    -1,    -1,    31,    32,    -1,    34,    -1,    36,    -1,
2590   1053,    -1,   844,    41,    98,    -1,     4,     5,    -1,    -1,
2591     -1,     9,   854,    -1,    -1,    -1,    54,    -1,    56,   437,
2592   1073,   439,    -1,   441,   442,   443,    64,    -1,    -1,    -1,
2593     -1,   873,  1085,    71,   452,  1356,  1357,  1358,   880,    -1,
2594      7,     8,     9,    -1,    82,    83,    -1,    14,    -1,    -1,
2595     48,    -1,    -1,    -1,    -1,    93,   898,    55,    -1,    57,
2596     58,   432,  1078,  1079,   739,    32,    -1,   105,    -1,    -1,
2597     37,    -1,   955,    71,   957,  1396,  1397,    -1,    -1,    46,
2598     -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,   930,    -1,
2599    128,  1107,    -1,    91,    61,   133,    94,    95,    -1,   137,
2600    138,    -1,    -1,    -1,    -1,   947,   144,    -1,    -1,   147,
2601    148,   106,   107,   151,   152,   153,    -1,    -1,    -1,    -1,
2602     -1,    -1,    -1,    -1,   799,    -1,  1009,   165,    -1,    -1,
2603     -1,   502,   974,   975,   505,    -1,   978,   812,   509,   814,
2604     -1,   816,   180,   181,   182,     7,     8,     9,    -1,    -1,
2605   1471,   522,    14,    -1,    -1,    -1,     3,     4,     5,     6,
2606     -1,    -1,   533,    -1,    -1,    -1,   537,    -1,    -1,    -1,
2607     32,   209,    -1,    -1,    -1,    37,    -1,  1193,  1194,   854,
2608   1196,  1197,    -1,  1199,    46,    -1,   224,    -1,    -1,    -1,
2609     -1,    -1,   563,    -1,   232,    42,    -1,    -1,   569,    61,
2610   1042,    -1,  1044,    -1,  1046,   880,   244,  1049,    55,    -1,
2611     57,    58,     3,     4,     5,     6,  1058,  1059,     9,    -1,
2612     -1,  1063,  1064,   898,    71,    77,    78,    79,    80,    81,
2613     82,    83,    84,    85,    81,    -1,    -1,    -1,    -1,    -1,
2614     -1,    -1,    89,    -1,   282,   283,  1088,    94,    -1,    -1,
2615     -1,    42,    -1,    -1,    -1,    -1,    -1,    48,  1274,  1275,
2616      3,     4,     5,  1146,    55,    -1,    57,    58,    -1,    -1,
2617    688,   689,    -1,   691,     3,     4,     5,     6,    -1,    -1,
2618     71,    -1,  1124,    -1,  1126,    -1,    -1,   325,    -1,    -1,
2619     81,   329,    -1,   331,   332,   333,    39,    40,    89,    42,
2620     91,    -1,  1185,    94,    95,    -1,  1189,    -1,    -1,  1151,
2621    348,    -1,    55,    42,    57,    58,    -1,    -1,   313,    -1,
2622     49,  1204,  1205,    -1,    -1,    -1,    -1,   365,    57,    58,
2623     -1,    -1,    -1,    -1,    -1,    -1,    -1,  1220,    -1,  1181,
2624   1356,  1357,  1358,    -1,    -1,    -1,    -1,    -1,   386,  1191,
2625   1192,  1404,    81,    -1,   392,    -1,     3,     4,     5,     6,
2626     89,    -1,     9,    -1,    -1,   403,    -1,  1042,   406,  1044,
2627     -1,  1046,  1214,   411,    81,    -1,    -1,   415,    -1,    -1,
2628   1396,  1397,     3,     4,     5,     6,    -1,    -1,    -1,    -1,
2629     -1,    -1,    -1,    -1,    -1,    42,    -1,   392,  1240,   437,
2630     -1,   439,    -1,   441,   442,   443,    -1,    -1,    55,   447,
2631     57,    58,  1295,  1296,   452,    -1,    -1,   455,    -1,    -1,
2632     -1,    42,    -1,    -1,    71,    -1,    -1,    -1,    49,    -1,
2633     -1,    -1,   803,    -1,    81,    -1,    57,    58,  1280,    -1,
2634    435,    -1,    89,    -1,   862,   863,   864,    94,    -1,    -1,
2635     -1,    -1,   159,    -1,    -1,  1471,    -1,    -1,    -1,  1301,
2636     81,    -1,    -1,    -1,    -1,   836,  1349,  1350,    89,    -1,
2637     -1,   178,   510,   511,   512,   513,  1151,    -1,    -1,    -1,
2638    898,    -1,    -1,    -1,   191,    73,    74,    75,    76,    77,
2639     78,    79,    80,    81,    82,    83,    84,    85,  1340,    -1,
2640      3,     4,     5,     6,    -1,    -1,     9,   502,    -1,    -1,
2641    505,    -1,  1354,  1355,   509,   510,   511,   512,   513,    -1,
2642    938,  1363,    -1,    -1,    -1,    -1,    -1,   522,   566,    -1,
2643    568,    -1,    -1,    -1,    -1,    -1,  1378,    -1,   533,    42,
2644     -1,   579,    -1,   581,   582,    48,   584,    -1,   919,    -1,
2645     -1,    -1,    55,   591,    57,    58,    -1,   595,    -1,    -1,
2646     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
2647    565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
2648     -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    91,   584,
2649     -1,    94,    95,    -1,    -1,    -1,   591,    -1,    -1,    -1,
2650     -1,   639,   640,   641,   642,   643,   644,    -1,    -1,    -1,
2651   1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,  1036,    -1,
2652     -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,
2653     -1,    -1,    -1,  1051,  1052,  1053,    -1,    -1,    -1,   677,
2654     -1,    -1,    -1,   681,    -1,    -1,    -1,    -1,    -1,    -1,
2655    688,   689,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
2656     -1,    42,    -1,    -1,    -1,  1340,    -1,    48,  1510,    -1,
2657      3,     4,     5,     6,    55,    -1,    57,    58,   716,    -1,
2658     -1,    -1,  1053,   721,    -1,    -1,   681,    -1,   726,    -1,
2659     71,    -1,    -1,    -1,    -1,   733,   734,   735,    -1,    -1,
2660     81,    -1,    -1,    -1,    -1,    -1,    -1,   745,    89,    42,
2661     91,    -1,    -1,    94,    95,    -1,    49,    -1,    -1,    -1,
2662     -1,    -1,    -1,    -1,    57,    58,   721,    -1,    -1,    -1,
2663     -1,   726,    -1,    -1,    -1,    -1,  1154,  1155,   445,  1157,
2664     -1,    -1,    -1,   450,    -1,    -1,    -1,    -1,    81,  1120,
2665   1121,  1122,  1123,    -1,    -1,    -1,    89,   795,    -1,    -1,
2666   1131,    -1,    -1,    -1,    -1,     3,     4,     5,     6,   476,
2667     -1,     9,    -1,    -1,   481,    -1,    -1,  1195,    -1,   817,
2668     -1,   819,    -1,    -1,    -1,    -1,   493,   494,   826,   496,
2669     -1,    -1,   830,    -1,   832,    -1,   834,   835,   836,    -1,
2670    795,    -1,    -1,   841,    42,    -1,    -1,    -1,    -1,    -1,
2671     48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
2672     58,   859,    -1,   861,   862,   863,   864,    -1,    -1,    -1,
2673     -1,   826,    -1,    71,    -1,    -1,    -1,   832,    -1,    -1,
2674      4,   836,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
2675     -1,    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
2676    898,    -1,    26,    -1,   859,    -1,   861,    31,    32,   864,
2677     -1,    -1,    36,  1244,   912,    -1,    -1,    41,    -1,    -1,
2678    587,   588,    -1,    -1,    -1,   592,    -1,    -1,    -1,   927,
2679     -1,    -1,    56,   931,    -1,   933,    -1,    -1,    -1,    -1,
2680    938,   939,   940,   898,    -1,    -1,     4,    -1,    -1,    -1,
2681     -1,    -1,    -1,    -1,    -1,    -1,    14,   912,   956,    -1,
2682    958,    79,  1340,    -1,   919,    -1,    24,    25,    26,    93,
2683     -1,    -1,    -1,    31,    32,    -1,    34,    -1,    36,    -1,
2684     -1,    -1,    -1,    41,    -1,   103,    -1,    -1,    -1,    -1,
2685     -1,   989,   990,    -1,   992,  1326,    54,    -1,    56,    -1,
2686     -1,   956,    -1,   958,    -1,    -1,    64,    -1,    -1,    -1,
2687   1388,  1389,  1390,    71,   132,    -1,    -1,    -1,    -1,    -1,
2688    144,    -1,    -1,    -1,   148,    83,    -1,    -1,   146,    -1,
2689   1028,  1029,  1030,  1031,  1032,    93,    -1,    -1,  1036,    -1,
2690     -1,   165,    -1,    -1,    -1,  1376,  1377,    -1,    -1,    -1,
2691     -1,    -1,    -1,  1051,  1052,  1053,   180,   181,    -1,  1390,
2692    727,    -1,   729,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2693    128,    -1,   190,    -1,    -1,  1073,  1407,  1032,    -1,   137,
2694    138,    -1,    -1,    -1,    -1,    -1,   144,  1085,    -1,    -1,
2695    148,    -1,    -1,   151,   152,   153,    -1,    -1,  1053,    -1,
2696   1098,    -1,    -1,    -1,    -1,   223,    -1,   165,    -1,    -1,
2697   1108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,
2698    244,    -1,   180,   181,   182,    -1,    -1,    -1,    -1,   247,
2699   1085,    -1,    -1,    -1,   801,   802,  1467,   804,  1469,    -1,
2700      4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    -1,
2701     14,   209,    -1,    -1,    -1,    -1,  1154,  1155,    -1,  1157,
2702     -1,    -1,  1493,    -1,   831,    29,    -1,    31,    32,    -1,
2703     -1,    -1,    -1,    37,    -1,    -1,    -1,  1508,    -1,  1177,
2704     -1,    -1,    46,    -1,    48,    -1,   244,    -1,    -1,    -1,
2705     -1,    55,    -1,    57,    58,    -1,    -1,  1195,    -1,   866,
2706     -1,    -1,  1200,    -1,  1202,    -1,    -1,    71,     3,     4,
2707      5,     6,    -1,    -1,    -1,    -1,    -1,    81,    -1,   337,
2708     -1,    -1,  1177,    -1,   282,   283,    -1,    91,    -1,    -1,
2709     94,    95,    -1,    -1,    98,    74,    75,    76,    77,    78,
2710     79,    80,    81,    82,    83,    84,    85,    42,    -1,     3,
2711      4,     5,     6,    48,    -1,  1253,  1254,  1255,    -1,    -1,
2712     55,    -1,    57,    58,    -1,    -1,    -1,   325,    -1,    -1,
2713     -1,   329,    -1,   331,   332,   333,    71,    -1,    -1,   403,
2714    338,   399,   406,    -1,    -1,    -1,    81,   411,    42,    -1,
2715    348,   415,    -1,    -1,    89,    -1,    91,    -1,    -1,    94,
2716     95,    55,    -1,    57,    58,    -1,    -1,   365,    -1,    63,
2717     -1,     4,     5,   437,    -1,   439,     9,    71,    -1,     4,
2718      5,    -1,    -1,     8,     9,    -1,    -1,    81,   452,    14,
2719     -1,    -1,    -1,    -1,   392,    89,    -1,  1004,    -1,    -1,
2720     94,    -1,  1340,    -1,    29,   403,    31,    -1,   406,    -1,
2721    468,    -1,    37,   411,    -1,    48,    -1,   415,    -1,    -1,
2722     -1,    46,    55,    -1,    57,    58,    -1,    -1,  1035,    -1,
2723     55,    -1,    57,    58,    59,    -1,    -1,   495,    71,   437,
2724     -1,   439,    -1,   441,   442,   443,    -1,    -1,    81,   447,
2725   1388,  1389,  1390,    -1,   452,    -1,    -1,   455,    91,    -1,
2726     -1,    94,    95,    -1,    -1,  1072,  1404,    -1,    -1,    94,
2727     -1,    -1,   470,    -1,    -1,    -1,    -1,  1084,    -1,    -1,
2728     -1,  1419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2729     -1,    -1,    -1,    -1,     1,  1390,     3,     4,     5,     6,
2730      7,     8,     9,    -1,  1111,    -1,    -1,    14,  1115,  1404,
2731     -1,    -1,   510,   511,   512,   513,    -1,    -1,    -1,    -1,
2732    578,    -1,    29,    -1,    31,    32,    33,    -1,    -1,    -1,
2733     37,    38,    -1,    -1,    -1,    42,   594,    -1,    -1,    46,
2734     47,  1148,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,
2735     57,    58,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,
2736     -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,   566,    -1,
2737    568,    -1,    -1,    -1,    81,    -1,   640,    -1,    -1,    -1,
2738     -1,    -1,    89,   581,   582,    -1,   584,    94,    -1,    -1,
2739     -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,  1206,
2740   1207,    -1,    -1,    -1,   111,   603,    -1,    -1,    -1,     3,
2741      4,     5,     6,    -1,    -1,    -1,    -1,   681,    -1,    -1,
2742     -1,    -1,    -1,    -1,   688,   689,    -1,   691,    -1,    -1,
2743     -1,    -1,    -1,    -1,    -1,    -1,   634,    -1,    -1,    -1,
2744     -1,   639,   640,   641,   642,   643,   644,    -1,    42,    -1,
2745     -1,    -1,   716,    -1,    -1,    -1,    -1,    -1,    -1,   657,
2746     -1,    55,  1269,    57,    58,    -1,  1273,    61,     1,    -1,
2747      3,     4,     5,     6,     7,     8,     9,    71,    -1,   677,
2748     -1,    14,    -1,   681,    -1,    -1,    -1,    81,    -1,    -1,
2749    688,   689,    -1,   691,    -1,    89,    29,    -1,    31,    32,
2750     94,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    42,
2751     -1,    -1,    -1,    46,    47,    -1,    49,    -1,   716,    -1,
2752     -1,    -1,    55,   721,    57,    58,    -1,    -1,   726,    -1,
2753     63,     3,     4,     5,     6,   733,   734,   735,    71,     4,
2754      5,    -1,    -1,     8,     9,    -1,    -1,   745,    81,    14,
2755     -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
2756     -1,    94,    -1,    -1,    29,    -1,    31,    -1,    -1,    -1,
2757     42,    -1,    37,     4,    -1,    -1,    -1,    49,    -1,    -1,
2758     -1,    46,   840,    48,   842,    57,    58,    -1,    -1,    -1,
2759     55,    -1,    57,    58,    -1,    26,    -1,   795,   862,   863,
2760     31,    32,    -1,    34,    -1,    36,    71,    -1,    -1,    81,
2761     41,   869,    -1,    -1,    -1,    -1,    81,    89,    -1,   817,
2762     -1,   819,    -1,    54,    -1,    56,    91,    -1,   826,    94,
2763     95,    -1,   830,    -1,   832,    -1,   834,   835,   836,    -1,
2764     -1,    -1,    -1,   841,    -1,    -1,    -1,    -1,    79,    -1,
2765     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2766     -1,   859,    93,   861,   862,   863,   864,   931,    -1,   933,
2767     -1,    -1,    -1,    -1,   938,   939,   940,     3,     4,     5,
2768      6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2769     -1,    -1,    -1,    -1,     4,     5,    -1,   128,     8,     9,
2770    898,   132,   133,    -1,    14,    -1,   137,    -1,    -1,    -1,
2771     -1,    -1,    -1,   144,   912,   146,    42,   148,    -1,    -1,
2772    151,   152,   153,    49,    -1,    -1,   924,    37,    -1,   927,
2773     -1,    57,    58,   931,   165,   933,    46,    -1,    48,    -1,
2774    938,   939,   940,    -1,    -1,    55,    -1,    57,    58,   180,
2775    181,   182,    -1,    -1,    -1,    81,    -1,  1015,   956,   190,
2776    958,    71,    -1,    89,  1028,  1029,    -1,    -1,    -1,    -1,
2777     -1,    81,  1036,    -1,    -1,    -1,  1034,    -1,   209,    -1,
2778     -1,    91,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,
2779     -1,   989,   990,    -1,   992,    68,    69,    70,    71,    72,
2780     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2781     83,    84,    85,   244,    -1,    -1,    -1,     3,     4,     5,
2782      6,     7,     8,     9,    -1,    -1,    12,    -1,    14,    -1,
2783   1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,  1036,  1097,
2784     -1,    -1,  1040,    29,  1108,    31,    32,    -1,    -1,    -1,
2785     -1,    37,    -1,  1051,  1052,  1053,    42,    -1,    -1,    -1,
2786     46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,
2787   1068,    57,    58,    -1,    -1,  1073,     4,     5,    -1,    -1,
2788     -1,     9,   313,    -1,    -1,    71,    -1,  1085,    -1,    -1,
2789   1154,  1155,    -1,  1157,    -1,    81,    -1,    -1,   329,    -1,
2790     -1,    -1,    -1,    89,    -1,    91,   337,    -1,    94,    95,
2791   1108,    -1,    98,    -1,    -1,    -1,    -1,   348,    -1,    -1,
2792     48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
2793     58,  1195,    -1,    -1,   365,    -1,  1200,    -1,  1202,    -1,
2794   1198,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
2795     -1,    -1,    -1,    81,    -1,   386,  1154,  1155,    -1,  1157,
2796     -1,    -1,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
2797     -1,    -1,   403,    -1,    -1,   406,    -1,    -1,    -1,  1177,
2798    411,    -1,    -1,    -1,   415,   331,   332,   333,    -1,    -1,
2799   1254,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
2800     -1,    -1,  1200,    -1,  1202,    -1,   437,    -1,   439,    -1,
2801    441,   442,   443,    -1,    -1,    -1,   447,    -1,    -1,    -1,
2802     -1,   452,    -1,    -1,   455,    70,    71,    72,    73,    74,
2803     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2804     85,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
2805     -1,    -1,    12,    -1,    14,  1253,  1254,  1255,    -1,    -1,
2806     -1,    -1,    -1,    -1,    -1,    25,    -1,    27,    28,    -1,
2807     -1,   502,    32,    -1,   505,    -1,    -1,    37,    -1,    -1,
2808     -1,    -1,    42,    -1,    -1,    -1,    46,    -1,    48,   520,
2809    521,   522,    -1,    -1,    -1,    55,    -1,    57,    58,    59,
2810     60,    61,   533,    63,    64,    65,    66,    67,    68,    69,
2811     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2812     80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
2813     -1,    91,    92,    93,    94,    95,    96,    -1,    98,    99,
2814     -1,    -1,  1340,     4,   104,    -1,    -1,   578,    -1,   109,
2815    110,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,
2816    591,    -1,    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,
2817     31,    32,    -1,    34,    -1,    36,     3,     4,     5,     6,
2818     41,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2819   1388,  1389,  1390,    54,    -1,    56,    -1,    -1,    -1,    -1,
2820     -1,    -1,    -1,    -1,    -1,    -1,  1404,    -1,   639,   640,
2821    641,   642,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
2822     -1,  1419,    -1,    -1,    -1,    -1,    -1,    34,    55,    -1,
2823     57,    58,    93,    -1,    -1,   581,   582,    -1,   584,    -1,
2824     -1,    -1,    -1,    -1,    71,   591,   677,    54,    -1,    -1,
2825    681,    -1,    -1,    -1,    81,    -1,    -1,   688,   689,    -1,
2826    691,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,
2827     -1,    -1,    -1,    -1,     4,     5,   137,    -1,     8,     9,
2828     -1,    -1,    -1,   144,    14,   716,    -1,   148,    -1,    -1,
2829    151,   152,   153,   639,    -1,   641,   642,    -1,   644,    -1,
2830      3,     4,     5,     6,   165,    -1,     9,    37,   739,    -1,
2831     -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    48,   180,
2832    181,   182,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,
2833    137,   677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
2834     -1,    71,    -1,    -1,   151,   152,   153,    -1,   209,    -1,
2835     -1,    81,    55,    -1,    57,    58,     3,     4,     5,     6,
2836     -1,    91,     9,    -1,    94,    95,    -1,    -1,    71,    -1,
2837     -1,    -1,    -1,   180,   181,   182,    -1,    -1,    81,    -1,
2838     -1,    -1,    -1,   244,    -1,    -1,    89,    -1,    -1,    -1,
2839     -1,    94,    -1,    -1,    -1,    42,    -1,    -1,    -1,   745,
2840     -1,    -1,   209,   834,   835,   836,    -1,    -1,    55,   840,
2841     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2842     -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
2843     -1,   862,   863,   864,    81,    -1,    -1,    -1,   869,    -1,
2844     -1,    -1,    89,   331,   332,   333,    -1,    94,    69,    70,
2845     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2846     81,    82,    83,    84,    85,    -1,    -1,   898,    -1,    -1,
2847     -1,   817,    -1,   819,    -1,    -1,   283,   338,    -1,    -1,
2848     -1,    -1,    -1,    -1,   830,    -1,    -1,   348,   834,   835,
2849    836,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2850    931,    -1,   933,    -1,    -1,    -1,    -1,   938,   939,   940,
2851     -1,    -1,    -1,    -1,    -1,    -1,   862,   863,   864,    -1,
2852     -1,    -1,    -1,    54,   331,   332,   333,    72,    73,    74,
2853     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2854     85,   348,   403,    -1,    -1,   406,    -1,    -1,    79,    -1,
2855    411,    82,   898,    -1,   415,    71,    72,    73,    74,    75,
2856     76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2857     -1,    -1,   103,    -1,   105,    -1,   437,    -1,   439,    -1,
2858    441,   442,   443,    -1,  1015,    -1,   447,    -1,    -1,    -1,
2859     -1,   452,    -1,    -1,   455,    -1,    -1,  1028,  1029,  1030,
2860   1031,  1032,    -1,  1034,    -1,  1036,   137,    -1,    -1,    -1,
2861     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
2862   1051,  1052,  1053,    -1,    14,    -1,    -1,    -1,    -1,    -1,
2863    437,    -1,   439,    -1,   441,   442,   443,    -1,    -1,    29,
2864    447,    31,    32,    -1,    -1,   452,    -1,    37,   455,   180,
2865    181,   182,    42,    -1,    -1,    -1,    46,    -1,    -1,   190,
2866     -1,    -1,    -1,    -1,    -1,    55,  1097,    57,    58,    -1,
2867     -1,    61,    -1,    -1,    -1,    -1,    -1,  1108,   209,    -1,
2868     -1,    71,  1028,  1029,  1030,  1031,  1032,    -1,    -1,    -1,
2869   1036,    81,    -1,   581,   582,    -1,    -1,    -1,    -1,    89,
2870     -1,   232,    -1,    -1,    94,  1051,  1052,  1053,     3,     4,
2871      5,     6,    -1,    -1,     9,    -1,   247,    -1,   579,    -1,
2872     -1,    -1,    -1,  1154,  1155,    -1,  1157,    -1,    -1,    -1,
2873     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2874     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,
2875     -1,   639,    -1,   641,   642,    -1,   644,    -1,    -1,    -1,
2876     55,   568,    57,    58,  1195,    -1,    -1,    -1,    -1,  1200,
2877     -1,  1202,    -1,    -1,   581,   582,    71,   584,   639,   640,
2878    641,   642,    -1,    -1,   591,    -1,    81,    -1,    -1,   677,
2879     -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,
2880     -1,    -1,    -1,    -1,    -1,    -1,   337,   338,  1154,  1155,
2881     -1,  1157,     3,     4,     5,     6,   677,   348,     9,    -1,
2882    681,    -1,  1253,  1254,  1255,    -1,    -1,   688,   689,    -1,
2883    691,    -1,   639,    -1,   641,   642,    -1,   644,    -1,     3,
2884      4,     5,     6,    -1,    -1,     9,    -1,    -1,    -1,    -1,
2885     -1,    42,    -1,    -1,    -1,   716,    -1,   745,    -1,    -1,
2886     -1,    -1,    -1,    -1,    55,    -1,    57,    58,    -1,    -1,
2887    677,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
2888     71,   688,   689,    -1,   691,    -1,    -1,    -1,    -1,    -1,
2889     81,    55,    -1,    57,    58,    -1,    -1,    -1,    89,    -1,
2890     -1,    -1,    -1,    94,    -1,    -1,   437,    71,   439,  1340,
2891    441,   442,   443,    -1,    -1,    -1,   447,    81,    -1,    -1,
2892     -1,   452,    -1,    -1,   455,    89,   733,   734,   735,   817,
2893     94,   819,    -1,    -1,    -1,    -1,    -1,    -1,   745,    -1,
2894      4,     5,   830,    -1,     8,     9,   834,   835,    -1,    -1,
2895     14,    -1,    -1,     3,     4,     5,     6,  1388,  1389,  1390,
2896     -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    -1,
2897     -1,    -1,    -1,    37,   862,   863,    -1,    -1,    -1,    -1,
2898    841,    -1,    46,    -1,    -1,    -1,    -1,    -1,  1419,    -1,
2899     -1,    55,    42,    57,    58,    -1,    -1,    -1,    -1,    -1,
2900     -1,   862,   863,   864,    -1,    55,    -1,    57,    58,    -1,
2901    817,    -1,   819,    63,    -1,    -1,    -1,    -1,    -1,    -1,
2902     -1,    71,    -1,   830,    -1,    -1,    -1,   834,   835,   836,
2903     94,    81,    -1,    -1,    -1,    -1,    -1,   898,    -1,    89,
2904     -1,    -1,    -1,    -1,    94,     1,    -1,     3,     4,     5,
2905      6,     7,     8,     9,    -1,   862,   863,   864,    14,    -1,
2906     -1,    -1,    -1,   594,   595,    -1,    -1,    -1,    -1,    -1,
2907    931,    -1,   933,    29,    -1,    31,    32,   938,   939,   940,
2908     -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
2909     46,   898,    -1,    49,    -1,    -1,    -1,    -1,    -1,    55,
2910     -1,    57,    58,    -1,    -1,    61,    -1,    -1,   639,    -1,
2911    641,   642,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
2912     -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,
2913     -1,   938,    -1,    89,    -1,    -1,    -1,    -1,    94,    -1,
2914   1028,  1029,  1030,  1031,    -1,    -1,   677,    -1,  1036,    -1,
2915      3,     4,     5,     6,    -1,    -1,     9,   688,   689,    -1,
2916    691,    -1,    -1,  1051,  1052,    -1,    -1,  1028,  1029,  1030,
2917   1031,  1032,    -1,    -1,    -1,  1036,    -1,    -1,    -1,    -1,
2918     -1,    -1,   989,   990,   715,   992,    -1,    -1,    -1,    42,
2919   1051,  1052,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2920     -1,    -1,    55,    -1,    57,    58,    -1,    -1,    -1,     3,
2921      4,     5,     6,     7,     8,     9,    -1,    -1,    71,    -1,
2922     14,  1028,  1029,  1030,  1031,  1032,    -1,    -1,    81,  1036,
2923     -1,    -1,    -1,    -1,    -1,    29,    89,    31,    32,    -1,
2924     -1,    94,    -1,    37,  1051,  1052,  1053,  1108,    42,    -1,
2925     -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
2926     -1,    55,    -1,    57,    58,    -1,  1154,  1155,    -1,  1157,
2927     -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
2928     -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,     3,     4,
2929      5,     6,    -1,  1154,  1155,    89,  1157,    91,    -1,    -1,
2930     94,    95,    14,    -1,    -1,     3,     4,     5,     6,   840,
2931    841,   842,    24,    25,    -1,    -1,    -1,    -1,    -1,    31,
2932     32,    -1,    34,    -1,    -1,    -1,    -1,    42,    -1,    -1,
2933     -1,   862,   863,   864,  1195,    -1,    -1,    -1,   869,  1200,
2934     55,  1202,    57,    58,    42,    -1,    61,  1154,  1155,    -1,
2935   1157,    -1,    64,    -1,    -1,    -1,    71,    55,    -1,    57,
2936     58,    -1,    -1,    -1,    -1,    -1,    81,   898,    -1,    -1,
2937     -1,    -1,    -1,    71,    89,    -1,    -1,    -1,    -1,    94,
2938     -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,  1195,    -1,
2939     -1,    89,  1253,  1254,  1255,    -1,    94,     1,    -1,     3,
2940      4,     5,     6,     7,     8,     9,    -1,   938,    -1,    -1,
2941     14,   123,    -1,   125,    -1,    -1,   128,    -1,    -1,    -1,
2942    132,   133,    -1,    -1,    -1,    29,    -1,    31,    32,    33,
2943     -1,    -1,   144,    37,   146,   147,   148,    -1,    42,   151,
2944    152,   153,    46,    47,    -1,    49,  1253,    -1,  1255,    -1,
2945     -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,    63,
2946     -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,
2947     -1,     3,     4,     5,     6,    -1,    -1,    81,    -1,  1340,
2948     -1,    -1,    -1,    -1,  1015,    89,    -1,    -1,    -1,    -1,
2949     94,    -1,    -1,    -1,    -1,    -1,    -1,  1028,  1029,  1030,
2950   1031,  1032,    -1,  1034,    -1,  1036,    -1,    -1,    -1,    -1,
2951     42,   223,   224,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2952   1051,  1052,  1053,    55,    -1,    57,    58,  1388,  1389,  1390,
2953     -1,    -1,   244,  1340,    -1,    -1,    -1,    -1,    -1,    71,
2954     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    81,
2955      3,     4,     5,     6,     7,     8,     9,    89,  1419,    -1,
2956     -1,    14,    94,    -1,    -1,    -1,  1097,    -1,    -1,    -1,
2957     -1,   283,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,
2958     33,  1388,  1389,  1390,    37,    38,    -1,    -1,    -1,    42,
2959     -1,    -1,    -1,    46,    47,    -1,    49,    -1,    -1,    -1,
2960     -1,    -1,    55,    -1,    57,    58,    -1,    -1,    61,    -1,
2961     63,    -1,  1419,    -1,    -1,    -1,    -1,   329,    71,   331,
2962    332,    -1,    -1,  1154,  1155,    -1,  1157,    -1,    81,    -1,
2963     -1,    -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,
2964     -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2965     -1,    -1,    -1,   365,    -1,    -1,    -1,    -1,   111,    -1,
2966     -1,    -1,    -1,    -1,  1195,    -1,    -1,    -1,    -1,    -1,
2967     -1,    -1,    -1,    -1,   386,     1,    -1,     3,     4,     5,
2968      6,     7,     8,     9,    -1,    -1,    -1,   399,    14,    -1,
2969     -1,   403,    -1,    -1,   406,    -1,    -1,    -1,    -1,   411,
2970     -1,    -1,    -1,    29,    -1,    31,    32,    33,    -1,    -1,
2971     -1,    37,    38,    -1,    -1,    -1,    42,    -1,    -1,    -1,
2972     46,    47,  1253,    49,  1255,    -1,    -1,    -1,    -1,    55,
2973     -1,    57,    58,    -1,    -1,    61,    -1,    63,    -1,     4,
2974      5,    -1,     7,     8,     9,    71,    -1,    12,    -1,    14,
2975     -1,    -1,    -1,    -1,    -1,    81,   468,    -1,   470,    -1,
2976     -1,    -1,    -1,    89,    29,    -1,    31,    32,    94,    -1,
2977     -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2978     -1,    46,    -1,   495,    -1,   111,    -1,    -1,    -1,    -1,
2979     55,    -1,    57,    58,     1,    -1,     3,     4,     5,     6,
2980      7,     8,     9,    10,    11,    -1,    13,    14,    15,  1340,
2981     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2982     27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
2983     37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
2984     -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
2985     57,    58,    59,    -1,    61,    62,   568,  1388,  1389,  1390,
2986     -1,    68,    -1,    -1,    71,    -1,   578,   579,    -1,   581,
2987    582,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
2988     87,    88,    89,    -1,    -1,    -1,    -1,    94,  1419,    96,
2989      4,     5,    -1,     7,     8,     9,    -1,    -1,    -1,    -1,
2990     14,    -1,    -1,    -1,   111,   112,    -1,    -1,    -1,    -1,
2991     -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    32,    -1,
2992     -1,    -1,   634,    37,    -1,    -1,    -1,    -1,    -1,    -1,
2993     -1,   643,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2994     -1,    55,    -1,    57,    58,   657,    -1,    -1,     1,    -1,
2995      3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
2996     13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
2997     23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2998     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
2999     43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
3000     53,    54,    55,   715,    57,    58,    59,    -1,    61,    62,
3001     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3002     -1,   733,   734,   735,    -1,    -1,    79,    80,    81,    -1,
3003     -1,    -1,    -1,   745,    87,    88,    89,    -1,    -1,    -1,
3004     -1,    94,     1,    96,     3,     4,     5,     6,     7,     8,
3005      9,    10,    11,    12,    13,    14,    -1,    -1,    -1,   112,
3006     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3007     29,    30,    31,    32,    33,    -1,    35,    36,    37,    -1,
3008     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    48,
3009     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3010     59,    -1,    -1,    62,    -1,   817,    -1,   819,    -1,    68,
3011     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,   830,    -1,
3012     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3013     89,    -1,    91,    -1,    -1,    94,    95,    -1,     1,    98,
3014      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3015     13,    14,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
3016     -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,
3017     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
3018     43,    44,    -1,    46,    -1,    48,    -1,    50,    51,    52,
3019     53,    54,    55,    -1,    57,    58,    59,    -1,    -1,    62,
3020     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3021     -1,    -1,   924,    -1,    -1,   927,    79,    80,    81,    -1,
3022     -1,    -1,    -1,    -1,    87,    88,    89,    -1,    91,    -1,
3023     -1,    94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,
3024     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
3025     -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
3026      8,     9,    10,    11,    12,    13,    14,    -1,    -1,    -1,
3027     -1,    -1,    -1,    -1,    -1,    -1,    -1,   989,   990,    -1,
3028    992,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3029     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3030     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3031     58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
3032     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,  1040,    -1,
3033     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3034     88,    89,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
3035     98,    -1,    -1,    -1,    -1,    -1,  1068,    -1,    -1,    -1,
3036     -1,    -1,   110,     1,   112,     3,     4,     5,     6,     7,
3037      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3038     -1,    -1,    -1,    -1,    -1,    -1,  1098,    -1,    -1,    -1,
3039     -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3040     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3041     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3042     58,    59,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3043     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3044     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3045     88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
3046      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3047     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3048     -1,    -1,    -1,    29,    30,    31,  1198,    33,  1200,    35,
3049     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3050     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3051     -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
3052     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3053     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3054     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,
3055      1,    -1,     3,     4,     5,     6,    -1,     8,     9,    10,
3056     11,    -1,    13,    14,    -1,   111,   112,    -1,    -1,    -1,
3057     21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
3058     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3059     41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
3060     51,    52,    53,    54,    55,    -1,    57,    58,    59,    -1,
3061     -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3062     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3063     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,
3064     -1,    -1,     1,    94,     3,     4,     5,     6,    -1,     8,
3065      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3066    111,   112,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3067     29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
3068     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
3069     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3070     59,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
3071     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3072     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3073     89,    -1,    -1,    -1,     1,    94,     3,     4,     5,     6,
3074     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3075     -1,    -1,   111,   112,    -1,    -1,    -1,    -1,    -1,    -1,
3076     -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
3077     37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
3078     -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
3079     57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,    -1,
3080     -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
3081     -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
3082     87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,     1,
3083     -1,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3084     -1,    13,    14,    -1,    -1,   112,    -1,    -1,    -1,    -1,
3085     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3086     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3087     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3088     52,    53,    54,    55,    -1,    57,    58,    59,    -1,    -1,
3089     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3090     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3091     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3092     -1,    -1,    94,    -1,    -1,     1,    -1,     3,     4,     5,
3093      6,   103,     8,     9,    10,    11,    -1,    13,    14,    -1,
3094    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3095     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3096     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3097     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3098     -1,    57,    58,    59,    -1,    -1,    62,    -1,    -1,    -1,
3099     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3100     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3101     -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,     3,
3102      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3103     14,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
3104     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3105     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3106     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3107     54,    55,    -1,    57,    58,    59,    -1,    -1,    62,    -1,
3108     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3109     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3110     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,
3111     94,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3112     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,
3113     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3114     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3115     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3116     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3117     62,    63,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3118     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3119     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,
3120     -1,     1,    94,     3,     4,     5,     6,    -1,     8,     9,
3121     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3122    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
3123     30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
3124     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3125     50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
3126     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3127     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3128     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3129     -1,    -1,    -1,     1,    94,     3,     4,     5,     6,    -1,
3130      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3131     -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3132     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3133     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3134     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3135     58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3136     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3137     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3138     88,    89,    -1,    -1,    -1,     1,    94,     3,     4,     5,
3139      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3140     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3141     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3142     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3143     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3144     -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3145     -1,    -1,    68,     1,    -1,    71,     4,     5,    -1,    -1,
3146      8,     9,    -1,    79,    80,    81,    14,    -1,    -1,    -1,
3147     -1,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,
3148     -1,    29,    -1,    31,    -1,    -1,    -1,    -1,    -1,    37,
3149     -1,    39,    40,    -1,   110,    -1,   112,    -1,    46,    -1,
3150     48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
3151     58,    -1,    60,    -1,    -1,    -1,    64,    65,    66,    67,
3152     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3153     78,    79,    80,    81,    82,    83,    84,    -1,    -1,    87,
3154     88,    89,    -1,    -1,    92,    -1,     1,    95,     3,     4,
3155      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3156     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3157     -1,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
3158     35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
3159     -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
3160     55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,
3161     -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
3162     -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
3163     -1,    -1,    87,    88,    89,    -1,    -1,    -1,     1,    94,
3164      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3165     13,    14,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
3166     -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,    -1,
3167     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
3168     43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
3169     53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
3170     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3171     -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
3172     -1,    -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,
3173      1,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
3174     11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,   112,
3175     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,
3176     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3177     41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
3178     51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
3179     -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3180     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3181     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
3182      4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
3183     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3184     -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3185     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3186     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3187     54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
3188     -1,    -1,    -1,    -1,    68,    -1,     1,    71,     3,     4,
3189      5,     6,     7,     8,     9,    79,    80,    81,    -1,    14,
3190     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
3191     94,    -1,    -1,    -1,    29,    -1,    31,    32,    33,    -1,
3192     -1,    -1,    37,    38,    -1,    -1,    -1,    42,   112,   113,
3193     -1,    46,    47,    -1,    49,    -1,    -1,    -1,    -1,    -1,
3194     55,    -1,    57,    58,    -1,    -1,    61,    -1,    63,    -1,
3195     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
3196     -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,
3197     -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    94,
3198     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
3199     10,    11,    -1,    13,    14,    15,   111,    17,    18,    19,
3200     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3201     30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
3202     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3203     50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
3204     -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3205     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3206     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3207     -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,    -1,
3208     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3209     -1,   111,   112,     3,     4,     5,     6,     7,     8,     9,
3210     10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
3211     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3212     30,    31,    32,    33,    -1,    35,    36,    37,    -1,    39,
3213     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3214     50,    51,    52,    53,    54,    55,    -1,    57,    58,    59,
3215     -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3216     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3217     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3218     -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,     3,
3219      4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
3220     14,    15,   112,    17,    18,    19,    20,    21,    22,    23,
3221     24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3222     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3223     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3224     54,    55,    -1,    57,    58,    59,    -1,    61,    62,    -1,
3225     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3226     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3227     -1,    -1,    -1,    87,    88,    89,    -1,    -1,    -1,    -1,
3228     94,    -1,    96,    -1,    -1,     3,     4,     5,     6,     7,
3229      8,     9,    10,    11,    -1,    13,    14,    15,   112,    17,
3230     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3231     28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3232     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3233     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3234     58,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,
3235     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3236     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3237     88,    89,    -1,    -1,    -1,    -1,    94,    -1,    96,     3,
3238      4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3239     14,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3240     -1,    -1,    -1,    -1,    -1,    29,    30,    31,    32,    33,
3241     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3242     44,    -1,    46,    -1,    48,    -1,    50,    51,    52,    53,
3243     54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,    -1,
3244     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3245     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3246     -1,    -1,    -1,    87,    88,    89,    -1,    91,    -1,    -1,
3247     94,    95,    -1,    -1,    98,     3,     4,     5,     6,     7,
3248      8,     9,    10,    11,    12,    13,    14,    -1,   112,    -1,
3249     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3250     -1,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
3251     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3252     48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3253     58,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
3254     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3255     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3256     88,    89,    -1,    91,    -1,    -1,    94,    95,    -1,    -1,
3257     98,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3258     -1,    13,    14,    -1,   112,    -1,    -1,    -1,    -1,    -1,
3259     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3260     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3261     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3262     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3263     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3264     -1,    -1,    -1,    -1,    76,    -1,    78,    79,    80,    81,
3265     -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
3266      5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
3267     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3268    112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
3269     35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
3270     -1,    46,    -1,    48,    -1,    50,    51,    52,    53,    54,
3271     55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
3272     -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
3273     -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
3274     -1,    -1,    87,    88,    89,    -1,    91,    -1,    -1,    94,
3275     95,     3,     4,     5,     6,    -1,     8,     9,    10,    11,
3276     -1,    13,    14,    -1,    -1,    -1,    -1,   112,    -1,    -1,
3277     -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    30,    31,
3278     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3279     42,    43,    44,    -1,    46,    -1,    48,    -1,    50,    51,
3280     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3281     -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3282     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3283     -1,    -1,    -1,    -1,    -1,    87,    88,    89,    -1,    91,
3284     -1,    -1,    94,    95,     3,     4,     5,     6,    -1,     8,
3285      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3286    112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3287     29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
3288     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
3289     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3290     -1,    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    68,
3291     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3292     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3293     89,    -1,    -1,    -1,    -1,    94,     3,     4,     5,     6,
3294      7,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3295     -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
3296     -1,    -1,    29,    30,    31,    32,    33,    -1,    35,    36,
3297     37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
3298     -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
3299     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3300     -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
3301     -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,
3302     87,    88,    89,     3,     4,     5,     6,    94,     8,     9,
3303     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3304     -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,
3305     30,    31,    -1,    33,    -1,    35,    36,    37,    -1,    39,
3306     40,    41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
3307     50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
3308     -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
3309     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
3310     80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
3311      3,     4,     5,     6,    94,     8,     9,    10,    11,    -1,
3312     13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3313     -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,
3314     33,    -1,    35,    36,    37,    -1,    39,    40,    41,    42,
3315     43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,
3316     53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,    62,
3317     -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,
3318     -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,
3319     -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,     5,
3320      6,    94,     8,     9,    10,    11,    -1,    13,    14,    -1,
3321     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
3322     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3323     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3324     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3325     -1,    57,    58,    59,    -1,    -1,    -1,    -1,    -1,    -1,
3326     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3327     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3328     -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
3329      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3330     -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
3331     29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
3332     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
3333     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3334     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
3335     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3336     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3337     89,    -1,    -1,    -1,    -1,    94,    95,     3,     4,     5,
3338      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3339     -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
3340     -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,
3341     36,    37,    -1,    39,    40,    41,    42,    43,    44,    -1,
3342     46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
3343     -1,    57,    58,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3344     -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,
3345     -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,    -1,
3346     -1,    87,    88,    89,     3,     4,     5,     6,    94,     8,
3347      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3348     -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
3349     29,    30,    31,    -1,    33,    -1,    35,    36,    37,    -1,
3350     39,    40,    41,    42,    43,    44,    -1,    46,    -1,    -1,
3351     -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
3352     -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
3353     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3354     79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,    88,
3355     89,     3,     4,     5,     6,    94,     8,     9,    10,    11,
3356     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3357     -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,    31,
3358     -1,    33,    -1,    35,    36,    37,    -1,    39,    40,    41,
3359     42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,    51,
3360     52,    53,    54,    55,    -1,    57,    58,    -1,    -1,    -1,
3361     62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    71,
3362     -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,
3363     -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,     4,
3364      5,     6,    94,     8,     9,    10,    11,    -1,    13,    14,
3365     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3366    112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,    -1,
3367     35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
3368     -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,    54,
3369     55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,
3370     -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,    -1,
3371     -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,    -1,
3372     -1,    -1,    87,    88,    89,     3,     4,     5,     6,    94,
3373      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3374     -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
3375     -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    37,
3376     -1,    39,    40,    41,    42,    43,    44,    -1,    46,    -1,
3377     -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
3378     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3379     68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,
3380     -1,    79,    80,    81,    -1,    -1,    -1,    -1,    -1,    87,
3381     88,    89,     3,     4,     5,     6,    94,     8,     9,    10,
3382     11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
3383     -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    29,    30,
3384     31,    -1,    33,    -1,    35,    36,    37,    -1,    39,    40,
3385     41,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    50,
3386     51,    52,    53,    54,    55,    -1,    57,    58,    -1,    -1,
3387     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
3388     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
3389     81,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,     3,
3390      4,     5,     6,    94,     8,     9,    10,    11,    -1,    13,
3391     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3392     -1,   112,    -1,    -1,    -1,    29,    30,    31,    -1,    33,
3393     -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
3394     44,    -1,    46,    -1,    -1,    -1,    50,    51,    52,    53,
3395     54,    55,    -1,    57,    58,    -1,    -1,    -1,    -1,    -1,
3396     -1,    -1,    -1,    -1,    68,    -1,    -1,    71,    -1,    -1,
3397     -1,    -1,    -1,    -1,    -1,    79,    80,    81,    -1,    -1,
3398     -1,    -1,    -1,    87,    88,    89,     3,     4,     5,     6,
3399     94,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3400     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
3401     -1,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
3402     37,    -1,    39,    40,    41,    42,    43,    44,    -1,    46,
3403     -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
3404     57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3405     -1,    68,    -1,     1,    71,     3,     4,     5,     6,     7,
3406      8,     9,    79,    80,    81,    -1,    14,    -1,    -1,    -1,
3407     87,    88,    89,    -1,    -1,    -1,    -1,    94,    -1,    27,
3408     28,    29,    -1,    31,    32,    33,    -1,    -1,    -1,    37,
3409     -1,    -1,    -1,    -1,    42,   112,    -1,    45,    46,    47,
3410     -1,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
3411     58,    -1,     1,    61,     3,     4,     5,     6,     7,     8,
3412      9,    -1,    -1,    71,    -1,    14,    -1,    -1,    -1,    -1,
3413     -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    27,    28,
3414     29,    89,    31,    32,    33,    -1,    94,    -1,    37,    -1,
3415     -1,    -1,   100,    42,    -1,    -1,    45,    46,    47,    -1,
3416     49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,
3417     -1,    -1,    61,     3,     4,     5,     6,     7,     8,     9,
3418     -1,    -1,    71,    -1,    14,    -1,    -1,    -1,    -1,    -1,
3419     -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3420     89,    -1,    32,    -1,    -1,    94,    -1,    37,    -1,    -1,
3421     -1,   100,    42,    -1,    -1,    -1,    46,    -1,    48,    -1,
3422     -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,     3,
3423      4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
3424     14,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3425     -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,    32,    89,
3426     -1,    91,    -1,    37,    94,    95,    -1,    -1,    42,    -1,
3427     -1,    -1,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
3428     -1,    55,    -1,    57,    58,     3,     4,     5,     6,     7,
3429      8,     9,    -1,    -1,    -1,    -1,    14,    71,    -1,    -1,
3430     -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    -1,
3431     -1,    29,    -1,    31,    32,    89,    -1,    91,    -1,    37,
3432     94,    95,    -1,    -1,    42,    -1,    -1,    -1,    46,    -1,
3433     -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    57,
3434     58,     3,     4,     5,     6,     7,     8,     9,    -1,    -1,
3435     12,    -1,    14,    71,    -1,    -1,    -1,    75,    -1,    -1,
3436     -1,    -1,    -1,    81,    -1,    -1,    -1,    29,    -1,    31,
3437     32,    89,    -1,    -1,    -1,    37,    94,    -1,    -1,    -1,
3438     42,    -1,    -1,    -1,    46,    -1,     3,     4,     5,     6,
3439      7,     8,     9,    55,    -1,    57,    58,    14,    -1,    -1,
3440     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
3441     -1,    -1,    29,    -1,    31,    32,    -1,    -1,    -1,    81,
3442     37,    -1,    -1,    -1,    -1,    42,    -1,    89,    -1,    46,
3443     -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    55,    -1,
3444     57,    58,    -1,    -1,    -1,    -1,    63,     3,     4,     5,
3445      6,     7,     8,     9,    71,    -1,    -1,    -1,    14,    -1,
3446     -1,    -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,
3447     -1,    -1,    89,    29,    -1,    31,    32,    94,    -1,    -1,
3448     -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
3449     46,    -1,     3,     4,     5,     6,     7,     8,     9,    55,
3450     -1,    57,    58,    14,    -1,    61,    -1,    -1,    -1,    -1,
3451     -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    29,    -1,
3452     31,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,    -1,
3453     -1,    42,    -1,    89,    -1,    46,    -1,    -1,    94,    -1,
3454     -1,    -1,    -1,    -1,    55,    -1,    57,    58,     3,     4,
3455      5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
3456     71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3457     81,    -1,    -1,    -1,    29,    -1,    31,    32,    89,    -1,
3458     -1,    -1,    37,    94,    -1,    -1,    -1,    42,    -1,    -1,
3459     -1,    46,    -1,     3,     4,     5,     6,     7,     8,     9,
3460     55,    -1,    57,    58,    14,    -1,    -1,    -1,    -1,    -1,
3461     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
3462     -1,    -1,    32,    -1,    -1,    -1,    81,    37,    -1,    -1,
3463     -1,    -1,    42,    -1,    89,    12,    46,    -1,    48,    94,
3464     -1,    -1,    -1,    -1,    -1,    55,    -1,    57,    58,    64,
3465     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3466     75,    71,    77,    78,    79,    80,    81,    82,    83,    84,
3467     85,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
3468     -1,    -1,    -1,    -1,    94,    -1,    63,    64,    65,    66,
3469     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3470     77,    78,    79,    80,    81,    82,    83,    84,    85,     4,
3471      5,    -1,     7,     8,     9,    -1,     4,     5,    -1,    14,
3472      8,     9,    -1,     4,     5,    -1,    14,     8,     9,    -1,
3473     -1,    -1,    -1,    14,    29,    -1,    31,    32,    -1,    -1,
3474     -1,    29,    37,    31,    -1,    -1,    32,    -1,    29,    37,
3475     31,    46,    -1,    -1,    -1,    -1,    37,    -1,    46,    -1,
3476     55,    -1,    57,    58,    -1,    46,    -1,    55,    -1,    57,
3477     58,    -1,    -1,    -1,    55,    -1,    57,    58,    64,    65,
3478     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3479     76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3480     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3481     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3482     84,    85,    64,    65,    66,    67,    68,    69,    70,    71,
3483     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3484     82,    83,    84,    85,    -1,    -1,    -1,    -1,    -1,   113,
3485     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3486     -1,    -1,    -1,    -1,    60,    -1,    -1,   109,    64,    65,
3487     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
3488     76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
3489     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3490     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3491     83,    84,    85,    63,    64,    65,    66,    67,    68,    69,
3492     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3493     80,    81,    82,    83,    84,    85,    64,    65,    66,    67,
3494     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3495     78,    79,    80,    81,    82,    83,    84,    85
3496 };
3497 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3498 #line 3 "/usr/cygnus/latest-940103/share/bison.simple"
3499
3500 /* Skeleton output parser for bison,
3501    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3502
3503    This program is free software; you can redistribute it and/or modify
3504    it under the terms of the GNU General Public License as published by
3505    the Free Software Foundation; either version 2, or (at your option)
3506    any later version.
3507
3508    This program is distributed in the hope that it will be useful,
3509    but WITHOUT ANY WARRANTY; without even the implied warranty of
3510    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3511    GNU General Public License for more details.
3512
3513    You should have received a copy of the GNU General Public License
3514    along with this program; if not, write to the Free Software
3515    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3516
3517 /* As a special exception, when this file is copied by Bison into a
3518    Bison output file, you may use that output file without restriction.
3519    This special exception was added by the Free Software Foundation
3520    in version 1.24 of Bison.  */
3521
3522 #ifndef alloca
3523 #ifdef __GNUC__
3524 #define alloca __builtin_alloca
3525 #else /* not GNU C.  */
3526 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3527 #include <alloca.h>
3528 #else /* not sparc */
3529 #if defined (MSDOS) && !defined (__TURBOC__)
3530 #include <malloc.h>
3531 #else /* not MSDOS, or __TURBOC__ */
3532 #if defined(_AIX)
3533 #include <malloc.h>
3534  #pragma alloca
3535 #else /* not MSDOS, __TURBOC__, or _AIX */
3536 #ifdef __hpux
3537 #ifdef __cplusplus
3538 extern "C" {
3539 void *alloca (unsigned int);
3540 };
3541 #else /* not __cplusplus */
3542 void *alloca ();
3543 #endif /* not __cplusplus */
3544 #endif /* __hpux */
3545 #endif /* not _AIX */
3546 #endif /* not MSDOS, or __TURBOC__ */
3547 #endif /* not sparc.  */
3548 #endif /* not GNU C.  */
3549 #endif /* alloca not defined.  */
3550
3551 /* This is the parser code that is written into each bison parser
3552   when the %semantic_parser declaration is not specified in the grammar.
3553   It was written by Richard Stallman by simplifying the hairy parser
3554   used when %semantic_parser is specified.  */
3555
3556 /* Note: there must be only one dollar sign in this file.
3557    It is replaced by the list of actions, each action
3558    as one case of the switch.  */
3559
3560 #define yyerrok         (yyerrstatus = 0)
3561 #define yyclearin       (yychar = YYEMPTY)
3562 #define YYEMPTY         -2
3563 #define YYEOF           0
3564 #define YYACCEPT        return(0)
3565 #define YYABORT         return(1)
3566 #define YYERROR         goto yyerrlab1
3567 /* Like YYERROR except do call yyerror.
3568    This remains here temporarily to ease the
3569    transition to the new meaning of YYERROR, for GCC.
3570    Once GCC version 2 has supplanted version 1, this can go.  */
3571 #define YYFAIL          goto yyerrlab
3572 #define YYRECOVERING()  (!!yyerrstatus)
3573 #define YYBACKUP(token, value) \
3574 do                                                              \
3575   if (yychar == YYEMPTY && yylen == 1)                          \
3576     { yychar = (token), yylval = (value);                       \
3577       yychar1 = YYTRANSLATE (yychar);                           \
3578       YYPOPSTACK;                                               \
3579       goto yybackup;                                            \
3580     }                                                           \
3581   else                                                          \
3582     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3583 while (0)
3584
3585 #define YYTERROR        1
3586 #define YYERRCODE       256
3587
3588 #ifndef YYPURE
3589 #define YYLEX           yylex()
3590 #endif
3591
3592 #ifdef YYPURE
3593 #ifdef YYLSP_NEEDED
3594 #ifdef YYLEX_PARAM
3595 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
3596 #else
3597 #define YYLEX           yylex(&yylval, &yylloc)
3598 #endif
3599 #else /* not YYLSP_NEEDED */
3600 #ifdef YYLEX_PARAM
3601 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
3602 #else
3603 #define YYLEX           yylex(&yylval)
3604 #endif
3605 #endif /* not YYLSP_NEEDED */
3606 #endif
3607
3608 /* If nonreentrant, generate the variables here */
3609
3610 #ifndef YYPURE
3611
3612 int     yychar;                 /*  the lookahead symbol                */
3613 YYSTYPE yylval;                 /*  the semantic value of the           */
3614                                 /*  lookahead symbol                    */
3615
3616 #ifdef YYLSP_NEEDED
3617 YYLTYPE yylloc;                 /*  location data for the lookahead     */
3618                                 /*  symbol                              */
3619 #endif
3620
3621 int yynerrs;                    /*  number of parse errors so far       */
3622 #endif  /* not YYPURE */
3623
3624 #if YYDEBUG != 0
3625 int yydebug;                    /*  nonzero means print parse trace     */
3626 /* Since this is uninitialized, it does not stop multiple parsers
3627    from coexisting.  */
3628 #endif
3629
3630 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
3631
3632 #ifndef YYINITDEPTH
3633 #define YYINITDEPTH 200
3634 #endif
3635
3636 /*  YYMAXDEPTH is the maximum size the stacks can grow to
3637     (effective only if the built-in stack extension method is used).  */
3638
3639 #if YYMAXDEPTH == 0
3640 #undef YYMAXDEPTH
3641 #endif
3642
3643 #ifndef YYMAXDEPTH
3644 #define YYMAXDEPTH 10000
3645 #endif
3646
3647 /* Prevent warning if -Wstrict-prototypes.  */
3648 #ifdef __GNUC__
3649 int yyparse (void);
3650 #endif
3651 \f
3652 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
3653 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
3654 #else                           /* not GNU C or C++ */
3655 #ifndef __cplusplus
3656
3657 /* This is the most reliable way to avoid incompatibilities
3658    in available built-in functions on various systems.  */
3659 static void
3660 __yy_memcpy (to, from, count)
3661      char *to;
3662      char *from;
3663      int count;
3664 {
3665   register char *f = from;
3666   register char *t = to;
3667   register int i = count;
3668
3669   while (i-- > 0)
3670     *t++ = *f++;
3671 }
3672
3673 #else /* __cplusplus */
3674
3675 /* This is the most reliable way to avoid incompatibilities
3676    in available built-in functions on various systems.  */
3677 static void
3678 __yy_memcpy (char *to, char *from, int count)
3679 {
3680   register char *f = from;
3681   register char *t = to;
3682   register int i = count;
3683
3684   while (i-- > 0)
3685     *t++ = *f++;
3686 }
3687
3688 #endif
3689 #endif
3690 \f
3691 #line 196 "/usr/cygnus/latest-940103/share/bison.simple"
3692
3693 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3694    into yyparse.  The argument should have type void *.
3695    It should actually point to an object.
3696    Grammar actions can access the variable by casting it
3697    to the proper pointer type.  */
3698
3699 #ifdef YYPARSE_PARAM
3700 #ifdef __cplusplus
3701 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3702 #define YYPARSE_PARAM_DECL
3703 #else /* not __cplusplus */
3704 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3705 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3706 #endif /* not __cplusplus */
3707 #else /* not YYPARSE_PARAM */
3708 #define YYPARSE_PARAM_ARG
3709 #define YYPARSE_PARAM_DECL
3710 #endif /* not YYPARSE_PARAM */
3711
3712 int
3713 yyparse(YYPARSE_PARAM_ARG)
3714      YYPARSE_PARAM_DECL
3715 {
3716   register int yystate;
3717   register int yyn;
3718   register short *yyssp;
3719   register YYSTYPE *yyvsp;
3720   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
3721   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
3722
3723   short yyssa[YYINITDEPTH];     /*  the state stack                     */
3724   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
3725
3726   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
3727   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
3728
3729 #ifdef YYLSP_NEEDED
3730   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
3731   YYLTYPE *yyls = yylsa;
3732   YYLTYPE *yylsp;
3733
3734 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
3735 #else
3736 #define YYPOPSTACK   (yyvsp--, yyssp--)
3737 #endif
3738
3739   int yystacksize = YYINITDEPTH;
3740
3741 #ifdef YYPURE
3742   int yychar;
3743   YYSTYPE yylval;
3744   int yynerrs;
3745 #ifdef YYLSP_NEEDED
3746   YYLTYPE yylloc;
3747 #endif
3748 #endif
3749
3750   YYSTYPE yyval;                /*  the variable used to return         */
3751                                 /*  semantic values from the action     */
3752                                 /*  routines                            */
3753
3754   int yylen;
3755
3756 #if YYDEBUG != 0
3757   if (yydebug)
3758     fprintf(stderr, "Starting parse\n");
3759 #endif
3760
3761   yystate = 0;
3762   yyerrstatus = 0;
3763   yynerrs = 0;
3764   yychar = YYEMPTY;             /* Cause a token to be read.  */
3765
3766   /* Initialize stack pointers.
3767      Waste one element of value and location stack
3768      so that they stay on the same level as the state stack.
3769      The wasted elements are never initialized.  */
3770
3771   yyssp = yyss - 1;
3772   yyvsp = yyvs;
3773 #ifdef YYLSP_NEEDED
3774   yylsp = yyls;
3775 #endif
3776
3777 /* Push a new state, which is found in  yystate  .  */
3778 /* In all cases, when you get here, the value and location stacks
3779    have just been pushed. so pushing a state here evens the stacks.  */
3780 yynewstate:
3781
3782   *++yyssp = yystate;
3783
3784   if (yyssp >= yyss + yystacksize - 1)
3785     {
3786       /* Give user a chance to reallocate the stack */
3787       /* Use copies of these so that the &'s don't force the real ones into memory. */
3788       YYSTYPE *yyvs1 = yyvs;
3789       short *yyss1 = yyss;
3790 #ifdef YYLSP_NEEDED
3791       YYLTYPE *yyls1 = yyls;
3792 #endif
3793
3794       /* Get the current used size of the three stacks, in elements.  */
3795       int size = yyssp - yyss + 1;
3796
3797 #ifdef yyoverflow
3798       /* Each stack pointer address is followed by the size of
3799          the data in use in that stack, in bytes.  */
3800 #ifdef YYLSP_NEEDED
3801       /* This used to be a conditional around just the two extra args,
3802          but that might be undefined if yyoverflow is a macro.  */
3803       yyoverflow("parser stack overflow",
3804                  &yyss1, size * sizeof (*yyssp),
3805                  &yyvs1, size * sizeof (*yyvsp),
3806                  &yyls1, size * sizeof (*yylsp),
3807                  &yystacksize);
3808 #else
3809       yyoverflow("parser stack overflow",
3810                  &yyss1, size * sizeof (*yyssp),
3811                  &yyvs1, size * sizeof (*yyvsp),
3812                  &yystacksize);
3813 #endif
3814
3815       yyss = yyss1; yyvs = yyvs1;
3816 #ifdef YYLSP_NEEDED
3817       yyls = yyls1;
3818 #endif
3819 #else /* no yyoverflow */
3820       /* Extend the stack our own way.  */
3821       if (yystacksize >= YYMAXDEPTH)
3822         {
3823           yyerror("parser stack overflow");
3824           return 2;
3825         }
3826       yystacksize *= 2;
3827       if (yystacksize > YYMAXDEPTH)
3828         yystacksize = YYMAXDEPTH;
3829       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3830       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3831       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3832       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3833 #ifdef YYLSP_NEEDED
3834       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3835       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3836 #endif
3837 #endif /* no yyoverflow */
3838
3839       yyssp = yyss + size - 1;
3840       yyvsp = yyvs + size - 1;
3841 #ifdef YYLSP_NEEDED
3842       yylsp = yyls + size - 1;
3843 #endif
3844
3845 #if YYDEBUG != 0
3846       if (yydebug)
3847         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3848 #endif
3849
3850       if (yyssp >= yyss + yystacksize - 1)
3851         YYABORT;
3852     }
3853
3854 #if YYDEBUG != 0
3855   if (yydebug)
3856     fprintf(stderr, "Entering state %d\n", yystate);
3857 #endif
3858
3859   goto yybackup;
3860  yybackup:
3861
3862 /* Do appropriate processing given the current state.  */
3863 /* Read a lookahead token if we need one and don't already have one.  */
3864 /* yyresume: */
3865
3866   /* First try to decide what to do without reference to lookahead token.  */
3867
3868   yyn = yypact[yystate];
3869   if (yyn == YYFLAG)
3870     goto yydefault;
3871
3872   /* Not known => get a lookahead token if don't already have one.  */
3873
3874   /* yychar is either YYEMPTY or YYEOF
3875      or a valid token in external form.  */
3876
3877   if (yychar == YYEMPTY)
3878     {
3879 #if YYDEBUG != 0
3880       if (yydebug)
3881         fprintf(stderr, "Reading a token: ");
3882 #endif
3883       yychar = YYLEX;
3884     }
3885
3886   /* Convert token to internal form (in yychar1) for indexing tables with */
3887
3888   if (yychar <= 0)              /* This means end of input. */
3889     {
3890       yychar1 = 0;
3891       yychar = YYEOF;           /* Don't call YYLEX any more */
3892
3893 #if YYDEBUG != 0
3894       if (yydebug)
3895         fprintf(stderr, "Now at end of input.\n");
3896 #endif
3897     }
3898   else
3899     {
3900       yychar1 = YYTRANSLATE(yychar);
3901
3902 #if YYDEBUG != 0
3903       if (yydebug)
3904         {
3905           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3906           /* Give the individual parser a way to print the precise meaning
3907              of a token, for further debugging info.  */
3908 #ifdef YYPRINT
3909           YYPRINT (stderr, yychar, yylval);
3910 #endif
3911           fprintf (stderr, ")\n");
3912         }
3913 #endif
3914     }
3915
3916   yyn += yychar1;
3917   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3918     goto yydefault;
3919
3920   yyn = yytable[yyn];
3921
3922   /* yyn is what to do for this token type in this state.
3923      Negative => reduce, -yyn is rule number.
3924      Positive => shift, yyn is new state.
3925        New state is final state => don't bother to shift,
3926        just return success.
3927      0, or most negative number => error.  */
3928
3929   if (yyn < 0)
3930     {
3931       if (yyn == YYFLAG)
3932         goto yyerrlab;
3933       yyn = -yyn;
3934       goto yyreduce;
3935     }
3936   else if (yyn == 0)
3937     goto yyerrlab;
3938
3939   if (yyn == YYFINAL)
3940     YYACCEPT;
3941
3942   /* Shift the lookahead token.  */
3943
3944 #if YYDEBUG != 0
3945   if (yydebug)
3946     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3947 #endif
3948
3949   /* Discard the token being shifted unless it is eof.  */
3950   if (yychar != YYEOF)
3951     yychar = YYEMPTY;
3952
3953   *++yyvsp = yylval;
3954 #ifdef YYLSP_NEEDED
3955   *++yylsp = yylloc;
3956 #endif
3957
3958   /* count tokens shifted since error; after three, turn off error status.  */
3959   if (yyerrstatus) yyerrstatus--;
3960
3961   yystate = yyn;
3962   goto yynewstate;
3963
3964 /* Do the default action for the current state.  */
3965 yydefault:
3966
3967   yyn = yydefact[yystate];
3968   if (yyn == 0)
3969     goto yyerrlab;
3970
3971 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
3972 yyreduce:
3973   yylen = yyr2[yyn];
3974   if (yylen > 0)
3975     yyval = yyvsp[1-yylen]; /* implement default value of the action */
3976
3977 #if YYDEBUG != 0
3978   if (yydebug)
3979     {
3980       int i;
3981
3982       fprintf (stderr, "Reducing via rule %d (line %d), ",
3983                yyn, yyrline[yyn]);
3984
3985       /* Print the symbols being reduced, and their result.  */
3986       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3987         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3988       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3989     }
3990 #endif
3991
3992
3993   switch (yyn) {
3994
3995 case 2:
3996 #line 313 "parse.y"
3997 {
3998                   /* In case there were missing closebraces,
3999                      get us back to the global binding level.  */
4000                   while (! global_bindings_p ())
4001                     poplevel (0, 0, 0);
4002                   finish_file ();
4003                 ;
4004     break;}
4005 case 3:
4006 #line 327 "parse.y"
4007 { yyval.ttype = NULL_TREE; ;
4008     break;}
4009 case 4:
4010 #line 329 "parse.y"
4011 { yyval.ttype = NULL_TREE; ;
4012     break;}
4013 case 5:
4014 #line 331 "parse.y"
4015 { yyval.ttype = NULL_TREE; ;
4016     break;}
4017 case 8:
4018 #line 340 "parse.y"
4019 { have_extern_spec = 1;
4020                   used_extern_spec = 0;
4021                   yyval.ttype = NULL_TREE; ;
4022     break;}
4023 case 9:
4024 #line 345 "parse.y"
4025 { have_extern_spec = 0; ;
4026     break;}
4027 case 10:
4028 #line 350 "parse.y"
4029 { yyval.itype = pedantic;
4030                   pedantic = 0; ;
4031     break;}
4032 case 13:
4033 #line 360 "parse.y"
4034 { if (pending_lang_change) do_pending_lang_change(); ;
4035     break;}
4036 case 14:
4037 #line 362 "parse.y"
4038 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4039                   pop_everything (); ;
4040     break;}
4041 case 15:
4042 #line 368 "parse.y"
4043 { if (pending_inlines) do_pending_inlines (); ;
4044     break;}
4045 case 16:
4046 #line 370 "parse.y"
4047 { if (pending_inlines) do_pending_inlines (); ;
4048     break;}
4049 case 17:
4050 #line 372 "parse.y"
4051 { if (pending_inlines) do_pending_inlines (); ;
4052     break;}
4053 case 18:
4054 #line 374 "parse.y"
4055 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4056                   assemble_asm (yyvsp[-2].ttype); ;
4057     break;}
4058 case 19:
4059 #line 377 "parse.y"
4060 { pop_lang_context (); ;
4061     break;}
4062 case 20:
4063 #line 379 "parse.y"
4064 { if (pending_inlines) do_pending_inlines ();
4065                   pop_lang_context (); ;
4066     break;}
4067 case 21:
4068 #line 382 "parse.y"
4069 { if (pending_inlines) do_pending_inlines ();
4070                   pop_lang_context (); ;
4071     break;}
4072 case 22:
4073 #line 385 "parse.y"
4074 { push_namespace (yyvsp[-1].ttype); ;
4075     break;}
4076 case 23:
4077 #line 387 "parse.y"
4078 { pop_namespace (); ;
4079     break;}
4080 case 24:
4081 #line 389 "parse.y"
4082 { push_namespace (NULL_TREE); ;
4083     break;}
4084 case 25:
4085 #line 391 "parse.y"
4086 { pop_namespace (); ;
4087     break;}
4088 case 26:
4089 #line 393 "parse.y"
4090 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4091     break;}
4092 case 27:
4093 #line 395 "parse.y"
4094 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4095     break;}
4096 case 28:
4097 #line 397 "parse.y"
4098 {
4099                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
4100                     yyvsp[-1].ttype = lastiddecl;
4101                   do_using_directive (yyvsp[-1].ttype);
4102                 ;
4103     break;}
4104 case 29:
4105 #line 403 "parse.y"
4106 { pedantic = yyvsp[-1].itype; ;
4107     break;}
4108 case 30:
4109 #line 408 "parse.y"
4110 { yyval.ttype = yyvsp[0].ttype; ;
4111     break;}
4112 case 31:
4113 #line 410 "parse.y"
4114 { yyval.ttype = yyvsp[0].ttype; ;
4115     break;}
4116 case 32:
4117 #line 412 "parse.y"
4118 { yyval.ttype = yyvsp[0].ttype; ;
4119     break;}
4120 case 35:
4121 #line 419 "parse.y"
4122 { yyval.ttype = yyvsp[0].ttype; ;
4123     break;}
4124 case 36:
4125 #line 421 "parse.y"
4126 { yyval.ttype = yyvsp[0].ttype; ;
4127     break;}
4128 case 37:
4129 #line 426 "parse.y"
4130 { push_lang_context (yyvsp[0].ttype); ;
4131     break;}
4132 case 38:
4133 #line 428 "parse.y"
4134 { if (current_lang_name != yyvsp[0].ttype)
4135                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4136                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4137     break;}
4138 case 39:
4139 #line 435 "parse.y"
4140 { begin_template_parm_list (); ;
4141     break;}
4142 case 40:
4143 #line 437 "parse.y"
4144 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4145     break;}
4146 case 41:
4147 #line 439 "parse.y"
4148 { begin_specialization(); 
4149                   yyval.ttype = NULL_TREE; ;
4150     break;}
4151 case 42:
4152 #line 445 "parse.y"
4153 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4154     break;}
4155 case 43:
4156 #line 447 "parse.y"
4157 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4158     break;}
4159 case 44:
4160 #line 452 "parse.y"
4161
4162                   yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
4163                  ttpa:
4164                   if (TREE_PURPOSE (yyval.ttype) == signature_type_node)
4165                     sorry ("signature as template type parameter");
4166                   else if (TREE_PURPOSE (yyval.ttype) != class_type_node)
4167                     {
4168                       pedwarn ("template type parameters must use the keyword `class'");
4169                       TREE_PURPOSE (yyval.ttype) = class_type_node;
4170                     }
4171                 ;
4172     break;}
4173 case 45:
4174 #line 464 "parse.y"
4175 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); goto ttpa; ;
4176     break;}
4177 case 46:
4178 #line 466 "parse.y"
4179 { yyval.ttype = build_tree_list (class_type_node, NULL_TREE); ;
4180     break;}
4181 case 47:
4182 #line 468 "parse.y"
4183 { yyval.ttype = build_tree_list (class_type_node, yyvsp[0].ttype); ;
4184     break;}
4185 case 48:
4186 #line 480 "parse.y"
4187 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4188     break;}
4189 case 49:
4190 #line 482 "parse.y"
4191 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4192     break;}
4193 case 50:
4194 #line 484 "parse.y"
4195 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4196     break;}
4197 case 51:
4198 #line 486 "parse.y"
4199 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4200     break;}
4201 case 52:
4202 #line 492 "parse.y"
4203
4204                   if (yyvsp[-1].ttype) 
4205                     end_template_decl (); 
4206                   else
4207                     end_specialization ();
4208                 ;
4209     break;}
4210 case 53:
4211 #line 500 "parse.y"
4212
4213                   if (yyvsp[-1].ttype) 
4214                     end_template_decl ();
4215                   else
4216                     end_specialization (); 
4217                 ;
4218     break;}
4219 case 54:
4220 #line 510 "parse.y"
4221 {;
4222     break;}
4223 case 55:
4224 #line 512 "parse.y"
4225 {;
4226     break;}
4227 case 56:
4228 #line 514 "parse.y"
4229 {
4230                   note_list_got_semicolon (yyvsp[-2].ftype.t);
4231                 ;
4232     break;}
4233 case 57:
4234 #line 518 "parse.y"
4235 { pedwarn ("empty declaration"); ;
4236     break;}
4237 case 59:
4238 #line 521 "parse.y"
4239 {
4240                   tree t, attrs;
4241                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4242                   shadow_tag (t);
4243                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4244                 ;
4245     break;}
4246 case 63:
4247 #line 534 "parse.y"
4248 { yyval.itype = 0; ;
4249     break;}
4250 case 64:
4251 #line 536 "parse.y"
4252 { yyval.itype = 1; ;
4253     break;}
4254 case 70:
4255 #line 552 "parse.y"
4256 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4257     break;}
4258 case 71:
4259 #line 554 "parse.y"
4260 { ;
4261     break;}
4262 case 72:
4263 #line 556 "parse.y"
4264 { ;
4265     break;}
4266 case 73:
4267 #line 561 "parse.y"
4268 {
4269                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4270                   if (yyvsp[-2].ttype != current_class_type)
4271                     {
4272                       push_nested_class (yyvsp[-2].ttype, 3);
4273                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4274                     }
4275                 ;
4276     break;}
4277 case 74:
4278 #line 570 "parse.y"
4279 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4280     break;}
4281 case 75:
4282 #line 572 "parse.y"
4283 {
4284                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4285                   if (yyvsp[-4].ttype != current_class_type)
4286                     {
4287                       push_nested_class (yyvsp[-4].ttype, 3);
4288                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4289                     }
4290                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4291                 ;
4292     break;}
4293 case 76:
4294 #line 582 "parse.y"
4295 {
4296                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4297                   if (yyvsp[-2].ttype != current_class_type)
4298                     {
4299                       push_nested_class (yyvsp[-2].ttype, 3);
4300                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4301                     }
4302                 ;
4303     break;}
4304 case 77:
4305 #line 591 "parse.y"
4306 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4307     break;}
4308 case 78:
4309 #line 593 "parse.y"
4310 {
4311                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4312                   if (yyvsp[-4].ttype != current_class_type)
4313                     {
4314                       push_nested_class (yyvsp[-4].ttype, 3);
4315                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4316                     }
4317                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4318                 ;
4319     break;}
4320 case 79:
4321 #line 603 "parse.y"
4322 {
4323                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4324                   if (yyvsp[-2].ttype != current_class_type)
4325                     {
4326                       push_nested_class (yyvsp[-2].ttype, 3);
4327                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4328                     }
4329                 ;
4330     break;}
4331 case 80:
4332 #line 612 "parse.y"
4333 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4334     break;}
4335 case 81:
4336 #line 614 "parse.y"
4337 {
4338                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4339                   if (yyvsp[-4].ttype != current_class_type)
4340                     {
4341                       push_nested_class (yyvsp[-4].ttype, 3);
4342                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4343                     }
4344                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4345                 ;
4346     break;}
4347 case 82:
4348 #line 624 "parse.y"
4349 {
4350                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[-1].ttype);
4351                   if (yyvsp[-2].ttype != current_class_type)
4352                     {
4353                       push_nested_class (yyvsp[-2].ttype, 3);
4354                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4355                     }
4356                 ;
4357     break;}
4358 case 83:
4359 #line 633 "parse.y"
4360 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4361     break;}
4362 case 84:
4363 #line 635 "parse.y"
4364 {
4365                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype, yyvsp[-3].ttype);
4366                   if (yyvsp[-4].ttype != current_class_type)
4367                     {
4368                       push_nested_class (yyvsp[-4].ttype, 3);
4369                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
4370                     }
4371                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4372                 ;
4373     break;}
4374 case 85:
4375 #line 648 "parse.y"
4376 { tree specs, attrs;
4377                   split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4378                   if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4379                     YYERROR1;
4380                   reinit_parse_for_function ();
4381                   yyval.ttype = NULL_TREE; ;
4382     break;}
4383 case 86:
4384 #line 655 "parse.y"
4385 { tree specs, attrs;
4386                   split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4387                   if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4388                     YYERROR1;
4389                   reinit_parse_for_function ();
4390                   yyval.ttype = NULL_TREE; ;
4391     break;}
4392 case 87:
4393 #line 662 "parse.y"
4394 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4395                     YYERROR1;
4396                   reinit_parse_for_function ();
4397                   yyval.ttype = NULL_TREE; ;
4398     break;}
4399 case 88:
4400 #line 667 "parse.y"
4401 { tree specs, attrs;
4402                   split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4403                   if (! start_function (specs, yyvsp[0].ttype, attrs, 0))
4404                     YYERROR1;
4405                   reinit_parse_for_function ();
4406                   yyval.ttype = NULL_TREE; ;
4407     break;}
4408 case 89:
4409 #line 674 "parse.y"
4410 { if (! start_function (NULL_TREE, yyval.ttype, NULL_TREE, 0))
4411                     YYERROR1;
4412                   reinit_parse_for_function ();
4413                   yyval.ttype = NULL_TREE; ;
4414     break;}
4415 case 90:
4416 #line 682 "parse.y"
4417 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4418     break;}
4419 case 91:
4420 #line 684 "parse.y"
4421 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4422     break;}
4423 case 92:
4424 #line 686 "parse.y"
4425 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4426     break;}
4427 case 93:
4428 #line 688 "parse.y"
4429 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4430     break;}
4431 case 94:
4432 #line 695 "parse.y"
4433 { tree specs = strip_attrs (yyvsp[-1].ttype);
4434                   yyval.ttype = start_method (specs, yyvsp[0].ttype);
4435                  rest_of_mdef:
4436                   if (! yyval.ttype)
4437                     YYERROR1;
4438                   if (yychar == YYEMPTY)
4439                     yychar = YYLEX;
4440                   reinit_parse_for_method (yychar, yyval.ttype); ;
4441     break;}
4442 case 95:
4443 #line 704 "parse.y"
4444 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4445     break;}
4446 case 96:
4447 #line 706 "parse.y"
4448 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4449                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4450     break;}
4451 case 97:
4452 #line 709 "parse.y"
4453 { tree specs = strip_attrs (yyvsp[-1].ttype);
4454                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4455     break;}
4456 case 98:
4457 #line 712 "parse.y"
4458 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4459     break;}
4460 case 99:
4461 #line 714 "parse.y"
4462 { tree specs = strip_attrs (yyvsp[-1].ttype);
4463                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4464     break;}
4465 case 100:
4466 #line 717 "parse.y"
4467 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4468     break;}
4469 case 101:
4470 #line 719 "parse.y"
4471
4472                   if (yyvsp[-1].ttype)
4473                     end_template_decl (); 
4474                   else
4475                     end_specialization ();
4476
4477                   if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
4478                       && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
4479                     {
4480                       yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype); 
4481                       check_member_template (yyval.ttype);
4482                     }
4483                   else if (yyvsp[0].ttype)
4484                     yyval.ttype = yyvsp[0].ttype;
4485                   else 
4486                     {
4487                       cp_error("invalid member template declaration");
4488                       yyval.ttype = NULL_TREE;
4489                     }
4490                 ;
4491     break;}
4492 case 102:
4493 #line 743 "parse.y"
4494 {
4495                   if (! current_function_parms_stored)
4496                     store_parm_decls ();
4497                   yyval.ttype = yyvsp[0].ttype;
4498                 ;
4499     break;}
4500 case 103:
4501 #line 752 "parse.y"
4502 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4503     break;}
4504 case 104:
4505 #line 754 "parse.y"
4506 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4507     break;}
4508 case 105:
4509 #line 756 "parse.y"
4510 { store_return_init (yyval.ttype, NULL_TREE); ;
4511     break;}
4512 case 106:
4513 #line 761 "parse.y"
4514 {
4515                   if (yyvsp[0].itype == 0)
4516                     error ("no base initializers given following ':'");
4517                   setup_vtbl_ptr ();
4518                   /* Always keep the BLOCK node associated with the outermost
4519                      pair of curley braces of a function.  These are needed
4520                      for correct operation of dwarfout.c.  */
4521                   keep_next_level ();
4522                 ;
4523     break;}
4524 case 107:
4525 #line 774 "parse.y"
4526 {
4527                   if (! current_function_parms_stored)
4528                     store_parm_decls ();
4529
4530                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4531                     {
4532                       /* Make a contour for the initializer list.  */
4533                       pushlevel (0);
4534                       clear_last_expr ();
4535                       expand_start_bindings (0);
4536                     }
4537                   else if (current_class_type == NULL_TREE)
4538                     error ("base initializers not allowed for non-member functions");
4539                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4540                     error ("only constructors take base initializers");
4541                 ;
4542     break;}
4543 case 108:
4544 #line 794 "parse.y"
4545 { yyval.itype = 0; ;
4546     break;}
4547 case 109:
4548 #line 796 "parse.y"
4549 { yyval.itype = 1; ;
4550     break;}
4551 case 112:
4552 #line 803 "parse.y"
4553 {
4554                   if (current_class_name)
4555                     pedwarn ("anachronistic old style base class initializer");
4556                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4557                 ;
4558     break;}
4559 case 113:
4560 #line 809 "parse.y"
4561 {
4562                   if (current_class_name)
4563                     pedwarn ("anachronistic old style base class initializer");
4564                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4565                 ;
4566     break;}
4567 case 114:
4568 #line 815 "parse.y"
4569 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4570     break;}
4571 case 115:
4572 #line 817 "parse.y"
4573 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4574     break;}
4575 case 116:
4576 #line 819 "parse.y"
4577 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4578     break;}
4579 case 117:
4580 #line 821 "parse.y"
4581 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4582     break;}
4583 case 118:
4584 #line 823 "parse.y"
4585 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4586                                       yyvsp[-1].ttype); ;
4587     break;}
4588 case 119:
4589 #line 826 "parse.y"
4590 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4591                                       void_type_node); ;
4592     break;}
4593 case 131:
4594 #line 852 "parse.y"
4595 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4596                   yyungetc (';', 1); ;
4597     break;}
4598 case 132:
4599 #line 855 "parse.y"
4600 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4601                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4602     break;}
4603 case 133:
4604 #line 858 "parse.y"
4605 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4606     break;}
4607 case 134:
4608 #line 860 "parse.y"
4609 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4610     break;}
4611 case 135:
4612 #line 862 "parse.y"
4613 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-3].ttype);
4614                   yyungetc (';', 1); ;
4615     break;}
4616 case 136:
4617 #line 865 "parse.y"
4618 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4619                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4620     break;}
4621 case 137:
4622 #line 868 "parse.y"
4623 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4624     break;}
4625 case 138:
4626 #line 870 "parse.y"
4627 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
4628     break;}
4629 case 139:
4630 #line 879 "parse.y"
4631 {
4632                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4633                   if (yyval.ttype != error_mark_node)
4634                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4635                 ;
4636     break;}
4637 case 140:
4638 #line 885 "parse.y"
4639 {
4640                   yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4641                   if (yyval.ttype != error_mark_node)
4642                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4643                 ;
4644     break;}
4645 case 141:
4646 #line 891 "parse.y"
4647 {
4648                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4649                   if (yyval.ttype != error_mark_node)
4650                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4651                 ;
4652     break;}
4653 case 142:
4654 #line 897 "parse.y"
4655 {
4656                   yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4657                   if (yyval.ttype != error_mark_node)
4658                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4659                 ;
4660     break;}
4661 case 144:
4662 #line 907 "parse.y"
4663 {
4664                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4665                   if (yyval.ttype != error_mark_node)
4666                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4667                 ;
4668     break;}
4669 case 145:
4670 #line 913 "parse.y"
4671 {
4672                   yyval.ttype = lookup_template_class (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
4673                   if (yyval.ttype != error_mark_node)
4674                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4675                 ;
4676     break;}
4677 case 147:
4678 #line 923 "parse.y"
4679 {
4680                   /* Handle `Class<Class<Type>>' without space in the `>>' */
4681                   pedwarn ("`>>' should be `> >' in template class name");
4682                   yyungetc ('>', 1);
4683                 ;
4684     break;}
4685 case 148:
4686 #line 932 "parse.y"
4687 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4688     break;}
4689 case 149:
4690 #line 934 "parse.y"
4691 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4692     break;}
4693 case 150:
4694 #line 939 "parse.y"
4695 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4696     break;}
4697 case 152:
4698 #line 945 "parse.y"
4699 { yyval.code = NEGATE_EXPR; ;
4700     break;}
4701 case 153:
4702 #line 947 "parse.y"
4703 { yyval.code = CONVERT_EXPR; ;
4704     break;}
4705 case 154:
4706 #line 949 "parse.y"
4707 { yyval.code = PREINCREMENT_EXPR; ;
4708     break;}
4709 case 155:
4710 #line 951 "parse.y"
4711 { yyval.code = PREDECREMENT_EXPR; ;
4712     break;}
4713 case 156:
4714 #line 953 "parse.y"
4715 { yyval.code = TRUTH_NOT_EXPR; ;
4716     break;}
4717 case 157:
4718 #line 958 "parse.y"
4719 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4720     break;}
4721 case 159:
4722 #line 964 "parse.y"
4723 { error ("ANSI C++ forbids an empty condition for `%s'",
4724                          cond_stmt_keyword);
4725                   yyval.ttype = integer_zero_node; ;
4726     break;}
4727 case 160:
4728 #line 968 "parse.y"
4729 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4730     break;}
4731 case 161:
4732 #line 973 "parse.y"
4733 { error ("ANSI C++ forbids an empty condition for `%s'",
4734                          cond_stmt_keyword);
4735                   yyval.ttype = integer_zero_node; ;
4736     break;}
4737 case 162:
4738 #line 977 "parse.y"
4739 { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ;
4740     break;}
4741 case 163:
4742 #line 982 "parse.y"
4743 { yyval.ttype = NULL_TREE; ;
4744     break;}
4745 case 164:
4746 #line 984 "parse.y"
4747 { yyval.ttype = condition_conversion (yyval.ttype); ;
4748     break;}
4749 case 165:
4750 #line 986 "parse.y"
4751 { yyval.ttype = NULL_TREE; ;
4752     break;}
4753 case 166:
4754 #line 991 "parse.y"
4755 { {
4756                   tree d;
4757                   for (d = getdecls (); d; d = TREE_CHAIN (d))
4758                     if (TREE_CODE (d) == TYPE_DECL) {
4759                       tree s = TREE_TYPE (d);
4760                       if (TREE_CODE (s) == RECORD_TYPE)
4761                         cp_error ("definition of class `%T' in condition", s);
4762                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
4763                         cp_error ("definition of enum `%T' in condition", s);
4764                     }
4765                   }
4766                   current_declspecs = yyvsp[-4].ftype.t;
4767                   yyvsp[0].itype = suspend_momentary ();
4768                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
4769                   cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype,
4770                                          /*prefix_attributes*/ NULL_TREE);
4771                 ;
4772     break;}
4773 case 167:
4774 #line 1009 "parse.y"
4775
4776                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4777                   resume_momentary (yyvsp[-2].itype);
4778                   yyval.ttype = yyvsp[-1].ttype; 
4779                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4780                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
4781                 ;
4782     break;}
4783 case 173:
4784 #line 1028 "parse.y"
4785 {
4786                   if (processing_template_decl)
4787                     {
4788                       yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
4789                       COMPOUND_STMT_NO_SCOPE (yyval.ttype) = 1;
4790                       add_tree (yyval.ttype);
4791                     }
4792                 ;
4793     break;}
4794 case 174:
4795 #line 1037 "parse.y"
4796
4797                   if (processing_template_decl)
4798                     {
4799                       TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
4800                       TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
4801                       last_tree = yyvsp[-1].ttype;
4802                     }
4803                   finish_stmt (); 
4804                 ;
4805     break;}
4806 case 176:
4807 #line 1052 "parse.y"
4808 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4809                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4810     break;}
4811 case 177:
4812 #line 1055 "parse.y"
4813 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4814                                   build_expr_list (NULL_TREE, error_mark_node)); ;
4815     break;}
4816 case 178:
4817 #line 1058 "parse.y"
4818 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4819     break;}
4820 case 179:
4821 #line 1060 "parse.y"
4822 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4823     break;}
4824 case 180:
4825 #line 1065 "parse.y"
4826 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4827     break;}
4828 case 182:
4829 #line 1071 "parse.y"
4830 { yyval.ttype = yyvsp[0].ttype; ;
4831     break;}
4832 case 183:
4833 #line 1074 "parse.y"
4834 { yyval.ttype = yyvsp[0].ttype;
4835                   pedantic = yyvsp[-1].itype; ;
4836     break;}
4837 case 184:
4838 #line 1077 "parse.y"
4839 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4840     break;}
4841 case 185:
4842 #line 1079 "parse.y"
4843 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4844     break;}
4845 case 186:
4846 #line 1081 "parse.y"
4847 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4848     break;}
4849 case 187:
4850 #line 1083 "parse.y"
4851 { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
4852                   if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
4853                     TREE_NEGATED_INT (yyval.ttype) = 1;
4854                   overflow_warning (yyval.ttype);
4855                 ;
4856     break;}
4857 case 188:
4858 #line 1090 "parse.y"
4859 { tree label = lookup_label (yyvsp[0].ttype);
4860                   if (pedantic)
4861                     pedwarn ("ANSI C++ forbids `&&'");
4862                   if (label == NULL_TREE)
4863                     yyval.ttype = null_pointer_node;
4864                   else
4865                     {
4866                       TREE_USED (label) = 1;
4867                       yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
4868                       TREE_CONSTANT (yyval.ttype) = 1;
4869                     }
4870                 ;
4871     break;}
4872 case 189:
4873 #line 1103 "parse.y"
4874 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4875     break;}
4876 case 190:
4877 #line 1105 "parse.y"
4878 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4879     break;}
4880 case 191:
4881 #line 1107 "parse.y"
4882 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4883     break;}
4884 case 192:
4885 #line 1109 "parse.y"
4886 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
4887                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4888     break;}
4889 case 193:
4890 #line 1115 "parse.y"
4891 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
4892                   check_for_new_type ("new", yyvsp[0].ftype); ;
4893     break;}
4894 case 194:
4895 #line 1118 "parse.y"
4896 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
4897                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4898     break;}
4899 case 195:
4900 #line 1121 "parse.y"
4901 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
4902                   check_for_new_type ("new", yyvsp[0].ftype); ;
4903     break;}
4904 case 196:
4905 #line 1124 "parse.y"
4906 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
4907                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4908     break;}
4909 case 197:
4910 #line 1127 "parse.y"
4911 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4912                                   NULL_TREE, yyvsp[-3].itype); 
4913                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4914     break;}
4915 case 198:
4916 #line 1131 "parse.y"
4917 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); 
4918                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4919     break;}
4920 case 199:
4921 #line 1134 "parse.y"
4922 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); 
4923                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4924     break;}
4925 case 200:
4926 #line 1137 "parse.y"
4927 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
4928                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4929     break;}
4930 case 201:
4931 #line 1141 "parse.y"
4932 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4933     break;}
4934 case 202:
4935 #line 1143 "parse.y"
4936 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4937                   if (yychar == YYEMPTY)
4938                     yychar = YYLEX; ;
4939     break;}
4940 case 203:
4941 #line 1147 "parse.y"
4942 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4943                   if (yychar == YYEMPTY)
4944                     yychar = YYLEX; ;
4945     break;}
4946 case 204:
4947 #line 1151 "parse.y"
4948 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4949     break;}
4950 case 205:
4951 #line 1153 "parse.y"
4952 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4953     break;}
4954 case 206:
4955 #line 1158 "parse.y"
4956 { yyval.ttype = yyvsp[-1].ttype; ;
4957     break;}
4958 case 207:
4959 #line 1160 "parse.y"
4960 {
4961                   yyval.ttype = yyvsp[-1].ttype; 
4962                   pedwarn ("old style placement syntax, use () instead");
4963                 ;
4964     break;}
4965 case 208:
4966 #line 1168 "parse.y"
4967 { yyval.ttype = yyvsp[-1].ttype; ;
4968     break;}
4969 case 209:
4970 #line 1170 "parse.y"
4971 { yyval.ttype = NULL_TREE; ;
4972     break;}
4973 case 210:
4974 #line 1172 "parse.y"
4975 {
4976                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4977                   yyval.ttype = error_mark_node;
4978                 ;
4979     break;}
4980 case 211:
4981 #line 1180 "parse.y"
4982 {
4983                   if (pedantic)
4984                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4985                   yyval.ttype = yyvsp[0].ttype;
4986                 ;
4987     break;}
4988 case 212:
4989 #line 1190 "parse.y"
4990 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4991                   TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4992                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4993                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4994     break;}
4995 case 213:
4996 #line 1195 "parse.y"
4997 { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
4998                   TREE_PARMLIST (yyvsp[-1].ftype.t) = 1;
4999                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5000                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
5001     break;}
5002 case 215:
5003 #line 1204 "parse.y"
5004 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5005     break;}
5006 case 216:
5007 #line 1206 "parse.y"
5008
5009                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5010                                         nreverse (yyvsp[-2].ttype)); 
5011                   if (pedantic)
5012                     pedwarn ("ANSI C++ forbids constructor-expressions");
5013                   /* Indicate that this was a GNU C constructor expression.  */
5014                   TREE_HAS_CONSTRUCTOR (init) = 1;
5015
5016                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5017                 ;
5018     break;}
5019 case 218:
5020 #line 1222 "parse.y"
5021 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5022     break;}
5023 case 219:
5024 #line 1224 "parse.y"
5025 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5026     break;}
5027 case 220:
5028 #line 1226 "parse.y"
5029 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5030     break;}
5031 case 221:
5032 #line 1228 "parse.y"
5033 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5034     break;}
5035 case 222:
5036 #line 1230 "parse.y"
5037 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5038     break;}
5039 case 223:
5040 #line 1232 "parse.y"
5041 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5042     break;}
5043 case 224:
5044 #line 1234 "parse.y"
5045 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5046     break;}
5047 case 225:
5048 #line 1236 "parse.y"
5049 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5050     break;}
5051 case 226:
5052 #line 1238 "parse.y"
5053 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5054     break;}
5055 case 227:
5056 #line 1240 "parse.y"
5057 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5058     break;}
5059 case 228:
5060 #line 1242 "parse.y"
5061 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5062     break;}
5063 case 229:
5064 #line 1244 "parse.y"
5065 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5066     break;}
5067 case 230:
5068 #line 1246 "parse.y"
5069 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5070     break;}
5071 case 231:
5072 #line 1248 "parse.y"
5073 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5074     break;}
5075 case 232:
5076 #line 1250 "parse.y"
5077 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5078     break;}
5079 case 233:
5080 #line 1252 "parse.y"
5081 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5082     break;}
5083 case 234:
5084 #line 1254 "parse.y"
5085 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5086     break;}
5087 case 235:
5088 #line 1256 "parse.y"
5089 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5090     break;}
5091 case 236:
5092 #line 1258 "parse.y"
5093 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5094     break;}
5095 case 237:
5096 #line 1260 "parse.y"
5097 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5098     break;}
5099 case 238:
5100 #line 1262 "parse.y"
5101 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5102                   if (yyval.ttype != error_mark_node)
5103                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5104     break;}
5105 case 239:
5106 #line 1266 "parse.y"
5107 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5108     break;}
5109 case 240:
5110 #line 1268 "parse.y"
5111 { yyval.ttype = build_throw (NULL_TREE); ;
5112     break;}
5113 case 241:
5114 #line 1270 "parse.y"
5115 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5116     break;}
5117 case 242:
5118 #line 1288 "parse.y"
5119 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5120     break;}
5121 case 248:
5122 #line 1298 "parse.y"
5123 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5124     break;}
5125 case 249:
5126 #line 1300 "parse.y"
5127 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, NULL_TREE); ;
5128     break;}
5129 case 250:
5130 #line 1302 "parse.y"
5131 { yyval.ttype = lookup_template_function 
5132                     (do_identifier (yyvsp[-3].ttype, 1), yyvsp[-1].ttype); ;
5133     break;}
5134 case 251:
5135 #line 1305 "parse.y"
5136 { yyval.ttype = lookup_template_function 
5137                     (do_identifier (yyvsp[-2].ttype, 1), NULL_TREE); ;
5138     break;}
5139 case 252:
5140 #line 1311 "parse.y"
5141 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5142     break;}
5143 case 253:
5144 #line 1313 "parse.y"
5145 { yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
5146     break;}
5147 case 254:
5148 #line 1315 "parse.y"
5149 { yyval.ttype = lookup_template_function (DECL_NAME (yyvsp[-3].ttype), yyvsp[-1].ttype); ;
5150     break;}
5151 case 259:
5152 #line 1327 "parse.y"
5153 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5154     break;}
5155 case 260:
5156 #line 1329 "parse.y"
5157 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5158     break;}
5159 case 261:
5160 #line 1331 "parse.y"
5161 { yyval.ttype = yyvsp[-1].ttype; ;
5162     break;}
5163 case 262:
5164 #line 1336 "parse.y"
5165 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5166     break;}
5167 case 263:
5168 #line 1338 "parse.y"
5169 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5170     break;}
5171 case 267:
5172 #line 1346 "parse.y"
5173 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5174     break;}
5175 case 268:
5176 #line 1351 "parse.y"
5177 {
5178                   if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR)
5179                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0));
5180                   else if (TREE_CODE (yyval.ttype) != TEMPLATE_ID_EXPR)
5181                     yyval.ttype = do_identifier (yyval.ttype, 1);
5182                 ;
5183     break;}
5184 case 271:
5185 #line 1360 "parse.y"
5186 {
5187                   if (processing_template_decl)
5188                     push_obstacks (&permanent_obstack, &permanent_obstack);
5189                   yyval.ttype = combine_strings (yyval.ttype);
5190                   if (processing_template_decl)
5191                     pop_obstacks ();
5192                 ;
5193     break;}
5194 case 272:
5195 #line 1368 "parse.y"
5196 { char class;
5197                   yyval.ttype = yyvsp[-1].ttype;
5198                   class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5199                   if (class == 'e' || class == '1'
5200                       || class == '2' || class == '<')
5201                     /* This inhibits warnings in truthvalue_conversion.  */
5202                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5203     break;}
5204 case 273:
5205 #line 1376 "parse.y"
5206 { char class;
5207                   yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5208                   class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
5209                   if (class == 'e' || class == '1'
5210                       || class == '2' || class == '<')
5211                     /* This inhibits warnings in truthvalue_conversion.  */
5212                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
5213     break;}
5214 case 274:
5215 #line 1384 "parse.y"
5216 { yyval.ttype = error_mark_node; ;
5217     break;}
5218 case 275:
5219 #line 1386 "parse.y"
5220 { if (current_function_decl == 0)
5221                     {
5222                       error ("braced-group within expression allowed only inside a function");
5223                       YYERROR;
5224                     }
5225                   keep_next_level ();
5226                   yyval.ttype = expand_start_stmt_expr (); ;
5227     break;}
5228 case 276:
5229 #line 1394 "parse.y"
5230 { tree rtl_exp;
5231                   if (pedantic)
5232                     pedwarn ("ANSI C++ forbids braced-groups within expressions");
5233                   rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
5234                   /* The statements have side effects, so the group does.  */
5235                   TREE_SIDE_EFFECTS (rtl_exp) = 1;
5236
5237                   if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
5238                     {
5239                       /* Make a BIND_EXPR for the BLOCK already made.  */
5240                       yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
5241                                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
5242                       /* Remove the block from the tree at this point.
5243                          It gets put back at the proper place
5244                          when the BIND_EXPR is expanded.  */
5245                       delete_block (yyvsp[-1].ttype);
5246                     }
5247                   else
5248                     yyval.ttype = yyvsp[-1].ttype;
5249                 ;
5250     break;}
5251 case 277:
5252 #line 1415 "parse.y"
5253 {
5254                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); 
5255                   if (TREE_CODE (yyval.ttype) == CALL_EXPR
5256                       && TREE_TYPE (yyval.ttype) != void_type_node)
5257                     yyval.ttype = require_complete_type (yyval.ttype);
5258                 ;
5259     break;}
5260 case 278:
5261 #line 1422 "parse.y"
5262 {
5263                   yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref);
5264                   if (TREE_CODE (yyval.ttype) == CALL_EXPR
5265                       && TREE_TYPE (yyval.ttype) != void_type_node)
5266                     yyval.ttype = require_complete_type (yyval.ttype);
5267                 ;
5268     break;}
5269 case 279:
5270 #line 1429 "parse.y"
5271 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5272     break;}
5273 case 280:
5274 #line 1431 "parse.y"
5275 { /* If we get an OFFSET_REF, turn it into what it really
5276                      means (e.g., a COMPONENT_REF).  This way if we've got,
5277                      say, a reference to a static member that's being operated
5278                      on, we don't end up trying to find a member operator for
5279                      the class it's in.  */
5280                   if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5281                     yyval.ttype = resolve_offset_ref (yyval.ttype);
5282                   yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
5283     break;}
5284 case 281:
5285 #line 1440 "parse.y"
5286 { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
5287                     yyval.ttype = resolve_offset_ref (yyval.ttype);
5288                   yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
5289     break;}
5290 case 282:
5291 #line 1445 "parse.y"
5292 { if (current_class_ptr)
5293                     {
5294 #ifdef WARNING_ABOUT_CCD
5295                       TREE_USED (current_class_ptr) = 1;
5296 #endif
5297                       yyval.ttype = current_class_ptr;
5298                     }
5299                   else if (current_function_decl
5300                            && DECL_STATIC_FUNCTION_P (current_function_decl))
5301                     {
5302                       error ("`this' is unavailable for static member functions");
5303                       yyval.ttype = error_mark_node;
5304                     }
5305                   else
5306                     {
5307                       if (current_function_decl)
5308                         error ("invalid use of `this' in non-member function");
5309                       else
5310                         error ("invalid use of `this' at top level");
5311                       yyval.ttype = error_mark_node;
5312                     }
5313                 ;
5314     break;}
5315 case 283:
5316 #line 1468 "parse.y"
5317 {
5318                   tree type;
5319                   tree id = yyval.ttype;
5320
5321                   /* This is a C cast in C++'s `functional' notation.  */
5322                   if (yyvsp[-1].ttype == error_mark_node)
5323                     {
5324                       yyval.ttype = error_mark_node;
5325                       break;
5326                     }
5327 #if 0
5328                   if (yyvsp[-1].ttype == NULL_TREE)
5329                     {
5330                       error ("cannot cast null list to type `%s'",
5331                              IDENTIFIER_POINTER (TYPE_NAME (id)));
5332                       yyval.ttype = error_mark_node;
5333                       break;
5334                     }
5335 #endif
5336 #if 0
5337                   /* type is not set! (mrs) */
5338                   if (type == error_mark_node)
5339                     yyval.ttype = error_mark_node;
5340                   else
5341 #endif
5342                     {
5343                       if (id == ridpointers[(int) RID_CONST])
5344                         type = build_type_variant (integer_type_node, 1, 0);
5345                       else if (id == ridpointers[(int) RID_VOLATILE])
5346                         type = build_type_variant (integer_type_node, 0, 1);
5347 #if 0
5348                       /* should not be able to get here (mrs) */
5349                       else if (id == ridpointers[(int) RID_FRIEND])
5350                         {
5351                           error ("cannot cast expression to `friend' type");
5352                           yyval.ttype = error_mark_node;
5353                           break;
5354                         }
5355 #endif
5356                       else my_friendly_abort (79);
5357                       yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5358                     }
5359                 ;
5360     break;}
5361 case 285:
5362 #line 1513 "parse.y"
5363 { tree type = groktypename (yyvsp[-4].ftype.t);
5364                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5365                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5366     break;}
5367 case 286:
5368 #line 1517 "parse.y"
5369 { tree type = groktypename (yyvsp[-4].ftype.t);
5370                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5371                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5372     break;}
5373 case 287:
5374 #line 1521 "parse.y"
5375 { tree type = groktypename (yyvsp[-4].ftype.t);
5376                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5377                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5378     break;}
5379 case 288:
5380 #line 1525 "parse.y"
5381 { tree type = groktypename (yyvsp[-4].ftype.t);
5382                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5383                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5384     break;}
5385 case 289:
5386 #line 1529 "parse.y"
5387 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5388     break;}
5389 case 290:
5390 #line 1531 "parse.y"
5391 { tree type = groktypename (yyvsp[-1].ftype.t);
5392                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5393                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5394     break;}
5395 case 291:
5396 #line 1535 "parse.y"
5397 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5398     break;}
5399 case 292:
5400 #line 1537 "parse.y"
5401 {
5402                   got_scope = NULL_TREE;
5403                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5404                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5405                   else
5406                     yyval.ttype = yyvsp[0].ttype;
5407                 ;
5408     break;}
5409 case 293:
5410 #line 1545 "parse.y"
5411 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5412     break;}
5413 case 294:
5414 #line 1547 "parse.y"
5415 { if (processing_template_decl)
5416                     yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE);
5417                   else
5418                     yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ;
5419     break;}
5420 case 295:
5421 #line 1552 "parse.y"
5422 { if (processing_template_decl)
5423                     yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), 
5424                                        NULL_TREE, NULL_TREE);
5425                   else
5426                     yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ;
5427     break;}
5428 case 296:
5429 #line 1558 "parse.y"
5430
5431                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5432                 ;
5433     break;}
5434 case 297:
5435 #line 1562 "parse.y"
5436 {
5437                   yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, 
5438                                           NULL_TREE, LOOKUP_NORMAL); 
5439                 ;
5440     break;}
5441 case 298:
5442 #line 1567 "parse.y"
5443 {
5444                   yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE,
5445                                           NULL_TREE, LOOKUP_NORMAL); 
5446                 ;
5447     break;}
5448 case 299:
5449 #line 1572 "parse.y"
5450 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5451     break;}
5452 case 300:
5453 #line 1574 "parse.y"
5454 { if (processing_template_decl)
5455                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5456                   else
5457                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5458     break;}
5459 case 301:
5460 #line 1579 "parse.y"
5461 {
5462 #if 0
5463                   /* This is a future direction of this code, but because
5464                      build_x_function_call cannot always undo what is done
5465                      in build_component_ref entirely yet, we cannot do this.  */
5466                   yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, current_class_ref);
5467                   if (TREE_CODE (yyval.ttype) == CALL_EXPR
5468                       && TREE_TYPE (yyval.ttype) != void_type_node)
5469                     yyval.ttype = require_complete_type (yyval.ttype);
5470 #else
5471                   yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
5472                                           LOOKUP_NORMAL);
5473 #endif
5474                 ;
5475     break;}
5476 case 302:
5477 #line 1594 "parse.y"
5478 {
5479 #if 0
5480                   /* This is a future direction of this code, but because
5481                      build_x_function_call cannot always undo what is done
5482                      in build_component_ref entirely yet, we cannot do this.  */
5483                   yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, current_class_ref);
5484                   if (TREE_CODE (yyval.ttype) == CALL_EXPR
5485                       && TREE_TYPE (yyval.ttype) != void_type_node)
5486                     yyval.ttype = require_complete_type (yyval.ttype);
5487 #else
5488                   yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
5489                                           LOOKUP_NORMAL);
5490 #endif
5491                 ;
5492     break;}
5493 case 303:
5494 #line 1609 "parse.y"
5495 {
5496                   if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype)))
5497                     {
5498                       warning ("signature name in scope resolution ignored");
5499                       yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE,
5500                                               LOOKUP_NORMAL);
5501                     }
5502                   else
5503                     yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype);
5504                 ;
5505     break;}
5506 case 304:
5507 #line 1620 "parse.y"
5508 {
5509                   if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype)))
5510                     {
5511                       warning ("signature name in scope resolution ignored");
5512                       yyval.ttype = build_method_call (yyval.ttype, OP1 (yyvsp[-1].ttype), NULL_TREE, NULL_TREE,
5513                                               LOOKUP_NORMAL);
5514                     }
5515                   else
5516                     yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE);
5517                 ;
5518     break;}
5519 case 305:
5520 #line 1632 "parse.y"
5521 {
5522                   if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)
5523                       && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
5524                           != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype)))))
5525                     cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
5526                   yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype);
5527                 ;
5528     break;}
5529 case 306:
5530 #line 1640 "parse.y"
5531 {
5532                   if (yyvsp[-4].ttype != yyvsp[-1].ttype)
5533                     cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
5534                   if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
5535                       != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
5536                     cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
5537                   yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype);
5538                 ;
5539     break;}
5540 case 307:
5541 #line 1649 "parse.y"
5542 {
5543                   yyval.ttype = error_mark_node;
5544                 ;
5545     break;}
5546 case 308:
5547 #line 1694 "parse.y"
5548 { yyval.itype = 0; ;
5549     break;}
5550 case 309:
5551 #line 1696 "parse.y"
5552 { got_scope = NULL_TREE; yyval.itype = 1; ;
5553     break;}
5554 case 310:
5555 #line 1701 "parse.y"
5556 { yyval.itype = 0; ;
5557     break;}
5558 case 311:
5559 #line 1703 "parse.y"
5560 { got_scope = NULL_TREE; yyval.itype = 1; ;
5561     break;}
5562 case 312:
5563 #line 1708 "parse.y"
5564 { yyval.ttype = boolean_true_node; ;
5565     break;}
5566 case 313:
5567 #line 1710 "parse.y"
5568 { yyval.ttype = boolean_false_node; ;
5569     break;}
5570 case 315:
5571 #line 1717 "parse.y"
5572 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5573     break;}
5574 case 316:
5575 #line 1722 "parse.y"
5576 {
5577                   if (! current_function_parms_stored)
5578                     store_parm_decls ();
5579                   setup_vtbl_ptr ();
5580                   /* Always keep the BLOCK node associated with the outermost
5581                      pair of curley braces of a function.  These are needed
5582                      for correct operation of dwarfout.c.  */
5583                   keep_next_level ();
5584                 ;
5585     break;}
5586 case 317:
5587 #line 1735 "parse.y"
5588 { got_object = TREE_TYPE (yyval.ttype); ;
5589     break;}
5590 case 318:
5591 #line 1737 "parse.y"
5592 {
5593                   yyval.ttype = build_x_arrow (yyval.ttype); 
5594                   got_object = TREE_TYPE (yyval.ttype);
5595                 ;
5596     break;}
5597 case 319:
5598 #line 1745 "parse.y"
5599 {
5600                   resume_momentary (yyvsp[-1].itype);
5601                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5602                     note_got_semicolon (yyvsp[-2].ftype.t);
5603                 ;
5604     break;}
5605 case 320:
5606 #line 1751 "parse.y"
5607 {
5608                   resume_momentary (yyvsp[-1].itype);
5609                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5610                 ;
5611     break;}
5612 case 321:
5613 #line 1756 "parse.y"
5614 { resume_momentary (yyvsp[-1].itype); ;
5615     break;}
5616 case 322:
5617 #line 1758 "parse.y"
5618 {
5619                   shadow_tag (yyvsp[-1].ftype.t);
5620                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5621                 ;
5622     break;}
5623 case 323:
5624 #line 1763 "parse.y"
5625 { warning ("empty declaration"); ;
5626     break;}
5627 case 324:
5628 #line 1765 "parse.y"
5629 { pedantic = yyvsp[-1].itype; ;
5630     break;}
5631 case 327:
5632 #line 1779 "parse.y"
5633 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5634                                              NULL_TREE, NULL_TREE); ;
5635     break;}
5636 case 328:
5637 #line 1782 "parse.y"
5638 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5639                                              NULL_TREE); ;
5640     break;}
5641 case 329:
5642 #line 1789 "parse.y"
5643 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5644                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5645     break;}
5646 case 330:
5647 #line 1792 "parse.y"
5648 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5649                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5650     break;}
5651 case 331:
5652 #line 1795 "parse.y"
5653 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
5654                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5655     break;}
5656 case 332:
5657 #line 1798 "parse.y"
5658 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5659                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5660     break;}
5661 case 333:
5662 #line 1801 "parse.y"
5663 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5664                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5665     break;}
5666 case 336:
5667 #line 1817 "parse.y"
5668 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5669                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5670     break;}
5671 case 337:
5672 #line 1820 "parse.y"
5673 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5674                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5675     break;}
5676 case 338:
5677 #line 1823 "parse.y"
5678 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5679                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5680     break;}
5681 case 339:
5682 #line 1826 "parse.y"
5683 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5684                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5685     break;}
5686 case 340:
5687 #line 1829 "parse.y"
5688 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5689                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5690     break;}
5691 case 341:
5692 #line 1832 "parse.y"
5693 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5694                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5695                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5696     break;}
5697 case 342:
5698 #line 1839 "parse.y"
5699 { if (extra_warnings)
5700                     warning ("`%s' is not at beginning of declaration",
5701                              IDENTIFIER_POINTER (yyval.ttype));
5702                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5703     break;}
5704 case 343:
5705 #line 1844 "parse.y"
5706 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5707     break;}
5708 case 344:
5709 #line 1846 "parse.y"
5710 { if (extra_warnings)
5711                     warning ("`%s' is not at beginning of declaration",
5712                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5713                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5714     break;}
5715 case 345:
5716 #line 1851 "parse.y"
5717 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5718     break;}
5719 case 346:
5720 #line 1853 "parse.y"
5721 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5722     break;}
5723 case 347:
5724 #line 1863 "parse.y"
5725 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5726     break;}
5727 case 348:
5728 #line 1865 "parse.y"
5729 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5730     break;}
5731 case 349:
5732 #line 1867 "parse.y"
5733 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5734                   TREE_STATIC (yyval.ttype) = 1; ;
5735     break;}
5736 case 350:
5737 #line 1870 "parse.y"
5738 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5739                     warning ("`%s' is not at beginning of declaration",
5740                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5741                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5742                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5743     break;}
5744 case 351:
5745 #line 1876 "parse.y"
5746 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5747     break;}
5748 case 352:
5749 #line 1878 "parse.y"
5750 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5751     break;}
5752 case 353:
5753 #line 1889 "parse.y"
5754 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
5755                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5756     break;}
5757 case 354:
5758 #line 1892 "parse.y"
5759 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
5760                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5761     break;}
5762 case 355:
5763 #line 1895 "parse.y"
5764 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5765                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5766     break;}
5767 case 356:
5768 #line 1898 "parse.y"
5769 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
5770                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5771     break;}
5772 case 357:
5773 #line 1904 "parse.y"
5774 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5775     break;}
5776 case 358:
5777 #line 1906 "parse.y"
5778 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5779     break;}
5780 case 360:
5781 #line 1916 "parse.y"
5782 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5783     break;}
5784 case 361:
5785 #line 1918 "parse.y"
5786 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5787     break;}
5788 case 362:
5789 #line 1920 "parse.y"
5790 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5791                   yyval.ftype.new_type_flag = 0; ;
5792     break;}
5793 case 363:
5794 #line 1923 "parse.y"
5795 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5796                   yyval.ftype.new_type_flag = 0; ;
5797     break;}
5798 case 364:
5799 #line 1926 "parse.y"
5800 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5801
5802                   yyval.ftype.new_type_flag = 0;
5803                   if (IS_AGGR_TYPE (type))
5804                     {
5805                       sorry ("sigof type specifier");
5806                       yyval.ftype.t = type;
5807                     }
5808                   else
5809                     {
5810                       error ("`sigof' applied to non-aggregate expression");
5811                       yyval.ftype.t = error_mark_node;
5812                     }
5813                 ;
5814     break;}
5815 case 365:
5816 #line 1941 "parse.y"
5817 { tree type = groktypename (yyvsp[-1].ftype.t);
5818
5819                   yyval.ftype.new_type_flag = 0;
5820                   if (IS_AGGR_TYPE (type))
5821                     {
5822                       sorry ("sigof type specifier");
5823                       yyval.ftype.t = type;
5824                     }
5825                   else
5826                     {
5827                       error("`sigof' applied to non-aggregate type");
5828                       yyval.ftype.t = error_mark_node;
5829                     }
5830                 ;
5831     break;}
5832 case 366:
5833 #line 1961 "parse.y"
5834 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5835     break;}
5836 case 367:
5837 #line 1963 "parse.y"
5838 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5839     break;}
5840 case 375:
5841 #line 1984 "parse.y"
5842 { yyval.ttype = NULL_TREE; ;
5843     break;}
5844 case 376:
5845 #line 1986 "parse.y"
5846 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5847     break;}
5848 case 377:
5849 #line 1991 "parse.y"
5850 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5851                                      &prefix_attributes);
5852                   if (current_declspecs
5853                       && TREE_CODE (current_declspecs) != TREE_LIST)
5854                     current_declspecs = get_decl_list (current_declspecs);
5855                   if (have_extern_spec && !used_extern_spec)
5856                     {
5857                       current_declspecs = decl_tree_cons
5858                         (NULL_TREE, get_identifier ("extern"), 
5859                          current_declspecs);
5860                       used_extern_spec = 1;
5861                     }
5862                   yyvsp[0].itype = suspend_momentary ();
5863                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5864                   cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5865     break;}
5866 case 378:
5867 #line 2008 "parse.y"
5868 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5869                   yyval.itype = yyvsp[-2].itype; ;
5870     break;}
5871 case 379:
5872 #line 2011 "parse.y"
5873 { tree d;
5874                   split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5875                                      &prefix_attributes);
5876                   if (current_declspecs
5877                       && TREE_CODE (current_declspecs) != TREE_LIST)
5878                     current_declspecs = get_decl_list (current_declspecs);
5879                   if (have_extern_spec && !used_extern_spec)
5880                     {
5881                       current_declspecs = decl_tree_cons
5882                         (NULL_TREE, get_identifier ("extern"), 
5883                          current_declspecs);
5884                       used_extern_spec = 1;
5885                     }
5886                   yyval.itype = suspend_momentary ();
5887                   d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5888                   cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5889                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5890     break;}
5891 case 380:
5892 #line 2032 "parse.y"
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 381:
5897 #line 2036 "parse.y"
5898 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5899     break;}
5900 case 382:
5901 #line 2038 "parse.y"
5902 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5903                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes);
5904                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5905     break;}
5906 case 383:
5907 #line 2045 "parse.y"
5908 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
5909                                      &prefix_attributes);
5910                   yyvsp[0].itype = suspend_momentary ();
5911                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5912                   cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5913     break;}
5914 case 384:
5915 #line 2052 "parse.y"
5916 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5917                   yyval.itype = yyvsp[-2].itype; ;
5918     break;}
5919 case 385:
5920 #line 2055 "parse.y"
5921 { tree d;
5922                   split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
5923                                      &prefix_attributes);
5924                   yyval.itype = suspend_momentary ();
5925                   d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5926                   cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5927                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5928     break;}
5929 case 386:
5930 #line 2066 "parse.y"
5931 { current_declspecs = NULL_TREE;
5932                   prefix_attributes = NULL_TREE;
5933                   yyvsp[0].itype = suspend_momentary ();
5934                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1);
5935                   cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ;
5936     break;}
5937 case 387:
5938 #line 2073 "parse.y"
5939 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING);
5940                   yyval.itype = yyvsp[-2].itype; ;
5941     break;}
5942 case 388:
5943 #line 2076 "parse.y"
5944 { tree d;
5945                   current_declspecs = NULL_TREE;
5946                   prefix_attributes = NULL_TREE;
5947                   yyval.itype = suspend_momentary ();
5948                   d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
5949                   cplus_decl_attributes (d, yyvsp[0].ttype, prefix_attributes);
5950                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5951     break;}
5952 case 389:
5953 #line 2089 "parse.y"
5954 { yyval.ttype = NULL_TREE; ;
5955     break;}
5956 case 390:
5957 #line 2091 "parse.y"
5958 { yyval.ttype = yyvsp[0].ttype; ;
5959     break;}
5960 case 391:
5961 #line 2096 "parse.y"
5962 { yyval.ttype = yyvsp[0].ttype; ;
5963     break;}
5964 case 392:
5965 #line 2098 "parse.y"
5966 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5967     break;}
5968 case 393:
5969 #line 2103 "parse.y"
5970 { yyval.ttype = yyvsp[-2].ttype; ;
5971     break;}
5972 case 394:
5973 #line 2108 "parse.y"
5974 { yyval.ttype = yyvsp[0].ttype; ;
5975     break;}
5976 case 395:
5977 #line 2110 "parse.y"
5978 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5979     break;}
5980 case 396:
5981 #line 2115 "parse.y"
5982 { yyval.ttype = NULL_TREE; ;
5983     break;}
5984 case 397:
5985 #line 2117 "parse.y"
5986 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5987     break;}
5988 case 398:
5989 #line 2119 "parse.y"
5990 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5991     break;}
5992 case 399:
5993 #line 2121 "parse.y"
5994 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5995     break;}
5996 case 400:
5997 #line 2123 "parse.y"
5998 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5999     break;}
6000 case 405:
6001 #line 2139 "parse.y"
6002 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6003     break;}
6004 case 406:
6005 #line 2141 "parse.y"
6006 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6007     break;}
6008 case 407:
6009 #line 2146 "parse.y"
6010 { yyval.ttype = NULL_TREE; ;
6011     break;}
6012 case 408:
6013 #line 2148 "parse.y"
6014 { yyval.ttype = yyvsp[0].ttype; ;
6015     break;}
6016 case 410:
6017 #line 2156 "parse.y"
6018 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6019                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6020     break;}
6021 case 411:
6022 #line 2159 "parse.y"
6023 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6024                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6025     break;}
6026 case 412:
6027 #line 2162 "parse.y"
6028 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6029                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6030     break;}
6031 case 413:
6032 #line 2165 "parse.y"
6033 { yyval.ttype = NULL_TREE; ;
6034     break;}
6035 case 414:
6036 #line 2172 "parse.y"
6037 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6038     break;}
6039 case 415:
6040 #line 2174 "parse.y"
6041 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6042     break;}
6043 case 416:
6044 #line 2177 "parse.y"
6045 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6046     break;}
6047 case 417:
6048 #line 2179 "parse.y"
6049 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6050     break;}
6051 case 418:
6052 #line 2181 "parse.y"
6053 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6054     break;}
6055 case 419:
6056 #line 2183 "parse.y"
6057 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6058     break;}
6059 case 420:
6060 #line 2188 "parse.y"
6061 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
6062                                   NULL_TREE, 1);
6063                   reinit_parse_for_function (); ;
6064     break;}
6065 case 421:
6066 #line 2194 "parse.y"
6067 {
6068                   int nested = (hack_decl_function_context
6069                                 (current_function_decl) != NULL_TREE);
6070                   finish_function (lineno, (int)yyvsp[-1].itype, nested);
6071                   process_next_inline (yyvsp[-3].ttype);
6072                 ;
6073     break;}
6074 case 422:
6075 #line 2201 "parse.y"
6076 { process_next_inline (yyvsp[-2].ttype); ;
6077     break;}
6078 case 423:
6079 #line 2203 "parse.y"
6080 { process_next_inline (yyvsp[-2].ttype); ;
6081     break;}
6082 case 426:
6083 #line 2215 "parse.y"
6084 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6085     break;}
6086 case 427:
6087 #line 2217 "parse.y"
6088 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6089     break;}
6090 case 429:
6091 #line 2222 "parse.y"
6092 { do_pending_defargs (); ;
6093     break;}
6094 case 430:
6095 #line 2224 "parse.y"
6096 { do_pending_defargs (); ;
6097     break;}
6098 case 431:
6099 #line 2229 "parse.y"
6100 { yyvsp[0].itype = suspend_momentary ();
6101                   yyval.ttype = start_enum (yyvsp[-1].ttype); ;
6102     break;}
6103 case 432:
6104 #line 2232 "parse.y"
6105 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6106                   yyval.ftype.new_type_flag = 1;
6107                   resume_momentary ((int) yyvsp[-4].itype);
6108                   check_for_missing_semicolon (yyvsp[-3].ttype); ;
6109     break;}
6110 case 433:
6111 #line 2237 "parse.y"
6112 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
6113                   yyval.ftype.new_type_flag = 1;
6114                   check_for_missing_semicolon (yyval.ftype.t); ;
6115     break;}
6116 case 434:
6117 #line 2241 "parse.y"
6118 { yyvsp[0].itype = suspend_momentary ();
6119                   yyval.ttype = start_enum (make_anon_name ()); ;
6120     break;}
6121 case 435:
6122 #line 2244 "parse.y"
6123 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
6124                   resume_momentary ((int) yyvsp[-5].itype);
6125                   check_for_missing_semicolon (yyvsp[-3].ttype);
6126                   yyval.ftype.new_type_flag = 1; ;
6127     break;}
6128 case 436:
6129 #line 2249 "parse.y"
6130 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
6131                   yyval.ftype.new_type_flag = 1;
6132                   check_for_missing_semicolon (yyval.ftype.t); ;
6133     break;}
6134 case 437:
6135 #line 2253 "parse.y"
6136 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
6137                   yyval.ftype.new_type_flag = 0; ;
6138     break;}
6139 case 438:
6140 #line 2256 "parse.y"
6141 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
6142                   yyval.ftype.new_type_flag = 0; ;
6143     break;}
6144 case 439:
6145 #line 2259 "parse.y"
6146 { yyval.ftype.t = yyvsp[0].ttype;
6147                   yyval.ftype.new_type_flag = 0; ;
6148     break;}
6149 case 440:
6150 #line 2263 "parse.y"
6151 { reset_specialization(); ;
6152     break;}
6153 case 441:
6154 #line 2265 "parse.y"
6155 {
6156                   int semi;
6157                   tree id;
6158
6159                   yyval.ttype = yyvsp[-5].ttype;
6160 #if 0
6161                   /* Need to rework class nesting in the
6162                      presence of nested classes, etc.  */
6163                   shadow_tag (CLASSTYPE_AS_LIST (yyvsp[-5].ttype)); */
6164 #endif
6165                   if (yychar == YYEMPTY)
6166                     yychar = YYLEX;
6167                   semi = yychar == ';';
6168                   /* finish_struct nukes this anyway; if
6169                      finish_exception does too, then it can go.  */
6170                   if (semi)
6171                     note_got_semicolon (yyvsp[-5].ttype);
6172
6173                   if (TREE_CODE (yyvsp[-5].ttype) == ENUMERAL_TYPE)
6174                     ;
6175                   else
6176                     {
6177                       yyval.ttype = finish_struct (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi);
6178                       if (semi) note_got_semicolon (yyval.ttype);
6179                     }
6180
6181                   pop_obstacks ();
6182
6183                   if (! semi)
6184                     check_for_missing_semicolon (yyvsp[-5].ttype); 
6185                   if (current_scope () == current_function_decl)
6186                     do_pending_defargs ();
6187                 ;
6188     break;}
6189 case 442:
6190 #line 2299 "parse.y"
6191 {
6192                   if (pending_inlines 
6193                       && current_scope () == current_function_decl)
6194                     do_pending_inlines ();
6195                 ;
6196     break;}
6197 case 443:
6198 #line 2305 "parse.y"
6199
6200                   yyval.ftype.t = yyvsp[-3].ttype;
6201                   yyval.ftype.new_type_flag = 1; 
6202                   if (current_class_type == NULL_TREE)
6203                     clear_inline_text_obstack (); 
6204                 ;
6205     break;}
6206 case 444:
6207 #line 2312 "parse.y"
6208 {
6209                   yyval.ftype.t = yyvsp[0].ttype;
6210                   yyval.ftype.new_type_flag = 0;
6211                   /* struct B: public A; is not accepted by the WP grammar.  */
6212                   if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6213                       && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6214                     cp_error ("base clause without member specification for `%#T'",
6215                               yyval.ftype.t);
6216                 ;
6217     break;}
6218 case 448:
6219 #line 2331 "parse.y"
6220 { if (pedantic && !in_system_header)
6221                     pedwarn ("comma at end of enumerator list"); ;
6222     break;}
6223 case 450:
6224 #line 2338 "parse.y"
6225 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6226     break;}
6227 case 451:
6228 #line 2340 "parse.y"
6229 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6230     break;}
6231 case 452:
6232 #line 2342 "parse.y"
6233 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6234     break;}
6235 case 453:
6236 #line 2344 "parse.y"
6237 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6238     break;}
6239 case 454:
6240 #line 2349 "parse.y"
6241 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6242     break;}
6243 case 455:
6244 #line 2354 "parse.y"
6245 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6246     break;}
6247 case 456:
6248 #line 2359 "parse.y"
6249 {
6250                   current_aggr = yyvsp[-2].ttype;
6251                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6252                 ;
6253     break;}
6254 case 457:
6255 #line 2364 "parse.y"
6256 {
6257                   current_aggr = yyvsp[-3].ttype;
6258                   yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6259                 ;
6260     break;}
6261 case 458:
6262 #line 2369 "parse.y"
6263 {
6264                   current_aggr = yyvsp[-2].ttype;
6265                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6266                 ;
6267     break;}
6268 case 459:
6269 #line 2374 "parse.y"
6270 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6271     break;}
6272 case 460:
6273 #line 2376 "parse.y"
6274 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6275     break;}
6276 case 461:
6277 #line 2381 "parse.y"
6278 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
6279     break;}
6280 case 462:
6281 #line 2386 "parse.y"
6282 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
6283     break;}
6284 case 463:
6285 #line 2389 "parse.y"
6286
6287                   yyval.ttype = yyvsp[-1].ttype;
6288                   if (yyvsp[0].ttype)
6289                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
6290                 ;
6291     break;}
6292 case 464:
6293 #line 2395 "parse.y"
6294
6295                   yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6296                   if (TREE_INT_CST_LOW (current_aggr) == union_type 
6297                       && TREE_CODE (yyval.ttype) != UNION_TYPE)
6298                     cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
6299                   else if (TREE_CODE (yyval.ttype) == UNION_TYPE
6300                            && TREE_INT_CST_LOW (current_aggr) != union_type)
6301                     cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
6302                   if (yyvsp[0].ttype)
6303                     {
6304                       if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
6305                         {
6306                           if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
6307                               && TYPE_SIZE (yyval.ttype) == NULL_TREE)
6308                             {
6309                               SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
6310                               if (processing_template_decl)
6311                                 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
6312                             }
6313                           else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
6314                             cp_error ("specialization after instantiation of `%T'", yyval.ttype);
6315                         }
6316                       xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
6317                     }
6318                 ;
6319     break;}
6320 case 465:
6321 #line 2424 "parse.y"
6322 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
6323                   yyungetc ('{', 1); ;
6324     break;}
6325 case 468:
6326 #line 2435 "parse.y"
6327 { yyval.ttype = NULL_TREE; ;
6328     break;}
6329 case 469:
6330 #line 2437 "parse.y"
6331 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6332     break;}
6333 case 470:
6334 #line 2439 "parse.y"
6335 { yyval.ttype = yyvsp[0].ttype; ;
6336     break;}
6337 case 472:
6338 #line 2445 "parse.y"
6339 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6340     break;}
6341 case 473:
6342 #line 2450 "parse.y"
6343 {
6344                   tree type = TREE_TYPE (yyvsp[0].ttype);
6345                   if (! is_aggr_type (type, 1))
6346                     yyval.ttype = NULL_TREE;
6347                   else if (current_aggr == signature_type_node
6348                            && (! type) && (! IS_SIGNATURE (type)))
6349                     {
6350                       error ("class name not allowed as base signature");
6351                       yyval.ttype = NULL_TREE;
6352                     }
6353                   else if (current_aggr == signature_type_node)
6354                     {
6355                       sorry ("signature inheritance, base type `%s' ignored",
6356                              IDENTIFIER_POINTER (yyval.ttype));
6357                       yyval.ttype = build_tree_list (access_public_node, type);
6358                     }
6359                   else if (type && IS_SIGNATURE (type))
6360                     {
6361                       error ("signature name not allowed as base class");
6362                       yyval.ttype = NULL_TREE;
6363                     }
6364                   else
6365                     yyval.ttype = build_tree_list (access_default_node, type);
6366                 ;
6367     break;}
6368 case 474:
6369 #line 2475 "parse.y"
6370 {
6371                   tree type = TREE_TYPE (yyvsp[0].ttype);
6372                   if (current_aggr == signature_type_node)
6373                     error ("access and source specifiers not allowed in signature");
6374                   if (! IS_AGGR_TYPE (type))
6375                     yyval.ttype = NULL_TREE;
6376                   else if (current_aggr == signature_type_node
6377                            && (! type) && (! IS_SIGNATURE (type)))
6378                     {
6379                       error ("class name not allowed as base signature");
6380                       yyval.ttype = NULL_TREE;
6381                     }
6382                   else if (current_aggr == signature_type_node)
6383                     {
6384                       sorry ("signature inheritance, base type `%s' ignored",
6385                              IDENTIFIER_POINTER (yyval.ttype));
6386                       yyval.ttype = build_tree_list (access_public_node, type);
6387                     }
6388                   else if (type && IS_SIGNATURE (type))
6389                     {
6390                       error ("signature name not allowed as base class");
6391                       yyval.ttype = NULL_TREE;
6392                     }
6393                   else
6394                     yyval.ttype = build_tree_list (yyval.ttype, type);
6395                 ;
6396     break;}
6397 case 475:
6398 #line 2505 "parse.y"
6399 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6400     break;}
6401 case 477:
6402 #line 2508 "parse.y"
6403 {
6404                   if (current_aggr == signature_type_node)
6405                     {
6406                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6407                         {
6408                           sorry ("`sigof' as base signature specifier");
6409                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6410                         }
6411                       else
6412                         {
6413                           error ("`sigof' applied to non-aggregate expression");
6414                           yyval.ttype = error_mark_node;
6415                         }
6416                     }
6417                   else
6418                     {
6419                       error ("`sigof' in struct or class declaration");
6420                       yyval.ttype = error_mark_node;
6421                     }
6422                 ;
6423     break;}
6424 case 478:
6425 #line 2529 "parse.y"
6426 {
6427                   if (current_aggr == signature_type_node)
6428                     {
6429                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6430                         {
6431                           sorry ("`sigof' as base signature specifier");
6432                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6433                         }
6434                       else
6435                         {
6436                           error ("`sigof' applied to non-aggregate expression");
6437                           yyval.ttype = error_mark_node;
6438                         }
6439                     }
6440                   else
6441                     {
6442                       error ("`sigof' in struct or class declaration");
6443                       yyval.ttype = error_mark_node;
6444                     }
6445                 ;
6446     break;}
6447 case 480:
6448 #line 2554 "parse.y"
6449 { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
6450                     sorry ("non-virtual access");
6451                   yyval.ttype = access_default_virtual_node; ;
6452     break;}
6453 case 481:
6454 #line 2558 "parse.y"
6455 { int err = 0;
6456                   if (yyvsp[-1].ttype == access_protected_node)
6457                     {
6458                       warning ("`protected' access not implemented");
6459                       yyvsp[-1].ttype = access_public_node;
6460                       err++;
6461                     }
6462                   else if (yyvsp[-1].ttype == access_public_node)
6463                     {
6464                       if (yyvsp[-2].ttype == access_private_node)
6465                         {
6466                         mixed:
6467                           error ("base class cannot be public and private");
6468                         }
6469                       else if (yyvsp[-2].ttype == access_default_virtual_node)
6470                         yyval.ttype = access_public_virtual_node;
6471                     }
6472                   else /* $2 == access_private_node */
6473                     {
6474                       if (yyvsp[-2].ttype == access_public_node)
6475                         goto mixed;
6476                       else if (yyvsp[-2].ttype == access_default_virtual_node)
6477                         yyval.ttype = access_private_virtual_node;
6478                     }
6479                 ;
6480     break;}
6481 case 482:
6482 #line 2584 "parse.y"
6483 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6484                     sorry ("non-virtual access");
6485                   if (yyval.ttype == access_public_node)
6486                     yyval.ttype = access_public_virtual_node;
6487                   else if (yyval.ttype == access_private_node)
6488                     yyval.ttype = access_private_virtual_node; ;
6489     break;}
6490 case 483:
6491 #line 2594 "parse.y"
6492 { tree t = yyvsp[-1].ttype;
6493                   push_obstacks_nochange ();
6494                   end_temporary_allocation ();
6495
6496                   if (t == error_mark_node
6497                       || ! IS_AGGR_TYPE (t))
6498                     {
6499                       t = yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
6500                       pushtag (make_anon_name (), t, 0);
6501                     }
6502                   if (TYPE_SIZE (t))
6503                     duplicate_tag_error (t);
6504                   if (TYPE_SIZE (t) || TYPE_BEING_DEFINED (t))
6505                     {
6506                       t = make_lang_type (TREE_CODE (t));
6507                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t, 0);
6508                       yyvsp[-1].ttype = t;
6509                     }
6510                   if (processing_template_decl && TYPE_CONTEXT (t)
6511                       && ! current_class_type)
6512                     push_template_decl (TYPE_STUB_DECL (t));
6513                   pushclass (t, 0);
6514                   TYPE_BEING_DEFINED (t) = 1;
6515                   if (IS_AGGR_TYPE (t) && CLASSTYPE_USE_TEMPLATE (t))
6516                     {
6517                       if (CLASSTYPE_IMPLICIT_INSTANTIATION (t)
6518                           && TYPE_SIZE (t) == NULL_TREE)
6519                         {
6520                           SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (t);
6521                           if (processing_template_decl)
6522                             push_template_decl (TYPE_MAIN_DECL (t));
6523                         }
6524                       else if (CLASSTYPE_TEMPLATE_INSTANTIATION (t))
6525                         cp_error ("specialization after instantiation of `%T'", t);
6526                     }
6527                   /* Reset the interface data, at the earliest possible
6528                      moment, as it might have been set via a class foo;
6529                      before.  */
6530                   /* Don't change signatures.  */
6531                   if (! IS_SIGNATURE (t))
6532                     {
6533                       extern tree pending_vtables;
6534                       int needs_writing;
6535                       tree name = TYPE_IDENTIFIER (t);
6536
6537                       if (! ANON_AGGRNAME_P (name))
6538                         {
6539                           CLASSTYPE_INTERFACE_ONLY (t) = interface_only;
6540                           SET_CLASSTYPE_INTERFACE_UNKNOWN_X
6541                             (t, interface_unknown);
6542                         }
6543
6544                       /* Record how to set the access of this class's
6545                          virtual functions.  If write_virtuals == 2 or 3, then
6546                          inline virtuals are ``extern inline''.  */
6547                       switch (write_virtuals)
6548                         {
6549                         case 0:
6550                         case 1:
6551                           needs_writing = 1;
6552                           break;
6553                         case 2:
6554                           needs_writing = !! value_member (name, pending_vtables);
6555                           break;
6556                         case 3:
6557                           needs_writing = ! CLASSTYPE_INTERFACE_ONLY (t)
6558                             && CLASSTYPE_INTERFACE_KNOWN (t);
6559                           break;
6560                         default:
6561                           needs_writing = 0;
6562                         }
6563                       CLASSTYPE_VTABLE_NEEDS_WRITING (t) = needs_writing;
6564                     }
6565 #if 0
6566                   t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
6567                   if (t && IDENTIFIER_TEMPLATE (t))
6568                     overload_template_name (t, 1);
6569 #endif
6570                 ;
6571     break;}
6572 case 484:
6573 #line 2677 "parse.y"
6574 {
6575                     yyval.ttype = build_self_reference ();
6576                 ;
6577     break;}
6578 case 485:
6579 #line 2684 "parse.y"
6580 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6581     break;}
6582 case 486:
6583 #line 2686 "parse.y"
6584 {
6585                   if (current_aggr == signature_type_node)
6586                     yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6587                   else
6588                     yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6589                   if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6590                 ;
6591     break;}
6592 case 487:
6593 #line 2694 "parse.y"
6594 {
6595                   tree visspec = yyvsp[-2].ttype;
6596
6597                   if (current_aggr == signature_type_node)
6598                     {
6599                       error ("access specifier not allowed in signature");
6600                       visspec = access_public_node;
6601                     }
6602                   yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6603                 ;
6604     break;}
6605 case 488:
6606 #line 2705 "parse.y"
6607 {
6608                   if (current_aggr == signature_type_node)
6609                     error ("access specifier not allowed in signature");
6610                 ;
6611     break;}
6612 case 489:
6613 #line 2715 "parse.y"
6614 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
6615                 ;
6616     break;}
6617 case 490:
6618 #line 2718 "parse.y"
6619 { /* In pushdecl, we created a reverse list of names
6620                      in this binding level.  Make sure that the chain
6621                      of what we're trying to add isn't the item itself
6622                      (which can happen with what pushdecl's doing).  */
6623                   if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6624                     {
6625                       if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6626                         yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6627                       else
6628                         yyval.ttype = yyvsp[0].ttype;
6629                     }
6630                 ;
6631     break;}
6632 case 491:
6633 #line 2734 "parse.y"
6634 { ;
6635     break;}
6636 case 492:
6637 #line 2736 "parse.y"
6638 { error ("missing ';' before right brace");
6639                   yyungetc ('}', 0); ;
6640     break;}
6641 case 493:
6642 #line 2741 "parse.y"
6643 { yyval.ttype = finish_method (yyval.ttype); ;
6644     break;}
6645 case 494:
6646 #line 2743 "parse.y"
6647 { yyval.ttype = finish_method (yyval.ttype); ;
6648     break;}
6649 case 495:
6650 #line 2745 "parse.y"
6651 { yyval.ttype = finish_method (yyval.ttype); ;
6652     break;}
6653 case 496:
6654 #line 2747 "parse.y"
6655 { yyval.ttype = finish_method (yyval.ttype); ;
6656     break;}
6657 case 497:
6658 #line 2749 "parse.y"
6659 { yyval.ttype = NULL_TREE; ;
6660     break;}
6661 case 498:
6662 #line 2751 "parse.y"
6663 { yyval.ttype = yyvsp[0].ttype;
6664                   pedantic = yyvsp[-1].itype; ;
6665     break;}
6666 case 499:
6667 #line 2760 "parse.y"
6668 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6669     break;}
6670 case 500:
6671 #line 2762 "parse.y"
6672 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6673     break;}
6674 case 501:
6675 #line 2764 "parse.y"
6676 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6677                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6678     break;}
6679 case 502:
6680 #line 2767 "parse.y"
6681 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6682                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6683     break;}
6684 case 503:
6685 #line 2770 "parse.y"
6686 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6687     break;}
6688 case 504:
6689 #line 2772 "parse.y"
6690 { yyval.ttype = NULL_TREE; ;
6691     break;}
6692 case 505:
6693 #line 2783 "parse.y"
6694 { tree specs, attrs;
6695                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6696                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6697                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6698     break;}
6699 case 506:
6700 #line 2788 "parse.y"
6701 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6702                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6703     break;}
6704 case 507:
6705 #line 2791 "parse.y"
6706 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6707     break;}
6708 case 508:
6709 #line 2793 "parse.y"
6710
6711                   if (yyvsp[-1].ttype)
6712                     end_template_decl (); 
6713                   else
6714                     end_specialization ();
6715
6716                   if (yyvsp[0].ttype && DECL_TEMPLATE_INFO (yyvsp[0].ttype)
6717                       && !DECL_TEMPLATE_SPECIALIZATION (yyvsp[0].ttype))
6718                     {
6719                       yyval.ttype = DECL_TI_TEMPLATE (yyvsp[0].ttype); 
6720                       check_member_template (yyval.ttype);
6721                     }
6722                   else if (yyvsp[0].ttype)
6723                     yyval.ttype = yyvsp[0].ttype;
6724                   else
6725                     {
6726                       cp_error("invalid member template declaration");
6727                       yyval.ttype = NULL_TREE;
6728                     }
6729                 ;
6730     break;}
6731 case 509:
6732 #line 2818 "parse.y"
6733 { yyval.ttype = NULL_TREE; ;
6734     break;}
6735 case 511:
6736 #line 2821 "parse.y"
6737 {
6738                   /* In this context, void_type_node encodes
6739                      friends.  They have been recorded elsewhere.  */
6740                   if (yyval.ttype == void_type_node)
6741                     yyval.ttype = yyvsp[0].ttype;
6742                   else
6743                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6744                 ;
6745     break;}
6746 case 512:
6747 #line 2833 "parse.y"
6748 { yyval.ttype = NULL_TREE; ;
6749     break;}
6750 case 514:
6751 #line 2836 "parse.y"
6752 {
6753                   /* In this context, void_type_node encodes
6754                      friends.  They have been recorded elsewhere.  */
6755                   if (yyval.ttype == void_type_node)
6756                     yyval.ttype = yyvsp[0].ttype;
6757                   else
6758                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6759                 ;
6760     break;}
6761 case 519:
6762 #line 2858 "parse.y"
6763 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6764                                      &prefix_attributes);
6765                   yyvsp[-4].ttype = current_declspecs;
6766                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6767                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6768     break;}
6769 case 520:
6770 #line 2864 "parse.y"
6771 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6772                                      &prefix_attributes);
6773                   yyvsp[-4].ttype = current_declspecs;
6774                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6775                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6776     break;}
6777 case 521:
6778 #line 2873 "parse.y"
6779 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6780                                      &prefix_attributes);
6781                   yyvsp[-4].ttype = current_declspecs;
6782                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6783                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6784     break;}
6785 case 522:
6786 #line 2879 "parse.y"
6787 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6788                                      &prefix_attributes);
6789                   yyvsp[-4].ttype = current_declspecs;
6790                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6791                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6792     break;}
6793 case 523:
6794 #line 2885 "parse.y"
6795 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6796                                      &prefix_attributes);
6797                   yyvsp[-4].ttype = current_declspecs;
6798                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6799                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6800     break;}
6801 case 524:
6802 #line 2891 "parse.y"
6803 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6804                                      &prefix_attributes);
6805                   yyvsp[-3].ttype = current_declspecs;
6806                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6807                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6808     break;}
6809 case 525:
6810 #line 2900 "parse.y"
6811 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6812                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6813     break;}
6814 case 526:
6815 #line 2903 "parse.y"
6816 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6817                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6818     break;}
6819 case 527:
6820 #line 2909 "parse.y"
6821 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6822                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6823     break;}
6824 case 528:
6825 #line 2912 "parse.y"
6826 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6827                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6828     break;}
6829 case 529:
6830 #line 2915 "parse.y"
6831 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6832                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6833     break;}
6834 case 531:
6835 #line 2926 "parse.y"
6836 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6837     break;}
6838 case 532:
6839 #line 2931 "parse.y"
6840 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6841     break;}
6842 case 533:
6843 #line 2933 "parse.y"
6844 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6845     break;}
6846 case 534:
6847 #line 2939 "parse.y"
6848 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6849                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6850     break;}
6851 case 535:
6852 #line 2942 "parse.y"
6853 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6854                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6855     break;}
6856 case 536:
6857 #line 2947 "parse.y"
6858 {
6859                   if (pedantic)
6860                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6861                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6862                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6863                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6864                 ;
6865     break;}
6866 case 537:
6867 #line 2958 "parse.y"
6868 { yyval.ttype = NULL_TREE; ;
6869     break;}
6870 case 538:
6871 #line 2960 "parse.y"
6872 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6873     break;}
6874 case 539:
6875 #line 2965 "parse.y"
6876 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
6877                   yyval.ftype.new_type_flag = 0; ;
6878     break;}
6879 case 540:
6880 #line 2968 "parse.y"
6881 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6882                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6883     break;}
6884 case 541:
6885 #line 2977 "parse.y"
6886 { yyval.itype = suspend_momentary (); ;
6887     break;}
6888 case 542:
6889 #line 2982 "parse.y"
6890 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6891     break;}
6892 case 543:
6893 #line 2988 "parse.y"
6894 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6895     break;}
6896 case 544:
6897 #line 2990 "parse.y"
6898 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6899     break;}
6900 case 545:
6901 #line 2992 "parse.y"
6902 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6903     break;}
6904 case 546:
6905 #line 2994 "parse.y"
6906 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6907     break;}
6908 case 547:
6909 #line 3001 "parse.y"
6910 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6911     break;}
6912 case 548:
6913 #line 3003 "parse.y"
6914 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6915     break;}
6916 case 549:
6917 #line 3005 "parse.y"
6918 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6919     break;}
6920 case 550:
6921 #line 3007 "parse.y"
6922 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6923     break;}
6924 case 551:
6925 #line 3009 "parse.y"
6926 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6927                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6928                 ;
6929     break;}
6930 case 553:
6931 #line 3017 "parse.y"
6932 {
6933                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6934                     {
6935                       if (current_class_type
6936                           && TYPE_BEING_DEFINED (current_class_type)
6937                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6938                         {
6939                           /* Be sure to get an inherited typedef.  */
6940                           yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6941                           /* Remember that this name has been used in the class
6942                              definition, as per [class.scope0] */
6943                           pushdecl_class_level (yyval.ttype);
6944                         }
6945                       else
6946                         yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
6947                     }
6948                   else
6949                     yyval.ttype = yyvsp[0].ttype;
6950                 ;
6951     break;}
6952 case 554:
6953 #line 3037 "parse.y"
6954 {
6955                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6956                     yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
6957                   else
6958                     yyval.ttype = yyvsp[0].ttype;
6959                   got_scope = NULL_TREE;
6960                 ;
6961     break;}
6962 case 557:
6963 #line 3050 "parse.y"
6964 { yyval.ttype = yyvsp[0].ttype; ;
6965     break;}
6966 case 558:
6967 #line 3055 "parse.y"
6968 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6969     break;}
6970 case 559:
6971 #line 3060 "parse.y"
6972 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6973     break;}
6974 case 560:
6975 #line 3062 "parse.y"
6976 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6977     break;}
6978 case 561:
6979 #line 3064 "parse.y"
6980 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6981     break;}
6982 case 562:
6983 #line 3066 "parse.y"
6984 { yyval.ttype = yyvsp[-1].ttype; ;
6985     break;}
6986 case 563:
6987 #line 3068 "parse.y"
6988 { push_nested_class (yyvsp[-1].ttype, 3);
6989                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6990                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6991     break;}
6992 case 565:
6993 #line 3079 "parse.y"
6994 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6995     break;}
6996 case 566:
6997 #line 3081 "parse.y"
6998 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6999     break;}
7000 case 567:
7001 #line 3083 "parse.y"
7002 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7003     break;}
7004 case 568:
7005 #line 3085 "parse.y"
7006 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7007     break;}
7008 case 569:
7009 #line 3087 "parse.y"
7010 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7011                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7012                 ;
7013     break;}
7014 case 571:
7015 #line 3095 "parse.y"
7016 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7017     break;}
7018 case 572:
7019 #line 3097 "parse.y"
7020 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7021     break;}
7022 case 573:
7023 #line 3099 "parse.y"
7024 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7025     break;}
7026 case 574:
7027 #line 3101 "parse.y"
7028 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7029     break;}
7030 case 575:
7031 #line 3103 "parse.y"
7032 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7033                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7034                 ;
7035     break;}
7036 case 577:
7037 #line 3111 "parse.y"
7038 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7039     break;}
7040 case 578:
7041 #line 3113 "parse.y"
7042 { yyval.ttype = yyvsp[-1].ttype; ;
7043     break;}
7044 case 579:
7045 #line 3115 "parse.y"
7046 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7047     break;}
7048 case 580:
7049 #line 3117 "parse.y"
7050 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7051     break;}
7052 case 581:
7053 #line 3119 "parse.y"
7054 { if (OP0 (yyval.ttype) != current_class_type)
7055                     {
7056                       push_nested_class (OP0 (yyval.ttype), 3);
7057                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7058                     }
7059                 ;
7060     break;}
7061 case 582:
7062 #line 3126 "parse.y"
7063 { got_scope = NULL_TREE;
7064                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7065                   if (yyvsp[-1].ttype != current_class_type)
7066                     {
7067                       push_nested_class (yyvsp[-1].ttype, 3);
7068                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
7069                     }
7070                 ;
7071     break;}
7072 case 583:
7073 #line 3138 "parse.y"
7074 { got_scope = NULL_TREE;
7075                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7076     break;}
7077 case 584:
7078 #line 3141 "parse.y"
7079 { got_scope = NULL_TREE;
7080                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7081     break;}
7082 case 585:
7083 #line 3147 "parse.y"
7084 { got_scope = NULL_TREE;
7085                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7086     break;}
7087 case 586:
7088 #line 3150 "parse.y"
7089 { got_scope = NULL_TREE;
7090                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7091     break;}
7092 case 588:
7093 #line 3157 "parse.y"
7094 { yyval.ttype = yyvsp[0].ttype; ;
7095     break;}
7096 case 589:
7097 #line 3162 "parse.y"
7098 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7099     break;}
7100 case 590:
7101 #line 3164 "parse.y"
7102 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7103     break;}
7104 case 591:
7105 #line 3166 "parse.y"
7106 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7107     break;}
7108 case 596:
7109 #line 3178 "parse.y"
7110 { yyval.ttype = yyvsp[0].ttype; ;
7111     break;}
7112 case 597:
7113 #line 3185 "parse.y"
7114 {
7115                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7116                     {
7117                       yyval.ttype = lastiddecl;
7118                       /* Remember that this name has been used in the class
7119                          definition, as per [class.scope0] */
7120                       if (current_class_type
7121                           && TYPE_BEING_DEFINED (current_class_type)
7122                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
7123                         pushdecl_class_level (yyval.ttype);
7124                     }
7125                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7126                 ;
7127     break;}
7128 case 598:
7129 #line 3199 "parse.y"
7130 {
7131                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7132                     yyval.ttype = lastiddecl;
7133                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7134                 ;
7135     break;}
7136 case 599:
7137 #line 3205 "parse.y"
7138 {
7139                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7140                     yyval.ttype = lastiddecl;
7141                   got_scope = yyval.ttype;
7142                 ;
7143     break;}
7144 case 600:
7145 #line 3211 "parse.y"
7146 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7147     break;}
7148 case 602:
7149 #line 3227 "parse.y"
7150 { yyval.ttype = yyvsp[0].ttype; ;
7151     break;}
7152 case 603:
7153 #line 3232 "parse.y"
7154 {
7155                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7156                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7157                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7158                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7159                   else
7160                     yyval.ttype = yyvsp[0].ttype;
7161                 ;
7162     break;}
7163 case 604:
7164 #line 3244 "parse.y"
7165 {
7166                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7167                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7168                 ;
7169     break;}
7170 case 605:
7171 #line 3249 "parse.y"
7172 {
7173                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7174                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
7175                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7176                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7177                   else
7178                     yyval.ttype = yyvsp[0].ttype;
7179                 ;
7180     break;}
7181 case 606:
7182 #line 3261 "parse.y"
7183 {
7184                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7185                     yyval.ttype = lastiddecl;
7186                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7187                 ;
7188     break;}
7189 case 607:
7190 #line 3267 "parse.y"
7191 {
7192                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7193                     yyval.ttype = lastiddecl;
7194                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7195                 ;
7196     break;}
7197 case 608:
7198 #line 3273 "parse.y"
7199 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7200     break;}
7201 case 611:
7202 #line 3277 "parse.y"
7203 {
7204                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7205                     yyval.ttype = lastiddecl;
7206                   got_scope = yyval.ttype;
7207                 ;
7208     break;}
7209 case 612:
7210 #line 3286 "parse.y"
7211 {
7212                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7213                     yyval.ttype = identifier_typedecl_value (yyvsp[0].ttype);
7214                   else
7215                     yyval.ttype = yyvsp[0].ttype;
7216                   got_scope = NULL_TREE;
7217                 ;
7218     break;}
7219 case 614:
7220 #line 3295 "parse.y"
7221 { yyval.ttype = yyvsp[0].ttype; ;
7222     break;}
7223 case 615:
7224 #line 3300 "parse.y"
7225 { got_scope = NULL_TREE; ;
7226     break;}
7227 case 616:
7228 #line 3302 "parse.y"
7229 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7230     break;}
7231 case 617:
7232 #line 3309 "parse.y"
7233 { got_scope = void_type_node; ;
7234     break;}
7235 case 618:
7236 #line 3315 "parse.y"
7237 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7238     break;}
7239 case 619:
7240 #line 3317 "parse.y"
7241 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7242     break;}
7243 case 620:
7244 #line 3319 "parse.y"
7245 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7246     break;}
7247 case 621:
7248 #line 3321 "parse.y"
7249 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7250     break;}
7251 case 622:
7252 #line 3323 "parse.y"
7253 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7254                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7255                 ;
7256     break;}
7257 case 623:
7258 #line 3327 "parse.y"
7259 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7260                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7261                 ;
7262     break;}
7263 case 625:
7264 #line 3336 "parse.y"
7265 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7266     break;}
7267 case 626:
7268 #line 3338 "parse.y"
7269 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7270     break;}
7271 case 627:
7272 #line 3344 "parse.y"
7273 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7274     break;}
7275 case 628:
7276 #line 3346 "parse.y"
7277 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7278     break;}
7279 case 629:
7280 #line 3348 "parse.y"
7281 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7282     break;}
7283 case 630:
7284 #line 3350 "parse.y"
7285 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7286     break;}
7287 case 631:
7288 #line 3352 "parse.y"
7289 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7290     break;}
7291 case 632:
7292 #line 3354 "parse.y"
7293 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7294     break;}
7295 case 633:
7296 #line 3356 "parse.y"
7297 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7298     break;}
7299 case 634:
7300 #line 3358 "parse.y"
7301 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7302     break;}
7303 case 635:
7304 #line 3360 "parse.y"
7305 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7306                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7307                 ;
7308     break;}
7309 case 636:
7310 #line 3364 "parse.y"
7311 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7312                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7313                 ;
7314     break;}
7315 case 638:
7316 #line 3373 "parse.y"
7317 { yyval.ttype = yyvsp[-1].ttype; ;
7318     break;}
7319 case 640:
7320 #line 3377 "parse.y"
7321 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7322     break;}
7323 case 641:
7324 #line 3379 "parse.y"
7325 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7326     break;}
7327 case 642:
7328 #line 3381 "parse.y"
7329 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7330     break;}
7331 case 643:
7332 #line 3383 "parse.y"
7333 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7334     break;}
7335 case 644:
7336 #line 3385 "parse.y"
7337 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7338     break;}
7339 case 645:
7340 #line 3387 "parse.y"
7341 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7342     break;}
7343 case 646:
7344 #line 3389 "parse.y"
7345 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7346     break;}
7347 case 647:
7348 #line 3391 "parse.y"
7349 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7350     break;}
7351 case 648:
7352 #line 3393 "parse.y"
7353 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7354     break;}
7355 case 654:
7356 #line 3417 "parse.y"
7357 { do_pushlevel (); ;
7358     break;}
7359 case 655:
7360 #line 3422 "parse.y"
7361 { yyval.ttype = do_poplevel (); ;
7362     break;}
7363 case 657:
7364 #line 3430 "parse.y"
7365 { if (pedantic)
7366                     pedwarn ("ANSI C++ forbids label declarations"); ;
7367     break;}
7368 case 660:
7369 #line 3441 "parse.y"
7370 { tree link;
7371                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
7372                     {
7373                       tree label = shadow_label (TREE_VALUE (link));
7374                       C_DECLARED_LABEL_FLAG (label) = 1;
7375                       declare_nonlocal_label (label);
7376                     }
7377                 ;
7378     break;}
7379 case 661:
7380 #line 3455 "parse.y"
7381 {;
7382     break;}
7383 case 663:
7384 #line 3461 "parse.y"
7385 {
7386                   if (processing_template_decl)
7387                     {
7388                       yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7389                       add_tree (yyval.ttype);
7390                     }
7391                 ;
7392     break;}
7393 case 664:
7394 #line 3469 "parse.y"
7395 {
7396                   if (processing_template_decl)
7397                     {
7398                       TREE_OPERAND (yyvsp[-3].ttype, 0) = TREE_CHAIN (yyvsp[-3].ttype);
7399                       TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7400                       last_tree = yyvsp[-3].ttype;
7401                     }
7402                   yyval.ttype = yyvsp[0].ttype;
7403                 ;
7404     break;}
7405 case 665:
7406 #line 3482 "parse.y"
7407 {
7408                   if (processing_template_decl)
7409                     {
7410                       yyval.ttype = build_min_nt (IF_STMT, NULL_TREE, NULL_TREE,
7411                                                 NULL_TREE);
7412                       add_tree (yyval.ttype);
7413                     }
7414                   cond_stmt_keyword = "if";
7415                 ;
7416     break;}
7417 case 666:
7418 #line 3492 "parse.y"
7419 {
7420                   if (processing_template_decl)
7421                     {
7422                       if (last_tree != yyvsp[-2].ttype)
7423                         {
7424                           TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7425                           TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7426                           last_tree = yyvsp[-2].ttype;
7427                         }
7428                       else
7429                         TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7430                     }
7431                   else
7432                     {
7433                       emit_line_note (input_filename, lineno);
7434                       expand_start_cond (yyvsp[0].ttype, 0);
7435                     }
7436                 ;
7437     break;}
7438 case 667:
7439 #line 3511 "parse.y"
7440 {
7441                   if (processing_template_decl)
7442                     {
7443                       TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7444                       TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7445                       yyval.ttype = last_tree = yyvsp[-4].ttype;
7446                     }
7447                 ;
7448     break;}
7449 case 668:
7450 #line 3523 "parse.y"
7451 { finish_stmt (); ;
7452     break;}
7453 case 669:
7454 #line 3525 "parse.y"
7455 {
7456                   if (processing_template_decl)
7457                     {
7458                       yyval.ttype = build_min_nt (COMPOUND_STMT, NULL_TREE);
7459                       add_tree (yyval.ttype);
7460                     }
7461                 ;
7462     break;}
7463 case 670:
7464 #line 3533 "parse.y"
7465 {
7466                   if (processing_template_decl)
7467                     {
7468                       TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7469                       TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7470                       last_tree = yyvsp[-2].ttype;
7471                     }
7472                   yyval.ttype = yyvsp[0].ttype;
7473                 ;
7474     break;}
7475 case 671:
7476 #line 3546 "parse.y"
7477 { finish_stmt (); ;
7478     break;}
7479 case 673:
7480 #line 3552 "parse.y"
7481 { finish_stmt (); ;
7482     break;}
7483 case 674:
7484 #line 3554 "parse.y"
7485 {
7486                   tree expr = yyvsp[-1].ttype;
7487                   if (! processing_template_decl)
7488                     {
7489                       emit_line_note (input_filename, lineno);
7490                       /* Do default conversion if safe and possibly important,
7491                          in case within ({...}).  */
7492                       if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
7493                            && lvalue_p (expr))
7494                           || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
7495                         expr = default_conversion (expr);
7496                     }
7497                   cplus_expand_expr_stmt (expr);
7498                   clear_momentary ();
7499                   finish_stmt (); ;
7500     break;}
7501 case 675:
7502 #line 3570 "parse.y"
7503 { if (! processing_template_decl) expand_start_else (); ;
7504     break;}
7505 case 676:
7506 #line 3572 "parse.y"
7507 {
7508                   if (processing_template_decl)
7509                     {
7510                       TREE_OPERAND (yyvsp[-3].ttype, 2) = TREE_CHAIN (yyvsp[-3].ttype);
7511                       TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7512                       last_tree = yyvsp[-3].ttype;
7513                     }
7514                   else
7515                     expand_end_cond ();
7516                 ;
7517     break;}
7518 case 677:
7519 #line 3583 "parse.y"
7520 { finish_stmt (); ;
7521     break;}
7522 case 678:
7523 #line 3585 "parse.y"
7524 { if (! processing_template_decl) expand_end_cond ();
7525                   do_poplevel ();
7526                   finish_stmt (); ;
7527     break;}
7528 case 679:
7529 #line 3589 "parse.y"
7530 {
7531                   if (processing_template_decl)
7532                     {
7533                       yyval.ttype = build_min_nt (WHILE_STMT, NULL_TREE, NULL_TREE);
7534                       add_tree (yyval.ttype);
7535                     }
7536                   else
7537                     {
7538                       emit_nop ();
7539                       emit_line_note (input_filename, lineno);
7540                       expand_start_loop (1); 
7541                     }
7542                   cond_stmt_keyword = "while";
7543                 ;
7544     break;}
7545 case 680:
7546 #line 3604 "parse.y"
7547 {
7548                   if (processing_template_decl)
7549                     {
7550                       if (last_tree != yyvsp[-2].ttype)
7551                         {
7552                           TREE_OPERAND (yyvsp[-2].ttype, 0) = last_tree;
7553                           TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7554                           last_tree = yyvsp[-2].ttype;
7555                         }
7556                       else
7557                         TREE_OPERAND (yyvsp[-2].ttype, 0) = yyvsp[0].ttype;
7558                     }
7559                   else
7560                     {
7561                       emit_line_note (input_filename, lineno);
7562                       expand_exit_loop_if_false (0, yyvsp[0].ttype);
7563                     }
7564                 ;
7565     break;}
7566 case 681:
7567 #line 3623 "parse.y"
7568 {
7569                   if (processing_template_decl)
7570                     {
7571                       TREE_OPERAND (yyvsp[-5].ttype, 1) = TREE_CHAIN (yyvsp[-5].ttype);
7572                       TREE_CHAIN (yyvsp[-5].ttype) = NULL_TREE;
7573                       last_tree = yyvsp[-5].ttype;
7574                     }
7575                   else
7576                     expand_end_loop ();
7577                   finish_stmt ();
7578                 ;
7579     break;}
7580 case 682:
7581 #line 3635 "parse.y"
7582 {
7583                   if (processing_template_decl)
7584                     {
7585                       yyval.ttype = build_min_nt (DO_STMT, NULL_TREE, NULL_TREE);
7586                       add_tree (yyval.ttype);
7587                     }
7588                   else
7589                     {
7590                       emit_nop ();
7591                       emit_line_note (input_filename, lineno);
7592                       expand_start_loop_continue_elsewhere (1);
7593                     }
7594                 ;
7595     break;}
7596 case 683:
7597 #line 3649 "parse.y"
7598 {
7599                   if (processing_template_decl)
7600                     {
7601                       TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7602                       TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7603                       last_tree = yyvsp[-2].ttype;
7604                     }
7605                   else
7606                     {
7607                       expand_loop_continue_here ();
7608                       cond_stmt_keyword = "do";
7609                     }
7610                 ;
7611     break;}
7612 case 684:
7613 #line 3663 "parse.y"
7614 {
7615                   if (processing_template_decl)
7616                     TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
7617                   else
7618                     {
7619                       emit_line_note (input_filename, lineno);
7620                       expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7621                       expand_end_loop ();
7622                     }
7623                   clear_momentary ();
7624                   finish_stmt ();
7625                 ;
7626     break;}
7627 case 685:
7628 #line 3676 "parse.y"
7629 { if (processing_template_decl)
7630                     {
7631                       yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, 
7632                                                 NULL_TREE, NULL_TREE);
7633                       add_tree (yyval.ttype);
7634                     }
7635                   else
7636                     emit_line_note (input_filename, lineno);
7637                   if (flag_new_for_scope > 0)
7638                     {
7639                       /* Conditionalize .pushlevel */
7640                       pushlevel (0);
7641                       note_level_for_for ();
7642                       clear_last_expr ();
7643                       push_momentary ();
7644                       expand_start_bindings (0);
7645                     }
7646                 ;
7647     break;}
7648 case 686:
7649 #line 3695 "parse.y"
7650 {
7651                   if (processing_template_decl)
7652                     {
7653                       if (last_tree != yyvsp[-2].ttype)
7654                         {
7655                           TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7656                           TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7657                           last_tree = yyvsp[-2].ttype;
7658                         }
7659                     }
7660                   else
7661                     {
7662                       emit_nop ();
7663                       emit_line_note (input_filename, lineno);
7664                       expand_start_loop_continue_elsewhere (1); 
7665                     }
7666                 ;
7667     break;}
7668 case 687:
7669 #line 3713 "parse.y"
7670 {
7671                   if (processing_template_decl)
7672                     {
7673                       if (last_tree != yyvsp[-6].ttype)
7674                         {
7675                           TREE_OPERAND (yyvsp[-6].ttype, 1) = last_tree;
7676                           TREE_CHAIN (yyvsp[-6].ttype) = NULL_TREE;
7677                           last_tree = yyvsp[-6].ttype;
7678                         }
7679                       else
7680                         TREE_OPERAND (yyvsp[-6].ttype, 1) = yyvsp[-1].ttype;
7681                     }
7682                   else
7683                     {
7684                       emit_line_note (input_filename, lineno);
7685                       if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, yyvsp[-1].ttype);
7686                     }
7687                 ;
7688     break;}
7689 case 688:
7690 #line 3734 "parse.y"
7691 {
7692                   if (processing_template_decl)
7693                     TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
7694                   push_momentary ();
7695                 ;
7696     break;}
7697 case 689:
7698 #line 3740 "parse.y"
7699 {
7700                   if (processing_template_decl)
7701                     {
7702                       TREE_OPERAND (yyvsp[-12].ttype, 3) = TREE_CHAIN (yyvsp[-12].ttype);
7703                       TREE_CHAIN (yyvsp[-12].ttype) = NULL_TREE;
7704                       last_tree = yyvsp[-12].ttype;
7705                     }
7706                   else
7707                     {
7708                       emit_line_note (input_filename, lineno);
7709                       expand_loop_continue_here ();
7710                       if (yyvsp[-4].ttype) cplus_expand_expr_stmt (yyvsp[-4].ttype);
7711                       expand_end_loop ();
7712                     }
7713                   pop_momentary ();
7714                   if (flag_new_for_scope > 0)
7715                     {
7716                       do_poplevel ();
7717                     }
7718                   finish_stmt (); ;
7719     break;}
7720 case 690:
7721 #line 3761 "parse.y"
7722 {
7723                   if (processing_template_decl)
7724                     {
7725                       yyval.ttype = build_min_nt (SWITCH_STMT, yyvsp[-1].ttype, NULL_TREE);
7726                       add_tree (yyval.ttype);
7727                     }
7728                   else
7729                     {
7730                       emit_line_note (input_filename, lineno);
7731                       c_expand_start_case (yyvsp[-1].ttype);
7732                     }
7733                   push_switch ();
7734                   /* Don't let the tree nodes for $4 be discarded by
7735                      clear_momentary during the parsing of the next stmt.  */
7736                   push_momentary ();
7737                 ;
7738     break;}
7739 case 691:
7740 #line 3778 "parse.y"
7741 {
7742                   if (processing_template_decl)
7743                     {
7744                       TREE_OPERAND (yyvsp[-1].ttype, 1) = TREE_CHAIN (yyvsp[-1].ttype);
7745                       TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7746                       last_tree = yyvsp[-1].ttype;
7747                     }
7748                   else
7749                     expand_end_case (yyvsp[-3].ttype);
7750                   pop_momentary ();
7751                   pop_switch (); 
7752                 ;
7753     break;}
7754 case 692:
7755 #line 3791 "parse.y"
7756 { finish_stmt (); ;
7757     break;}
7758 case 693:
7759 #line 3793 "parse.y"
7760 { do_case (yyvsp[-1].ttype, NULL_TREE); ;
7761     break;}
7762 case 695:
7763 #line 3796 "parse.y"
7764 { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7765     break;}
7766 case 697:
7767 #line 3799 "parse.y"
7768 { do_case (NULL_TREE, NULL_TREE); ;
7769     break;}
7770 case 699:
7771 #line 3802 "parse.y"
7772 { emit_line_note (input_filename, lineno);
7773                   if (processing_template_decl)
7774                     add_tree (build_min_nt (BREAK_STMT));
7775                   else if ( ! expand_exit_something ())
7776                     error ("break statement not within loop or switch"); ;
7777     break;}
7778 case 700:
7779 #line 3808 "parse.y"
7780 { emit_line_note (input_filename, lineno);
7781                   if (processing_template_decl)
7782                     add_tree (build_min_nt (CONTINUE_STMT));
7783                   else if (! expand_continue_loop (0))
7784                     error ("continue statement not within a loop"); ;
7785     break;}
7786 case 701:
7787 #line 3814 "parse.y"
7788 { emit_line_note (input_filename, lineno);
7789                   c_expand_return (NULL_TREE); ;
7790     break;}
7791 case 702:
7792 #line 3817 "parse.y"
7793 { emit_line_note (input_filename, lineno);
7794                   c_expand_return (yyvsp[-1].ttype);
7795                   finish_stmt ();
7796                 ;
7797     break;}
7798 case 703:
7799 #line 3822 "parse.y"
7800 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
7801                   emit_line_note (input_filename, lineno);
7802                   expand_asm (yyvsp[-2].ttype);
7803                   finish_stmt ();
7804                 ;
7805     break;}
7806 case 704:
7807 #line 3829 "parse.y"
7808 { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
7809                   emit_line_note (input_filename, lineno);
7810                   c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7811                                          yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
7812                                          input_filename, lineno);
7813                   finish_stmt ();
7814                 ;
7815     break;}
7816 case 705:
7817 #line 3838 "parse.y"
7818 { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
7819                   emit_line_note (input_filename, lineno);
7820                   c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7821                                          yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
7822                                          input_filename, lineno);
7823                   finish_stmt ();
7824                 ;
7825     break;}
7826 case 706:
7827 #line 3848 "parse.y"
7828 { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
7829                   emit_line_note (input_filename, lineno);
7830                   c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
7831                                          yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
7832                                          input_filename, lineno);
7833                   finish_stmt ();
7834                 ;
7835     break;}
7836 case 707:
7837 #line 3856 "parse.y"
7838 {
7839                   if (processing_template_decl)
7840                     add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7841                   else
7842                     { emit_line_note (input_filename, lineno);
7843                       expand_computed_goto (yyvsp[-1].ttype); }
7844                 ;
7845     break;}
7846 case 708:
7847 #line 3864 "parse.y"
7848 {
7849                   if (processing_template_decl)
7850                     add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
7851                   else
7852                     {
7853                       tree decl;
7854                       emit_line_note (input_filename, lineno);
7855                       decl = lookup_label (yyvsp[-1].ttype);
7856                       TREE_USED (decl) = 1;
7857                       expand_goto (decl); 
7858                     }
7859                 ;
7860     break;}
7861 case 709:
7862 #line 3877 "parse.y"
7863 { finish_stmt (); ;
7864     break;}
7865 case 710:
7866 #line 3879 "parse.y"
7867 { error ("label must be followed by statement");
7868                   yyungetc ('}', 0);
7869                   finish_stmt (); ;
7870     break;}
7871 case 711:
7872 #line 3883 "parse.y"
7873 { finish_stmt (); ;
7874     break;}
7875 case 713:
7876 #line 3889 "parse.y"
7877 {
7878                   if (! current_function_parms_stored)
7879                     store_parm_decls ();
7880                   expand_start_early_try_stmts ();
7881                 ;
7882     break;}
7883 case 714:
7884 #line 3895 "parse.y"
7885 { expand_start_all_catch (); ;
7886     break;}
7887 case 715:
7888 #line 3897 "parse.y"
7889 {
7890                   int nested = (hack_decl_function_context
7891                                 (current_function_decl) != NULL_TREE);
7892                   expand_end_all_catch ();
7893                   finish_function (lineno, (int)yyvsp[-3].itype, nested);
7894                 ;
7895     break;}
7896 case 716:
7897 #line 3907 "parse.y"
7898 {
7899                   if (processing_template_decl)
7900                     {
7901                       yyval.ttype = build_min_nt (TRY_BLOCK, NULL_TREE,
7902                                                 NULL_TREE);
7903                       add_tree (yyval.ttype);
7904                     }
7905                   else
7906                     {
7907                       emit_line_note (input_filename, lineno);
7908                       expand_start_try_stmts ();
7909                     }
7910                 ;
7911     break;}
7912 case 717:
7913 #line 3921 "parse.y"
7914 {
7915                   if (processing_template_decl)
7916                     {
7917                       TREE_OPERAND (yyvsp[-1].ttype, 0) = TREE_CHAIN (yyvsp[-1].ttype);
7918                       TREE_CHAIN (yyvsp[-1].ttype) = NULL_TREE;
7919                       last_tree = yyvsp[-1].ttype;
7920                     }
7921                   else
7922                     expand_start_all_catch ();
7923                 ;
7924     break;}
7925 case 718:
7926 #line 3932 "parse.y"
7927 {
7928                   if (processing_template_decl)
7929                     {
7930                       TREE_OPERAND (yyvsp[-3].ttype, 1) = TREE_CHAIN (yyvsp[-3].ttype);
7931                       TREE_CHAIN (yyvsp[-3].ttype) = NULL_TREE;
7932                       last_tree = yyvsp[-3].ttype;
7933                     }
7934                   else
7935                     expand_end_all_catch ();
7936                 ;
7937     break;}
7938 case 721:
7939 #line 3951 "parse.y"
7940 {
7941                   if (processing_template_decl)
7942                     {
7943                       yyval.ttype = build_min_nt (HANDLER, NULL_TREE,
7944                                                 NULL_TREE);
7945                       add_tree (yyval.ttype);
7946                     }
7947                 ;
7948     break;}
7949 case 722:
7950 #line 3960 "parse.y"
7951 {
7952                   if (processing_template_decl)
7953                     {
7954                       TREE_OPERAND (yyvsp[-2].ttype, 0) = TREE_CHAIN (yyvsp[-2].ttype);
7955                       TREE_CHAIN (yyvsp[-2].ttype) = NULL_TREE;
7956                       last_tree = yyvsp[-2].ttype;
7957                     }
7958                 ;
7959     break;}
7960 case 723:
7961 #line 3969 "parse.y"
7962 {
7963                   if (processing_template_decl)
7964                     {
7965                       TREE_OPERAND (yyvsp[-4].ttype, 1) = TREE_CHAIN (yyvsp[-4].ttype);
7966                       TREE_CHAIN (yyvsp[-4].ttype) = NULL_TREE;
7967                       last_tree = yyvsp[-4].ttype;
7968                     }
7969                   else
7970                     expand_end_catch_block ();
7971                 ;
7972     break;}
7973 case 727:
7974 #line 3989 "parse.y"
7975 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7976     break;}
7977 case 728:
7978 #line 4005 "parse.y"
7979 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7980                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7981                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7982     break;}
7983 case 729:
7984 #line 4012 "parse.y"
7985 { tree label;
7986                 do_label:
7987                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7988                   if (label && ! minimal_parse_mode)
7989                     expand_label (label);
7990                 ;
7991     break;}
7992 case 730:
7993 #line 4019 "parse.y"
7994 { goto do_label; ;
7995     break;}
7996 case 731:
7997 #line 4021 "parse.y"
7998 { goto do_label; ;
7999     break;}
8000 case 732:
8001 #line 4023 "parse.y"
8002 { goto do_label; ;
8003     break;}
8004 case 733:
8005 #line 4028 "parse.y"
8006 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
8007     break;}
8008 case 735:
8009 #line 4031 "parse.y"
8010 { if (pedantic)
8011                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
8012                 ;
8013     break;}
8014 case 736:
8015 #line 4040 "parse.y"
8016 { emit_line_note (input_filename, lineno);
8017                   yyval.ttype = NULL_TREE; ;
8018     break;}
8019 case 737:
8020 #line 4043 "parse.y"
8021 { emit_line_note (input_filename, lineno); ;
8022     break;}
8023 case 738:
8024 #line 4048 "parse.y"
8025 { yyval.ttype = NULL_TREE; ;
8026     break;}
8027 case 740:
8028 #line 4051 "parse.y"
8029 { yyval.ttype = NULL_TREE; ;
8030     break;}
8031 case 741:
8032 #line 4058 "parse.y"
8033 { yyval.ttype = NULL_TREE; ;
8034     break;}
8035 case 744:
8036 #line 4065 "parse.y"
8037 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
8038     break;}
8039 case 745:
8040 #line 4070 "parse.y"
8041 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
8042     break;}
8043 case 746:
8044 #line 4075 "parse.y"
8045 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
8046     break;}
8047 case 747:
8048 #line 4077 "parse.y"
8049 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
8050     break;}
8051 case 748:
8052 #line 4088 "parse.y"
8053 {
8054                   yyval.ttype = empty_parms();
8055                 ;
8056     break;}
8057 case 750:
8058 #line 4093 "parse.y"
8059 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
8060                   TREE_PARMLIST (yyval.ttype) = 1; 
8061                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
8062     break;}
8063 case 751:
8064 #line 4102 "parse.y"
8065 {
8066                   yyval.ttype = chainon (yyval.ttype, void_list_node);
8067                   TREE_PARMLIST (yyval.ttype) = 1;
8068                 ;
8069     break;}
8070 case 752:
8071 #line 4107 "parse.y"
8072 {
8073                   TREE_PARMLIST (yyval.ttype) = 1;
8074                 ;
8075     break;}
8076 case 753:
8077 #line 4112 "parse.y"
8078 {
8079                   TREE_PARMLIST (yyval.ttype) = 1;
8080                 ;
8081     break;}
8082 case 754:
8083 #line 4116 "parse.y"
8084 {
8085                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); 
8086                   TREE_PARMLIST (yyval.ttype) = 1;
8087                 ;
8088     break;}
8089 case 755:
8090 #line 4121 "parse.y"
8091 {
8092                   yyval.ttype = NULL_TREE;
8093                 ;
8094     break;}
8095 case 756:
8096 #line 4125 "parse.y"
8097 {
8098                   TREE_PARMLIST (yyval.ttype) = 1;
8099                 ;
8100     break;}
8101 case 757:
8102 #line 4129 "parse.y"
8103 {
8104                   TREE_PARMLIST (yyval.ttype) = 1;
8105                 ;
8106     break;}
8107 case 758:
8108 #line 4133 "parse.y"
8109 {
8110                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
8111                   TREE_PARMLIST (yyval.ttype) = 1;
8112                 ;
8113     break;}
8114 case 759:
8115 #line 4138 "parse.y"
8116 {
8117                   /* This helps us recover from really nasty
8118                      parse errors, for example, a missing right
8119                      parenthesis.  */
8120                   yyerror ("possibly missing ')'");
8121                   yyval.ttype = chainon (yyval.ttype, void_list_node);
8122                   TREE_PARMLIST (yyval.ttype) = 1;
8123                   yyungetc (':', 0);
8124                   yychar = ')';
8125                 ;
8126     break;}
8127 case 760:
8128 #line 4149 "parse.y"
8129 {
8130                   /* This helps us recover from really nasty
8131                      parse errors, for example, a missing right
8132                      parenthesis.  */
8133                   yyerror ("possibly missing ')'");
8134                   yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node);
8135                   TREE_PARMLIST (yyval.ttype) = 1;
8136                   yyungetc (':', 0);
8137                   yychar = ')';
8138                 ;
8139     break;}
8140 case 761:
8141 #line 4164 "parse.y"
8142 { maybe_snarf_defarg (); ;
8143     break;}
8144 case 762:
8145 #line 4166 "parse.y"
8146 { yyval.ttype = yyvsp[0].ttype; ;
8147     break;}
8148 case 765:
8149 #line 4177 "parse.y"
8150 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8151                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
8152     break;}
8153 case 766:
8154 #line 4180 "parse.y"
8155 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8156                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
8157     break;}
8158 case 767:
8159 #line 4183 "parse.y"
8160 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
8161                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
8162     break;}
8163 case 768:
8164 #line 4186 "parse.y"
8165 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
8166     break;}
8167 case 769:
8168 #line 4188 "parse.y"
8169 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
8170     break;}
8171 case 771:
8172 #line 4194 "parse.y"
8173 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
8174                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
8175     break;}
8176 case 772:
8177 #line 4204 "parse.y"
8178 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8179                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
8180                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
8181     break;}
8182 case 773:
8183 #line 4208 "parse.y"
8184 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
8185                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8186     break;}
8187 case 774:
8188 #line 4211 "parse.y"
8189 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
8190                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8191     break;}
8192 case 775:
8193 #line 4214 "parse.y"
8194 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
8195                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
8196                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
8197     break;}
8198 case 776:
8199 #line 4218 "parse.y"
8200 { tree specs = strip_attrs (yyvsp[0].ftype.t);
8201                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
8202                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
8203     break;}
8204 case 777:
8205 #line 4222 "parse.y"
8206 { tree specs = strip_attrs (yyvsp[-1].ttype);
8207                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
8208                   yyval.ftype.new_type_flag = 0; ;
8209     break;}
8210 case 778:
8211 #line 4229 "parse.y"
8212 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
8213                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
8214     break;}
8215 case 779:
8216 #line 4232 "parse.y"
8217 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
8218                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
8219     break;}
8220 case 782:
8221 #line 4243 "parse.y"
8222 { see_typename (); ;
8223     break;}
8224 case 783:
8225 #line 4248 "parse.y"
8226 {
8227                   error ("type specifier omitted for parameter");
8228                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
8229                 ;
8230     break;}
8231 case 784:
8232 #line 4253 "parse.y"
8233 {
8234                   error ("type specifier omitted for parameter");
8235                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
8236                       && TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM)
8237                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
8238                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
8239                 ;
8240     break;}
8241 case 785:
8242 #line 4264 "parse.y"
8243 { yyval.ttype = NULL_TREE; ;
8244     break;}
8245 case 786:
8246 #line 4266 "parse.y"
8247 { yyval.ttype = yyvsp[-1].ttype; ;
8248     break;}
8249 case 787:
8250 #line 4268 "parse.y"
8251 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
8252     break;}
8253 case 788:
8254 #line 4273 "parse.y"
8255 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
8256     break;}
8257 case 790:
8258 #line 4279 "parse.y"
8259 {
8260                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
8261                   yyval.ttype = yyvsp[0].ttype;
8262                 ;
8263     break;}
8264 case 791:
8265 #line 4287 "parse.y"
8266 { yyval.ttype = NULL_TREE; ;
8267     break;}
8268 case 792:
8269 #line 4289 "parse.y"
8270 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8271     break;}
8272 case 793:
8273 #line 4291 "parse.y"
8274 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
8275     break;}
8276 case 794:
8277 #line 4293 "parse.y"
8278 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
8279                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
8280                 ;
8281     break;}
8282 case 795:
8283 #line 4300 "parse.y"
8284 { got_scope = NULL_TREE; ;
8285     break;}
8286 case 796:
8287 #line 4305 "parse.y"
8288 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8289     break;}
8290 case 797:
8291 #line 4307 "parse.y"
8292 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8293     break;}
8294 case 798:
8295 #line 4309 "parse.y"
8296 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8297     break;}
8298 case 799:
8299 #line 4311 "parse.y"
8300 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8301     break;}
8302 case 800:
8303 #line 4313 "parse.y"
8304 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8305     break;}
8306 case 801:
8307 #line 4315 "parse.y"
8308 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8309     break;}
8310 case 802:
8311 #line 4317 "parse.y"
8312 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8313     break;}
8314 case 803:
8315 #line 4319 "parse.y"
8316 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8317     break;}
8318 case 804:
8319 #line 4321 "parse.y"
8320 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8321     break;}
8322 case 805:
8323 #line 4323 "parse.y"
8324 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8325     break;}
8326 case 806:
8327 #line 4325 "parse.y"
8328 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8329     break;}
8330 case 807:
8331 #line 4327 "parse.y"
8332 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8333     break;}
8334 case 808:
8335 #line 4329 "parse.y"
8336 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8337     break;}
8338 case 809:
8339 #line 4331 "parse.y"
8340 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8341     break;}
8342 case 810:
8343 #line 4333 "parse.y"
8344 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8345     break;}
8346 case 811:
8347 #line 4335 "parse.y"
8348 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8349     break;}
8350 case 812:
8351 #line 4337 "parse.y"
8352 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8353     break;}
8354 case 813:
8355 #line 4339 "parse.y"
8356 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8357     break;}
8358 case 814:
8359 #line 4341 "parse.y"
8360 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8361     break;}
8362 case 815:
8363 #line 4343 "parse.y"
8364 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8365     break;}
8366 case 816:
8367 #line 4345 "parse.y"
8368 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8369     break;}
8370 case 817:
8371 #line 4347 "parse.y"
8372 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8373     break;}
8374 case 818:
8375 #line 4349 "parse.y"
8376 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8377     break;}
8378 case 819:
8379 #line 4351 "parse.y"
8380 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8381     break;}
8382 case 820:
8383 #line 4353 "parse.y"
8384 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8385     break;}
8386 case 821:
8387 #line 4355 "parse.y"
8388 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8389     break;}
8390 case 822:
8391 #line 4357 "parse.y"
8392 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8393     break;}
8394 case 823:
8395 #line 4359 "parse.y"
8396 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8397     break;}
8398 case 824:
8399 #line 4361 "parse.y"
8400 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8401     break;}
8402 case 825:
8403 #line 4363 "parse.y"
8404 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8405     break;}
8406 case 826:
8407 #line 4365 "parse.y"
8408 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8409     break;}
8410 case 827:
8411 #line 4367 "parse.y"
8412 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8413     break;}
8414 case 828:
8415 #line 4369 "parse.y"
8416 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8417     break;}
8418 case 829:
8419 #line 4372 "parse.y"
8420 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8421     break;}
8422 case 830:
8423 #line 4374 "parse.y"
8424 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8425     break;}
8426 }
8427    /* the action file gets copied in in place of this dollarsign */
8428 #line 498 "/usr/cygnus/latest-940103/share/bison.simple"
8429 \f
8430   yyvsp -= yylen;
8431   yyssp -= yylen;
8432 #ifdef YYLSP_NEEDED
8433   yylsp -= yylen;
8434 #endif
8435
8436 #if YYDEBUG != 0
8437   if (yydebug)
8438     {
8439       short *ssp1 = yyss - 1;
8440       fprintf (stderr, "state stack now");
8441       while (ssp1 != yyssp)
8442         fprintf (stderr, " %d", *++ssp1);
8443       fprintf (stderr, "\n");
8444     }
8445 #endif
8446
8447   *++yyvsp = yyval;
8448
8449 #ifdef YYLSP_NEEDED
8450   yylsp++;
8451   if (yylen == 0)
8452     {
8453       yylsp->first_line = yylloc.first_line;
8454       yylsp->first_column = yylloc.first_column;
8455       yylsp->last_line = (yylsp-1)->last_line;
8456       yylsp->last_column = (yylsp-1)->last_column;
8457       yylsp->text = 0;
8458     }
8459   else
8460     {
8461       yylsp->last_line = (yylsp+yylen-1)->last_line;
8462       yylsp->last_column = (yylsp+yylen-1)->last_column;
8463     }
8464 #endif
8465
8466   /* Now "shift" the result of the reduction.
8467      Determine what state that goes to,
8468      based on the state we popped back to
8469      and the rule number reduced by.  */
8470
8471   yyn = yyr1[yyn];
8472
8473   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8474   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8475     yystate = yytable[yystate];
8476   else
8477     yystate = yydefgoto[yyn - YYNTBASE];
8478
8479   goto yynewstate;
8480
8481 yyerrlab:   /* here on detecting error */
8482
8483   if (! yyerrstatus)
8484     /* If not already recovering from an error, report this error.  */
8485     {
8486       ++yynerrs;
8487
8488 #ifdef YYERROR_VERBOSE
8489       yyn = yypact[yystate];
8490
8491       if (yyn > YYFLAG && yyn < YYLAST)
8492         {
8493           int size = 0;
8494           char *msg;
8495           int x, count;
8496
8497           count = 0;
8498           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
8499           for (x = (yyn < 0 ? -yyn : 0);
8500                x < (sizeof(yytname) / sizeof(char *)); x++)
8501             if (yycheck[x + yyn] == x)
8502               size += strlen(yytname[x]) + 15, count++;
8503           msg = (char *) malloc(size + 15);
8504           if (msg != 0)
8505             {
8506               strcpy(msg, "parse error");
8507
8508               if (count < 5)
8509                 {
8510                   count = 0;
8511                   for (x = (yyn < 0 ? -yyn : 0);
8512                        x < (sizeof(yytname) / sizeof(char *)); x++)
8513                     if (yycheck[x + yyn] == x)
8514                       {
8515                         strcat(msg, count == 0 ? ", expecting `" : " or `");
8516                         strcat(msg, yytname[x]);
8517                         strcat(msg, "'");
8518                         count++;
8519                       }
8520                 }
8521               yyerror(msg);
8522               free(msg);
8523             }
8524           else
8525             yyerror ("parse error; also virtual memory exceeded");
8526         }
8527       else
8528 #endif /* YYERROR_VERBOSE */
8529         yyerror("parse error");
8530     }
8531
8532   goto yyerrlab1;
8533 yyerrlab1:   /* here on error raised explicitly by an action */
8534
8535   if (yyerrstatus == 3)
8536     {
8537       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
8538
8539       /* return failure if at end of input */
8540       if (yychar == YYEOF)
8541         YYABORT;
8542
8543 #if YYDEBUG != 0
8544       if (yydebug)
8545         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8546 #endif
8547
8548       yychar = YYEMPTY;
8549     }
8550
8551   /* Else will try to reuse lookahead token
8552      after shifting the error token.  */
8553
8554   yyerrstatus = 3;              /* Each real token shifted decrements this */
8555
8556   goto yyerrhandle;
8557
8558 yyerrdefault:  /* current state does not do anything special for the error token. */
8559
8560 #if 0
8561   /* This is wrong; only states that explicitly want error tokens
8562      should shift them.  */
8563   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
8564   if (yyn) goto yydefault;
8565 #endif
8566
8567 yyerrpop:   /* pop the current state because it cannot handle the error token */
8568
8569   if (yyssp == yyss) YYABORT;
8570   yyvsp--;
8571   yystate = *--yyssp;
8572 #ifdef YYLSP_NEEDED
8573   yylsp--;
8574 #endif
8575
8576 #if YYDEBUG != 0
8577   if (yydebug)
8578     {
8579       short *ssp1 = yyss - 1;
8580       fprintf (stderr, "Error: state stack now");
8581       while (ssp1 != yyssp)
8582         fprintf (stderr, " %d", *++ssp1);
8583       fprintf (stderr, "\n");
8584     }
8585 #endif
8586
8587 yyerrhandle:
8588
8589   yyn = yypact[yystate];
8590   if (yyn == YYFLAG)
8591     goto yyerrdefault;
8592
8593   yyn += YYTERROR;
8594   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8595     goto yyerrdefault;
8596
8597   yyn = yytable[yyn];
8598   if (yyn < 0)
8599     {
8600       if (yyn == YYFLAG)
8601         goto yyerrpop;
8602       yyn = -yyn;
8603       goto yyreduce;
8604     }
8605   else if (yyn == 0)
8606     goto yyerrpop;
8607
8608   if (yyn == YYFINAL)
8609     YYACCEPT;
8610
8611 #if YYDEBUG != 0
8612   if (yydebug)
8613     fprintf(stderr, "Shifting error token, ");
8614 #endif
8615
8616   *++yyvsp = yylval;
8617 #ifdef YYLSP_NEEDED
8618   *++yylsp = yylloc;
8619 #endif
8620
8621   yystate = yyn;
8622   goto yynewstate;
8623 }
8624 #line 4377 "parse.y"
8625
8626
8627 #ifdef SPEW_DEBUG
8628 const char *
8629 debug_yytranslate (value)
8630     int value;
8631 {
8632   return yytname[YYTRANSLATE (value)];
8633 }
8634
8635 #endif